Jump to content

[RESOLU] Ajouter un champs dans le formulaire de création de page CMS


Recommended Posts

Bonjour,

Je souhaite rajouter un champs dans le formulaire de création de page CMS de l'administration pour lier une page CMS à un produit.
J'ai trouvé dans le fichier /admin/AdminCMS.php comment rajouter le champs, le problème c'est pour l'enregistrement, je ne trouve pas dans quel fichier sont envoyé les informations à la base de données.

Quelqu'un aurait-il une idée ?

Merci.

Link to comment
Share on other sites

Bonsoir,

Il s'agit d'une classe dérivée de AdminTab, les données sont gérées par sa classe parente.
A priori tu dois surtout modifier la classe CMS : /classes/CMS.php
Il faut y ajouter ton champ dans les requetes des méthodes update() ,et listCms() (seulement si tu as besoin d'afficher le champ sur la liste en plus de la page d'édition, dans ce cas il faudra aussi modifier la ligne "fieldsDisplay" du la classe AdminCMS)

Je présume bien sûr que le champ est déja créé dans la BDD.

C'est court comme réponse mais tu devrais "retrouver tes petits" , il n'y a rien de plus à faire en principe.

Link to comment
Share on other sites

Merci de ta réponse rapide.

J'ai bien trouvé mon bonheur dans la classe CMS.php et dans la méthode update().

Pour ceux que ça intéresse, voici un lien qui m'a aider à modifier ma classe pour ajouter un champs :

http://www.devoox.com/prestashop-ajouter-un-champ-personnalise-sur-la-fiche-produit.html

Et voici ma méthode pour rajouter un champs, exemple avec un identifiant produit :

Ajouter la variable (pour moi $id_product) :

public $id_product;



Déclaration :

protected $fieldsSizeLang = array('meta_description' => 255, 'meta_keywords' => 255, 'meta_title' => 128, 'link_rewrite' => 128, 'content' => 3999999999999, 'id_product' => 11);
protected $fieldsValidateLang = array('meta_description' => 'isGenericName', 'meta_keywords' => 'isGenericName', 'meta_title' => 'isGenericName', 'link_rewrite' => 'isLinkRewrite', 'content' => 'isString', 'id_product' => 'isInt');



Modifier la méthode getTranslationsFieldsChild() :

foreach ($languages as $language)
       {
           $fields[$language['id_lang']]['id_lang'] = intval($language['id_lang']);
           $fields[$language['id_lang']][$this->identifier] = intval($this->id);
           $fields[$language['id_lang']]['content'] = (isset($this->content[$language['id_lang']])) ? pSQL($this->content[$language['id_lang']], true) : '';
           //-------------------RAJOUTER LE CHAMPS ICI ------------------------------------------------//
           $fields[$language['id_lang']]['id_product'] = $this->id_product; 

           foreach ($fieldsArray as $field)
           {
               if (!Validate::isTableOrIdentifier($field))
                   die(Tools::displayError());
               if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
               elseif (in_array($field, $this->fieldsRequiredLang))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
               else
                   $fields[$language['id_lang']][$field] = '';
           }
       }



Voilà, problème RESOLU !

Link to comment
Share on other sites

  • 9 months later...

Bonjour,

 

Je souhaiterais également faire en sorte que certaines de mes pages CMS soit liée à mes produits.

 

Malheureusement ce lien ne fonctionne plus...

Pour ceux que ça intéresse, voici un lien qui m'a aider à modifier ma classe pour ajouter un champs :

http://www.devoox.co...he-produit.html

 

J'ai repris le code de "Samantha66" mais aucun champs en plus n'apparaît lorsque j'ajoute une nouvelle page CMS.

 

Quelqu'un pourrais m'aider ?

 

Merci d'avance

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...