MaPPaZZo Posted December 18, 2009 Share Posted December 18, 2009 Ciao a tutti, ho modificato il tpl della lista prodotti e quello della pagina prodotto per far visualizzare un testo personalizzato vicino al prezzo.In pratica devo avvisare l'utente registrato che il prezzo visualizzato è quello comprensivo dello sconto riservato al suo gruppo (sconto applicato al gruppo di appartenenza gestito da backoffice), e, nel caso non lo sia, visualizzare un altro messaggio linkato alla pagina del login/registrazione.Fin qui tutto ok, ma mi serve sapere la condizione da mettere dentro l'if per effettuare la visualizzazione dell'uno o dell'altro messaggio. credo sicuramente sia una verifica della variabile di sessione legata all'id utente o similare...in alternativa se mi indicate il file che gestisce le info utente (quello dell'header ad esempio) le informazioni che mi servono le ricavo direttamente da li e poi le posto se servono a qualcuno...!!! :-)Grazieeeeeeee ;-) Link to comment Share on other sites More sharing options...
disarci Posted December 19, 2009 Share Posted December 19, 2009 Allora1) se il cliente è loggato o meno: $cookie->isLogged() Però se devi vedere a che gruppo è collegato devi farti una query per saperlo:questa qry ti permette di sapere quali sono i gruppi del determinato utente loggato (array $result):SELECT * FROM `'._DB_PREFIX_.'customer_group` WHERE `id_customer` ='.intval($cookie->id_customer);$result = Db::getInstance()->executeS($query); Ovviamente nel tuo caso poi verificherai che sia dentro al gruppo (es 2):SELECT * FROM `'._DB_PREFIX_.'customer_group` WHERE `id_customer` ='.intval($cookie->id_customer) AND `id_group`=2;$result = Db::getInstance()->getRow($query); Link to comment Share on other sites More sharing options...
MaPPaZZo Posted January 5, 2010 Author Share Posted January 5, 2010 Grazie mille!!! evidentemente non ho visto la notifica della risposta e l'ho vista solo adesso effettuando una ricerca sul forum in cerca di una soluzione!!! :-)ho fatto cosi e funziona tutto egregiamente: (modificati i file product-list.tpl e product.tpl del mio template) {if !$cookie->isLogged()} Accedi o registrati per visualizzare il prezzo che ti abbiamo riservato! {/if} {if $cookie->isLogged()} Questo è il prezzo che ti abbiamo riservato! {/if} Visto che però smarty non l' ho usato mai mi viene una domanda...ma le query dentro il tpl le posso mettere?!?! e come? Grazie ancora! ;-) Link to comment Share on other sites More sharing options...
disarci Posted January 5, 2010 Share Posted January 5, 2010 Non ha "quasi" senso mettere le query all'interno di un visualizzatore richiamato dalla pagina php,dove puoi fare quello che vuoi.Se proprio hai la necessità puoi metterle all'interno del tag {PHP} ...... {/PHP} ma il difficile resta passargli i parametrihttp://www.smarty.net/manual/en/language.function.php.php Link to comment Share on other sites More sharing options...
xhaxhi_eli Posted January 5, 2010 Share Posted January 5, 2010 Allora, se ho ben capito il discorso, provo a spiegarmi con un esempio banale.La funzione convertPrice che si vede spesso nei prodotti è un metodo scritto (forse) in Product.php (cartella classes).Se non sbaglio prende come argomento il prezzo del prodotto che si vuole convertire.Per farla "conoscere" a smarty, ce una linea di codice in init.php (root del negozio) $smarty->register_function('convertPrice', array('Product', 'convertPrice')); Per poi venire usata dentro il file tpl {convertPrice price=$product.price_tax_exc} Se ti serve una cosa del genere, basterebbe che tu scrivessi un metodo (che puo tranquillamente far uso di db query) nella classe giusta.Includere a init.php una riga simile a quella sopraChiamarla nel TPL con la sintassi corretta. Link to comment Share on other sites More sharing options...
disarci Posted January 5, 2010 Share Posted January 5, 2010 complimenti xhaxhi_eliun ottimo metodo per utilizzare le funzioni in smarty!PS tutte le funzioni di conversioni sono in Tools.php (classes) ;-) /** * Return price converted * * @param float $price Product price * @param object $currency Current currency object */ static public function convertPrice($price, $currency) { $c_id = (is_array($currency) ? $currency['id_currency'] : $currency->id); $c_rate = (is_array($currency) ? $currency['conversion_rate'] : $currency->conversion_rate); if ($c_id != intval(Configuration::get('PS_CURRENCY_DEFAULT'))) $price *= $c_rate; return $price; } Link to comment Share on other sites More sharing options...
MaPPaZZo Posted January 5, 2010 Author Share Posted January 5, 2010 sono tutte informazioni preziose per uno che come me si è avvicinato da pochissimo a prestashop!! :-)potrebbero essere la base di partenza per gestire meglio le scontistiche.Per esempio un'altra cosa che ho riscontrato è che se metto un prodotto in saldo, un utente appartenente a un gruppo con relativo sconto se lo vede ri-scontato e non va poi cosi bene..!sapete per caso se qualcuno sta lavorando a questa casistica?!??!Grazie mille ancora! ;-) Link to comment Share on other sites More sharing options...
xhaxhi_eli Posted January 5, 2010 Share Posted January 5, 2010 La scontistica è gestita male.Lo stesso problema accade anche con la scontistica sulla quantita. Io ci mettero mano, ma per ora ho un po di altre cose da fare, e non posso dedicarmi a questo.Il problema sta nei calcoli fatti su getStaticPrice.Prima viene calcolato lo sconto prodotto, poi quello gruppo e alla fine quello sulla quantità. Link to comment Share on other sites More sharing options...
MaPPaZZo Posted January 5, 2010 Author Share Posted January 5, 2010 scusate, volevo fare un po di prove in locale per cercare di capire un po meglio come funziona.volendo inserire nel tpl delle query per ricavare info riguardo l'utente, il gruppo, ecc. dovrei fare cosi? correggetemi se sbaglio: {PHP} // DICHIARAZIONE QUERY $query= "SELECT 'reduction' FROM `’.DB_PREFIX.‘prestashop_group` WHERE `id_group` =’.intval($cookie->id_group)"; //GIUSTA QUESTA SOPRA AD ESEMPIO? $result = Db::getInstance()->getRow($query); $this->assign('sconto_personalizzato','result'); {/PHP} Il tuo sconto personalizzato: {$sconto_personalizzato}% dichiarata cosi andrebbe bene in linea di massima? poi altro dubbio: che variabili posso ricavare dal cookie oltre a id_customer ?Grazie! ;-) Link to comment Share on other sites More sharing options...
xhaxhi_eli Posted January 6, 2010 Share Posted January 6, 2010 La query si.Il resto va provato Link to comment Share on other sites More sharing options...
disarci Posted January 6, 2010 Share Posted January 6, 2010 Ripeto,io la stessa cosa la farei nel php,poi la riporti con un assign nel tplun giorno ti troverai a cambiare il template....in più è standard.... 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