THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


hi there,

i'm looking to get the product title outside the loop in a custom form controller.

My product ID is the good one, the instanceof Product return true, here is the code :

		if(!empty($productID)) {
			$product = \Thelia\Model\ProductQuery::create()->findPk($productID);
			if($product instanceof Product ){
                                var_dump($product);
				$productTitle = $product->getTitle(); //can't get the title here
			}else{
				$productTitle = "false";
			}
		}

In my var_dump of the product item the title is set as null, but the product has a Title in Thelia Back Office. I have the good reference, but i need the title !

If you can help me with this i would be thankful !

Offline


je viens de voir la section française en dessous que je n'avais pas vu. Le français me convient aussi smile

Offline


Il faut que tu définisse la locale avant de récupérer le titre. Par défaut, c'est en_US, et il se peut que ton titre ne soit pas défini dans cette locale. Donc :

Si tu as la request sous la main, tu peux récupérer la locale courante comme suit :

$locale = $request->getSession()->getLang()->getLocale();

Et ensuite :

$productTitle = $product->setLocale($locale)->getTitle();

OpenStudio Toulouse

Offline


Ok merci pour l'info,

je n'ai qu'une langue sur ce site, et je n'ai pas accès à $request.

Est ce que je ne peux pas définir à la main le fr_FR sachant que ça restera l'unique langue du site ?

j'ai testé sans succès la ligne ci-dessous :

$productTitle = $product->setLocale("fr_FR")->getTitle();

Last edited by ArtWeb (09-12-2019 13:29:41)

Offline


Si un titre en français existe pour ce produit, et que tu obtiens toujours null, alors ça veut sans doute dire que tu ne manipules pas le produit que tu crois.

Installe XDebug et débugge ton code pas à pas.


OpenStudio Toulouse

Offline


Ce qui est étonnant c'est que la référence est bonne, ou sinon il faut que je set la local avant de récupérer le produit.

Là mon var_dump me renvoie bien la bonne référence avec l'ID mais pas les autres infos, est-ce lié à l'utilisation de cette fonction :

$product = \Thelia\Model\ProductQuery::create()->findPk($productID);

Qui ne me renvoie que les infos en_US ?

Last edited by ArtWeb (10-12-2019 14:00:50)

Offline


Mais ton produit a un titre en en_US ?


OpenStudio Toulouse

Offline


Ah j'ai du manquer mon test hier sad

C'était en effet bon avec toutes ces modifications, merci beaucoup pour la réactivité ! smile

Last edited by ArtWeb (11-12-2019 17:55:23)

Offline


Je dois faire la même operation sur un Thelia 1.5 qui utilise Formesmagiques
Vaut il mieux que je recrée un sujet ?

Voilà ou j'en suis :
Je récupère bien l'ID du produit passé dans l'url via $ENV(id). J'ai donc un champs hidden qui contient mon ID, et je cherche à intégré dans le mail un texte :
"Produit : MON_TITRE_PRODUIT"
Or j'y vois moins clair dans l'organisation de la v1 et j'ai du mal à voir à quel endroit je peux récupérer et traiter l'ID que j'envoie dans le formulaire en input hidden.

Merci d'avance

Offline


Je n'avais compris le fonctionnement du plugin,
mon champ hidden est directement envoyé dans le mail, donc ma question serait plutôt :

comment puis-je depuis mon ID préremplir le champs hidden avec le titre du produit ?
je suis sur le template "mon-formulaire.html" avec un $_get(productid=10).

Merci d'avance,

Offline


Je ne comprends pas ce que tu veux faire.


OpenStudio Toulouse

Offline


En effet je vais faire un récapitulatif propre :

J'ai un formulaire présent sur le template devis.html.

Je veux faire ce que j'ai fait sur la v2, c'est à dire :

Sur cette page je passe un ID en get (Un id de produit).

L'objectif est d'inséré dans le mail généré par le formulaire :

"Produit : Mon_titre_produit" en récupérant le titre du produit depuis l'ID et en l'insérant en champs hidden dans la page.

A l'heure actuelle je passe mon ID je le récupère et je l'envoie par mail mais je suis dans un fichier HTML du coup je ne peux pas mettre en place la mécanique qui récupère le titre depuis l'ID.

Je ne sais pas si j'ai été clair ?

Merci !

Offline


Dans Thelia 1, tu ne peux pas utiliser les boucles dans les mails


OpenStudio Toulouse

Offline


Ok merci pour toutes ces infos en tout cas !
Je vais chercher à contourner le problème autrement.

Bonne journée et bon weekend !