Jump to content

Drobna modyfikacja product.tpl


johnkielon

Recommended Posts

Cześć,
to mój pierwszy temat na forum. Poszukuję pomocy przy małej modyfikacji strony produktu.
 
Chciałbym dodać kod php w w miejsce wyświetlania się dostępności produktu.

 

Kod oryginalny:

<span id="availability_value"{if $product->quantity <= 0 && !$allow_oosp} class="warning_inline"{/if}>{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}</span>

Docelowy kod:

<span id="availability_value">TUTAJ KOD PHP</span>

Dodatkowo, w moim kodzie php chciałbym aby jedną zmienną był kod ean produktu:

include_once('simple_html_dom.php');
date("Y-m-d");

$rok = date("Y");
$mies = date("m");
$dzi = date("d");

$s = $rok + $mies + $dzi;
$t = 'TUTAJ KOD EAN PRODUKTU, KTÓRY JEST POBIERANY Z BAZY DANYCH PRESTY';
$c = '&t=';
$b = 'http://xxx/yyy.aspx?s=';
$a = "$b$s$c$t";

$html = file_get_html("$a")->plaintext;

if(strstr($html, "0,00")!==False) {
   echo "Wysyka w 7 dni";}
else { echo "Wysyka w 24h!"; };

Kod działa, jednak jest to szczyt moich możliwości jeśli chodzi o php, dlatego poszukuję pomocy :) Wiem, że znaczniki {php}{/php} nie działają, a kod trzeba dodać w klasie / kontrolerze, jednak nie mam pojęcia jak to zrobić. 

 

Proszę o pomoc, mogę również zapłacić za rozwiązanie, meczę się nad tym parę dni a dla doświadczonego użytkownika jest to pewnie 15 min roboty :)

Link to comment
Share on other sites

uwielbam, jak ktos zaczyna od slow "drobna modyfikacja" "drobny problem" czeg wynikiem jest juz dosc skomplikowane rozwiazanie :D no ale....

 

calosc php umieszczasz w kontrolerze - tutaj musialbys sie odniesc do kontrolera Product - czego nie polecam... zabwa w override, duza mozliwosc popelnienia bledu itp. ale o tym za chwile -  dodajesz tylko wynik do zmiennych tablicy assign i ten wynik jako zmienna wyswietlasz na stronie prduktu przez {$zmienna}. jednak, i tutaj raczej prawidlowe dzialanie w takich wypadkach, w zamian za grzebanie sie w silniku,  przy takich zabiegach radzilbym stworzenie nowego prostego modulu. implementacje nowego hook i tylko tego hook umiescic w wybranym miejscy product.tpl i zasadniczo tyle.

Link to comment
Share on other sites

Dzięki za podpowiedź. Tak jak poleciłeś zrobiłem prosty moduł, a raczej zmodyfikowałem już zainstalowany (socialsharing - i tak nigdy nie będzie użyty). 

 

Mój główny kod w tym module ( zamiast EAN użyłem product reference )

include_once('simple_html_dom.php');
date("Y-m-d");

$rok = date("Y");
$mies = date("m");
$dzi = date("d");

$s = $rok + $mies + $dzi;
$t = "$product->reference";
$c = '&t=';
$b = 'http://xxx/yyy.aspx?s=';
$a = "$b$s$c$t";

$www = file_get_html("$a")->plaintext;

if(strstr($www, ":0,00")!==False) {
   $dost = "Wysyłka w 7 - 10 dni";}
else { $dost =  "Wysyłka w 24h!"; };

Kod działa bardzo dobrze ale tylko gdy produkt nie ma kombinacji. Jeżeli produkt ma kombinacje, nie jest pobierany reference danej kombinacji tylko główny produktu ( a gdy główny reference nie jest wypełniony to po prostu zmienna jest "pusta" ).

 

Gdzie może leżeć problem?

Link to comment
Share on other sites

najlepiej to uzyj sobie hooka z parametrem i reference odbieraj z $params wtedy bedzie dzzialac dla wymaganego czy to produktu czy to atrybutu. zawsze bedziesz mial zwracane to co przekazuje produkt na stornie.

 

jezlei mialby byc pusty EAN to tutaj musisz wpisac zaleznosc, co modul ma w takiej wytuacji zrobic, czy przekazac pusta zmienna czy cos wysweitlic.

 

 

PS. raczej radzilbym tworzyc nowe moduly, bo nigdy nie wiesz czy i jak ktorys nie jest scisle powiazany z silnikiem, jak np, w wypadku blocknewsletter czy komentarze produktu.

Link to comment
Share on other sites

Jeśli chodzi o ean13, to brak go w kontrolerze i klasie produktu.

Myślałem, że w którejś nowej wersji presty zostanie to naprawione, ale dalej nic :(

Jak ktoś zainteresowany, to mogę wrzucić tu na forum overridy klasy i kontrolera produktu naprawiające ten błąd.

Link to comment
Share on other sites

Jeśli chodzi o ean13, to brak go w kontrolerze i klasie produktu.

Myślałem, że w którejś nowej wersji presty zostanie to naprawione, ale dalej nic :(

Jak ktoś zainteresowany, to mogę wrzucić tu na forum overridy klasy i kontrolera produktu naprawiające ten błąd.

jak najbardziej jest. wlasnie sprawdzalem na 1.6.0.8 oraz 1.6.0.14 - $product->ean13

 

przyklad: http://prestas.4vip.pl/1608/tshirts/1-faded-short-sleeve-tshirts-01122211212.html

Edited by design4VIP (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...