indesign47 Posted March 23, 2013 Share Posted March 23, 2013 (edited) Bonjour, J'essaye de réaliser un module partant du Controller Admin AdminImportController.php Ceci afin d'ajouter de nouvelles options d'import csv. j'ai copié le contenu du fichier AdminImportController.php ainsi que les 2 fichiers form.tpl et view.tpl Lors de l'affichage dans le module j'obtiens ces erreurs. Je ne suis pas sûr de l'emplacement de ces fichiers dans l'arborescence du module. Warning: Illegal string offset 'title' in /Applications/MAMP/htdocs/pres/cache/smarty/compile/0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php on line 125 Notice: Uninitialized string offset: 0 in /Applications/MAMP/htdocs/pres/cache/smarty/compile/0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php on line 125 Est-ce que quelqu'un peut-il m'aider ? Merci par avance Indesign Edited March 23, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted March 24, 2013 Author Share Posted March 24, 2013 (edited) Bonsoir, J'ai créé une nouvelle classe AdminImportcsvController.php pour mon module en intégrant la classe AdminImportController.php require_once(_PS_ROOT_DIR_.'/modules/importcsv/controllers/admin/AdminImportController.php'); Les deux erreurs du post précédent ont disparu, mais rien ne s'affiche. Je ne sais pas comment lier les fichiers tpl (form.tpl et view.tpl). public function displayForm() { return $this->display(__FILE__, 'helpers/form/form.tpl'); } Merci par avance Indesign Edited March 24, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted March 26, 2013 Author Share Posted March 26, 2013 (edited) Bonjour, J'ai repris la méthode du premier post. • Lors de l'importation native de Prestashop AdminImportController 9 fichiers sont générés dans le cache smarty -> cache -> compile Le fichier 143c195b1abbf89938ab0a2a90a3522a8fb4d2d3.file.button.tpl.php (1 Ko) Le fichier 07af27aedb536ff0bc378d974b9dd89a665c2c40.file.form.tpl.php (17 Ko) • Lors de l'importation de mon module AdminImportcsvController 8 fichiers sont générés dans le cache Il manque le fichier 143c195b1abbf89938ab0a2a90a3522a8fb4d2d3.file.button.tpl.php Le fichier 0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php (56 Ko) le contenu n'est pas bon ! Erreur : Warning: Illegal string offset 'title' in /Applications/MAMP/htdocs/pres/cache/smarty/compile/0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php on line 125 Notice: Uninitialized string offset: 0 in /Applications/MAMP/htdocs/pres/cache/smarty/compile/0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php on line 125 • En copiant le fichier 143c195b1abbf89938ab0a2a90a3522a8fb4d2d3.file.button.tpl.php manquant - et en copiant le contenu du fichier 07af27aedb536ff0bc378d974b9dd89a665c2c40.file.form.tpl.php de l'import natif dans le fichier 0a1ecc9dd4a05c9d606a20e0bd45fd394dc8c4d6.file.form.tpl.php - et en cochant Ne jamais recompiler les fichiers de templates ->afin de ne pas écraser les fichiers modifiés La form apparaît correctement. et plus d'erreur. Le soucis vient sûrement du displayForm ou du RenderForm de la form.tpl. return parent::renderForm(); Mais où ? Une aide précieuse d'un DEV serait appréciée. Merci par avance. edit PS : Les deux fichiers form.tpl en pièce jointe. Indesign Edited March 26, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted March 26, 2013 Author Share Posted March 26, 2013 UP Link to comment Share on other sites More sharing options...
indesign47 Posted April 8, 2013 Author Share Posted April 8, 2013 (edited) Bonsoir, Je suis lent... mais tenace. J'ai réglé les précédents problèmes : la Form et la View s'affiche. Deux bémols : Le fichier file.button.tpl.php (1 Ko) n'est pas généré dans le dossier cache (cache/smarty/compile)L'icone d'aide ne s'affiche pas dans les deux fenêtres. J'ai rajouté dans mon module l'arborescence template/helpers/help_access et le fichier button.tpl . Sans succès. Les sept entités contenu dans l'AdminImportController.php du Core affichent correctement les champs disponibles (availableFields). Lors de la sélection du type d'entités (une des miennes : ex alias) les champs disponibles dans la Form à droite ne sont pas mise à jour. Les champs disponibles affichés sont ceux de la dernière sélection d'entités d'origine de Prestashop.Lien avec le fichier AdminImportController.php pour l'affichage des champs disponibles et non avec le fichier AdminImportcsvController.php de mon module ? Edit ajout de l'extrait Form.tpl <script type="text/javascript"> $("select#entity").change( function() { $("#entitie").html($("#entity > option:selected").text().toLowerCase()); $.ajax({ url: 'ajax.php', data: { getAvailableFields:1, entity: $("#entity").val() }, dataType: 'json', success: function(j) { var fields = ""; $("#availableFields").empty(); for (var i = 0; i < j.length; i++) fields += j[i].field; $("#availableFields").html(fields); activeClueTip(); }, error: function(j) { } }); }); </script> Indesign Merci par avance, Edited April 8, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted April 11, 2013 Author Share Posted April 11, 2013 (edited) Bonsoir, Dans AdminImportController.php j'ai trouvé ces deux functions qui retourne les available_fields public function renderForm() available_fields' => $this->getAvailableFields(), * Return fields to be display AS piece of advise * * @param $in_array boolean * @return string or return array */ public function getAvailableFields($in_array = false) { $i = 0; $fields = array(); $keys = array_keys($this->available_fields); array_shift($keys); foreach ($this->available_fields as $k => $field) { if ($k === 'no') continue; if ($k === 'price_tin') $fields[$i - 1] = '<div>'.$this->available_fields[$keys[$i - 1]]['label'].' '.$this->l('or').' '.$field['label'].'<span style="margin-left:16px"></span></div>'; else { if (isset($field['help'])) $html = ' <a href="#" class="info_import" title="'.$this->l('Info').'|'.$field['help'].'"><img src="'._PS_ADMIN_IMG_.'information.png"></a>'; else $html = '<span style="margin-left:16px"></span>'; $fields[] = '<div>'.$field['label'].$html.'</div>'; } ++$i; } if ($in_array) return $fields; else return implode("\n\r", $fields); } Edited April 11, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted April 11, 2013 Share Posted April 11, 2013 Bon, bon, bon... C'est bien la première fois que je vois un sujet aussi bien documenté sur son déroulement bien que je ne perçois pas encore toute sa contenance. Ça change, Quel est, grosso modo, le but voulu et l'étape actuellement atteinte, en résumé ? Link to comment Share on other sites More sharing options...
indesign47 Posted April 11, 2013 Author Share Posted April 11, 2013 (edited) Merci J. Dance de te pencher sur mon problème, je me sens moins seul. Le but du module Ajouter des nouvelles entitées d'import à AdminImportController notamment (ProductDowload, ProductAttachement, ProductComment, Alias etc..) J'ai modifié AdminImportControllerCore avec succès, mais je souhaiterais pouvoir les intégrer dans un module pour la distribution. L'étape atteinte L'installation et la désinstallation fonctionne. La Form et la View fonctionne. - Problème avec l'icone d'aide non affichée - Problème avec l'affichage des available_fields non réactualisé avec les nouvelles entitées. Merci Edited April 11, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted April 11, 2013 Author Share Posted April 11, 2013 (edited) @J. Dance, Le Select d'entity ne reconnait que les entitées de base de l'AdminImportController mais pas celle de mon module ? En faisant un override de l'AdminImportController j'ai réussi à avoir l'affichage dans les champs disponibles. Mais normalement je devrais pouvoir les avoir sans passer par un override. Par contre, je n'ai pas réussi pour l'instant (problème de Path je pense) à faire un override dans le module. (Plus propre non ?) Edited April 11, 2013 by indesign (see edit history) 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