Samantha66 Posted February 19, 2011 Share Posted February 19, 2011 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 More sharing options...
Broceliande Posted February 19, 2011 Share Posted February 19, 2011 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.phpIl 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 More sharing options...
Samantha66 Posted February 21, 2011 Author Share Posted February 21, 2011 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.htmlEt 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 More sharing options...
Melusine Posted November 29, 2011 Share Posted November 29, 2011 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now