Jump to content

Survol image dans une page cms


Recommended Posts

Bonsoir

 

j'ai trouvé un bug qui m'embête.

 

Pour le module Editeur de page d'accueil tout fonctionne bien.

Par contre quand je vais dans Préférence/CMS je creer une page.

 

J'ajoute une image avec un sorvol ( avancé /image alternativ ) au moment ou je veux save j'ai un message d'erreur :

 

[PrestaShopException]

Property CMS->content is not valid
at line 878 in file classes/ObjectModel.php

872. 873. 				$message = $this->validateField($field, $value, $id_lang);874. 				if ($message !== true)875. 				{876. 					if ($die)877. 						throw new PrestaShopException($message);878. 					return $error_return ? $message : false;879. 				}880. 			}881. 		}882. 

là c'est en version 1.5.6.1

 

En version 1.5.5 j'ai un bandeau rouge :

 

Le champ contenu (Français (French)) est invalide..

 

Comment corriger celà ?

Edited by hallowman (see edit history)
Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
  • 6 months later...

Bonjour,

 

Par "surcharger" la fonction, je pense que Gregory est assez précis sur la solution mais pour un développeur.

Si vous n'êtes pas développeur vous risquez d'avoir du mal à surcharger la classe pour autoriser les fonctions javascript (si c'est ce que vous souhaitez).

 

Si vous avez trouvé vous avez bien de la chance, moi je n'y arrive pas malheureusement la communauté prestashop est beaucoup moins active que certaines autres  :(

Link to comment
Share on other sites

oui c'est ce que j'aimerais faire et ce n'est pas faute de chercher , j'ai suivi des pages et des pages de solutions sur le net mais rien ne semble se rapprocher de cette solution, je ne comprend pas pourquoi ils ont supprimé cette fonction très utiles qui était dans la version 1.5 ....

Link to comment
Share on other sites

j'image qu'il faut créer un  fichier ObjectModel.php dans le répertoire  /override/classes.

 

et lui coller le contenu de cette page :

 

https://github.com/PrestaShop/PrestaShop-1.4/blob/master/classes/ObjectModel.php

 

faut voir et tester :)

 

c'est ça qu'il appelle Surcharger une classe ( ou un module ) ce qui permet de faire ses propres modifications sans toucher au fichier du coeur de prestashop :)

Link to comment
Share on other sites

J'ai résolu le problème alors j'espère que ca va aider quelques personnes sur la 1.6 en tout cas ça fonctionne .

 

Voilà ce que j'ai fait ( ce n'est pas le top mais ça marche ) .

 

Dans le dossier js j'ai supprimé complètement le dossier tiny_mce  et je l'ai remplacé par le même mais de la version 1.5.9 de prestashop.

 

Ensuite j'ai édité le fichier validate.php dans le dossier classe et j'ai remplacer 

public static function isCleanHtml($html, $allow_iframe = false)
{
    $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange';
    $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend';
    $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove';
    $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel';
    $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart';
    $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
    $events .= '|onselectstart|onstart|onstop';
 
    if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
        return false;
 
    if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html))
        return false;
 
    return true;
}

par 

public static function isCleanHtml($html, $allow_iframe = false)
{
    return true;
}

et pour finir j'ai désactivé la fonction "Utiliser la librairie HTMLPurifier"  dans le backoffice préférences -> paramètres généraux -> Utiliser la librairie HTMLPurifier  -> NON

 

Maintenant je peux placer des images dans mes descriptions de catégories ou sur mes pages cms avec des images de survol comme je le souhaite ....

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