Jump to content

PHP w opisie produktu


Almond

Recommended Posts

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 by Almond (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

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

  • 3 weeks later...

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

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

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 by atomek (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...