PDA

Zobacz pełną wersję : Własne pola dodatkowe



losmajoras
25-10-2016, 18:47
Dodałem do bazy danych do tabeli: products_pl_pl dodatkowe pole niech nazywa się "dodatkowe01" (text)
tam zamierzam wpisywać jakieś dane opisujące produkt, np wydajność, moc itp.
No i teraz chciałem żeby zawartość tego pola wyświetlała się na karcie produktu.
Etykietę już wstawiłem, ale nie wyświetlają mi się żadne dane.

Zrobiłem coś takiego po polu TITLE END dodałem wyświetlanie SKU jest ok, teraz pod SKU, ewentualnie pod description chciałem dodać kolejną linijkę kodu

<?php // Product Title END ?>
<?php // Product sku ?>
<h4 itemprop="name">symbol produktu: <?php echo $this->product->product_sku ?></h4>
<?php // Product sku END ?>

Ostatnio działające miałem to na starej joomli i na VM 2.0.14 chyba - chciałem to zrobić ponownie
mam VirtueMart 3.0.18

noras
28-10-2016, 08:28
Oj nie idź tą drogą ;)

Nie modyfikuj bazy pod żadnym pozorem, każda aktualizacja VMa, nadpisze Ci strukturę bazy. To co próbujesz wykonać sprawi Ci więcej problemów w przyszłości niż korzyści dzisiaj.

Jednym z rozwiązań są Pola dodatkowe dla Produktu. Gdzie będziesz musiał tylko oprogramować w widoku wyświetlanie danego pola. I możesz to spokojnie zrobić w szablonie poprzez nadpisywanie widoku produktu.

losmajoras
28-10-2016, 09:35
Zmodyfikowałem tylko tabelę products.
Uważałem, że to lepsza i szybsza metoda, sprawdziła się w starym VM.
Szybciej było zmodyfikować tabelę (dodać potrzebne pola) i załadować dane do sklepu za pomocą CSVI, bo jakoś nie wyobrażałem sobie wpisywania ich ręcznie.
Stany magazynowe były aktualizowane też za pomocą CSVI
Zawsze przed aktualizacją to za pomocą phpmyadmin zamieniałem wszystkie produkty na nieaktywne - trwało 2-3 sekundy a potem tylko wgrywałem ilości trwało kilkanaście sekund.
A szablony widoku produktu były przygotowane dla każdej kategorii produktów i tam się wyświetlały lub nie odpowiednie pola.
Aktualizacja VM nie naruszała struktury tabeli products_pl - tak mi się przynajmniej wydawało.
Tak to mniej więcej wyglądało: klimakom.pl - teraz jest wyłączone
I testowałem do na księgarni internetowej gdzie wgrałem 70000 produktów i też działalo

noras
28-10-2016, 10:13
Nie twierdze ze nie mogło działać ;) Ok może przesadziłem że każda aktualizacja nadpiszę strukturę bazy... ale tak powinieneś zakładać
Ale robiąc takie operację musisz mieć świadomość że:

aktualizacja komponentu może nadpisać Twoje zmiany - najpewniej będzie to przy n-tej aktualizacji, którą będziesz chciał wykonać na szybko u klienta w piątek o 15:55 ;)
w VM jest opcja aktualizacji bazy danych - w narzędziach, jak zapomnisz i przypadkiem uruchomisz to na bank będziesz miał problem.
Nie zrozum mnie źle. To nie problem że wiesz jak to zmodyfikować i że działa. Pokazuje Ci tylko scenariusze które mogą Cię niespodziewanie zaskoczyć ;)


Możesz kombinować z polami dodatkowymi, ale fakt będzie problem z szybkim importem - trzeba by się nagimnastykować.
Szybki pomysł, jeśli naprawdę masz masę produktów. To chyba wygodniej było by stworzyć w bazie nową Tabelę (by nie modyfikować corowych tabel) w której były by trzy pola:

ID - primary Key Aytoincrement
ID_produkctu/SKU - id produktu lub model/sku do identyfikacji.
value - text, twoja wartość którą chcesz wyświetlić przy produkcie.


Prosta tabela, umożliwi Ci wtedy szybki import przypisanych wartości z CSV, XLS na podstawie kodu sku lub id produktu.
Pozostanie tylko kwestia oprogramowania i wyświetlenia. Tę kwestię załatwisz, pisząc prosty plugin i modyfikując lekko widoki.
Jeśli nie pluginem, to w ostateczności całą obsługę napisać w widoku szablonu, nadpisywaniem - nie polecam. :)

Chyba tyle.

losmajoras
28-10-2016, 11:17
Te Twoje dwa ostatnie akapity to chyba najlepszy pomysł.
Na razie zrobiłem pole dodatkowe dla produktu
Co nie zmienia faktu, że nie potrafię (może na razie tylko) zmusić productdetails/tmpl/default.php do wyświetlenia zawartości tego pola, wartości w tabeli są ale nie wyświetla mi zawartości.
Popracuję nad tym dzisiaj wieczorem.