badyllek1993 Posted December 5, 2013 Share Posted December 5, 2013 Witam serdecznie. Chciałbym na stronie produktu umieścić własny kod PHP. Próbowałem już umieścić w pliku - /controllers/front/ProductController.php oraz - /themes/default/product.tpl i mam problem z działaniem zwykłego <?php echo 'abc'; ?> Czy znajduje się jakiś inny plik, w którym bez problemu umieszczę swój kod? Pozdrawiam i czekam na odpowiedź, badyllek1993 Link to comment Share on other sites More sharing options...
vekia Posted December 5, 2013 Share Posted December 5, 2013 w plikach .tpl nie da się już korzystać z kodu php (w smarty jest to technicznie możliwe ale ta funkcjonalność została w prestashop wyłączona) to co pozostaje to modyfikacja ProductController.php funkcja: initContent(); wewnątrz tej funkcji możesz umieścić własny kod php. 1 Link to comment Share on other sites More sharing options...
badyllek1993 Posted December 5, 2013 Author Share Posted December 5, 2013 Okej, w zasadzie działa, ale wygenerowaną treść wyświetla w lewym górnym rogu ekranu. Mnie interesuje, żeby całość wepchnąć gdzieś przy ilości dostępnych sztuk produktów. Ponieważ kod będzie dość złożony, ciężko będzie każdej zmiennej przypisać indentyfikator i umieścić w product.tpl. Jak to najlepiej ugryźć? Czy nie prościej będzie ustawić plik produktu .php i .tpl i w określonym miejscu includować mój plik z PHP? Pozdrawiam i dzięki za szybką odpowiedź Link to comment Share on other sites More sharing options...
vekia Posted December 5, 2013 Share Posted December 5, 2013 jeżeli chcesz wygenerować treść i umieścić ją w kodzie strony, musisz wynik Twojego kodu zapisać do zmiennej. następnie tą zmienną przekazać do tablicy smarty (wszystko robimy w funkcji initContent() w ProductController) dla przykładu: $wynik="oto wynik mojej funkcji php"; $this->context->smarty->assign(array('moj_wynik_z_php' => $wynik)); następnie w pliku product.tpl w dowolnym miejscu możesz korzystać ze zmiennej: {$moj_wynik_z_php} która wyświetli zawartość zmiennej $wynik - w tym przypadku pojawi się tekst "oto wynik mojej funkcji php" nie wiem czy wystarczająco jasno wytłumaczyłem ;D Link to comment Share on other sites More sharing options...
badyllek1993 Posted December 6, 2013 Author Share Posted December 6, 2013 Dobrze kolega wytłumaczył. Wdrożyłem i działa. Mam jeszcze jedno pytanie. Czy przy aktualizacji systemu PrestaShop niektóre linie w kodzie które dodałem nie zostaną usunięte? Czyli, czy dodanie własnego kodu PHP, w sposób jaki kolega podał, jest odporny na aktualizacje Presty? Link to comment Share on other sites More sharing options...
vekia Posted December 6, 2013 Share Posted December 6, 2013 po aktualizacji zostaną usunięte, ale jest na to rada: tzw. override szczegółowy opis znajduje się tutaj: http://doc.prestashop.com/display/PS15/Overriding+default+behaviors#Overridingdefaultbehaviors-Overridingacontroller Link to comment Share on other sites More sharing options...
badyllek1993 Posted December 24, 2013 Author Share Posted December 24, 2013 Kolego vekia, z poprzednim problemem sobie poradziłem, ale teraz stoję na innym. Mianowicie na stronie produktu mam dodatkowe pola formularza połączone z akcją "dodaj do koszyka". Nie działa to na ajaxie, po prostu po kliknięciu na "dodaj do koszyka" przenosi na podstronę /order - tak ma być. Nie mniej jednak nie wiem jak odwołać się do dodanych pól na podstronie produktu, aby przerobić je PHP na podstronie /order i dodać do bazy. Próbowałem podpatrzeć jak działa z polem "Ilość", ale nie dałem rady Pozdrawiam i dziękuję, badyllek1993 Link to comment Share on other sites More sharing options...
vekia Posted December 24, 2013 Share Posted December 24, 2013 temat zamykam. regulamin forum, 1 topic = 1 pytanie Link to comment Share on other sites More sharing options...
Recommended Posts