static function GetGlossary() { if (empty(FSS_Glossary::$glossary)) { $db = JFactory::getDBO(); $query = 'SELECT * FROM #__fss_glossary'; $where = array(); $where[] = " published = 1 "; $where[] = 'language in (' . $db->Quote(JFactory::getLanguage()->getTag()) . ',' . $db->Quote('*') . ')'; $user = JFactory::getUser(); $where[] = 'access IN (' . implode(',', $user->getAuthorisedViewLevels()) . ')'; if (count($where) > 0) { $query .= " WHERE " . implode(" AND ", $where); } $query .= ' ORDER BY LENGTH(word) DESC'; $db->setQuery($query); self::$glossary = $db->loadObjectList(); $extra = array(); foreach (self::$glossary as $offset => &$data) { $data->base_offset = -1; $altwords = explode("\n", $data->altwords); $awp = array(); foreach ($altwords as $aw) { $aw = trim($aw); if (!$aw) { continue; } $ex = clone $data; $ex->is_clone = true; $ex->word = $aw; $ex->linkword = $data->word; $ex->base_offset = $offset; $extra[] = $ex; } } self::$glossary = array_merge(self::$glossary, $extra); // add javascript FSS_Helper::StylesAndJS(array('tooltip', 'glossary')); } }