Buenas tardes, monte un modulo en joomla y me aparece en la pantalla el modulo funcionando con el siguiente error, Warning: Invalid argument supplied for foreach() in /home/********/public_html/libraries/joomla/html/html/select.php on line 68, que debo hacer para corregirlo? 
 
Adjunto el codigo
 
1<?php
2/**
3* @version		$Id: select.php 14401 2010-01-26 14:10:00Z louis $
4* @package		Joomla.Framework
5* @subpackage	HTML
6* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
7* @license		GNU/GPL, see LICENSE.php
8* Joomla! is free software. This version may have been modified pursuant
9* to the GNU General Public License, and as distributed it includes or
10* is derivative of works licensed under the GNU General Public License or
11* other free or open source software licenses.
12* See COPYRIGHT.php for copyright notices and details.
13*/
14defined('JPATH_BASE') or die();
15/**
 16* Utility class for creating HTML select lists
17 *
 18* @static
19 * @package 	Joomla.Framework
 20* @subpackage	HTML
 21* @since		1.5
 22*/
23class JHTMLSelect
24{
25	/**
26	 * @param	string	The value of the option
27	 * @param	string	The text for the option28
28	 * @param	string	The returned object property name for the value29
29	 * @param	string	The returned object property name for the text
30	 * @return	object
31	 */
32	function option( $value, $text='', $value_name='value', $text_name='text', $disable=false )
33	{
34		$obj = new stdClass;
35		$obj->$value_name	= $value;
36		$obj->$text_name	= trim( $text ) ? $text : $value;
37		$obj->disable		= $disable;
38		return $obj;
39	}
40
41	/**
42	 * @param	string	The text for the option
43	 * @param	string	The returned object property name for the value
44	 * @param	string	The returned object property name for the text
45	 * @return	object
46	 */
47	function optgroup( $text, $value_name = 'value', $text_name = 'text' )
48	{
49		$obj = new stdClass;
50		$obj->$value_name	= '<OPTGROUP>';
51		$obj->$text_name	= $text;
52		return $obj;
53	}
54
55	/**
56	 * Generates just the option tags for an HTML select list
57	 *
58	 * @param	array	An array of objects
59	 * @param	string	The name of the object variable for the option value
60	 * @param	string	The name of the object variable for the option text
61	 * @param	mixed	The key that is selected (accepts an array or a string)
62	 * @returns	string	HTML for the select list
63	 */
64	function options( $arr, $key = 'value', $text = 'text', $selected = null, $translate = false )
65	{
66		$html = '';
67
68		foreach($arr as $i => $option)
69		{
70			$element =& $arr[$i]; // since current doesn't return a reference, need to do this
71
72			$isArray = is_array( $element );
73			$extra	 = '';
74			if ($isArray)
75			{
76				$k 		= $element[$key];
77				$t	 	= $element[$text];
78				$id 	= ( isset( $element['id'] ) ? $element['id'] : null );
79				if(isset($element['disable']) && $element['disable']) {
80					$extra .= ' disabled="disabled"';
81				}
82			}
83			else
84			{
85				$k 		= $element->$key;
86				$t	 	= $element->$text;
87				$id 	= ( isset( $element->id ) ? $element->id : null );
88				if(isset( $element->disable ) && $element->disable) {
89					$extra .= ' disabled="disabled"';
90				}
91			}
92
93			// This is real dirty, open to suggestions,
94			// barring doing a propper object to handle it
95			if ($k === '<OPTGROUP>') {
96				$html .= '<optgroup label="' . $t . '">';
97			} else if ($k === '</OPTGROUP>') {
98				$html .= '</optgroup>';
99			}
100			else
			{
				//if no string after hypen - take hypen out
				$splitText = explode( ' - ', $t, 2 );
				$t = $splitText[0];
				if(isset($splitText[1])){ $t .= ' - '. $splitText[1]; }
 
				//$extra = '';
				//$extra .= $id ? ' id="' . $arr[$i]->id . '"' : '';
				if (is_array( $selected ))
				{
					foreach ($selected as $val)
					{
						$k2 = is_object( $val ) ? $val->$key : $val;
						if ($k == $k2)
						{
							$extra .= ' selected="selected"';
							break;
						}
					}
				} else {
					$extra .= ( (string)$k == (string)$selected  ? ' selected="selected"' : '' );
				}
 
				//if flag translate text
				if ($translate) {
					$t = JText::_( $t );
				}
 
				// ensure ampersands are encoded
				$k = JFilterOutput::ampReplace($k);
				$t = JFilterOutput::ampReplace($t);
 
				$html .= '<option value="'. $k .'" '. $extra .'>' . $t . '</option>';
			}
		}
 
		return $html;
	}
 
	/**
	 * Generates an HTML select list
	 *
	 * @param	array	An array of objects
	 * @param	string	The value of the HTML name attribute
	 * @param	string	Additional HTML attributes for the <select> tag
	 * @param	string	The name of the object variable for the option value
	 * @param	string	The name of the object variable for the option text
	 * @param	mixed	The key that is selected (accepts an array or a string)
	 * @returns	string	HTML for the select list
	 */
	function genericlist( $arr, $name, $attribs = null, $key = 'value', $text = 'text', $selected = NULL, $idtag = false, $translate = false )
	{
		if ( is_array( $arr ) ) {
			reset( $arr );
		}
 
		if (is_array($attribs)) {
			$attribs = JArrayHelper::toString($attribs);
		 }
 
		$id = $name;
 
		if ( $idtag ) {
			$id = $idtag;
		}
 
		$id		= str_replace('[','',$id);
		$id		= str_replace(']','',$id);
 
		$html	= '<select name="'. $name .'" id="'. $id .'" '. $attribs .'>';
		$html	.= JHTMLSelect::Options( $arr, $key, $text, $selected, $translate );
		$html	.= '</select>';
 
		return $html;
	}
 
	/**
	* Generates a select list of integers
	*
	* @param int The start integer
	* @param int The end integer
	* @param int The increment
	* @param string The value of the HTML name attribute
	* @param string Additional HTML attributes for the <select> tag
	* @param mixed The key that is selected
	* @param string The printf format to be applied to the number
	* @returns string HTML for the select list
	*/
	function integerlist( $start, $end, $inc, $name, $attribs = null, $selected = null, $format = "" )
	{
		$start 	= intval( $start );
		$end 	= intval( $end );
		$inc 	= intval( $inc );
		$arr 	= array();
 
		for ($i=$start; $i <= $end; $i+=$inc)
		{
			$fi = $format ? sprintf( "$format", $i ) : "$i";
			$arr[] = JHTML::_('select.option',  $fi, $fi );
		}
 
		return JHTML::_('select.genericlist',   $arr, $name, $attribs, 'value', 'text', $selected );
	}
 
	/**
	* Generates an HTML radio list
	*
	* @param array An array of objects
	* @param string The value of the HTML name attribute
	* @param string Additional HTML attributes for the <select> tag
	* @param mixed The key that is selected
	* @param string The name of the object variable for the option value
	* @param string The name of the object variable for the option text
	* @returns string HTML for the select list
	*/
	function radiolist( $arr, $name, $attribs = null, $key = 'value', $text = 'text', $selected = null, $idtag = false, $translate = false )
	{
		reset( $arr );
		$html = '';
 
		if (is_array($attribs)) {
			$attribs = JArrayHelper::toString($attribs);
		 }
 
		$id_text = $name;
		if ( $idtag ) {
			$id_text = $idtag;
		}
 
		for ($i=0, $n=count( $arr ); $i < $n; $i++ )
		{
			$k	= $arr[$i]->$key;
			$t	= $translate ? JText::_( $arr[$i]->$text ) : $arr[$i]->$text;
			$id	= ( isset($arr[$i]->id) ? @$arr[$i]->id : null);
 
			$extra	= '';
			$extra	.= $id ? " id=\"" . $arr[$i]->id . "\"" : '';
			if (is_array( $selected ))
			{
				foreach ($selected as $val)
				{
					$k2 = is_object( $val ) ? $val->$key : $val;
					if ($k == $k2)
					{
						$extra .= " selected=\"selected\"";
						break;
					}
				}
			} else {
				$extra .= ((string)$k == (string)$selected ? " checked=\"checked\"" : '');
			}
			$html .= "\n\t<input type=\"radio\" name=\"$name\" id=\"$id_text$k\" value=\"".$k."\"$extra $attribs />";
			$html .= "\n\t<label for=\"$id_text$k\">$t</label>";
		}
		$html .= "\n";
		return $html;
	}
 
	/**
	* Generates a yes/no radio list
	*
	* @param string The value of the HTML name attribute
	* @param string Additional HTML attributes for the <select> tag
	* @param mixed The key that is selected
	* @returns string HTML for the radio list
	*/
	function booleanlist( $name, $attribs = null, $selected = null, $yes='yes', $no='no', $id=false )
	{
		$arr = array(
			JHTML::_('select.option',  '0', JText::_( $no ) ),
			JHTML::_('select.option',  '1', JText::_( $yes ) )
		);
		return JHTML::_('select.radiolist',  $arr, $name, $attribs, 'value', 'text', (int) $selected, $id );
	}
}
 
 
De antemano muchas Gracias por su colaboracion 
  
 

