Ajouter du javascript dans vos pages cms sous Prestashop

J’expliquais dans cet article comment ajouter du javascript dans les descriptions de vos produits mais, depuis la version 1.5.6.2 de Prestashop, le problème se pose également dans les pages cms.

Actuellement lorsque vous tentez d’ajouter du javascript à vos pages cms voici ce que vous obtenez:


Property CMS->content is not valid

Voici donc la solution pour régler ce problème
Créez un fichier « CMS.php » dans le dossier « override/classes » et ajoutez-y le code suivant:


<?php
class CMS extends CMSCore
{
	/**
	 * @see ObjectModel::$definition
	 */
	public static $definition = array(
		'table' => 'cms',
		'primary' => 'id_cms',
		'multilang' => true,
		'fields' => array(
			'id_cms_category' => 	array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
			'position' => 			array('type' => self::TYPE_INT),
			'indexation' =>     	array('type' => self::TYPE_BOOL),
			'active' => 			array('type' => self::TYPE_BOOL),

			// Lang fields
			'meta_description' => 	array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
			'meta_keywords' => 		array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
			'meta_title' =>			array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
			'link_rewrite' => 		array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
			'content' => 			array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString', 'size' => 3999999999999),
		),
	);
}

Rendez-vous ensuite dans le dossier « cache » et supprimez le fichier « class_index.php »

Voila désormais vos pages cms accepteront le javascript.

*** EDIT 20/03/14 ***
Apparemment sur PS 1.5.6.0 (et sans doute avant) la colonne « indexation » n’existe pas dans la table « cms ».
Il faut donc retirer la ligne suivante du code précédent:


'indexation' =>     	array('type' => self::TYPE_BOOL),

*** EDIT 19/03/15 ***
Si vous ne voyez pas votre javascript dans la page cms, pensez à aller dans « paramètres avancés/performances » et décocher la case « Déplacer le code JavaScript à la fin ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *