Jump to content
prestasafe

[Résolu] htmlspecialchars() expect parameters 1

Recommended Posts

Bonjour à tous.

Voila je suis en train de créer un petit module et après avoir lutté à me documenter, j'ai suivi le tuto de prestarocket et télécharger le super module d'exemple de jDanse. 

 

Donc, dans mon module, j'arrive à crée du contenu tout se passe à merveille jusque ici, mais lorsque que je veux éditer ce dernier, mon textarea m'affiche ceci 

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /Users/guillaume/Sites/prestashop_156/tools/smarty/plugins/modifier.escape.php on line 58

Dans controller voici le tableau concernant ce textarea

array(
					'type' => 'textarea',
					'label' => $this->l('Contenu:'),
					'name' => 'txt',
					'autoload_rte' => true,
					'size' => 40,
					
					
				)

Avec ou sans tinyMce c'est la même chose.

 

Voici également le code de mon Model

public static $definition = array(
		'table' => 'news',
		'primary' => 'id_news',
		'multilang' => true,
		'fields' => array(
			// Lang fields
			'id_news' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
			'title' => 		array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 64),
			'txt' => 		array('type' => self::TYPE_STRING,'lang' => true),
		),
	);

Donc si quelqu'un à un idée je suis preneur. 

Merci à vous.

 

PS: je suis sous Prestashop 1.5.6

Edited by guigui23 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

Par facilité, serait-il possible d'avoir le code du module (si il n'est pas sensible) éventuellement par mail afin de pouvoir installer celui-ci et voir l'erreur en action ?

 

Mais, là ainsi, je ne vois pas ce qui peut poser ce soucis.

Share this post


Link to post
Share on other sites

Bonjour,

 

Je tente au hasard sans le code : le field "txt" de la definition table ne devrait-il pas être en TYPE_HTML au lieu de TYPE_STRING ?

 

Ex :

  array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml')

Share this post


Link to post
Share on other sites

J'avais déjà essayé avec TYPE_HTML mais ça ne change rien,

En local j'ai le message, en ligne non.

J'ai remarqué que l'UPDATE se fait bien mais par exemple si je met un <p>TEST</p> dans le tinyMCE (en mode HTML)

dans la base le résultat est sans HTML donc TEST.

 

je comprends pas du tout, le MVC de Prestashop est bien mais on passe plus de temps à chercher de la doc et à débugger qu'autre chose.

Share this post


Link to post
Share on other sites

\0/ J'ai enfin trouvé la solution !!!!!! 

 

dans le controller j'avais oublié de mettre 

'lang' => true,

au niveau de mon textarea, et la bizzarement tout est ok ! 

 

Ouuuuf un poids en moins, en tous cas merci à vous pour votre aide précieuse !

  • Like 1

Share this post


Link to post
Share on other sites

"Bizarrement", en fait non c'est plutôt logique.

 

Dans la definition table, le champ 'txt' étant définit comme un champ multilangue, il faut bien que la définition de ce champ dans les helpers soit elle aussi paramétrée en multilangue.

 

Le fait que le message apparaisse en local et pas en ligne doit - peut-être - venir de la configuration des langues (actives ou non) ?

 

Néanmoins, l'important étant que ça soit résolu et qu'on peut en profiter pour rajouter une couche sur la documentation qui est bien, mais pas encore assez précise (un exemple d'une implémentation de chaque helper avec tous les types de champs + multilangue serait la bienvenue par exemple).

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More