Almond Posted May 5, 2017 Share Posted May 5, 2017 (edited) Witam, Chciałbym umieścić zmienną php w długim opisie produktu.przykład jak to zrobić znalazłem tutaj: https://www.prestashop.com/forums/topic/293986-własny-kod-php-na-stronie-produktu/ VEKIA: 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 Wszystko ładnie śmiga, gdy dodamy zmienną {$moj_wynik_z_php} bezpośrednio do pliku .tpl. Próbuję jednak dodać ją do opisu produktu i presta z automatu zmienia ją w zwykły tekst. Czy istnieje możliwość edycji pola 'długiego opisu' w taki sposób by można było tam odtworzyć zmienną? Pozdrawiam AF Edited May 5, 2017 by Almond (see edit history) Link to comment Share on other sites More sharing options...
Almond Posted May 6, 2017 Author Share Posted May 6, 2017 Witam, od kilku dni z tym walczę ale niestety. PHP nie jest moją najlepszą stroną. Może ktoś wie co należałoby zmienić? Link to comment Share on other sites More sharing options...
Almond Posted May 17, 2017 Author Share Posted May 17, 2017 Rozumiem że nie ma tu zbyt wielu osób rozumiejących skrypty backendowe. Trudno Link to comment Share on other sites More sharing options...
koening Posted May 17, 2017 Share Posted May 17, 2017 A co chcesz osiągnąć? Może da się to samo za pomocą zmiennej javascript Link to comment Share on other sites More sharing options...
Almond Posted May 18, 2017 Author Share Posted May 18, 2017 A co chcesz osiągnąć? Może da się to samo za pomocą zmiennej javascript Cześć, Chcę uprościć dodawanie długiego opisu. Opis ten ma zawierać kluczowe cechy produktu. Będzie to ikona graficzna i krótki opis dla każdej cechy. Zamiast kopiować i bawić się w html długiego opisu, chciałbym dodawać zmienne. Np. dodam do opisu zmienne: {$wysoka_jakosc} {$wytrzymala_konstrukcja} {$latwy_montaz} I system pobierze odpowiedni kod dla każdej zmiennej, składający się z ikony i opisu. Doda odpowiednie przerwy między cechami etc. W przypadku jakichkolwiek zmian w opisie będę mógł operować na zmiennych a nie zmieniać opis każdego produktu. Mam nadzieje że jest to logicznie wytłumaczone Pozdrawiam Link to comment Share on other sites More sharing options...
Almond Posted June 6, 2017 Author Share Posted June 6, 2017 Witam, Czy jest jeszcze ktoś kto potrafi coś doradzić w tej kwestii? Pozdr Link to comment Share on other sites More sharing options...
Almond Posted June 6, 2017 Author Share Posted June 6, 2017 Myślę że problem w tym, że każdy wiersz wpisany w długi opis, jest automatycznie umieszczony w znaczniku <p>. Czy da się jakoś wyłączyć funkcję umieszczania w tym znaczniku opisu produktu? Link to comment Share on other sites More sharing options...
Almond Posted June 6, 2017 Author Share Posted June 6, 2017 Umieściłem zmienną w znaczniku <div> co zapobiegło automatycznemu umieszczeniu w znaczniku <p>. Niestety nadal nie zwraca wyniku. Link to comment Share on other sites More sharing options...
e_com Posted June 6, 2017 Share Posted June 6, 2017 Dla smarty zmienną jest {$product->description}, a wszystko co pobierze z bazy ta zmienna dla smarty jest już tylko tekstowym bełkotem do wyświetlenia, a nie kolejną zmienną zawartą w innej zmiennej. Link to comment Share on other sites More sharing options...
atomek Posted June 6, 2017 Share Posted June 6, 2017 (edited) może w ten sposób (strona cms): w pliku cms.tpl, kod: <div class="rte{if $content_only} content_only{/if}"> {$cms->content} </div> zamieniamy na: {assign "tagi" array( '{wysoka_jakosc}', '{latwy_montaz}' , '{inne}' ) } {assign "wyswietlane" array( '<div>Coś o <strong>wysokiej</strong> jakości</div>', '<div>Coś o <strong>łatwym</strong> montażu</div>', '<div>Jakieś <strong>inne</strong> informacje</div>') } <div class="rte{if $content_only} content_only{/if}"> {$cms->content|replace:$tagi:$wyswietlane} </div> w treści strony CMS wpisujemy tagi:{wysoka_jakosc}{inne}{latwy_montaz} powinno działać (PS 1.6.1.9) robiłem to na stronie CMS, w treści opisu produktu chyba będzie podobnie Edited June 6, 2017 by atomek (see edit history) Link to comment Share on other sites More sharing options...
Almond Posted June 7, 2017 Author Share Posted June 7, 2017 Ok, dzięki za informację. Popróbuję i dam znać jak się uda. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now