Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Joomla »

Error / Warning: Invalid argument supplied for foreach()

Estas en el tema de Error / Warning: Invalid argument supplied for foreach() en el foro de Joomla en Foros del Web. Hola a todos me sale con joomla el siguiente error ya que quiero quitar dicho menu, Warning: Invalid argument supplied for foreach() in www\templates\ja_antares\ja_menus\Transmenu.class. php ...
  #1 (permalink)  
Antiguo 09/06/2010, 05:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
Error / Warning: Invalid argument supplied for foreach()

Hola a todos me sale con joomla el siguiente error ya que quiero quitar dicho menu,

Warning: Invalid argument supplied for foreach() in www\templates\ja_antares\ja_menus\Transmenu.class. php on line 19

Este error me aparece donde estaba dicho menu.

El codigo de Transmenu.class.php es el siguiente

Código PHP:
<?php
defined
('_JEXEC') or die('Restricted access');
if (!
defined ('_JA_TRANS_MENU_CLASS')) {
    
define ('_JA_TRANS_MENU_CLASS'1);
    require_once (
dirname(__FILE__).DS."Base.class.php");

    class 
JA_Transmenu extends JA_Base{

        function 
beginMenu($startlevel=0$endlevel 10){

            
$direction "TransMenu.direction.".$this->getParam('menu_direction''right');
            
$position "TransMenu.reference.".$this->getParam('menu_position''topRight');
            
$top $this->getParam('p_t'0);
            
$left $this->getParam('p_l'0);
            
$subpad_x $this->getParam('subpad_x'0);
            
$subpad_y $this->getParam('subpad_y'0);
            echo 
'<ul id="ja-transmenu">';
            
$i 0;
            foreach (
$this->children[0] as $v) {
                echo 
"<li>";
                
$pos = ($i == ) ? 'first' : (($i == count($this->children[0])-1) ? 'last' :'');
                
parent::genMenuItem ($v0$pos);
                
$i++;
                echo 
"</li>";
            }
            echo 
'</ul>';
            echo 
'
                <script type="text/javascript" language="javascript">
                //<!--[CDATA[
                if (TransMenu.isSupported()) {
                    TransMenu.updateImgPath(\''
,$this->getParam('menupath').'/ja_transmenu','/\');
                    var ms = new TransMenuSet('
,$direction,', '$left,', ',$top,', ',$position,');
                    TransMenu.subpad_x = '
,$subpad_x,';
                    TransMenu.subpad_y = '
,$subpad_y,';

                '
;
        }

        function 
genClass ($mitem$level$pos) {
            
$active in_array($mitem->id$this->open);
            
$active = ($active)?'mainlevel-active':'mainlevel';
            if(
$this->hasSubItems($mitem->id)) $active 'havechild-'.$active;
            
$active .= '-trans';
            if(
$pos$active .= '-'.$pos;
            return 
"class=\"$active\"";
        }

        function 
endMenu($startlevel=0$endlevel 10){
            echo 
'
                    TransMenu.renderAll();
                }
                init1=function(){TransMenu.initialize();}
                if (window.attachEvent) {
                    window.attachEvent("onload", init1);
                }else{
                    TransMenu.initialize();
                }
                //]]-->
                </script>
            '
;
        }

        function 
hasSubMenu($level) {
            return 
false;
        }

        function 
genMenuItems($pid$level) {
            if (@
$this->children[$pid]) {
                
$i 0;
                foreach (
$this->children[$pid] as $row) {

                    
$this->genMenuItem$row$level$i);

                    
// show menu with menu expanded - submenus visible
                    
$this->genMenuItems$row->id$level+);
                    
$i++;
                }
            }
        }

        function 
genMenuItem($row$level 0$pos ''$ret 0) {
            
$txt '';

            
// replace & with amp; for xhtml compliance
            
$menu_params $this->createParameterObject($row->params);
            
$menu_secure $menu_params->def('secure'0);

            
//echo "$row->name $row->link $level<br>";
            
if ($level){
                
$pmenu "tmenu$row->parent";
                
//echo "$pmenu.addItem(\"$row->name\", \"$row->link\");\n";
                
$active 0;
                if ( 
in_array($row->id$this->open) ) $active 1;

                
$txt $row->name;
                if ( 
$this->getParam'menu_images' ) ) {
                    
$menu_params =& new $this->createParameterOjbect$row->params );
                    
$menu_image $menu_params->def'menu_image', -);
                    if ( ( 
$menu_image <> '-1' ) && $menu_image ) {
                        
$image '<img src="'$mosConfig_live_site .'/images/stories/'$menu_image .'" border="0" alt="'$row->name .'"/>';
                        if ( 
$this->getParam'menu_images_align' ) ) {
                            
$txt $txt .' '$image;
                        } else {
                            
$txt $image .' '$txt;
                        }
                    }
                }
                
$txt str_replace("\"""\\\""$txt);

                echo 
"$pmenu.addItem(\"$txt\", \"".str_replace('&amp;''&'$row->url)."\", $row->browserNav, $active);\n";
            }else{
                
$pmenu "ms";
            }
            
$cmenu "tmenu{$row->id}";
            
$idmenu "menu{$row->id}";
            if (
$this->hasSubItems($row->id)){
                if (
$level == 0){
                    echo 
"var $cmenu = ".$pmenu.".addMenu(document.getElementById(\"$idmenu\"));\n";
                }else{
                    echo 
"var $cmenu = ".$pmenu.".addMenu(".$pmenu.".items[".$pos."]);\n";
                }
            }else{
                if (
$level == 0){
                    echo 
'
                    document.getElementById("'
,$idmenu,'").onmouseover = function() {
                        '
,$pmenu,'.hideCurrent();
                    }
                    '
;
                }
            }
        }

        function 
genMenuHead () {
            
?>
            <link href="<?php echo $this->getParam('menupath'); ?>/ja_transmenu/ja.transmenuh.css" rel="stylesheet" type="text/css" />
            <script src="<?php echo $this->getParam('menupath'); ?>/ja_transmenu/ja.transmenu.js" language="javascript" type="text/javascript" ></script>
            <?php
        
}
    }
}
?>
Os agraceria mucho vuesta ayuda.Gracias
  #2 (permalink)  
Antiguo 09/06/2010, 08:49
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error / Warning: Invalid argument supplied for foreach()

El problema es que el argumento de foreach() no es un vector (array).
  #3 (permalink)  
Antiguo 10/06/2010, 05:54
 
Fecha de Ingreso: febrero-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Respuesta: Error / Warning: Invalid argument supplied for foreach()

Gracias AlvaroG, bueno la verdad es que soy un usuario inicial, he estado mirando que es un vector (array), pero no encuentro la informacion necesaria para saber como modificarlo.

Alguien me podria decer como solventarlo o algunos pasos para llegar a la solucion. Gracias
  #4 (permalink)  
Antiguo 10/06/2010, 08:40
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error / Warning: Invalid argument supplied for foreach()

Es muy difícil aconsejarte si no explicas de dónde sale el problema, con qué componente, y cuándo empezó a salir (qué modificaste o quitaste antes).
  #5 (permalink)  
Antiguo 10/06/2010, 15:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
Sonrisa Respuesta: Error / Warning: Invalid argument supplied for foreach()

Perdona AlvaroG llevas toda la razon, bueno es que quiero quitar el menu principal menumain, e intentado buscar el modulo pero no esta o no lo encuentro, he borrado directamente el menu desde el apartado de menu.

Y es aqui cuando sale este error. Tengo joomla 1.5.18.

Gracias por la ayuda
  #6 (permalink)  
Antiguo 10/06/2010, 22:53
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error / Warning: Invalid argument supplied for foreach()

siendo así, todo parece indicar que el sistema asume que ese vector no estará vacío. Creo también que ese vector contiene a los elementos del menú. Para arreglar el error de forma rápida aunque algo sucia, podrías agregar esta línea inmediatamente antes del foreach:
Código PHP:
Ver original
  1. if (!is_array($this->children[0])) $this->children[0] = array();

Haz la prueba y fijate si todo funciona como debe.

Saludos

Última edición por AlvaroG; 11/06/2010 a las 10:35
  #7 (permalink)  
Antiguo 11/06/2010, 03:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Error / Warning: Invalid argument supplied for foreach()

Buenas AlvaroG he insertado el codigo que meindicastes y me sale este error:

Parse error: syntax error, unexpected T_VARIABLE in \www\templates\ja_antares\ja_menus\Transmenu.class .php on line 19

y no se ve la pagina. Gracias

Última edición por junyo; 11/06/2010 a las 03:47
  #8 (permalink)  
Antiguo 11/06/2010, 10:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error / Warning: Invalid argument supplied for foreach()

Me faltó un ). Fijate ahora el código corregido
  #9 (permalink)  
Antiguo 11/06/2010, 12:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Error / Warning: Invalid argument supplied for foreach()

Gracias AlvaroG funciona a la perfeccion. Gracias
  #10 (permalink)  
Antiguo 01/09/2010, 10:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Error / Warning: Invalid argument supplied for foreach()

Alvaro una consulta, donde pongo ese ) que falta?? yo tengo el mismo problema!! Gracias!!!
  #11 (permalink)  
Antiguo 01/09/2010, 11:00
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error / Warning: Invalid argument supplied for foreach()

El código está arreglado en el mensaje de arriba, si no te funciona el problema debe ser otro.

Saludos.
  #12 (permalink)  
Antiguo 01/09/2010, 11:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Error / Warning: Invalid argument supplied for foreach()

Cita:
Iniciado por AlvaroG Ver Mensaje
El código está arreglado en el mensaje de arriba, si no te funciona el problema debe ser otro.

Saludos.
Yo estoy cargando un sitio de joomla y me tira el mismo error que antes:

// first pass - collect children

$cacheIndex = array();

$this->items = array();

$aid = $user->get('aid', 0);

foreach ($rows as $index => $v) {

en esta ultima linea esta el problema! El tema es que yo no toque nada para que eso pase, lo unico que hice fue cambiar una imagen del logo del template..
  #13 (permalink)  
Antiguo 25/07/2011, 05:16
 
Fecha de Ingreso: julio-2011
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Error / Warning: Invalid argument supplied for foreach()

a mi me pasa lo mismo, pero jsuto alreves, quiero poner el menu, y donde debería aparecer, me sale ese error, y no hay manera de poner el menu

Etiquetas: foreach, warning, argumentos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:14.