registerFunction( 'onSearch', 'botSearchSections' ); /** * Sections 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 */ function botSearchSections( $text, $phrase='', $ordering='' ) { global $database, $my; $text = trim( $text ); if ($text == '') { return array(); } switch ( $ordering ) { case 'alpha': $order = 'a.name ASC'; break; case 'category': case 'popular': case 'newest': case 'oldest': default: $order = 'a.name DESC'; } $query = "SELECT a.name AS title," . "\n a.description AS text," . "\n '' AS created," . "\n '2' AS browsernav," . "\n a.id AS secid, m.id AS menuid, m.type AS menutype" . "\n FROM #__sections AS a" . "\n LEFT JOIN #__menu AS m ON m.componentid = a.id" . "\n WHERE ( a.name LIKE '%$text%'" . "\n OR a.title LIKE '%$text%'" . "\n OR a.description LIKE '%$text%' )" . "\n AND a.published = '1'" . "\n AND a.access <= '$my->gid'" . "\n AND ( m.type = 'content_section' OR m.type = 'content_blog_section' )" . "\n ORDER BY $order" ; $database->setQuery( $query ); $rows = $database->loadObjectList(); $count = count( $rows ); for ( $i = 0; $i < $count; $i++ ) { if ( $rows[$i]->menutype == 'content_blog_section' ) { $rows[$i]->href = 'index.php?option=com_content&task=blogsection&id='. $rows[$i]->secid .'&Itemid='. $rows[$i]->menuid; $rows[$i]->section = T_('Section Blog'); } else { if ( $rows[$i]->menutype !== 'content_section' ) $rows[$i]->menuid = ''; $rows[$i]->href = 'index.php?option=com_content&task=section&id='. $rows[$i]->secid . ($rows[$i]->menuid ? ('&Itemid='. $rows[$i]->menuid) : ''); $rows[$i]->section = T_('Section List'); } } return $rows; } ?>