protected function getInput()
 {
     $this->params = $this->element->attributes();
     $root = $this->def('root', 'USERS');
     $size = (int) $this->def('size');
     $multiple = $this->def('multiple');
     $show_all = $this->def('show_all');
     $attribs = 'class="inputbox"';
     $groups = $this->getUserGroups();
     $options = array();
     if ($show_all) {
         $option = new stdClass();
         $option->value = -1;
         $option->text = '- ' . JText::_('JALL') . ' -';
         $option->disable = '';
         $options[] = $option;
     }
     foreach ($groups as $group) {
         $option = new stdClass();
         $option->value = $group->id;
         $option->text = $group->title;
         $repeat = $show_all ? $group->level + 1 : $group->level;
         $option->text = str_repeat('- ', $repeat) . $option->text;
         $option->text = NNText::prepareSelectItem($option->text);
         $option->disable = '';
         $options[] = $option;
     }
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/html.php';
     return nnHtml::selectlist($options, $this->name, $this->value, $this->id, $size, $multiple, $attribs);
 }
Exemplo n.º 2
0
 protected function getInput()
 {
     $this->params = $this->element->attributes();
     if (!is_array($this->value)) {
         $this->value = explode(',', $this->value);
     }
     $group = $this->get('group', 'countries');
     $options = array();
     foreach ($this->{$group} as $key => $val) {
         if (!$val) {
             $options[] = JHtml::_('select.option', '-', ' ', 'value', 'text', true);
         } else {
             if ($key['0'] == '-') {
                 $options[] = JHtml::_('select.option', '-', $val, 'value', 'text', true);
             } else {
                 $val = NNText::prepareSelectItem($val);
                 $options[] = JHtml::_('select.option', $key, $val);
             }
         }
     }
     $size = (int) $this->get('size');
     $multiple = $this->get('multiple');
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/html.php';
     return NNHtml::selectlistsimple($options, $this->name, $this->value, $this->id, $size, $multiple);
 }
Exemplo n.º 3
0
 protected function getInput()
 {
     $this->params = $this->element->attributes();
     $this->db = JFactory::getDbo();
     if (!is_array($this->value)) {
         $this->value = explode(',', $this->value);
     }
     $group = $this->def('group', 'countries');
     $options = array();
     foreach ($this->{$group} as $key => $val) {
         if (!$val) {
             $options[] = JHtml::_('select.option', '-', ' ', 'value', 'text', true);
         } else {
             if ($key['0'] == '-') {
                 $options[] = JHtml::_('select.option', '-', $val, 'value', 'text', true);
             } else {
                 $val = NNText::prepareSelectItem($val);
                 $options[] = JHtml::_('select.option', $key, $val);
             }
         }
     }
     $attr = '';
     $attr .= $this->def('size') ? ' size="' . (int) $this->def('size') . '"' : '';
     $attr .= $this->def('multiple') ? ' multiple="multiple"' : '';
     return JHtml::_('select.genericlist', $options, $this->name . '[]', trim($attr), 'value', 'text', $this->value, $this->id);
 }
Exemplo n.º 4
0
Arquivo: zoo.php Projeto: naka211/kkvn
 function getCategories()
 {
     $query = $this->db->getQuery(true)->select('COUNT(*)')->from('#__zoo_category AS c')->where('c.published > -1');
     $this->db->setQuery($query);
     $total = $this->db->loadResult();
     if ($total > $this->max_list_count) {
         return -1;
     }
     $options = array();
     if ($this->get('show_ignore')) {
         if (in_array('-1', $this->value)) {
             $this->value = array('-1');
         }
         $options[] = JHtml::_('select.option', '-1', '- ' . JText::_('NN_IGNORE') . ' -', 'value', 'text', 0);
         $options[] = JHtml::_('select.option', '-', ' ', 'value', 'text', 1);
     }
     $query->clear()->select('a.id, a.name')->from('#__zoo_application AS a')->order('a.name, a.id');
     $this->db->setQuery($query);
     $apps = $this->db->loadObjectList();
     foreach ($apps as $i => $app) {
         $query->clear()->select('c.id, c.parent AS parent_id, c.name AS title, c.published')->from('#__zoo_category AS c')->where('c.application_id = ' . (int) $app->id)->where('c.published > -1')->order('c.ordering, c.name');
         $this->db->setQuery($query);
         $items = $this->db->loadObjectList();
         if ($i) {
             $options[] = JHtml::_('select.option', '-', ' ', 'value', 'text', 1);
         }
         // establish the hierarchy of the menu
         // TODO: use node model
         $children = array();
         if ($items) {
             // first pass - collect children
             foreach ($items as $v) {
                 $pt = $v->parent_id;
                 $list = @$children[$pt] ? $children[$pt] : array();
                 array_push($list, $v);
                 $children[$pt] = $list;
             }
         }
         // second pass - get an indent list of the items
         $list = JHtml::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0);
         // assemble items to the array
         $options[] = JHtml::_('select.option', 'app' . $app->id, '[' . $app->name . ']', 'value', 'text', 0);
         foreach ($list as $item) {
             $item->treename = '  ' . str_replace('  - ', '  ', $item->treename);
             $item->treename = NNText::prepareSelectItem($item->treename, $item->published);
             $option = JHtml::_('select.option', $item->id, $item->treename, 'value', 'text', 0);
             $option->level = 1;
             $options[] = $option;
         }
     }
     return $options;
 }
Exemplo n.º 5
0
 function getLevels()
 {
     $query = $this->db->getQuery(true)->select('l.akeebasubs_level_id as id, l.title AS name, l.enabled as published')->from('#__akeebasubs_levels AS l')->where('l.enabled > -1')->order('l.title, l.akeebasubs_level_id');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 6
0
 function getItems()
 {
     $query = $this->db->getQuery(true)->select('i.id, i.title as name, c.title as cat, i.access as published')->from('#__content AS i')->join('LEFT', '#__categories AS c ON c.id = i.catid')->where('i.access > -1')->order('i.title, i.ordering, i.id');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = $item->name . ' [' . $item->id . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 7
0
 function getProducts()
 {
     $query = $this->db->getQuery(true)->select('COUNT(*)')->from('#__virtuemart_products AS p')->where('p.published > -1');
     $this->db->setQuery($query);
     $total = $this->db->loadResult();
     if ($total > $this->max_list_count) {
         return -1;
     }
     $lang = $this->getActiveLanguage();
     $query->clear()->select('p.virtuemart_product_id as id, l.product_name AS name, p.product_sku as sku, cl.category_name AS cat, p.published')->from('#__virtuemart_products AS p')->join('LEFT', '#__virtuemart_products_' . $lang . ' AS l ON l.virtuemart_product_id = p.virtuemart_product_id')->join('LEFT', '#__virtuemart_product_categories AS x ON x.virtuemart_product_id = p.virtuemart_product_id')->join('LEFT', '#__virtuemart_categories AS c ON c.virtuemart_category_id = x.virtuemart_category_id')->join('LEFT', '#__virtuemart_categories_' . $lang . ' AS cl ON cl.virtuemart_category_id = c.virtuemart_category_id')->where('p.published > -1')->order('l.product_name, p.product_sku');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = $item->name . ' [' . $item->sku . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 8
0
 function getProducts()
 {
     $query = $this->db->getQuery(true)->select('p.product_id as id, p.product_name AS name, p.product_number as number, c.category_name AS cat, p.published')->from('#__redshop_product AS p')->join('LEFT', '#__redshop_product_category_xref AS x ON x.product_id = p.product_id')->join('LEFT', '#__redshop_category AS c ON c.category_id = x.category_id')->where('p.published > -1')->order('p.product_name, p.product_number');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = $item->name . ' [' . $item->number . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 9
0
 protected function getInput()
 {
     $this->params = $this->element->attributes();
     JHtml::_('behavior.modal', 'a.modal');
     $size = (int) $this->def('size');
     $multiple = $this->def('multiple');
     $showtype = $this->def('showtype');
     $showid = $this->def('showid');
     $showinput = $this->def('showinput');
     $db = JFactory::getDBO();
     // load the list of modules
     $query = $db->getQuery(true);
     $query->select('m.id, m.title, m.position, m.module, m.published')->from('#__modules AS m')->where('m.client_id = 0')->order('m.position, m.title, m.ordering, m.id');
     $db->setQuery($query);
     $modules = $db->loadObjectList();
     // assemble menu items to the array
     $options = array();
     $p = 0;
     foreach ($modules as $item) {
         if ($p !== $item->position) {
             $pos = $item->position;
             if ($pos == '') {
                 $pos = ':: ' . JText::_('JNONE') . ' ::';
             }
             $options[] = JHtml::_('select.option', '-', '[ ' . $pos . ' ]', 'value', 'text', true);
         }
         $p = $item->position;
         $item->title = '  ' . $item->title;
         if ($showtype) {
             $item->title .= ' [' . $item->module . ']';
         }
         if ($showinput || $showid) {
             $item->title .= ' [' . $item->id . ']';
         }
         $item->title = NNText::prepareSelectItem($item->title, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->title);
     }
     if ($showinput) {
         array_unshift($options, JHtml::_('select.option', '-', ' ', 'value', 'text', true));
         array_unshift($options, JHtml::_('select.option', '-', '- ' . JText::_('Select Item') . ' -'));
         if ($multiple) {
             $onchange = 'if ( this.value ) { if ( ' . $this->id . '.value ) { ' . $this->id . '.value+=\',\'; } ' . $this->id . '.value+=this.value; } this.value=\'\';';
         } else {
             $onchange = 'if ( this.value ) { ' . $this->id . '.value=this.value;' . $this->id . '_text.value=this.options[this.selectedIndex].innerHTML.replace( /^((&|&| )nbsp;|-)*/gm, \'\' ).trim(); } this.value=\'\';';
         }
         $attribs = 'class="inputbox" onchange="' . $onchange . '"';
         $html = '<table cellpadding="0" cellspacing="0"><tr><td style="padding: 0px;">' . "\n";
         if (!$multiple) {
             $val_name = $this->value;
             if ($this->value) {
                 foreach ($modules as $item) {
                     if ($item->id == $this->value) {
                         $val_name = $item->title;
                         if ($showtype) {
                             $val_name .= ' [' . $item->module . ']';
                         }
                         $val_name .= ' [' . $this->value . ']';
                         break;
                     }
                 }
             }
             $html .= '<input type="text" id="' . $this->id . '_text" value="' . $val_name . '" class="inputbox" size="' . $size . '" disabled="disabled" />';
             $html .= '<input type="hidden" name="' . $this->name . '" id="' . $this->id . '" value="' . $this->value . '" />';
         } else {
             $html .= '<input type="text" name="' . $this->name . '" id="' . $this->id . '" value="' . $this->value . '" class="inputbox" size="' . $size . '" />';
         }
         $html .= '</td><td style="padding: 0px;"padding-left: 5px;>' . "\n";
         $html .= JHtml::_('select.genericlist', $options, '', $attribs, 'value', 'text', '', '');
         $html .= '</td></tr></table>' . "\n";
         return preg_replace('#>\\[\\[\\:(.*?)\\:\\]\\]#si', ' style="\\1">', $html);
     } else {
         require_once JPATH_PLUGINS . '/system/nnframework/helpers/html.php';
         return nnHtml::selectlist($options, $this->name, $this->value, $this->id, $size, $multiple, 'style="max-width:360px"');
     }
 }
Exemplo n.º 10
0
 function getItems()
 {
     $query = $this->db->getQuery(true)->select('i.id, i.name, a.name as app, i.state as published')->from('#__zoo_item AS i')->join('LEFT', '#__zoo_application AS a ON a.id = i.application_id')->where('i.state > -1')->order('i.name, i.priority, i.id');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = $item->name . ' [' . $item->id . '] [' . $item->app . ']';
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 11
0
 function getOptionsTreeByList($items = array(), $root = 0)
 {
     // establish the hierarchy of the menu
     // TODO: use node model
     $children = array();
     if (!empty($items)) {
         // first pass - collect children
         foreach ($items as $v) {
             $pt = $v->parent_id;
             $list = @$children[$pt] ? $children[$pt] : array();
             array_push($list, $v);
             $children[$pt] = $list;
         }
     }
     // second pass - get an indent list of the items
     $list = JHtml::_('menu.treerecurse', $root, '', array(), $children, 9999, 0, 0);
     // assemble items to the array
     $options = array();
     if ($this->get('show_ignore')) {
         if (in_array('-1', $this->value)) {
             $this->value = array('-1');
         }
         $options[] = JHtml::_('select.option', '-1', '- ' . JText::_('NN_IGNORE') . ' -', 'value', 'text', 0);
         $options[] = JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', 1);
     }
     foreach ($list as $item) {
         $item->treename = NNText::prepareSelectItem($item->treename, $item->published, '', 1);
         $options[] = JHtml::_('select.option', $item->id, $item->treename, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 12
0
 function getProducts()
 {
     $query = $this->db->getQuery(true)->select('p.product_id as id, pd.name, p.model as number, cd.name AS cat, p.status AS published')->from('#__mijoshop_product AS p')->join('INNER', '#__mijoshop_product_description AS pd ON p.product_id = pd.product_id')->join('INNER', '#__mijoshop_product_to_store AS pts ON p.product_id = pts.product_id')->join('LEFT', '#__mijoshop_product_to_category AS ptc ON p.product_id = ptc.product_id')->join('LEFT', '#__mijoshop_category_description AS cd ON ptc.category_id = cd.category_id')->join('LEFT', '#__mijoshop_category_to_store AS cts ON ptc.category_id = cts.category_id')->where('p.status = 1')->where('p.date_available <= NOW()')->where('pd.language_id = ' . $this->language_id)->where('cts.store_id = ' . $this->store_id)->where('cd.language_id = ' . $this->language_id)->where('cts.store_id = ' . $this->store_id)->order('pd.name, p.model');
     $this->db->setQuery($query);
     $list = $this->db->loadObjectList();
     // assemble items to the array
     $options = array();
     foreach ($list as $item) {
         $item->name = $item->name . ' [' . $item->id . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
         $item->name = NNText::prepareSelectItem($item->name, $item->published);
         $options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
     }
     return $options;
 }
Exemplo n.º 13
0
	function getItems()
	{
		$query = $this->db->getQuery(true)
			->select('COUNT(*)')
			->from('#__k2_items AS i')
			->where('i.published > -1');
		$this->db->setQuery($query);
		$total = $this->db->loadResult();

		if ($total > $this->max_list_count)
		{
			return -1;
		}

		$query->clear()
			->select('i.id, i.title as name, c.name as cat, i.published')
			->from('#__k2_items AS i')
			->join('LEFT', '#__k2_categories AS c ON c.id = i.catid')
			->where('i.published > -1')
			->order('i.title, i.ordering, i.id');
		$this->db->setQuery($query);
		$list = $this->db->loadObjectList();

		// assemble items to the array
		$options = array();
		foreach ($list as $item)
		{
			$item->name = $item->name . ' [' . $item->id . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
			$item->name = NNText::prepareSelectItem($item->name, $item->published);
			$options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
		}

		return $options;
	}
Exemplo n.º 14
0
 protected function getInput()
 {
     $this->params = $this->element->attributes();
     JHtml::_('behavior.modal', 'a.modal');
     $size = (int) $this->def('size');
     $multiple = $this->def('multiple', 1);
     $showinput = $this->def('showinput');
     $disable_types = $this->def('disable');
     $db = JFactory::getDBO();
     // load the list of menu types
     $query = $db->getQuery(true);
     $query->select('m.menutype, m.title')->from('#__menu_types AS m')->order('m.title');
     $db->setQuery($query);
     $menuTypes = $db->loadObjectList();
     // load the list of menu items
     $query = $db->getQuery(true);
     $query->select('m.id, m.parent_id, m.title, m.alias, m.menutype, m.type, m.published, m.home')->select('m.title AS name')->from('#__menu AS m')->where('m.published != -2')->order('m.menutype, m.parent_id, m.lft, m.id');
     $db->setQuery($query);
     $items = $db->loadObjectList();
     // establish the hierarchy of the menu
     $children = array();
     if ($items) {
         // first pass - collect children
         foreach ($items as $v) {
             if ($v->type != 'separator') {
                 if (preg_replace('#[^a-z0-9]#', '', strtolower($v->title)) !== preg_replace('#[^a-z0-9]#', '', $v->alias)) {
                     $v->title .= ' [' . $v->alias . ']';
                 }
             }
             $pt = $v->parent_id;
             $list = @$children[$pt] ? $children[$pt] : array();
             array_push($list, $v);
             $children[$pt] = $list;
         }
     }
     // second pass - get an indent list of the items
     $list = JHtml::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0);
     // assemble into menutype groups
     $groupedList = array();
     foreach ($list as $k => $v) {
         $groupedList[$v->menutype][] =& $list[$k];
     }
     // assemble menu items to the array
     $options = array();
     $count = 0;
     foreach ($menuTypes as $type) {
         if (isset($groupedList[$type->menutype])) {
             if ($count > 0) {
                 $options[] = JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
             }
             $count++;
             $options[] = JHtml::_('select.option', $type->menutype, '[ ' . $type->title . ' ]', 'value', 'text', true);
             $n = count($groupedList[$type->menutype]);
             for ($i = 0; $i < $n; $i++) {
                 $item =& $groupedList[$type->menutype][$i];
                 //If menutype is changed but item is not saved yet, use the new type in the list
                 if (JFactory::getApplication()->input->getString('option', '') == 'com_menus') {
                     $cid = JFactory::getApplication()->input->get('cid', array(0), 'array');
                     JArrayHelper::toInteger($cid);
                     $currentItemId = $cid['0'];
                     $currentItemType = JFactory::getApplication()->input->getString('type', $item->type);
                     if ($currentItemId == $item->id && $currentItemType != $item->type) {
                         $item->type = $currentItemType;
                     }
                 }
                 if ($showinput) {
                     $item->treename .= ' [' . $item->id . ']';
                 }
                 if ($item->home) {
                     $item->treename .= ' [' . JText::_('JDEFAULT') . ']';
                 }
                 $item->treename = NNText::prepareSelectItem($item->treename, $item->published, $item->type, 2);
                 if ($type == 'separator' && !$item->children) {
                     $disable = 1;
                 } else {
                     $disable = $disable_types && !(strpos($disable_types, $item->type) === false);
                 }
                 $options[] = JHtml::_('select.option', $item->id, $item->treename, 'value', 'text', $disable);
             }
         }
     }
     if ($showinput) {
         array_unshift($options, JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true));
         array_unshift($options, JHtml::_('select.option', '-', '- ' . JText::_('Select Item') . ' -'));
         if ($multiple) {
             $onchange = 'if ( this.value ) { if ( ' . $this->id . '.value ) { ' . $this->id . '.value+=\',\'; } ' . $this->id . '.value+=this.value; } this.value=\'\';';
         } else {
             $onchange = 'if ( this.value ) { ' . $this->id . '.value=this.value;' . $this->id . '_text.value=this.options[this.selectedIndex].innerHTML.replace( /^((&|&amp;|&#160;)nbsp;|-)*/gm, \'\' ).trim(); } this.value=\'\';';
         }
         $attribs = 'class="inputbox" onchange="' . $onchange . '"';
         $html = '<table cellpadding="0" cellspacing="0"><tr><td style="padding: 0px;">' . "\n";
         if (!$multiple) {
             $val_name = $this->value;
             if ($this->value) {
                 foreach ($items as $item) {
                     if ($item->id == $this->value) {
                         $val_name = $item->name . ' [' . $this->value . ']';
                         break;
                     }
                 }
             }
             $html .= '<input type="text" id="' . $this->id . '_text" value="' . $val_name . '" class="inputbox" size="' . $size . '" disabled="disabled" />';
             $html .= '<input type="hidden" name="' . $this->name . '" id="' . $this->id . '" value="' . $this->value . '" />';
         } else {
             $html .= '<input type="text" name="' . $this->name . '" id="' . $this->id . '" value="' . $this->value . '" class="inputbox" size="' . $size . '" />';
         }
         $html .= '</td><td style="padding: 0px;"padding-left: 5px;>' . "\n";
         $html .= JHtml::_('select.genericlist', $options, '', $attribs, 'value', 'text', '', '');
         $html .= '</td></tr></table>' . "\n";
         return $html;
     } else {
         require_once JPATH_PLUGINS . '/system/nnframework/helpers/html.php';
         return nnHtml::selectlist($options, $this->name, $this->value, $this->id, $size, $multiple);
     }
 }
Exemplo n.º 15
0
	function getProducts()
	{
		$query = $this->db->getQuery(true)
			->select('COUNT(*)')
			->from('#__hikashop_product AS p')
			->where('p.product_published > -1');
		$this->db->setQuery($query);
		$total = $this->db->loadResult();

		if ($total > $this->max_list_count)
		{
			return -1;
		}

		$query->clear()
			->select('p.product_id as id, p.product_name AS name, c.category_name AS cat, p.product_published AS published')
			->from('#__hikashop_product AS p')
			->join('LEFT', '#__hikashop_product_category AS x ON x.product_id = p.product_id')
			->join('LEFT', '#__hikashop_category AS c ON c.category_id = x.category_id')
			->where('p.product_published > -1')
			->order('p.product_name, p.product_id');
		$this->db->setQuery($query);
		$list = $this->db->loadObjectList();

		// assemble items to the array
		$options = array();
		foreach ($list as $item)
		{
			$item->name = $item->name . ' [' . $item->id . ']' . ($item->cat ? ' [' . $item->cat . ']' : '');
			$item->name = NNText::prepareSelectItem($item->name, $item->published);
			$options[] = JHtml::_('select.option', $item->id, $item->name, 'value', 'text', 0);
		}

		return $options;
	}
Exemplo n.º 16
0
	protected function getInput()
	{
		$this->params = $this->element->attributes();

		$size = (int) $this->get('size');
		$groups = $this->get('groups');
		$groups = $groups ? explode(',', $groups) : array();

		if (!is_array($this->value))
		{
			$this->value = explode(',', $this->value);
		}

		$agents = array();
		/* OS */
		if (empty($groups))
		{
			$agents[] = JText::_('NN_OS');
		}
		if (empty($groups) || in_array('os', $groups))
		{
			$agents[] = array('Windows', 'Windows');
			$agents[] = array('- Windows 8', 'Windows nt 6.2');
			$agents[] = array('- Windows 7', 'Windows nt 6.1');
			$agents[] = array('- Windows Vista', 'Windows nt 6.0');
			$agents[] = array('- Windows Server 2003', 'Windows nt 5.2');
			$agents[] = array('- Windows XP', 'Windows nt 5.1');
			$agents[] = array('- Windows 2000 sp1', 'Windows nt 5.01');
			$agents[] = array('- Windows 2000', 'Windows nt 5.0');
			$agents[] = array('- Windows NT 4.0', 'Windows nt 4.0');
			$agents[] = array('- Windows Me', 'Win 9x 4.9');
			$agents[] = array('- Windows 98', 'Windows 98');
			$agents[] = array('- Windows 95', 'Windows 95');
			$agents[] = array('- Windows CE', 'Windows ce');
			$agents[] = '';
			$agents[] = array('Mac OS', '#(Mac OS|Mac_PowerPC|Macintosh)#');
			$agents[] = array('- Mac OSX', 'Mac OS X');
			$agents[] = array('- - Mac OSX Mountain Lion', 'Mac OS X 10.8');
			$agents[] = array('- - Mac OSX Lion', 'Mac OS X 10.7');
			$agents[] = array('- - Mac OSX Snow Leopard', 'Mac OS X 10.6');
			$agents[] = array('- - Mac OSX Leopard', 'Mac OS X 10.5');
			$agents[] = array('- - Mac OSX Tiger', 'Mac OS X 10.4');
			$agents[] = array('- - Mac OSX Panther', 'Mac OS X 10.3');
			$agents[] = array('- - Mac OSX Jaguar', 'Mac OS X 10.2');
			$agents[] = array('- - Mac OSX Puma', 'Mac OS X 10.1');
			$agents[] = array('- - Mac OSX Cheetah', 'Mac OS X 10.0');
			$agents[] = array('- Mac OS (classic)', '#(Mac_PowerPC|Macintosh)#');
			$agents[] = '';
			$agents[] = array('Linux', '#(Linux|X11)#');
			$agents[] = '';
			$agents[] = JText::_('NN_OTHERS');
			$agents[] = array('Open BSD', 'OpenBSD');
			$agents[] = array('Sun OS', 'SunOS');
			$agents[] = array('QNX', 'QNX');
			$agents[] = array('BeOS', 'BeOS');
			$agents[] = array('OS/2', 'OS/2');
		}

		/* Browsers */
		if (empty($groups))
		{
			$agents[] = '';
			$agents[] = '';
			$agents[] = JText::_('NN_BROWSERS');
		}
		if (empty($groups) || in_array('browsers', $groups))
		{
			$agents[] = array('Chrome', 'Chrome');
			$agents[] = array('- Chrome 35', 'Chrome/35.');
			$agents[] = array('- Chrome 34', 'Chrome/34.');
			$agents[] = array('- Chrome 33', 'Chrome/33.');
			$agents[] = array('- Chrome 32', 'Chrome/32.');
			$agents[] = array('- Chrome 31', 'Chrome/31.');
			$agents[] = array('- Chrome 30', 'Chrome/30.');
			$agents[] = array('- Chrome 29', 'Chrome/29.');
			$agents[] = array('- Chrome 28', 'Chrome/28.');
			$agents[] = array('- Chrome 27', 'Chrome/27.');
			$agents[] = array('- Chrome 26', 'Chrome/26.');
			$agents[] = array('- Chrome 25', 'Chrome/25.');
			$agents[] = array('- Chrome 24', 'Chrome/24.');
			$agents[] = array('- Chrome 23', 'Chrome/23.');
			$agents[] = array('- Chrome 22', 'Chrome/22.');
			$agents[] = array('- Chrome 21', 'Chrome/21.');
			//$agents[] = array('- Chrome 31-40', '#Chrome/(3[1-9]|40)\.#');
			//$agents[] = array('- Chrome 21-30', '#Chrome/(2[1-9]|30)\.#');
			$agents[] = array('- Chrome 11-20', '#Chrome/(1[1-9]|20)\.#');
			$agents[] = array('- Chrome 1-10', '#Chrome/([1-9]|10)\.#');
			$agents[] = '';
			$agents[] = array('Firefox', 'Firefox');
			$agents[] = array('- Firefox 30', 'Firefox/30.');
			$agents[] = array('- Firefox 29', 'Firefox/29.');
			$agents[] = array('- Firefox 28', 'Firefox/28.');
			$agents[] = array('- Firefox 27', 'Firefox/27.');
			$agents[] = array('- Firefox 26', 'Firefox/26.');
			$agents[] = array('- Firefox 25', 'Firefox/25.');
			$agents[] = array('- Firefox 24', 'Firefox/24.');
			$agents[] = array('- Firefox 23', 'Firefox/23.');
			$agents[] = array('- Firefox 22', 'Firefox/22.');
			$agents[] = array('- Firefox 21', 'Firefox/21.');
			//$agents[] = array('- Firefox 21-30', '#Firefox/(2[1-9]|30)\.#');
			$agents[] = array('- Firefox 11-20', '#Firefox/(1[1-9]|20)\.#');
			$agents[] = array('- Firefox 1-10', '#Firefox/([1-9]|10)\.#');
			$agents[] = '';
			$agents[] = array('Internet Explorer', 'MSIE');
			$agents[] = array('- Internet Explorer 10.6', 'MSIE 10.6');
			$agents[] = array('- Internet Explorer 10.0', 'MSIE 10.0');
			$agents[] = array('- Internet Explorer 10', 'MSIE 10');
			$agents[] = array('- Internet Explorer 9', 'MSIE 9.');
			$agents[] = array('- Internet Explorer 8', 'MSIE 8.');
			$agents[] = array('- Internet Explorer 7', 'MSIE 7.');
			$agents[] = array('- Internet Explorer 1-6', '#MSIE [1-6]\.#');
			$agents[] = '';
			$agents[] = array('Opera', 'Opera');
			$agents[] = array('- Opera 13', 'Opera/13.');
			$agents[] = array('- Opera 12', 'Opera/12.');
			$agents[] = array('- Opera 11', 'Opera/11.');
			$agents[] = array('- Opera 10', 'Opera/10.');
			$agents[] = array('- Opera 1-9', '#Opera/[1-9]\.#');
			$agents[] = '';
			$agents[] = array('Safari', 'Safari');
			$agents[] = array('- Safari 8', '#Version/8\..*Safari/#');
			$agents[] = array('- Safari 7', '#Version/7\..*Safari/#');
			$agents[] = array('- Safari 6', '#Version/6\..*Safari/#');
			$agents[] = array('- Safari 5', '#Version/5\..*Safari/#');
			$agents[] = array('- Safari 4', '#Version/4\..*Safari/#');
			$agents[] = array('- Safari 1-3', '#Version/[1-3]\..*Safari/#');
		}

		/* Mobile browsers */
		if (empty($groups))
		{
			$agents[] = '';
			$agents[] = '';
			$agents[] = JText::_('NN_MOBILE_BROWSERS');
		}
		if (empty($groups) || in_array('mobile', $groups))
		{
			$agents[] = array(JText::_('JALL'), 'mobile');
			$agents[] = array('- Android', 'Android');
			$agents[] = array('- Blackberry', 'Blackberry');
			$agents[] = array('- IE Mobile', 'IEMobile');
			$agents[] = array('- iPad', 'iPad');
			$agents[] = array('- iPhone', 'iPhone');
			$agents[] = array('- iPod Touch', 'iPod');
			$agents[] = array('- NetFront', 'NetFront');
			$agents[] = array('- Nokia', 'NokiaBrowser');
			$agents[] = array('- Opera Mini', 'Opera Mini');
			$agents[] = array('- Opera Mobile', 'Opera Mobi');
			$agents[] = array('- UC Browser', 'UC Browser');
		}

		$options = array();
		foreach ($agents as $agent)
		{
			if (!$agent)
			{
				$options[] = JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
			}
			else if (!is_array($agent))
			{
				$options[] = JHtml::_('select.option', '-', $agent, 'value', 'text', true);
			}
			else
			{
				$agent_name = NNText::prepareSelectItem($agent['0']);
				$options[] = JHtml::_('select.option', $agent['1'], $agent_name);
			}
		}

		require_once JPATH_PLUGINS . '/system/nnframework/helpers/html.php';

		return nnHtml::selectlist($options, $this->name, $this->value, $this->id, $size, 1);
	}