Informatyka w najlepszym wydaniu…

Nie działająca wyszukiwarka produktów w VirtueMart

Implementując w pewnym sklepie internetowym opartym o komponent VirtueMart moduł do wyszukiwania produktów mod_virtuemart_search wraz z przyjaznymi linkami opartymi o komponent ARTIO JoomSEF w wersji 3.2.9 napotkałem takiż oto problem, iż zamiast wyników wyszukiwania pojawiała się strona główna sklepu. Czyli jednym słowem wyszukiwarka nie działała. Trzeba było ten stań rzeczy zmienić. A więc do dzieła…

Przeglądając plik modułu odpowiedzialnego za wyszukiwarkę, odnalazłem informację że za wyszukiwanie odpowiedzialna jest funkcja purl z klasy ps_session.php.
Plik z ten ma następującą ścieżkę:

/modules/mod_virtuemart_search/mod_virtuemart_search.php

Aby czegoś nie pokręcić postanowiłem stworzyć nową funkcję purl2, która będzie wywoływana w pliku mod_virtuemart_search.php. Tak więc linia 30 w tym pliku wygląda teraz tak:

<form class="search" action="<?php $sess->purl2( $mm_action_url.">" method="post">

Następnie należało sprawdzić co tak naprawdę się dzieje w tej funkcji. Znajduje się ona w pliku ps_session.php, a ścieżka do niego jest taka: /administrator/components/com_virtuemart/classes
Wystarczyło tylko zmienić dodać funkcję purl2, najlepiej zaraz za purl, tym by było uporządkowane wszystko. Jest to około 491 linii.

function purl($text, $createAbsoluteURI=false, $encodeAmpersands=true, $ignoreSEF=false) { echo $this->url( $text, $createAbsoluteURI, $encodeAmpersands, $ignoreSEF );
}

Dopisana funkcja purl2 wygląda następująco:


function purl2($text, $createAbsoluteURI=True, $encodeAmpersands=true, $ignoreSEF=false) {
echo $this->url( $text, $createAbsoluteURI, $encodeAmpersands, $ignoreSEF );
}

Jak widać zmienił się tylko parametr $createAbsoluteURI zamiast false zmieniłem na true, tak by tworzyło absolutne ścieżki URL. Jak widać hack działa:P

:, , ,

Komentarze wyłączone.

Szukasz czegoś?

Użyj wyszukiwarki:

Nie znalazłeś tego czego szukałeś? Napisz wiadomość do mnie, a na pewno odpowiem...

Archiwum

Wszystkie wpisy, chronologicznie...