Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1142 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Erreur sur une fonction foreach

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Erreur sur une fonction foreach

n°1875343
Mariton
Rebelle délinquant
Posté le 20-04-2009 à 14:55:59  profilanswer
 

Bonjour à tous,

 

Je suis actuellement en train d'installer une solution de Gestion de Relation Clients (SugarCRM, open-source, Community Edition - version gratuite). C'est un outil simple, personnalisable et qui ne demande pas de grosses compétences techniques pour des besoins basiques.
J'ai besoin de faire une modification qui sort des possibilités de personnalisation offertes par ce portail et pour laquelle j'ai trouvé une solution sur le site officiel. Malheureusement, cette solution me donne une erreur et personne n'a pu m'aider :(

 

L'erreur concerne une fonction "foreach" et je me dis que si c'est un simple problème de codage, peut-être qu'un développeur comprendra vite le problème et pourra m'aider à le résoudre (et ce, sans forcément connaître en détail le fonctionnement du portail sur lequel je travaille).

 

Voici le code en question:

Code :
  1. <?php
  2. require_once('include/MVC/View/views/view.edit.php');
  3. class AccountsViewEdit extends ViewEdit {
  4.      function display() {
  5.         if(empty($this->bean->id)) {
  6.             global $app_strings;
  7.             sugar_die($app_strings['ERROR_NO_RECORD']);
  8.         }
  9.         require_once('custom/modules/' . $this->bean->module_dir . '/metadata/toggle_panel_fieldsdefs.php');
  10.        
  11.         global $current_user;
  12.         foreach($toggle_panel_fieldsdefs as $role => $field_defs) {
  13.             foreach($field_defs as $field => $visible) {
  14.                 foreach($value_defs as $panel => $panel_defs) {
  15.                     $panel = strtoupper($panel);
  16.                     if($visible == 0 && isset($this->dv->defs['panels'][$panel]) && $check_role->check_role_membership($role)) {
  17.                         unset($this->dv->defs['panels'][$panel]);
  18.                     }
  19.                 }
  20.             }
  21.         }
  22.         $this->dv->process();
  23.         echo $this->dv->display();
  24.     }
  25. }
  26. ?>
 

L'erreur qui apparaît sur le site avec ce code:

Code :
  1. Notice: Undefined variable: value_defs in [...]\custom\modules\Accounts\views\view.edit.php on line 18
  2. Warning: Invalid argument supplied for foreach() in [...]\custom\modules\Accounts\views\view.edit.php on line 18
 

Petit résumé rapide de mon portail et des personnalisations: dans ce portail (Sugar), j'ai une page qui permet de créer/éditer les infos d'un contact ou d'une organisation. J'ai personnalisé cette page en y incluant plusieurs cadres (appelés 'panel' dans Sugar) dans lequels on peut modifier/ajouter des infos (1 cadre contient plusieurs champs regroupés par "thème" ).
Je voudrais cacher certains cadres en fonction des permissions des utilisateurs du système (définis dans les paramètres et dans le fichier toggle_panel_fieldsdefs.php). J'ai donc créé/modifié 3 fichiers en tout qui doivent normalement être pris en compte par le système (les fichiers inclus dans le dossier 'custom' remplacent les paramètres par défaut du système) et malheureusement, là, ca coince :(

 

Est-ce que quelqu'un voit un problème dans le code que j'ai posté ou faut-il chercher ailleurs ?

 

Pour info, cette modif est décrite en détail ici : https://www.sugarcrm.com/forums/showthread.php?t=39599

 

Si c'est un problème sur l'ensemble des modifs et fichiers environnants, j'ai peur ne pouvoir compter que sur leur support (qui est très léger pour la version gratuite donc c'est pas gagné :( ). Si ce n'est qu'un problème de code, j'espérais qu'un codeur pourrait gentillement m'aider à le corriger :)

 

Merci d'avance à qui pourra m'éclaircir d'une façon ou d'une autre  :jap:


Message édité par Mariton le 20-04-2009 à 14:58:00
mood
Publicité
Posté le 20-04-2009 à 14:55:59  profilanswer
 

n°1875361
SICKofitAL​L
misanthrope
Posté le 20-04-2009 à 15:11:54  profilanswer
 

Ben il est défini où $value_defs ? A priori nul part, et donc forcément foreach il aime pas ca [:spamafote]


---------------
We deserve everything that's coming...
n°1875672
Mariton
Rebelle délinquant
Posté le 21-04-2009 à 07:56:35  profilanswer
 

Anaÿfaÿe [:klemton]

 

Et j'imagine que le bout de code que j'ai donné (+ les quelques explications du contexte ou du résultat attendu) ne permettraient pas de deviner ce qu'il manque (en essayant de retrouver la logique par exemple) ? [:gratgrat]

 

Merci :jap:


Message édité par Mariton le 21-04-2009 à 07:57:07
n°1875695
SICKofitAL​L
misanthrope
Posté le 21-04-2009 à 09:11:50  profilanswer
 

Vu que tu sembles utiliser des variables globales (caylemal :o), potentielement $value_defs en est aussi une, il "suffirait" alors de la déclarée comme telle. A tester (ou à modifier) ;)

Message cité 1 fois
Message édité par SICKofitALL le 21-04-2009 à 09:12:09

---------------
We deserve everything that's coming...
n°1875904
Mariton
Rebelle délinquant
Posté le 21-04-2009 à 16:12:29  profilanswer
 

SICKofitALL a écrit :

Vu que tu sembles utiliser des variables globales (caylemal :o), potentielement $value_defs en est aussi une, il "suffirait" alors de la déclarée comme telle. A tester (ou à modifier) ;)


Merci pour ton aide encore une fois :jap:

 

Alors d'après ce que disait une personne sur le forum officiel, la variable devrait être

Citation :

$this->dv->defs

 

Alors pour commencer, est-ce que ca vous paraît une solution logique ou est-ce que ça n'a pas de sens et que ca risque de me donner une erreur ?

 

Si ca paraît faisable, je sais malheureusement pas du tout comment modifier le code avec cette info (ne sachant pas coder) et vu que le mec qui a posté ça l'a écrit en vrac, je ne sais qu'en faire [:airforceone]
Est-ce que quelqu'un peut me dire comment je le rajoute dans mon bout de code?

 

Merci d'avance  :jap:


Message édité par Mariton le 21-04-2009 à 16:14:09
n°1875934
SICKofitAL​L
misanthrope
Posté le 21-04-2009 à 17:07:03  profilanswer
 

Tu n'as pas accès en modification sur le code ?
Si tu as pu le lire, normalement tu dois pouvoir le modifier :??:


---------------
We deserve everything that's coming...
n°1876087
Mariton
Rebelle délinquant
Posté le 22-04-2009 à 03:53:43  profilanswer
 

Je me suis mal exprimé :D
 
J'ai bien accès au code sauf que je ne suis pas codeur (noob inside) donc j'ai beau avoir la solution et comprendre un peu à quoi ça correspond, je suis incapable de faire la modif par moi-même, ne sachant pas quoi ajouter/modifier dans le code pour arriver au résultat :/
 
Ce serait donc très sympa si quelqu'un pouvoit juste m'écrire la partie à ajouter pour définir cette variable et m'indiquer où je dois l'insérer :)
 
Merci d'avance  :jap:


Message édité par Mariton le 22-04-2009 à 03:55:32
n°1876606
Mariton
Rebelle délinquant
Posté le 23-04-2009 à 08:35:45  profilanswer
 

Bon, problème réglé, y'a finalement un gars du support qui a eu la gentillesse de revoir ce bout de code qui n'allait pas :)
 
Merci encore ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Erreur sur une fonction foreach

 

Sujets relatifs
Page d'erreurIdentification PHP
Problème avec les variables globales, bug PHP !?Erreur de débutant et utilisation lib Eet
[C#] upload sur serveur + erreur 550Fonction récursive de parcours d'un arbre xml qui boucle indéfiniment
Comportement à observer en cas d'erreur de mysqlCombiner deux fichiers en fonction de colonnes communes
Executer une fonction quand on clique dans le videErreur d'execution '9' VBA sur Excel 2007
Plus de sujets relatifs à : [PHP] Erreur sur une fonction foreach


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR