0byt3m1n1-V2
Path:
/
home
/
a
/
c
/
a
/
academiac
/
www
/
[
Home
]
File: menuitem.php.tar
home/academiac/www/libraries/joomla/html/parameter/element/menuitem.php 0000644 00000010040 15137262505 0022356 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage HTML * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * Renders a menu item element * * @package Joomla.Platform * @subpackage Parameter * @since 11.1 * @deprecated Use JformFieldMenuItem instead */ class JElementMenuItem extends JElement { /** * Element name * * @var string */ protected $_name = 'MenuItem'; /** * Fetch menu item element HTML * * @param string $name Element name * @param string $value Element value * @param JXMLElement &$node JXMLElement node object containing the settings for the element * @param string $control_name Control name * * @return string * * @deprecated 12.1 useJFormFieldMenuItem::getGroups * @since 11.1 * */ public function fetchElement($name, $value, &$node, $control_name) { // Deprecation warning. JLog::add('JElementMenuitem::fetchElement() is deprecated.', JLog::WARNING, 'deprecated'); $db = JFactory::getDbo(); $menuType = $this->_parent->get('menu_type'); if (!empty($menuType)) { $where = ' WHERE menutype = ' . $db->Quote($menuType); } else { $where = ' WHERE 1'; } // Load the list of menu types // TODO: move query to model $query = 'SELECT menutype, title' . ' FROM #__menu_types' . ' ORDER BY title'; $db->setQuery($query); $menuTypes = $db->loadObjectList(); if ($state = $node->attributes('state')) { $where .= ' AND published = ' . (int) $state; } // load the list of menu items // TODO: move query to model $query = 'SELECT id, parent_id, title, menutype, type' . ' FROM #__menu' . $where . ' ORDER BY menutype, parent_id, ordering'; $db->setQuery($query); $menuItems = $db->loadObjectList(); // Establish the hierarchy of the menu // TODO: use node model $children = array(); if ($menuItems) { // First pass - collect children foreach ($menuItems 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 into menutype groups $n = count($list); $groupedList = array(); foreach ($list as $k => $v) { $groupedList[$v->menutype][] = &$list[$k]; } // Assemble menu items to the array $options = array(); $options[] = JHtml::_('select.option', '', JText::_('JOPTION_SELECT_MENU_ITEM')); foreach ($menuTypes as $type) { if ($menuType == '') { $options[] = JHtml::_('select.option', '0', ' ', 'value', 'text', true); $options[] = JHtml::_('select.option', $type->menutype, $type->title . ' - ' . JText::_('JGLOBAL_TOP'), 'value', 'text', true); } if (isset($groupedList[$type->menutype])) { $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 (JRequest::getString('option', '', 'get') == 'com_menus') { $currentItemArray = JRequest::getVar('cid', array(0), '', 'array'); $currentItemId = (int) $currentItemArray[0]; $currentItemType = JRequest::getString('type', $item->type, 'get'); if ($currentItemId == $item->id && $currentItemType != $item->type) { $item->type = $currentItemType; } } $disable = strpos($node->attributes('disable'), $item->type) !== false ? true : false; $options[] = JHtml::_('select.option', $item->id, '   ' . $item->treename, 'value', 'text', $disable); } } } return JHtml::_( 'select.genericlist', $options, $control_name . '[' . $name . ']', array('id' => $control_name . $name, 'list.attr' => 'class="inputbox"', 'list.select' => $value) ); } } home/academiac/www/libraries/joomla/form/fields/menuitem.php 0000644 00000004531 15137513562 0020224 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Form * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; JFormHelper::loadFieldClass('groupedlist'); // Import the com_menus helper. require_once realpath(JPATH_ADMINISTRATOR . '/components/com_menus/helpers/menus.php'); /** * Supports an HTML grouped select list of menu item grouped by menu * * @package Joomla.Platform * @subpackage Form * @since 11.1 */ class JFormFieldMenuItem extends JFormFieldGroupedList { /** * The form field type. * * @var string * @since 11.1 */ public $type = 'MenuItem'; /** * Method to get the field option groups. * * @return array The field option objects as a nested array in groups. * * @since 11.1 */ protected function getGroups() { // Initialize variables. $groups = array(); // Initialize some field attributes. $menuType = (string) $this->element['menu_type']; $published = $this->element['published'] ? explode(',', (string) $this->element['published']) : array(); $disable = $this->element['disable'] ? explode(',', (string) $this->element['disable']) : array(); $language = $this->element['language'] ? explode(',', (string) $this->element['language']) : array(); // Get the menu items. $items = MenusHelper::getMenuLinks($menuType, 0, 0, $published, $language); // Build group for a specific menu type. if ($menuType) { // Initialize the group. $groups[$menuType] = array(); // Build the options array. foreach ($items as $link) { $groups[$menuType][] = JHtml::_('select.option', $link->value, $link->text, 'value', 'text', in_array($link->type, $disable)); } } // Build groups for all menu types. else { // Build the groups arrays. foreach ($items as $menu) { // Initialize the group. $groups[$menu->menutype] = array(); // Build the options array. foreach ($menu->links as $link) { $groups[$menu->menutype][] = JHtml::_( 'select.option', $link->value, $link->text, 'value', 'text', in_array($link->type, $disable) ); } } } // Merge any additional groups in the XML definition. $groups = array_merge(parent::getGroups(), $groups); return $groups; } }
©
2018.