Jump to content

Spaceshipone

Members
  • Posts

    5
  • Joined

  • Last visited

Profile Information

  • First Name
    Tim
  • Last Name
    B

Spaceshipone's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Bonjour, Je me lance dans la découverte de prestashop et la création de module et j'ai repris un tutoriel pour créer un module qui affiche un message sur la page d'accueil. J'aimerai maintenant faire apparaître ce message sur la page mon-compte (my-account.tpl) et c'est là que je coince. Comment faire pour que le message s'affiche sur une autre page ? Voici mon code : /** * monmodule.php * * Auteur: moi * Website: * Date: 03/11/2016 * Version: 0.1 */ if (!defined('_PS_VERSION_')) exit; class monmodule extends Module { public function __construct() { $this->name = 'monmodule'; $this->tab = 'front_office_features'; $this->version = '0.1'; $this->author = 'Moi'; $this->need_instance = 0; parent::__construct(); $this->context->controller->addCSS(($this->_path).'monmodule.css', 'all'); $this->displayName = $this->l('Affichage message accueil'); $this->description = $this->l('Affiche un message d\'accueil.'); } // :: Install : on enregistre le Hook "home" si il n'existe pas (peu probable, mais on ne sait jamais…) public function install() { if (!parent::install() OR !$this->registerHook('home')) return false; return true; } // :: Uninstall, no comment public function uninstall() { if (!parent::uninstall()) return false; return true; } // :: Hook Home : c'est là où sera affiché notre Bloc de texte (en Homepage) function hookHome($params) { // On assigne la variable "CHAMP_TINYMCE", utilisée dans le fichier TPL monmodule.tpl $this->context->smarty->assign(array('CHAMP_TINYMCE' => Configuration::get('CHAMP_TINYMCE'))); // On indique que le fichier TPL suivant sera le fichier de Template à afficher (il contient notre Bloc de texte) return $this->display(__FILE__, 'monmodule.tpl', $this->getCacheId()); } // :: Ici on indique le contenu de la page "Configuration" du plugin, et ses messages (erreur & succès) public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; // Si on envoie le formulaire "submitFormChamps"… if (Tools::isSubmit('submitFormChamps')) { // On récupère l'id des languages sur la variable $lang foreach (Language::getLanguages(false) as $lang) // On assigne CHAMP_TINYMCE à la value de text_X (X = numéro de votre langue, ici "1") Configuration::updateValue('CHAMP_TINYMCE', Tools::getValue('text_'.(int)$lang['id_lang']), true); // IMPORTANT: true = autoriser les balises HTML dans la BDD ! // Si il y a erreur… if (isset($errors) AND sizeof($errors)) $output .= $this->displayError(implode('<br />', $errors)); // Sinon, success ! On affiche donc le message de confirmation d'enregistrement du texte dans la BDD else $output .= $this->displayConfirmation($this->l('Modifications enregistrées')); } // On affiche le formulaire avec le champ TinyMCE via $this->displayForm(); return $output.$this->displayForm(); } public function displayForm() { $default_lang = (int)Configuration::get('PS_LANG_DEFAULT'); $fields_form = array( 'tinymce' => true, 'legend' => array( 'title' => $this->l('Champ TinyMCE'), ), 'input' => array( 'CHAMP_TINYMCE' => array( 'type' => 'hidden', 'name' => 'CHAMP_TINYMCE' ), 'content' => array( 'type' => 'textarea', 'label' => $this->l('Texte du Champ'), 'lang' => true, 'name' => 'text', 'cols' => 40, 'rows' => 10, 'class' => 'rte', 'autoload_rte' => true, ), ), 'submit' => array( 'title' => $this->l('Save'), ) ); $helper = new HelperForm(); $helper->module = $this; $helper->name_controller = 'monmodule'; $helper->identifier = $this->identifier; $helper->token = Tools::getAdminTokenLite('AdminModules'); foreach (Language::getLanguages(false) as $lang) $helper->languages[] = array( 'id_lang' => $lang['id_lang'], 'iso_code' => $lang['iso_code'], 'name' => $lang['name'], 'is_default' => ($default_lang == $lang['id_lang'] ? 1 : 0) ); $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name; $helper->default_form_language = $default_lang; $helper->allow_employee_form_lang = $default_lang; $helper->toolbar_scroll = true; $helper->title = $this->displayName; $helper->submit_action = 'submitFormChamps'; $helper->fields_value = $this->getFormValues(); return $helper->generateForm(array(array('form' => $fields_form))); } public function getFormValues() { $fields_value = array(); // On charge le Texte sauvegardé dans la colonne "value" de la Table "ps_configuration" $CHAMP_TINYMCE = Configuration::get('CHAMP_TINYMCE'); foreach (Language::getLanguages(false) as $lang) // Si besoin d'utiliser la traduction $fields_value['text'][(int)$lang['id_lang']] = Tools::getValue('text_'.(int)$lang['id_lang'], ''); // On load le contenu du textarea ("text_X", text_1 pour FR) qui servira à charger le contenu du champ TINYMCE $fields_value['text'][(int)$lang['id_lang']] = $CHAMP_TINYMCE; return $fields_value; } }
  2. Bonjour, Je souhaite ajouté un champ nommé 'code' à la création et modification de client dans le BO. Le soucie est que ce champ 'code' est dans une autre table nommé customer_code et non ps_customer. Comment faire pour que ce champ apparaisse et soit rempli quand on ajoute un client dans le BO ou qu'on le modifie ? Ps : j'ai réussi à afficher le champ mais il est vide et ne se complète pas car je ne sais pas comment faire la liaison vers mon autre table customer_code
  3. Bonjour, je me permet de faire remonter le sujet c'est assez urgent. Personne n'a une idée si c'est faisable ? Personne ne l'a jamais fait ?
  4. Bonjour, Je souhaite ajouter un champ 'code' dans l'administration client prestashop 1.6 qui fasse référence au champ 'code' de ma table 'customer_code'. Je vois pleins de sujets pour l'ajout d'un champ personnalisé dans la table 'ps_customer' mais peut-on en ajouter un qui fasse référence à une autre table ? Si oui comment ? Je vous remercie par avance.
×
×
  • Create New...