Jump to content

Recommended Posts

Bonjour,

Je travail sur la version 1.6.1.15  de Prestashop.

j'ai besoin d'ajouter des lien url dans les caracteristiques des produits. Il faudrait que  du coté admin nous puissions ajouter ces liens simplement j'ai donc pensé a modifier le champ de saisi classique des caractéristiques par un champ de type Textarea avec l'éditeur TinyMCE.

Quelqu'un pourrait il m'aider a trouver comment faire car j'avoue que je ne sais pas trop par quel bout prendre cela.

 

Merci à vous de votre aide.

Share this post


Link to post
Share on other sites

Bonjour,

 

Pas besoin de modifier le champ TEXTAREA, cela ne fonctionnera pas. En revanche, vous pouvez autoriser l'utilisation de balise HTML dans ce champ en modifiant la classes Db.php dans classes/db/ (par override c'est toujours mieux)

Dans la fonction  escape(); modifier là comme suit :

Avant :

public function escape($string, $html_ok = false)
    {
        if (_PS_MAGIC_QUOTES_GPC_)
            $string = stripslashes($string);
        if (!is_numeric($string))
        {
            $string = $this->_escape($string);
            if (!$html_ok)
                $string = strip_tags(Tools::nl2br($string));
        }

        return $string;
    }

Après :

public function escape($string, $html_ok = false)
    {
        if (_PS_MAGIC_QUOTES_GPC_)
            $string = stripslashes($string);
        if (!is_numeric($string))
        {
            $string = $this->_escape($string);
            if (!$html_ok)
                $string = strip_tags(Tools::nl2br($string), '<a><p><strong><br><i>');
        }

        return $string;
    }

 

Vous remarquerez que dans cet  exemple j'autorise les balises <a> <p> <strong> <br> et <i>. Libre à vous de modifier cette partie pour autoriser les balises dont vous avez  besoin .

 

Bonne journée

Share this post


Link to post
Share on other sites

Bonjour merci de votre réponse !

J'ai essayé mais cela ne fonctionne pas.

Ce que j'ai dans Db.php :

  public function escape($string, $html_ok = false, $bq_sql = false)
    {
        if (_PS_MAGIC_QUOTES_GPC_) {
            $string = stripslashes($string);
        }

        if (!is_numeric($string)) {
            $string = $this->_escape($string);

            if (!$html_ok) {
                $string = strip_tags(Tools::nl2br($string));
            }

            if ($bq_sql === true) {
                $string = str_replace('`', '\`', $string);
            }
        }

        return $string;
    }

Ce que j'ai modifié :

public function escape($string, $html_ok = false, $bq_sql = false)
    {
        if (_PS_MAGIC_QUOTES_GPC_) {
            $string = stripslashes($string);
        }

        if (!is_numeric($string)) {
            $string = $this->_escape($string);

            if (!$html_ok) {
                $string = strip_tags(Tools::nl2br($string), '<a><p><strong><br><i>');
            }

            if ($bq_sql === true) {
                $string = str_replace('`', '\`', $string);
            }
        }

        return $string;
    }

Pouvez vous m’éclairer ?

Share this post


Link to post
Share on other sites

J'ai avancé cette fois la fiche produit veut bien s'enregistrer je n'ai plus de message d'erreur mais le texte tapé disparait et ne s'enregistre pas.

Si vous avez une piste.

 

Merci

Share this post


Link to post
Share on other sites

J'ai finalement fait appel à un développeur qui m'a installé un éditeur de texte pour les caractéristiques.

Solution moyenne puisque depuis les pages produits rament pas mal pour s'ouvrir.

Merci en tout cas de votre aide !

 

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