Jump to content

[RESOLU] Requete SQL ou l'intégrer proprement ?


Recommended Posts

Bonjour,

 

j'ai besoin de faire une requête sur une table que j'ai créé, j'aimerais afficher le résultat dans le footer des produits.

Je travaille sur la 1.4 mais je suis paumée avec les classes / controllers ect .. je ne sais pas quelle est la logique pour faire ça proprement ...

 

j'ai l'impression qu'il faut faire :

Requête SQL dans classes (Product.php) / Assignation de la variable smarty dans controllers (ProductController.php) / et finalement utilisation du résultat dans le tpl (product.tpl) j'ai bon ??

 

est ce qu'il y a une requête basique que je peux regarder pour prendre modèle ? (je connais le php/sql mais la partie smarty je patauge un peu enfin j'arrive à faire les truc de base dans un tpl)

 

merci :)

Link to comment
Share on other sites

Bon je continue de creuser j'en suis là :

 

classes (Product.php) :

 

je ne sais pas s'il faut déclarer la variable au début:

public $bozo;

 

Puis ensuite avec les autres public function :

		public function bozo();
{
	$gaston_taille = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'bozo`');
	return $bozo;
}

 

controllers (ProductController.php) :

 

(j'ai rajouter la variable dans displayContent mais c'est surement pas la bonne place)

	public function displayContent()
{
	parent::displayContent();
	self::$smarty->display(_PS_THEME_DIR_.'product.tpl');
	self::$smarty->assign('bozo', $bozo);
}

 

Dans mon TPL j'ai rien mis mais si je fais un debug aucune nouvelle variable n'est là ...

 

Heeeelp merci :)

Link to comment
Share on other sites

Bonjour,

le plus simple à mon avis est de créer un module qui va se hooker dans le footer des produits (c'est à dire qu'une des méthodes du module sera appelée automatiquement dans le footer des produits, et c'est à cet endroit qu'il faudra y faire le traitement voulu). Pour cela je vous invite à regarder par exemple le module block catégorie qui affiche une liste des catégories sur la gauche. Si vous devez à tout prix modifier le coeur de Prestashop, faîtes le en surchargeant les classes en utilisant le dossier overrides/classes/ :)

Link to comment
Share on other sites

Bonjour et merci pour la réponse :)

 

effectivement c'est le mieux j'avais un peu cherché de ce côté mais je n'étais pas sûre donc j'avais pas insisté merci !!!!

 

j'ai donc mis ma requête SQL dans le fichier php d'un module puis vérifié avec debug et ma variable est bien là avec le contenu de ma requête hourrra :D

 

par contre je sèche sur comment affiché le contenu de ma variable :

$results	Smarty_Variable Object (3)
->value = Array (61)
 0 => Array (4)
   id => "1"
   taille => "9.5"
   cat => "1"
   texte => "scgvsdgfsdgfs"
ect ... il y en 61

 

Je comptais utiliser "foreach" mais alors la syntaxe j'ai du mal je pense, j'ai été voir le site de smarty pour les tuto et regardé les modules qui appels des variables comme les mienne mais je n'y arrive pas, ça persiste à m'afficher "array" :

 

{foreach from=$results item=k}
<li>{$k.taille}</li>
{/foreach}

 

si quelqu'un voit une erreur :)

 

Edit : autant pour moi l'affichage du debug me faisait un cache en arrêtant le debug ça marche !!! je post au propre la solution dés que j'ai finit merci encore :)

Link to comment
Share on other sites

Alors petit résumé, j'ai donc pris le module catégorie :

 

blockcategories.php : Dans "public function hookFooter" sous "global $smarty, $cookie;" j'ai inséré :

$sql = Db::getInstance()->ExecuteS('marequetesql');
$smarty->assign('results',$sql);

 

blockcategories_footer.tpl :

{foreach from=$results item=k}
{$k.taille}
{/foreach}

Qui m'affiche le contenu de ma requête

Link to comment
Share on other sites

  • 1 month later...

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...