nbonniot Posted December 11, 2012 Share Posted December 11, 2012 (edited) Bonjour, Je suis pour la première fois sur un presta 1.5 et souhaite comprendre au mieux le fonctionnement des nouveautés apportées par le portage du MVC sur la partie admin. Je créé un module d'import/export qui n'a pas à intéragir avec la base pour le moment et souhaite pouvoir gérer la configuration de ce module via un onglet d'admin. Pour le moment je ne parviens qu'à une page vide (j'ai bien le header et footer Presta, pais impossible d'afficher quoi que ce soit...). Les différents tuto que j'ai trouvé imposent d'avoir une table en base mais ce n'est pas mon cas... Voici l'arbo de mon module volumecontrollersadminAdminVolume.php [*]config.xml [*]volume.php Mon code : ->volume.php (j'arrive bien à afficher ce que je veux "à l'ancienne" dans la partie configuration du module): <?php if (!defined('_PS_VERSION_')) exit; class Volume extends Module { public function __construct() { $this->name = 'volume'; $this->tab = 'export'; $this->version = 1.0; $this->author = '72300 studio'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Passerelle avec VOLUME'); $this->description = $this->l('Contient les outils nécessaires pour lire/générer les fichiers d\'échanges avec l\'ERP VOLUME.'); } public function install() { $tab = new Tab(); $tab->name = 'Passerelle VOLUME'; $tab->module = 'volume'; $tab->class_name = 'AdminVolume'; $tab->id_parent = 18; // Root tab $tab->add(); return parent::install(); } public function getContent() { $output = 'text'; return $output; } /** * Displays admin form * @return string */ public function displayForm() { $output = 'text'; return $output; } -> AdminVolume.php class AdminVolumeController extends ModuleAdminController { /** * * @var string type : le type de parser souhaité : IMPORT pour lire un fichier en provenance de VOLUME, EXPORT pour créer un fichier à destination de VOLUME */ var $type; /** * * @var Array $profil : contient le tableau associatif qui indique comment lire/construire chaque ligne du fichier */ var $profil; public function __construct() { // Manque? parent :: __construct(); } public function renderForm() { $this->fields_form = array( 'legend' => array( 'title' => $this->l('Zones'), 'image' => '../img/admin/world.gif' ) ); return parent::renderForm(); } } Je ne vois pas comment compléter ce que j'ai... Il y a des assignation de table et de classe dans le constructeur controller, là ou j'ai écris "// manque ?", sur les exemples que j'ai trouvés. Mais quoi mettre ou comment faire si l'on n'a pas de table liée et/ou de modèle? Merci pour vos éclairages Nicolas Edited December 11, 2012 by nbonniot (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted December 11, 2012 Share Posted December 11, 2012 Il faut également avoir un dossier comme suit: /views/templates/admin/volume/ Dedans y sera compris les tpl à afficher. Je vous inclus une archive. Mettez la dans le module correspondant. 1 Link to comment Share on other sites More sharing options...
nbonniot Posted December 11, 2012 Author Share Posted December 11, 2012 Bonjour et tout d'abord merci pour votre réponse rapide et cet exemple, J'ai fait comme vous m'avez indiqué et malheureusement j'obtiens toujours ma page blanche (avec header et footer presta), bien qu'ayant ajouté du texte dans le form.tpl... J'ai remarqué qu'il y a 2 répertoires views imbriqués? J'ai tenté avec un seul, mais ca n'a pas fonctionné non plus. Une idée de la raison ? Peu-être que mon tab est mal instancié? Il apparait bien mais me confirmez-vous qu'il est correctement rempli? Merci beaucoup du temps que vous passerez à me répondre, Nicolas Link to comment Share on other sites More sharing options...
J. Danse Posted December 11, 2012 Share Posted December 11, 2012 Au niveau du controller Admin, il manque également ceci: public function renderList() { return $this->renderForm(); } Link to comment Share on other sites More sharing options...
nbonniot Posted December 11, 2012 Author Share Posted December 11, 2012 Encore une foisn merci pour ce retour ! J'ai à présent une page avec le titre de mon module et bien ce que j'ai mis dans la propriété fields_form de mon controleur. Cependant, lorsque j'ajoute du code dans le tpl, encore une fois rien ne s'affiche. J'ai trouvé un autre module (blockcms) qui définit lui aussi un formulaire d'amin et en tentant de reproduire, ca ne fonctionne toujours pas : {extends file="helpers/form/form.tpl"} {block name="input"} <h3>test</h3> {$smarty.block.parent} {/block} {block name="script"} $(document).ready(function() { }); {/block} Merci encore et désolé si ces questions vous paraissent triviales... Je trouve la documentation très disparate sur le sujet et j'ai du mal à retrouver mes petits. Nicolas Link to comment Share on other sites More sharing options...
nbonniot Posted December 11, 2012 Author Share Posted December 11, 2012 Après quelques heures de recherches, j'en suis au même point... Je me permets de joindre une archive de mon module dans l'état actuel des choses : si vous pouvez y jeter un oeil et le compléter de manière à ce qu'il affiche le form.tpl dans l'onglet que j'aurais configuré à cet effet, ce serait super ! Merci beaucoup d'avance de votre aide sur ce souci... Je suis vraiment étonné car entre ce tuto et celui-là (de Prestashop eux-mêmes) il y a un monde et ça ne colle pas... Seul celui de prestashop aborde l'admin tab, mais d'une manière qui me semble dépassée et différente de ce que MVC voudrait. Bref, vos lumières sont une fois de plus les bienvenues ! Merci Nicolas volume.zip Link to comment Share on other sites More sharing options...
nbonniot Posted December 12, 2012 Author Share Posted December 12, 2012 Bonjour à tous, Un petit up pour mon sujet que je n'ai malheureusement pas encore résolu... . De manière plus précise, je cherche à savoir pourquoi le form.tpl que j'ai défini dans mon module pour l'onglet d'admin n'est pas pris en override du form.tpl de base... Tous les tutos que j'ai pu trouvé montrent comment afficher des données liées à la base et proposer un CRUD dessus. Mon objectif à moi est tout autre : je cherche à offrir à l'utilisateur la possibilité d'uploader des fichiers d'imports... Bien que j'édite le fichier form.tpl, rien n'y fait mon onglet reste toujours vide... Je remercie éternellement toutes les personnes qui prendront 5 minutes pour ouvrir l'archive ci-dessus (dans le post d'avant)... Merci ! Nicolas Link to comment Share on other sites More sharing options...
J. Danse Posted December 12, 2012 Share Posted December 12, 2012 J'ai une question un rien idiote, par contre: pourquoi vouloir faire un onglet d’administration et non utiliser l'onglet "Configurer", pour ce module ? Link to comment Share on other sites More sharing options...
nbonniot Posted December 12, 2012 Author Share Posted December 12, 2012 Non ce n'est pas idiot du tout La répon,se est simple : l'objectif de ce module est de réaliser des imports/exports quasi journaliers. Fonctionnellement, ce n'est pas de la configuration du module dont il s'agit mais vraiment de son utilisation et de son objectif fonctionnel... Par ailleurs, il y aura bien de la configuration, mais j'ai déjà réussi à afficher ce que je souhaite. J'essaie en outre de "tester" le MVC de l'admin autant que possible, d'où mon entêtement... . Une idée sur le dysfonctionnement ? Merci d'avance ! Nicolas 1 Link to comment Share on other sites More sharing options...
loicCSL Posted December 13, 2012 Share Posted December 13, 2012 Salut Nicolas, Je suis dans le même cas et comme toi pas moyen de trouver une réponse. J'essaye tant bien que mal d'afficher quelque chose dans l'administration de mon module sans passer par la base de donnée. J'ai vu quelque chose sur un fichier "content.tpl" qui serai l'affichage par defaut mais je ne sais pas ou le placer dans le module. il y a aussi la fonction initContent(), mais je n'ai pas réussis à définir le template que je veux afficher. Si jamais quelqu'un connait la réponse à notre problème ! Loïc Link to comment Share on other sites More sharing options...
nbonniot Posted December 14, 2012 Author Share Posted December 14, 2012 Merci Loïc pour ton retour : n'hésite pas à faire tourner la solution ici si tu la trouves. Pour le moment je vais tenter de forcer l'affichage d'un onglet directement dans le répertoire admin mais c'est loin d'être propre... Link to comment Share on other sites More sharing options...
DJWebCreator Posted December 18, 2012 Share Posted December 18, 2012 J'ai regardé un peu ton module, voici un exemple avec onglet sans modèle. Pour plus d'infos voir le modèle de module suivant : https://github.com/P...e-Prestashop-15 volume.zip 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