本文整理汇总了PHP中SearchHelper类的典型用法代码示例。如果您正苦于以下问题:PHP SearchHelper类的具体用法?PHP SearchHelper怎么用?PHP SearchHelper使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SearchHelper类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkOpenOffice
function checkOpenOffice()
{
$diagnose = SearchHelper::checkOpenOfficeAvailablity();
if (!is_null($diagnose)) {
$this->addIssue('Open Office Server', $diagnose);
}
}
示例2: display
/**
* Method to display a view.
*
* @param boolean If true, the view output will be cached
* @param array An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
*
* @return JController This object to support chaining.
* @since 1.5
*/
public function display($cachable = false, $urlparams = false)
{
require_once JPATH_COMPONENT . '/helpers/search.php';
// Load the submenu.
SearchHelper::addSubmenu(JRequest::getCmd('view', 'searches'));
parent::display();
}
示例3: display
/**
* Method to display a view.
*
* @param boolean $cachable If true, the view output will be cached
* @param array $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
*
* @return SearchController This object to support chaining.
*
* @since 1.5
*/
public function display($cachable = false, $urlparams = false)
{
JLoader::register('SearchHelper', JPATH_ADMINISTRATOR . '/components/com_search/helpers/search.php');
// Load the submenu.
SearchHelper::addSubmenu($this->input->get('view', 'searches'));
return parent::display();
}
示例4: checkOO
/**
* Check that open office is running
*
* @return boolean
*/
private function checkOO()
{
$available = SearchHelper::checkOpenOfficeAvailablity();
if (is_null($available)) {
return true;
}
return false;
}
示例5: _setToolbar
/**
* Setup the Toolbar.
*/
protected function _setToolbar()
{
$canDo = SearchHelper::getActions();
JToolBarHelper::title(JText::_('Search_Manager_Searches'), 'search.png');
JToolBarHelper::custom('searches.reset', 'refresh.png', 'refresh_f2.png', 'Reset', false);
JToolBarHelper::divider();
if ($canDo->get('core.admin')) {
JToolBarHelper::preferences('com_search');
}
JToolBarHelper::divider();
JToolBarHelper::help('screen.stats.searches');
}
示例6: render
function render()
{
$oTemplating =& KTTemplating::getSingleton();
$oTemplate = $oTemplating->loadTemplate("ktcore/search2/search_portlet");
$iFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', 1);
$iDocumentId = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
if (!$iFolderId && !$iDocumentId) {
return null;
}
$savedSearches = SearchHelper::getSavedSearches($_SESSION['userID']);
$aTemplateData = array('context' => $this, 'folder_id' => $iFolderId, 'document_id' => $iDocumentId, 'savedSearches' => $savedSearches);
return $oTemplate->render($aTemplateData);
}
示例7: addToolbar
/**
* Add the page title and toolbar.
*
* @since 1.6
*/
protected function addToolbar()
{
$canDo = SearchHelper::getActions();
JToolBarHelper::title(JText::_('COM_SEARCH_MANAGER_SEARCHES'), 'search.png');
if ($canDo->get('core.edit.state')) {
JToolBarHelper::custom('searches.reset', 'refresh.png', 'refresh_f2.png', 'JSEARCH_RESET', false);
}
JToolBarHelper::divider();
if ($canDo->get('core.admin')) {
JToolBarHelper::preferences('com_search');
}
JToolBarHelper::divider();
JToolBarHelper::help('JHELP_COMPONENTS_SEARCH');
}
示例8: searchSite
/**
* Remote 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
* @return array Search Results
* @since 1.5
*/
function searchSite($searchword, $phrase = '', $order = '')
{
global $mainframe;
// Initialize variables
$db =& JFactory::getDBO();
// Prepare arguments
$searchword = $db->getEscaped(trim($searchword));
$phrase = '';
$ordering = '';
// Load search plugins and fire the onSearch event
JPluginHelper::importPlugin('search');
$results = $mainframe->triggerEvent('onSearch', array($searchword, $phrase, $ordering));
// Iterate through results building the return array
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_search' . DS . 'helpers' . DS . 'search.php';
foreach ($results as $i => $rows) {
foreach ($rows as $j => $row) {
$results[$i][$j]->href = preg_match('#^(http|https)://#i', $row->href) ? $row->href : JURI::root() . '/' . $row->href;
$results[$i][$j]->text = SearchHelper::prepareSearchContent($row->text, 200, $searchword);
}
}
return $results;
}
示例9: onRestCall
function onRestCall()
{
$searchword = JRequest::getVar('keyword');
$match = JRequest::getVar('match');
// Get the results
$results = $this->doSearch();
// Process them like Joomla does
for ($i = 0; $i < count($results); $i++) {
$row =& $results[$i]->text;
if ($match == 'exact') {
$searchwords = array($searchword);
$needle = $searchword;
} else {
$searchwords = preg_split("/\\s+/u", $searchword);
$needle = $searchwords[0];
}
$row = SearchHelper::prepareSearchContent($row, 200, $needle);
$searchwords = array_unique($searchwords);
/* $searchRegex = '#(';
$x = 0;
foreach ($searchwords as $k => $hlword)
{
$searchRegex .= ($x == 0 ? '' : '|');
$searchRegex .= preg_quote($hlword, '#');
$x++;
}
$searchRegex .= ')#iu';
*/
$result =& $results[$i];
if ($result->created) {
$created = $result->created;
} else {
$created = '';
}
$result->created = $created;
$result->count = $i + 1;
}
return $results;
}
示例10: getPollInfo
function getPollInfo($tIds)
{
$sql = 'SELECT * FROM ' . DB::table('forum_polloption') . ' WHERE tid IN (' . implode(',', $tIds) . ')';
$result = array();
$query = DB::query($sql);
while ($row = DB::fetch($query)) {
$result[$row['tid']][$row['polloptionid']] = SearchHelper::convertPoll($row);
}
return $result;
}
示例11: display
public function display($tpl = null)
{
require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/search.php';
$app = JFactory::getApplication();
$pathway = $app->getPathway();
$uri = JURI::getInstance();
$error = null;
$rows = null;
$results = null;
$total = 0;
// Get some data from the model
$areas = $this->get('areas');
$state = $this->get('state');
$searchword = $state->get('keyword');
$params = $app->getParams();
$menus = $app->getMenu();
$menu = $menus->getActive();
// because the application sets a default page title, we need to get it
// right from the menu item itself
if (is_object($menu)) {
$menu_params = new JRegistry();
$menu_params->loadString($menu->params);
if (!$menu_params->get('page_title')) {
$params->set('page_title', JText::_('COM_SEARCH_SEARCH'));
}
} else {
$params->set('page_title', JText::_('COM_SEARCH_SEARCH'));
}
$title = $params->get('page_title');
if ($app->getCfg('sitename_pagetitles', 0) == 1) {
$title = JText::sprintf('JPAGETITLE', $app->getCfg('sitename'), $title);
} elseif ($app->getCfg('sitename_pagetitles', 0) == 2) {
$title = JText::sprintf('JPAGETITLE', $title, $app->getCfg('sitename'));
}
$this->document->setTitle($title);
if ($params->get('menu-meta_description')) {
$this->document->setDescription($params->get('menu-meta_description'));
}
if ($params->get('menu-meta_keywords')) {
$this->document->setMetadata('keywords', $params->get('menu-meta_keywords'));
}
if ($params->get('robots')) {
$this->document->setMetadata('robots', $params->get('robots'));
}
// built select lists
$orders = array();
$orders[] = JHtml::_('select.option', 'newest', JText::_('COM_SEARCH_NEWEST_FIRST'));
$orders[] = JHtml::_('select.option', 'oldest', JText::_('COM_SEARCH_OLDEST_FIRST'));
$orders[] = JHtml::_('select.option', 'popular', JText::_('COM_SEARCH_MOST_POPULAR'));
$orders[] = JHtml::_('select.option', 'alpha', JText::_('COM_SEARCH_ALPHABETICAL'));
$orders[] = JHtml::_('select.option', 'category', JText::_('JCATEGORY'));
$lists = array();
$lists['ordering'] = JHtml::_('select.genericlist', $orders, 'ordering', 'class="inputbox"', 'value', 'text', $state->get('ordering'));
$searchphrases = array();
$searchphrases[] = JHtml::_('select.option', 'all', JText::_('COM_SEARCH_ALL_WORDS'));
$searchphrases[] = JHtml::_('select.option', 'any', JText::_('COM_SEARCH_ANY_WORDS'));
$searchphrases[] = JHtml::_('select.option', 'exact', JText::_('COM_SEARCH_EXACT_PHRASE'));
$lists['searchphrase'] = JHtml::_('select.radiolist', $searchphrases, 'searchphrase', '', 'value', 'text', $state->get('match'));
// log the search
JSearchHelper::logSearch($searchword, 'com_search');
//limit searchword
$lang = JFactory::getLanguage();
$upper_limit = $lang->getUpperLimitSearchWord();
$lower_limit = $lang->getLowerLimitSearchWord();
if (SearchHelper::limitSearchWord($searchword)) {
$error = JText::sprintf('COM_SEARCH_ERROR_SEARCH_MESSAGE', $lower_limit, $upper_limit);
}
// Sanitise searchword
if (SearchHelper::santiseSearchWord($searchword, $state->get('match'))) {
$error = JText::_('COM_SEARCH_ERROR_IGNOREKEYWORD');
}
if (!$searchword && !empty($this->input) && count($this->input->post)) {
// $error = JText::_('COM_SEARCH_ERROR_ENTERKEYWORD');
}
// Put the filtered results back into the model
// for next release, the checks should be done in the model perhaps...
$state->set('keyword', $searchword);
if ($error == null) {
$results = $this->get('data');
$total = $this->get('total');
$pagination = $this->get('pagination');
require_once JPATH_SITE . '/components/com_content/helpers/route.php';
for ($i = 0, $count = count($results); $i < $count; $i++) {
$row =& $results[$i]->text;
if ($state->get('match') == 'exact') {
$searchwords = array($searchword);
$needle = $searchword;
} else {
$searchworda = preg_replace('#\\xE3\\x80\\x80#s', ' ', $searchword);
$searchwords = preg_split("/\\s+/u", $searchworda);
$needle = $searchwords[0];
}
$row = SearchHelper::prepareSearchContent($row, $needle);
$searchwords = array_unique($searchwords);
$searchRegex = '#(';
$x = 0;
foreach ($searchwords as $k => $hlword) {
$searchRegex .= $x == 0 ? '' : '|';
$searchRegex .= preg_quote($hlword, '#');
$x++;
//.........这里部分代码省略.........
示例12: onContentSearch
//.........这里部分代码省略.........
$groups = implode(',', $user->getAuthorisedViewLevels());
$tag = JFactory::getLanguage()->getTag();
require_once JPATH_ADMINISTRATOR . '/components/com_search/helpers/search.php';
$searchText = $text;
if (is_array($areas)) {
if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) {
return array();
}
}
$sContent = $this->params->get('search_products', 1);
$limit = $this->params->def('search_limit', 50);
$nullDate = $db->getNullDate();
$date = JFactory::getDate();
$now = $date->toSql();
$text = trim($text);
if ($text == '') {
return array();
}
switch ($phrase) {
case 'exact':
$text = $db->quote('%' . $db->escape($text, true) . '%', false);
$wheres2 = array();
$wheres2[] = 'a.name LIKE ' . $text;
$wheres2[] = 'a.description LIKE ' . $text;
$wheres2[] = 'a.metakey LIKE ' . $text;
$wheres2[] = 'a.metadesc 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->escape($word, true) . '%', false);
$wheres2 = array();
$wheres2[] = 'a.name LIKE ' . $word;
$wheres2[] = 'a.description LIKE ' . $word;
$wheres2[] = 'a.metakey LIKE ' . $word;
$wheres2[] = 'a.metadesc LIKE ' . $word;
$wheres[] = implode(' OR ', $wheres2);
}
$where = '(' . implode($phrase == 'all' ? ') AND (' : ') OR (', $wheres) . ')';
break;
}
switch ($ordering) {
case 'oldest':
$order = 'a.cdate ASC';
break;
/*case 'popular':
$order = 'a.hits DESC';
break;*/
/*case 'popular':
$order = 'a.hits DESC';
break;*/
case 'alpha':
$order = 'a.name ASC';
break;
case 'category':
$order = 'c.title ASC, a.title ASC';
break;
case 'newest':
default:
$order = 'a.cdate DESC';
break;
}
$rows = array();
$query = $db->getQuery(true);
// Search products.
if ($sContent && $limit > 0) {
$query->clear();
$query->select('a.item_id, a.name AS title, a.metadesc, a.metakey, a.cdate AS created')->select('a.description AS text')->select('c.title AS section')->from('#__kart_items AS a')->join('INNER', '#__categories AS c ON c.id=a.category')->where('(' . $where . ') AND a.state=1 AND c.published = 1')->group('a.item_id, a.name, a.metadesc, a.metakey, a.cdate, a.description, c.title, c.id')->order($order);
$db->setQuery($query, 0, $limit);
$list = $db->loadObjectList();
$limit -= count($list);
if (isset($list)) {
$comquick2cartHelper = new comquick2cartHelper();
$itemid = $comquick2cartHelper->getItemId('index.php?option=com_quick2cart&view=productpage&layout=default');
foreach ($list as $key => $item) {
$link = 'index.php?option=com_quick2cart&view=productpage&layout=default&item_id=' . $item->item_id . '&Itemid=' . $itemid;
$list[$key]->href = JRoute::_($link, false);
}
}
$rows[] = $list;
}
$results = array();
if (count($rows)) {
foreach ($rows as $row) {
$new_row = array();
foreach ($row as $article) {
$article->browsernav = '';
if (SearchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) {
$new_row[] = $article;
}
}
$results = array_merge($results, (array) $new_row);
}
}
return $results;
}
示例13: onContentSearch
//.........这里部分代码省略.........
$order = $db->quoteName('a.created') . ' ASC';
break;
case 'popular':
$order = $db->quoteName('a.hits') . ' DESC';
break;
case 'alpha':
$order = $db->quoteName('a.name') . ' ASC';
break;
case 'newest':
$order = $db->quoteName('a.created') . ' DESC';
break;
default:
$order = $db->quoteName('a.ordering') . ' DESC';
break;
}
$rows = array();
$query = $db->getQuery(true);
$search_section = JText::_('PLG_SEARCH_TEAMS_TEAMS');
// search teams
if ($sTeam and $limit > 0) {
$query->clear();
//sqlsrv changes
$slug_select = ' CASE WHEN ';
$slug_select .= $query->charLength('a.alias', '!=', '0');
$slug_select .= ' THEN ';
$a_id = $query->castAsChar('a.id');
$slug_select .= $query->concatenate(array($a_id, 'a.alias'), ':');
$slug_select .= ' ELSE ';
$slug_select .= $a_id . ' END as slug, ';
$query->select($db->quoteName('a.name') . ' AS title, ' . $db->quoteName('a.metadesc') . ', ' . $db->quoteName('a.metakey') . ', ' . $db->quoteName('a.created') . ' AS created, ' . $db->quoteName('a.description') . ' AS text, ' . $db->quoteName('a.language') . ' AS language, ' . $db->quote($search_section) . ' AS section, ' . $slug_select . '"2" AS browsernav');
$query->from($db->quoteName('#__knvbapi_teams') . ' AS a');
$query->where('(' . $where . ')' . 'AND ' . $db->quoteName('a.state') . ' = 1 ' . 'AND ' . $db->quoteName('a.access') . ' IN (' . $groups . ') ' . 'AND (' . $db->quoteName('a.publish_up') . ' = ' . $db->quote($null_date) . ' OR ' . $db->quoteName('a.publish_up') . ' <= ' . $db->quote($now) . ') ' . 'AND (' . $db->quoteName('a.publish_down') . ' = ' . $db->quote($null_date) . ' OR ' . $db->quoteName('a.publish_down') . ' >= ' . $db->quote($now) . ') ');
// Filter by language
if ($app->isSite() and JLanguageMultilang::isEnabled()) {
$query->where($db->quoteName('a.language') . ' IN (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
$query->where($db->quoteName('c.language') . ' IN (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
}
$query->group($db->quoteName('a.id') . ', ' . $db->quoteName('a.name'));
$query->order($order);
$db->setQuery($query, 0, $limit);
$list = $db->loadObjectList();
$limit -= count($list);
if (isset($list)) {
foreach ($list as $key => $item) {
$list[$key]->href = JRoute::_(KnvbapiHelperRoute::getTeamRoute($item->slug, $item->language, $this->layout, $keep_item_id));
//Add the selected item id to the link if there is one
$list[$key]->href .= $item_id_str;
}
}
$rows[] = $list;
}
// search archived teams
if ($sTeamArchived and $limit > 0) {
$query->clear();
//sqlsrv changes
$slug_select = ' CASE WHEN ';
$slug_select .= $query->charLength('a.alias', '!=', '0');
$slug_select .= ' THEN ';
$a_id = $query->castAsChar('a.id');
$slug_select .= $query->concatenate(array($a_id, 'a.alias'), ':');
$slug_select .= ' ELSE ';
$slug_select .= $a_id . ' END AS slug, ';
$query->select($db->quoteName('a.name') . ' AS title, ' . $db->quoteName('a.metadesc') . ', ' . $db->quoteName('a.metakey') . ', ' . $db->quoteName('a.created') . ' AS created, ' . $db->quoteName('a.description') . ' AS text, ' . $db->quoteName('a.language') . ' AS language, ' . $db->quote($search_section) . ' AS section, ' . $slug_select . '"2" AS browsernav');
$query->from($db->quoteName('#__knvbapi_teams') . ' AS a');
$query->where('(' . $where . ') ' . 'AND ' . $db->quoteName('a.state') . ' = 2 ' . 'AND ' . $db->quoteName('a.access') . ' IN (' . $groups . ') ' . 'AND (' . $db->quoteName('a.publish_up') . ' = ' . $db->quote($null_date) . ' OR ' . $db->quoteName('a.publish_up') . ' <= ' . $db->quote($now) . ') ' . 'AND (' . $db->quoteName('a.publish_down') . ' = ' . $db->quote($null_date) . ' OR ' . $db->quoteName('a.publish_down') . ' >= ' . $db->quote($now) . ') ');
// Filter by language
if ($app->isSite() and JLanguageMultilang::isEnabled()) {
$query->where($db->quoteName('a.language') . ' IN (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
$query->where($db->quoteName('c.language') . ' IN (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
}
$query->order($order);
$db->setQuery($query, 0, $limit);
$list3 = $db->loadObjectList();
// find an itemid for archived to use if there isn't another one
$item = $app->getMenu()->getItems('link', 'index.php?option=com_knvbapi&view=teamarchive', true);
$item_id = isset($item) ? '&Itemid=' . $item->id : $item_id_str;
if (isset($list3)) {
foreach ($list3 as $key => $item) {
$date = JFactory::getDate($item->created);
$created_month = $date->format("n");
$created_year = $date->format("Y");
$list3[$key]->href = JRoute::_('index.php?option=com_knvbapi&view=teamarchive' . '&year=' . $created_year . '&month=' . $created_month . $item_id);
}
}
$rows[] = $list3;
}
$results = array();
if (count($rows)) {
foreach ($rows as $row) {
$new_row = array();
foreach ($row as $team) {
if (SearchHelper::checkNoHTML($team, $search_text, array('title', 'description', 'metadesc', 'metakey'))) {
$new_row[] = $team;
}
}
$results = array_merge($results, (array) $new_row);
}
}
return $results;
}
示例14: doSearch
/**
* Process search
* @param type $query Search query
* @return array Rerach Results
*
* This method uses portions of SearchController::search from components/com_search/controller.php
* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
*/
public function doSearch($query)
{
$wf = WFEditorPlugin::getInstance();
$filter = JFilterInput::getInstance();
if (!class_exists('JSite')) {
// Load JSite class
JLoader::register('JSite', JPATH_SITE . '/includes/application.php');
}
$app = JApplication::getInstance('site');
$router = $app->getRouter('site');
// get SearchHelper
require_once JPATH_ADMINISTRATOR . '/components/com_search/helpers/search.php';
// get router mode
$sef = (int) $wf->getParam('search.link.sef_url', 0);
// set router off so a raw url is returned by the Search plugin
if ($router) {
$router->setMode(0);
}
// slashes cause errors, <> get stripped anyway later on. # causes problems.
$searchword = trim(str_replace(array('#', '>', '<', '\\'), '', $filter->clean($query)));
$ordering = JRequest::getWord('ordering', null, 'post');
$searchphrase = JRequest::getWord('searchphrase', 'all', 'post');
$areas = JRequest::getVar('areas', null, 'post', 'array');
// if searchword enclosed in double quotes, strip quotes and do exact match
if (substr($searchword, 0, 1) == '"' && substr($searchword, -1) == '"') {
$searchword = substr($searchword, 1, -1);
$searchphrase = 'exact';
}
// clean areas
if (!empty($areas)) {
foreach ($areas as $area) {
$areas[] = $filter->clean($area, 'cmd');
}
}
$event = WF_JOOMLA15 ? 'onSearch' : 'onContentSearch';
// trigger search on loaded plugins
$searches = $app->triggerEvent($event, array($searchword, $searchphrase, $ordering, $areas));
$results = array();
$rows = array();
foreach ($searches as $search) {
$rows = array_merge((array) $rows, (array) $search);
}
for ($i = 0, $count = count($rows); $i < $count; $i++) {
$row =& $rows[$i];
$result = new StdClass();
if ($searchphrase == 'exact') {
$searchwords = array($searchword);
$needle = $searchword;
} else {
$searchworda = preg_replace('#\\xE3\\x80\\x80#s', ' ', $searchword);
$searchwords = preg_split("/\\s+/u", $searchworda);
$needle = $searchwords[0];
}
// get anchors
$anchors = self::getAnchors($row->text);
if (!empty($anchors)) {
$row->anchors = $anchors;
}
if (method_exists('SearchHelper', 'getActions')) {
$row->text = SearchHelper::prepareSearchContent($row->text, $needle);
} else {
$row->text = SearchHelper::prepareSearchContent($row->text, 200, $needle);
}
$searchwords = array_unique($searchwords);
$searchRegex = '#(';
$x = 0;
foreach ($searchwords as $k => $hlword) {
$searchRegex .= $x == 0 ? '' : '|';
$searchRegex .= preg_quote($hlword, '#');
$x++;
}
$searchRegex .= ')#iu';
$row->text = preg_replace($searchRegex, '<span class="highlight">\\0</span>', $row->text);
// remove base url
if (strpos($row->href, JURI::base(true)) !== false) {
$row->href = substr_replace($row->href, '', 0, strlen(JURI::base(true)) + 1);
}
// convert to SEF
if ($router && $sef) {
$router->setMode(1);
$url = str_replace('&', '&', $row->href);
$uri = $router->build($url);
$url = $uri->toString();
$row->href = str_replace('/administrator/', '/', $url);
}
$result->title = $row->title;
$result->text = $row->text;
$result->link = $row->href;
$results[] = $result;
}
return $results;
}
示例15: onContentSearch
//.........这里部分代码省略.........
case 'alpha':
$order = 'a.title ASC';
break;
case 'category':
$order = 'c.title ASC, a.title ASC';
break;
case 'newest':
default:
$order = 'a.created DESC';
break;
}
$rows = array();
$query = $db->getQuery(true);
// Search articles.
if ($sContent && $limit > 0) {
$query->clear();
// SQLSRV changes.
$case_when = ' CASE WHEN ';
$case_when .= $query->charLength('a.alias', '!=', '0');
$case_when .= ' THEN ';
$a_id = $query->castAsChar('a.id');
$case_when .= $query->concatenate(array($a_id, 'a.alias'), ':');
$case_when .= ' ELSE ';
$case_when .= $a_id . ' END as slug';
$case_when1 = ' CASE WHEN ';
$case_when1 .= $query->charLength('c.alias', '!=', '0');
$case_when1 .= ' THEN ';
$c_id = $query->castAsChar('c.id');
$case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':');
$case_when1 .= ' ELSE ';
$case_when1 .= $c_id . ' END as catslug';
$query->select('a.title AS title, a.metadesc, a.metakey, a.created AS created, a.language, a.catid')->select($query->concatenate(array('a.introtext', 'a.fulltext')) . ' AS text')->select('c.title AS section, ' . $case_when . ',' . $case_when1 . ', ' . '\'2\' AS browsernav')->from('#__content AS a')->join('INNER', '#__categories AS c ON c.id=a.catid')->where('(' . $where . ') AND a.state=1 AND c.published = 1 AND a.access IN (' . $groups . ') ' . 'AND c.access IN (' . $groups . ') ' . 'AND (a.publish_up = ' . $db->quote($nullDate) . ' OR a.publish_up <= ' . $db->quote($now) . ') ' . 'AND (a.publish_down = ' . $db->quote($nullDate) . ' OR a.publish_down >= ' . $db->quote($now) . ')')->group('a.id, a.title, a.metadesc, a.metakey, a.created, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id')->order($order);
// Filter by language.
if ($app->isSite() && JLanguageMultilang::isEnabled()) {
$query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')')->where('c.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
}
$db->setQuery($query, 0, $limit);
$list = $db->loadObjectList();
$limit -= count($list);
if (isset($list)) {
foreach ($list as $key => $item) {
$list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language);
}
}
$rows[] = $list;
}
// Search archived content.
if ($sArchived && $limit > 0) {
$query->clear();
// SQLSRV changes.
$case_when = ' CASE WHEN ';
$case_when .= $query->charLength('a.alias', '!=', '0');
$case_when .= ' THEN ';
$a_id = $query->castAsChar('a.id');
$case_when .= $query->concatenate(array($a_id, 'a.alias'), ':');
$case_when .= ' ELSE ';
$case_when .= $a_id . ' END as slug';
$case_when1 = ' CASE WHEN ';
$case_when1 .= $query->charLength('c.alias', '!=', '0');
$case_when1 .= ' THEN ';
$c_id = $query->castAsChar('c.id');
$case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':');
$case_when1 .= ' ELSE ';
$case_when1 .= $c_id . ' END as catslug';
$query->select('a.title AS title, a.metadesc, a.metakey, a.created AS created, ' . $query->concatenate(array("a.introtext", "a.fulltext")) . ' AS text,' . $case_when . ',' . $case_when1 . ', ' . 'c.title AS section, \'2\' AS browsernav');
// .'CONCAT_WS("/", c.title) AS section, \'2\' AS browsernav' );
$query->from('#__content AS a')->join('INNER', '#__categories AS c ON c.id=a.catid AND c.access IN (' . $groups . ')')->where('(' . $where . ') AND a.state = 2 AND c.published = 1 AND a.access IN (' . $groups . ') AND c.access IN (' . $groups . ') ' . 'AND (a.publish_up = ' . $db->quote($nullDate) . ' OR a.publish_up <= ' . $db->quote($now) . ') ' . 'AND (a.publish_down = ' . $db->quote($nullDate) . ' OR a.publish_down >= ' . $db->quote($now) . ')')->order($order);
// Filter by language.
if ($app->isSite() && JLanguageMultilang::isEnabled()) {
$query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')')->where('c.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')');
}
$db->setQuery($query, 0, $limit);
$list3 = $db->loadObjectList();
// Find an itemid for archived to use if there isn't another one.
$item = $app->getMenu()->getItems('link', 'index.php?option=com_content&view=archive', true);
$itemid = isset($item->id) ? '&Itemid=' . $item->id : '';
if (isset($list3)) {
foreach ($list3 as $key => $item) {
$date = JFactory::getDate($item->created);
$created_month = $date->format("n");
$created_year = $date->format("Y");
$list3[$key]->href = JRoute::_('index.php?option=com_content&view=archive&year=' . $created_year . '&month=' . $created_month . $itemid);
}
}
$rows[] = $list3;
}
$results = array();
if (count($rows)) {
foreach ($rows as $row) {
$new_row = array();
foreach ($row as $article) {
if (SearchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) {
$new_row[] = $article;
}
}
$results = array_merge($results, (array) $new_row);
}
}
return $results;
}