IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Recréation d'un module


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Recréation d'un module
    Bonjour ,

    en fait j'ai un souci avec mon méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    function recurseCategoryForInclude($indexedCategories, $categories, $current, $id_category = 1, $id_category_default = NULL){
     	 							global $done;
    								static $irow;
    									$id_obj = intval(Tools::getValue($this->identifier));
    									if (!isset($done[$current['infos']['id_parent']])){
    										$done[$current['infos']['id_parent']] = 0;
    										}
    									$done[$current['infos']['id_parent']] += 1;
    									$todo = sizeof($categories[$current['infos']['id_parent']]);
    									$doneC = $done[$current['infos']['id_parent']];
    									$level = $current['infos']['level_depth'] + 1;
    									$img = $level == 1 ? 'lv1.gif' : 'lv'.$level.'_'.($todo == $doneC ? 'f' : 'b').'.gif';
    									$this->_html .= '<tr class="'.($irow++ % 2 ? 'alt_row' : '').'">
    									<td>
    									<input type="checkbox" name="categoryBox[]" class="categoryBox'.($id_category_default != NULL ? ' id_category_default' : '').'" id="categoryBox_'.$id_category.'" value="'.$id_category.'"'.(((in_array($id_category, $indexedCategories) OR (intval(Tools::getValue('id_category')) == $id_category AND !intval($id_obj))) OR Tools::getIsset('adddiscount')) ? ' checked="checked"' : '').' />
    									</td>
    									<td>
    										'.$id_category.'
    									</td>
    									<td>
    										<img src="../img/admin/'.$img.'" alt="" /> &nbsp;<label for="categoryBox_'.$id_category.'" class="t">'.stripslashes(Category::hideCategoryPosition($current['infos']['name'])).'</label>
    									</td>
    									</tr>';
    									var_dump($this->_html);
    									if (isset($categories[$id_category])){
    									foreach ($categories[$id_category] AS $key => $row){
    									if ($key != 'infos'){
    										$this->recurseCategoryForInclude($indexedCategories, $categories, $categories[$id_category][$key], $key);
    										}
    									}
    								}
    						}
    qui existe dans un fichier php
    quand j’appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $this->_html .= '<table cellspacing="0" cellpadding="0" class="table" style="width: 29.5em;">
    								<tr>
    									<th>'.$this->l('Choose').'</th>
    									<th>'.$this->l('ID').'</th>
    									<th>'.$this->l('Categories').'</th>
    								</tr>';
    								$done = array();
    								$index = array();
    								$indexedCategories = isset($_POST['categoryBox']) ? $_POST['categoryBox'] : ($obj->id ? Discount::getCategories($obj->id) : array());
    								$categories = Category::getCategories(intval($cookie->id_lang), false);
    								print_r($indexedCategories);
    								//print_r($categories);
    								foreach ($indexedCategories AS $k => $row){
    									$index[] = $row['id_category'];
    								}
    						        recurseCategoryForInclude($index, $categories, $categories[0][1], 1, $obj->id);
    ici sa marche pas
    voir ci-joint mon fichier php
    merci en avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    Tout d'abord, il faudrait que tu nous explique dans quel contexte ton script est appelé (module ou autre).

    Ensuite, il faudrait aussi que tu nous explique ce que tu cherches à réaliser.

    Pour les conseils, quel type d'erreurs rencontres tu ?

    Cordialement,

    Mathieu

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci pour votre réponse mathieu44800,le problème que lorsque j'appel cette méthode recurseCategoryForInclude ce bloquer toutes les modules qui crée dans un module ancienne je doit l'adapter pour une nouvelle version de prestashop si pour ca je le recrée pour ête ca marche avec la version 1.4.3

    merci en avance
    Dernière modification par Invité ; 08/09/2011 à 17h23.

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Je n'ai rien compris...

  5. #5
    Invité
    Invité(e)
    Par défaut
    je vous expliquer mathieu44800

    le problème est suivant:
    mon but est de recréé un module sous prestashop version 1.4.3 de codepromoauto qui déjà existe sur une version prestashop 1.37 et ca marche bien pour cette version 1.3.7

    mon problème est que lorsque je fait appel à cette methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    private function recurseCategoryForInclude($indexedCategories, $categories, $current, $id_category = 1, $id_category_default = NULL){
    		global $done;
    		static $irow;
    		$id_obj = intval(Tools::getValue($this->identifier));
    		if (!isset($done[$current['infos']['id_parent']])){
    			$done[$current['infos']['id_parent']] = 0;
    		}
    		$done[$current['infos']['id_parent']] += 1;
    		$todo = sizeof($categories[$current['infos']['id_parent']]);
    		$doneC = $done[$current['infos']['id_parent']];
    		$level = $current['infos']['level_depth'] + 1;
    		$img = $level == 1 ? 'lv1.gif' : 'lv'.$level.'_'.($todo == $doneC ? 'f' : 'b').'.gif';
     
    		$this->_html .= '<tr class="'.($irow++ % 2 ? 'alt_row' : '').'">
    			<td>
    				<input type="checkbox" name="categoryBox[]" class="categoryBox'.($id_category_default != NULL ? ' id_category_default' : '').'" id="categoryBox_'.$id_category.'" value="'.$id_category.'"'.(((in_array($id_category, $indexedCategories) OR (intval(Tools::getValue('id_category')) == $id_category AND !intval($id_obj))) OR Tools::getIsset('adddiscount')) ? ' checked="checked"' : '').' />
    			</td>
    			<td>
    				'.$id_category.'
    			</td>
    			<td>
    				<img src="../img/admin/'.$img.'" alt="" /> &nbsp;<label for="categoryBox_'.$id_category.'" class="t">'.stripslashes(Category::hideCategoryPosition($current['infos']['name'])).'</label>
    			</td>
    		</tr>';
     
    		if (isset($categories[$id_category])){
    			foreach ($categories[$id_category] AS $key => $row){
    				if ($key != 'infos'){
    					$this->recurseCategoryForInclude($indexedCategories, $categories, $categories[$id_category][$key], $key);
    				}
    			}
    		}
    	}
    sa bloquer les modules de prestashop
    et si je mis les commentaires à l'appel de cette fonction s’affiche les modules avec le formulaire
    mon formulaire contient des listes des catégories qui sont pas affiches car la méthode qui correspond sur l'affichage je mis en commentaire

    Merci en avance

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    Entre ces deux versions de Prestashop, la base de données a du évoluer.

    Cette méthode est récursive, elle s'appelle elle-même, ce que je ferais c'est que je mettrait tout d'abord Prestashop et smarty en mode "debug" (voir sur Google comment faire), puis, j'essayerais de commenter certaines parties du code pour voir ou se situe le problème (le mieux aurait été de pouvoir tracer les appels, mais je pense qu'il serait trop long de te faire installer un debugger, comme xdebug).

    Tu trouveras donc la solution a ton problème en décomposant ta méthode, aide tout aussi de bons vieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Var_dump($ta_variable);
    Afin de mieux cerner les valeurs de tes variables...

    J'espère t'avoir aidé,

    Mathieu

Discussions similaires

  1. Module FTP.pm ?
    Par MSP dans le forum Modules
    Réponses: 4
    Dernier message: 04/08/2003, 16h49
  2. module Find
    Par martijan dans le forum Modules
    Réponses: 8
    Dernier message: 09/07/2003, 12h07
  3. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 18h44
  4. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo