getQuery(true) ->select('m.id, m.title') ->select('l.sef as lang_sef') ->select('mt.title as menu_title') ->from('#__menu as m') ->join('LEFT', '#__menu_types as mt ON mt.menutype=m.menutype') ->where('m.id IN (' . implode(',', array_values($associations)) . ')') ->join('LEFT', '#__languages as l ON m.language=l.lang_code') ->select('l.image') ->select('l.title as language_title'); $db->setQuery($query); try { $items = $db->loadObjectList('id'); } catch (runtimeException $e) { throw new Exception($e->getMessage(), 500); } // Construct html if ($items) { foreach ($items as &$item) { $text = strtoupper($item->lang_sef); $url = JRoute::_('index.php?option=com_menus&task=item.edit&id=' . (int) $item->id); $tooltipParts = array( JHtml::_('image', 'mod_languages/' . $item->image . '.gif', $item->language_title, array('title' => $item->language_title), true ), $item->title, '(' . $item->menu_title . ')' ); $item->link = JHtml::_('tooltip', implode(' ', $tooltipParts), null, null, $text, $url, null, 'hasTooltip label label-association label-' . $item->lang_sef); } } $html = JLayoutHelper::render('joomla.content.associations', $items); } return $html; } /** * Returns a published state on a grid * * @param integer $value The state value. * @param integer $i The row index * @param boolean $enabled An optional setting for access control on the action. * @param string $checkbox An optional prefix for checkboxes. * * @return string The Html code * * @see JHtmlJGrid::state * * @since 1.7.1 */ public static function state($value, $i, $enabled = true, $checkbox = 'cb') { $states = array( 9 => array( 'unpublish', '', 'COM_MENUS_HTML_UNPUBLISH_HEADING', '', false, 'publish', 'publish' ), 8 => array( 'publish', '', 'COM_MENUS_HTML_PUBLISH_HEADING', '', false, 'unpublish', 'unpublish' ), 7 => array( 'unpublish', '', 'COM_MENUS_HTML_UNPUBLISH_SEPARATOR', '', false, 'publish', 'publish' ), 6 => array( 'publish', '', 'COM_MENUS_HTML_PUBLISH_SEPARATOR', '', false, 'unpublish', 'unpublish' ), 5 => array( 'unpublish', '', 'COM_MENUS_HTML_UNPUBLISH_ALIAS', '', false, 'publish', 'publish' ), 4 => array( 'publish', '', 'COM_MENUS_HTML_PUBLISH_ALIAS', '', false, 'unpublish', 'unpublish' ), 3 => array( 'unpublish', '', 'COM_MENUS_HTML_UNPUBLISH_URL', '', false, 'publish', 'publish' ), 2 => array( 'publish', '', 'COM_MENUS_HTML_PUBLISH_URL', '', false, 'unpublish', 'unpublish' ), 1 => array( 'unpublish', 'COM_MENUS_EXTENSION_PUBLISHED_ENABLED', 'COM_MENUS_HTML_UNPUBLISH_ENABLED', 'COM_MENUS_EXTENSION_PUBLISHED_ENABLED', true, 'publish', 'publish' ), 0 => array( 'publish', 'COM_MENUS_EXTENSION_UNPUBLISHED_ENABLED', 'COM_MENUS_HTML_PUBLISH_ENABLED', 'COM_MENUS_EXTENSION_UNPUBLISHED_ENABLED', true, 'unpublish', 'unpublish' ), -1 => array( 'unpublish', 'COM_MENUS_EXTENSION_PUBLISHED_DISABLED', 'COM_MENUS_HTML_UNPUBLISH_DISABLED', 'COM_MENUS_EXTENSION_PUBLISHED_DISABLED', true, 'warning', 'warning' ), -2 => array( 'publish', 'COM_MENUS_EXTENSION_UNPUBLISHED_DISABLED', 'COM_MENUS_HTML_PUBLISH_DISABLED', 'COM_MENUS_EXTENSION_UNPUBLISHED_DISABLED', true, 'unpublish', 'unpublish' ), ); return JHtml::_('jgrid.state', $states, $value, $i, 'items.', $enabled, true, $checkbox); } }