Aller au contenu

pommeric

Membre
  • Compteur de contenus

    9
  • Inscrit(e) le

  • Dernière visite

Messages postés par pommeric

  1. Cela vient du fait que celui qui a fait le code ne teste pas la validité des infos entrées, c'est sur un module de joomla l'erreur??

    Pour ton erreur avec array_key, c'est pareil, cette fonction attend un tableau, si la variable envoyé n'en est pas un, ça part en sucette. Et toutes tes erreurs viennent du fait que le cas ou la variable est vide, le tableau n'existe pas, tout au long du code, cela n'a pas été testé par le dev.

    En corrigeant cette erreur, on risque d'aller d'erreurs en erreurs

    ta fonction corrigée

    function getColor() {
    if (is_array($this->_active_path)) {
    $keys = array_keys($this->_active_path);
    $parent_id = $this->_active_path[$keys[1]];
    $parent = $this->_menu_array[$parent_id];

    if (isset($this->_menucolors[$parent->index])) {
    return $this->_menucolors[$parent->index];
    } else {
    return $this->_defaultcolor;
    }
    }

    Alors j'ai essayé ton truc, ca me renvoi la code suivant:

    Parse error: syntax error, unexpected ';', expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ../templates/rt_terrantribune/rt_rokmenu.php on line 354

    Voici les codes:( en gras la fameuse ligne 354)

    function getColor() {

    if (is_array($this->_active_path)) {

    $keys = array_keys($this->_active_path);

    $parent_id = $this->_active_path[$keys[1]];

    $parent = $this->_menu_array[$parent_id];

    if (isset($this->_menucolors[$parent->index])) {

    return $this->_menucolors[$parent->index];

    } else {

    return $this->_defaultcolor;

    }

    }

    function ismenu() {

    if (strlen($this->_output) > 5) return true;

    else return false;

    }

    }

    ?>

    La carrement j'ai plus rien qui apparait a l'ecran à part cette ligne d'erreur.

    C'est le template de joomla que j'utilise qui deconne semble t'il.

    Donc je reviens un pas en arriere et j'attend vos eventuels conseils, soit retenter un nouveau code pour la fonction qui deconne soit corriger la correction?

    Merci D'avance!

  2. Tu ajoutes devant ton foreach : if(is_array($this->_active_path))

    et

    tu ajoutes devant ton if (in_array($menuitem->id, $this->_active_path)) $class .= "active "; un if(is_array($this->_active_path))

    Genial ta proposition Petit Ourson, ca m'a reglé 99% des lignes d'erreurs, mais ca m'a permis de voir un 3eme type de ligne d'erreur apparaitre que je n'avais pas remarqué dans le flot , donc voici le nouveau defi:

    il me reste plus qu'une seule ligne d'erreur qui apparait:

    Warning: array_keys() [function.array-keys]: The first argument should be an array in ../templates/rt_terrantribune/rt_rokmenu.php on line 335

    Donc voici le passage avec la fameuse ligne de code du fichier en gras:

    function getColor() {

    $keys = array_keys($this->_active_path);

    $parent_id = $this->_active_path[$keys[1]];

    $parent = $this->_menu_array[$parent_id];

    if (isset($this->_menucolors[$parent->index])) {

    return $this->_menucolors[$parent->index];

    } else {

    return $this->_defaultcolor;

    }

    Que faut il rajjouter pour faire disparaitre cette ligne d'erreur?

    Merci d'avance à tous!

    }

  3. Voici le code php complet pour les 2 fonctions qui me renvoi des erreurs:

    	function _getStartingChild() {

    $child = $this->_menu_array;
    foreach ($this->_active_path as $pathid) {
    if ($pathid > 0 ) {

    if ($child[$pathid]->level < $this->_start && $child[$pathid]->children) {
    $this->_menu_name = $child[$pathid]->name;
    $child = $child[$pathid]->children;
    } else {
    break;
    }
    }
    }
    return ($child);
    }

    function _renderList( &$children, $level ) {

    $output = "";
    $has_output = false;

    if (is_array($children) && sizeof($children)>0) {

    $ulstyle = "";
    if($this->_start==$level) {
    $ulstyle .= ' class="menu' . $this->_menu_sfx . '" ';
    }
    if($level==0) {
    $ulstyle .= ' id="horiznav"';
    }

    $output .= "\n<ul" . $ulstyle . ">\n";
    foreach ($children as $key => $value) {

    $menuitem =& $children[$key];


    $class = "";
    if (in_array($menuitem->id, $this->_active_path)) $class .= "active ";
    if ($menuitem->children) $class .= "parent ";

    PS: ce fichier est lié au template terrantribune qui sert a la presentation

  4. Quand il te dit que ce n'est pas un argument valide pour le foreach, c'est que probablement $this->_active_path est vide, et donc il ne peut pas boucler dessus.

    Et pour le $this->_active_path c'est que le contenu de cette variable n'est pas valide pour la fonction in_array

    Merci DADOU pour cette explication.

    Mon probleme est de faire disparaitre ces lignes d'erreurs, que dois je modifier pour y arriver?

    D'ou peuvent venir ces erreurs? Je suis pas aussi avancé en codage php que l'ensemble des membres de ce site, merci d'avance

  5. Bonjour à tous, j'ai un petit soucis sur mon site.

    Voici quelques données:

    Hebergement OVH

    Site joomla 1.0.15

    template terrantribune

    code erreur s'affichant ( il y a 2 types d'erreurs)

    Warning: Invalid argument supplied for foreach() in .../templates/rt_terrantribune/rt_rokmenu.php on line 200

    Voici le code de la ligne 200 de ce fichier: ( la ligne est en gras)

    function _getStartingChild() {

    $child = $this->_menu_array;

    foreach ($this->_active_path as $pathid) {

    if ($pathid > 0 ) {

    if ($child[$pathid]->level < $this->_start && $child[$pathid]->children) {

    $this->_menu_name = $child[$pathid]->name;

    $child = $child[$pathid]->children;

    et la 2eme erreur qui apparait peu etre 100 fois en debut de page:

    Warning: in_array() [function.in-array]: Wrong datatype for second argument in .../templates/rt_terrantribune/rt_rokmenu.php on line 236

    Voici le code de la ligne 236 de ce fichier:

    if (in_array($menuitem->id, $this->_active_path)) $class .= "active ";

    Merci d'avance pour vos eclairage et aides precieuses, j'aimerai masquer ces warning car en dehors de ca, tout marche impeccable si on elimine cet affichage de ligne intempestif en debut d page

  6. "(?<" (dans "(?<img Src>")est le début d'une look-behind assertion (normalement suivie de = ou ! suivant qu'elle est positive ou négative). Il faudrait que tu escapes le "?" pour être traquille: il y a de nombreuses sub-patterns qui commencent par "(?".

    Jacques.

    Jacques, je viens de faire ta manip qui a l'avantage de faire disparaitre les lignes d'erreurs mais qui ne permettent pas d'obtenir un fonctionnement optimal du module... Cela provoque l'absence d'image minature censée etre provoquée par cette partie du code....

    (?<nom>pattern) est l'une des syntaxes alternatives pour nommer un sous-motif depuis PCRE 7.0 et (?P<nom>pattern) est la syntaxe pure PCRE qui fonctionnera aussi avec PHP4, ce qui semble être ton cas.

    Mais si cette chose est la pointe de l'iceburg, peut-être qu'utiliser les dernières versions stables de PHP5 et Apache2 serait préférable car jusqu'à PCRE 7.6 l'espace n'est pas autorisé comme caractère dans le nom d'un sous-motif ! La dernière version stable de PCRE est la 7.8 que je n'ai pas pour tester.

    Je n'utiliserai jamais joomla :blink:

    Merci TIsha pour ton explication, mais malheureusement, je suis sur un hebergement gratuit, donc peu de chance de pouvoir faire evoluer par moi meme vers les bonnes versions stables. Il me rest donc l'option proposée en 1er: retoucher la ligne de code. Mais je ne suis pas du tout aussi bon que toi , pourrais tu m'indiquer ou faire les bonnes modifications sur cette ligne de code pour la rendre compatible.

    Merci D'avance!

  7. Bonjour à tous, je vais tacher d'etre bref et precis.

    Instalation joomla 1.0.15 stable, et template TERRAN TRIBUNE.

    J'obtient cette ligne d'erreur:

    Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 16 in /modules/rokmininews/helper.php on line 101

    et voici la ligne de code incriminée:

    preg_match("'src=(?:\"|\')?(?<img Src>[^>]*[^/].(?:jpg|JPG|bmp|gif|png))(?:\"|\')?'", $text, $matches );

    Merci d'avance pour votre aide precieuse.

×
×
  • Créer...