VirtueMart – klikamy na producenta

Facebooktwittergoogle_plusredditpinterestlinkedintumblrmailFacebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Od początku mojej przygody z VirtueMart strasznie irytowała mnie wyświetlana przy produkcie nazwa producenta, po klieknięciu której wyskakuje okno z opisem rzeczonego wytwórcy sprzedawanego przedmiotu. W takiej sytuacji jedyną rozsądną opcją wydawało mi się usunięcie z szablonu kłopotliwego linka.

Rozwiązanie to jednak nie przekonało mnie do końca, bowiem nie chciałem rezygnować z samego wyświetlania nazwy producenta produktu. Wypadało więc nadać mu inną funkcję.

Po namyśle i przyjrzeniu się rozmaitym sklepom internetowym postanowiłem, ze po kliknięciu link, o którym mowa pojawi nam się strona z wszystkimi produktami przypisanymi do danego producenta. Poniżej pokażę sposób w jaki to osiągnąłem.

Zaczynamy od otwarcia pliku shop.product_details.php znajdującego się w katalogu /administrator/components/com_virtuemart/html. Następnie szukamy następującego kodu w okolicach linii 262 otwartego pliku.


// LINK TO MANUFACTURER POP-UP
$manufacturer_id = $ps_product->get_manufacturer_id($product_id);
$manufacturer_name = $ps_product->get_mf_name($product_id);
$manufacturer_link = "";
if( $manufacturer_id && !empty($manufacturer_name) ) {
$link = "$mosConfig_live_site/index2.php?page=shop.manufacturer_page&manufacturer_id=$manufacturer_id&output=lite&option=com_virtuemart&Itemid=".$Itemid;
$text = '( '.$manufacturer_name.' )';
$manufacturer_link .= vmPopupLink( $link, $text );

Zamieniamy go na następujący:


// LINK TO MANUFACTURER POP-UP
$manufacturer_id = $ps_product->get_manufacturer_id($product_id);
$manufacturer_name = $ps_product->get_mf_name($product_id);
$manufacturer_link = "";
if( $manufacturer_id && !empty($manufacturer_name) ) {
$link = "$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.browse&manufacturer_id=$manufacturer_id&Itemid==".$Itemid;
$text = $manufacturer_name;
$manufacturer_link .= "<a href=\"$link\" title=\"$text\" >$text</a >";

Domo możecie zobaczyć na stronie: www.bramynapedy.eu

Dawid Ogłaza

Z wykształcenia grafik i historyk, a obecnie student ASP. Projektuję, koduję, tańczę i rysuję, Do tego uzależniony od sportu, musli i zielonej herbaty.

More Posts - Website

  • Super. Na pewno się przyda. Wielkie dzięki 🙂

  • Maciek

    Super sprawa, na pewno skorzystam z tej opcji :). Martwi mnie jedno jeszcze tylko że po kliknięciu w link „zapytaj o produkt” nie wypełnia się samoistnie pole jak to bywało w starszych wersjach Virtu- jest na to jakiś sposób.
    Pozdr Maciek

  • Maciek >> przyjrzę się temu problemowi i postaram się znaleźć rozwiązanie

    Pozdrawiam

  • Solucja bardzo dobra, ale mam pytanie o zamianę linka tekstowego na graficzne logo. średnio u mnie z programowaniem ale myślę że będzie to wyglądało jeszcze lepiej. Da się coś takiego zrobić?

  • Super rozwiązanie – wielkie dzięki 🙂

  • Jacek

    Super sprawa Dawid. A możesz mi podpowiedzieć, jak zrobić, żeby po wyświetleniu listy produktów danego producenta pokazała mi się odpowiednia ilość produktów w wierszu (bo widzę na Twojej stronie demo, że to Ci się udało). W sklepie mam ustawione wyświetlanie trzech pozycji w wierszu a jak kliknę w producentów, i na końcu mam np. dwie pozycje, to wtedy kontenery mam rozciągnięte. Byłbym wdzięczny za podpowiedź.

  • Jacek

    Znalazłem rozwiązanie, tylko nie wiem, czemu tak się dzieje – jak mam w konfiguracji wybraną opcję na tabelach (produkty) to jak w pierwszym wierszu mam mniej niż 3 produkty, to się rozciągają równomiernie po połowie na szerokość strony (czego bym właśnie nie chciał), natomiast jak mam na divach wtedy nawet jak mam tylko dwa produkty w pierwszym wierszu mają prawidłową szerokość.

  • Witam,
    myślę o stworzeniu strony dla księgarni internetowej. I chiałbym aby było tak że sa 2 rodzaje tych producentów. 1 to wydawcy a 2 to autorzy. Jak wkomponować coś takiego w VM ? Tzn. potrzebuję tak jakby 2 razy producentów 🙂

  • Michał

    Hej, wiesz może jak to zrobić w VM 2? Dzięki

  • Norbert

    Dla VM2 jest sposób na to taki:

    Szukasz pliku default.php w ‚template/html/com_virtuemart/productdetails’ oszukujesz kod:

    product->virtuemart_manufacturer_id . ‚&tmpl=component’, FALSE);

    zamieniamy go na:

    $link = JRoute::_(‚index.php?option=com_virtuemart&view=category&virtuemart_manufacturer_id=’ . $this->product->virtuemart_manufacturer_id . ”, FALSE);

    Potem odszukujemy:

    u mnie Linia 160. Obok mamy link w postaci:

    <a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="”>

    zmieniamy na:

    <a href="”>

    I powinno śmigać jak talala 🙂

  • Norbert

    Przefiltrowało część kodu, całość ładnie opisaną wrzuciłem na http://sulzycki.com.pl/klikamy-w-nazwe-producenta-vm2/

  • xomichuox

    Witam, mógłby ktoś podać kod dla vm2

    niestety nie mam takiej linijki:
    product->virtuemart_manufacturer_id . ‚&tmpl=component’, FALSE

    przeszukałem wszystkie pliki virtuemart i nigdzie nie występuje taka linijka…

  • Radzio

    U mnie VM 2.0.26d
    Joomla 2.5.22

    też niestety nie mam takiego kodu
    w ogóle dziwny przypadek po kliknieciu w nazwę producenta wyskakuje pop-up – tam jest odnośnik do „wszystkich produktów producenta” po kliknięciu przenosi do pustej strony ale nie ma błędu, widać wszystko tylko w kontent jest pusty.
    Może macie jakieś rozwiązanie? Przypuszczam że jest żle budowany url ale nie wiem jak do tego się zabrać? Jakiś kanoniczny błąd?
    Na forach angielsko języcznych też szperałem ale jakby temat słabo rozwiązany tzn. w zasadzie brak rozwiązania.

  • Edek253

    Ja też mam taki problem, ktoś zna rozwiązanie?