Files
@ 26c2f4337bc7
Branch filter:
Location: hot67beta/administrator/components/com_search/models/search.php - annotation
26c2f4337bc7
3.5 KiB
text/x-php
mneh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 c7d7e38b2269 | <?php
/**
* @version $Id: search.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Search
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant to the
* GNU General Public License, and as distributed it includes or is derivative
* of works licensed under the GNU General Public License or other free or open
* source software licenses. See COPYRIGHT.php for copyright notices and
* details.
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.model' );
/**
* @package Joomla
* @subpackage Search
*/
class SearchModelSearch extends JModel
{
var $lists = '';
/**
* Overridden constructor
* @access protected
*/
function __construct()
{
parent::__construct();
}
function reset()
{
$db =& JFactory::getDBO();
$db->setQuery( 'DELETE FROM #__core_log_searches' );
$db->query();
}
function getItems( )
{
global $mainframe, $option;
$db =& JFactory::getDBO();
$filter_order = $mainframe->getUserStateFromRequest( 'com_search.filter_order', 'filter_order', 'hits', 'cmd' );
$filter_order_Dir = $mainframe->getUserStateFromRequest( 'com_search.filter_order_Dir', 'filter_order_Dir', '', 'word' );
$limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
$limitstart = $mainframe->getUserStateFromRequest( 'com_search.limitstart', 'limitstart', 0, 'int' );
$search = $mainframe->getUserStateFromRequest( 'com_search.search', 'search', '', 'string' );
$search = JString::strtolower( $search );
$showResults = JRequest::getInt('search_results');
// table ordering
if ( $filter_order_Dir == 'ASC' ) {
$this->lists['order_Dir'] = 'ASC';
} else {
$this->lists['order_Dir'] = 'DESC';
}
$this->lists['order'] = $filter_order;
// search filter
$this->lists['search']= $search;
$where = array();
if ($search) {
$where[] = 'LOWER( search_term ) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false );
}
$where = ( count( $where ) ? ' WHERE ' . implode( ' AND ', $where ) : '' );
$orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir .', hits DESC';
// get the total number of records
$query = 'SELECT COUNT(*)'
. ' FROM #__core_log_searches'
. $where;
$db->setQuery( $query );
$total = $db->loadResult();
jimport( 'joomla.html.pagination' );
$pageNav = new JPagination( $total, $limitstart, $limit );
$query = ' SELECT * '
. ' FROM #__core_log_searches '
. $where
. $orderby;
$db->setQuery( $query, $pageNav->limitstart, $pageNav->limit );
$rows = $db->loadObjectList();
JPluginHelper::importPlugin( 'search' );
if (!class_exists( 'JSite' ))
{
// This fools the routers in the search plugins into thinking it's in the frontend
require_once( JPATH_COMPONENT.DS.'helpers'.DS.'site.php' );
}
for ($i=0, $n = count($rows); $i < $n; $i++) {
// determine if number of results for search item should be calculated
// by default it is `off` as it is highly query intensive
if ( $showResults ) {
$results = $mainframe->triggerEvent( 'onSearch', array( $rows[$i]->search_term ) );
$count = 0;
for ($j = 0, $n2 = count( $results ); $j < $n2; $j++) {
$count += count( $results[$j] );
}
$rows[$i]->returns = $count;
} else {
$rows[$i]->returns = null;
}
}
return $rows;
}
}
|