Example #1
0
 protected static function _findItemId($needles)
 {
     // Prepare the reverse lookup array.
     if (self::$lookup === null) {
         self::$lookup = array();
         $component =& JComponentHelper::getComponent('com_weblinks');
         $menus =& JApplication::getMenu('site', array());
         $items = $menus->getItems('component_id', $component->id);
         foreach ($items as &$item) {
             if (isset($item->query) && isset($item->query['view'])) {
                 $view = $item->query['view'];
                 if (!isset(self::$lookup[$view])) {
                     self::$lookup[$view] = array();
                 }
                 if (isset($item->query['id'])) {
                     self::$lookup[$view][$item->query['id']] = $item->id;
                 }
             }
         }
     }
     $match = null;
     foreach ($needles as $view => $id) {
         if (isset(self::$lookup[$view])) {
             if (isset(self::$lookup[$view][$id])) {
                 return self::$lookup[$view][$id];
             }
         }
     }
     return null;
 }
Example #2
0
    echo JText::_('JContent_No_Parents');
    ?>
</p>
<?php 
} else {
    ?>
	<h3><?php 
    echo JText::_('JContent_Parents');
    ?>
</h3>
	<ul>
		<?php 
    foreach ($this->parents as &$item) {
        ?>
		<li>
			<a href="<?php 
        echo JRoute::_(WeblinksRoute::category($item->slug));
        ?>
">
				<?php 
        echo $this->escape($item->title);
        ?>
</a>
		</li>
		<?php 
    }
    ?>
	</ul>

<?php 
}
Example #3
0
 /**
  * Weblink Search method
  *
  * The sql must return the following fields that are used in a common display
  * routine: href, title, section, created, text, browsernav
  * @param string Target search string
  * @param string mathcing option, exact|any|all
  * @param string ordering option, newest|oldest|popular|alpha|category
  * @param mixed An array if the search it to be restricted to areas, null if search all
  */
 function onSearch($text, $phrase = '', $ordering = '', $areas = null)
 {
     $db =& JFactory::getDbo();
     $user =& JFactory::getUser();
     $groups = implode(',', $user->authorisedLevels());
     $searchText = $text;
     require_once JPATH_SITE . '/components/com_weblinks/router.php';
     if (is_array($areas)) {
         if (!array_intersect($areas, array_keys(plgSearchWeblinksAreas()))) {
             return array();
         }
     }
     // load plugin params info
     $plugin =& JPluginHelper::getPlugin('search', 'weblinks');
     $pluginParams = new JParameter($plugin->params);
     $limit = $pluginParams->def('search_limit', 50);
     $text = trim($text);
     if ($text == '') {
         return array();
     }
     $section = JText::_('WEB_LINKS');
     $wheres = array();
     switch ($phrase) {
         case 'exact':
             $text = $db->Quote('%' . $db->getEscaped($text, true) . '%', false);
             $wheres2 = array();
             $wheres2[] = 'a.url LIKE ' . $text;
             $wheres2[] = 'a.description LIKE ' . $text;
             $wheres2[] = 'a.title LIKE ' . $text;
             $where = '(' . implode(') OR (', $wheres2) . ')';
             break;
         case 'all':
         case 'any':
         default:
             $words = explode(' ', $text);
             $wheres = array();
             foreach ($words as $word) {
                 $word = $db->Quote('%' . $db->getEscaped($word, true) . '%', false);
                 $wheres2 = array();
                 $wheres2[] = 'a.url LIKE ' . $word;
                 $wheres2[] = 'a.description LIKE ' . $word;
                 $wheres2[] = 'a.title LIKE ' . $word;
                 $wheres[] = implode(' OR ', $wheres2);
             }
             $where = '(' . implode($phrase == 'all' ? ') AND (' : ') OR (', $wheres) . ')';
             break;
     }
     switch ($ordering) {
         case 'oldest':
             $order = 'a.date ASC';
             break;
         case 'popular':
             $order = 'a.hits DESC';
             break;
         case 'alpha':
             $order = 'a.title ASC';
             break;
         case 'category':
             $order = 'b.title ASC, a.title ASC';
             break;
         case 'newest':
         default:
             $order = 'a.date DESC';
     }
     $query = 'SELECT a.title AS title, a.description AS text, a.date AS created, a.url, ' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(\':\', b.id, b.alias) ELSE b.id END as catslug, ' . ' CONCAT_WS(" / ", ' . $db->Quote($section) . ', b.title) AS section,' . ' "1" AS browsernav' . ' FROM #__weblinks AS a' . ' INNER JOIN #__categories AS b ON b.id = a.catid' . ' WHERE (' . $where . ')' . ' AND a.state = 1' . ' AND b.published = 1' . ' AND b.access IN (' . $groups . ')' . ' ORDER BY ' . $order;
     $db->setQuery($query, 0, $limit);
     $rows = $db->loadObjectList();
     foreach ($rows as $key => $row) {
         $rows[$key]->href = WeblinksRoute::weblink($row->slug, $row->catslug);
     }
     $return = array();
     foreach ($rows as $key => $weblink) {
         if (searchHelper::checkNoHTML($weblink, $searchText, array('url', 'text', 'title'))) {
             $return[] = $weblink;
         }
     }
     return $return;
 }
Example #4
0
        $item->level_diff = isset($this->items[$i + 1]) ? $item->level - $this->items[$i + 1]->level : 0;
    }
    echo '<ul>';
    for ($i = 0; $i < $itemcount; $i++) {
        $item =& $this->items[$i];
        // The next item is deeper.
        if ($item->deeper) {
            echo "<li>";
        } elseif ($item->shallower) {
            echo "<li>";
        } else {
            echo "<li>";
        }
        ?>
  	    <span class="jitem-title"><a href="<?php 
        echo WeblinksRoute::category($this->escape($item->slug));
        ?>
">
        	<?php 
        echo $this->escape($item->title);
        ?>
</a>
        </span>
        <?php 
        if ($item->description) {
            ?>
        	<div class="jdescription">
            	<?php 
            echo $item->description;
            ?>
            </div>