| Server IP : 195.130.67.5 / Your IP : 216.73.217.127 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /inetpub/wwwroot/icd/plugins/system/nnframework/helpers/ |
Upload File : |
<?php
/**
* @package NoNumber! Framework
* @version 11.9.1
*
* @author Peter van Westen <peter@nonumber.nl>
* @link http://www.nonumber.nl
* @copyright Copyright © 2011 NoNumber!
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
/**
* BASE ON JOOMLA CORE FILE:
* /components/com_search/models/search.php
*/
/**
* @version $Id: search.php 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @subpackage Search
* @copyright Copyright (C) 2005 - 2010 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();
jimport('joomla.application.component.model');
/**
* Search Component Search Model
*
* @package Joomla
* @subpackage Search
* @since 1.5
*/
class SearchModelSearch extends JModel
{
/**
* Sezrch data array
*
* @var array
*/
var $_data = null;
/**
* Search total
*
* @var integer
*/
var $_total = null;
/**
* Search areas
*
* @var integer
*/
var $_areas = null;
/**
* Pagination object
*
* @var object
*/
var $_pagination = null;
/**
* Constructor
*
* @since 1.5
*/
function __construct()
{
parent::__construct();
global $mainframe;
//Get configuration
$config = JFactory::getConfig();
// Get the pagination request variables
$this->setState('limit', $mainframe->getUserStateFromRequest('com_search.limit', 'limit', $config->getValue('config.list_limit'), 'int'));
$this->setState('limitstart', JRequest::getVar('limitstart', 0, '', 'int'));
// Set the search parameters
$keyword = urldecode(JRequest::getString('searchword'));
$match = JRequest::getWord('searchphrase', 'all');
$ordering = JRequest::getWord('ordering', 'newest');
$this->setSearch($keyword, $match, $ordering);
//Set the search areas
$areas = JRequest::getVar('areas');
$this->setAreas($areas);
}
/**
* Method to set the search parameters
*
* @access public
* @param string search string
* @param string mathcing option, exact|any|all
* @param string ordering option, newest|oldest|popular|alpha|category
*/
function setSearch($keyword, $match = 'all', $ordering = 'newest')
{
if(isset($keyword)) {
$this->setState('keyword', $keyword);
}
if(isset($match)) {
$this->setState('match', $match);
}
if(isset($ordering)) {
$this->setState('ordering', $ordering);
}
}
/**
* Method to set the search areas
*
* @access public
* @param array Active areas
* @param array Search areas
*/
function setAreas($active = array(), $search = array())
{
$this->_areas['active'] = $active;
$this->_areas['search'] = $search;
}
/**
* Method to get weblink item data for the category
*
* @access public
* @return array
*/
function getData()
{
// Lets load the content if it doesn't already exist
if (empty($this->_data))
{
$areas = $this->getAreas();
JPluginHelper::importPlugin( 'search' );
$dispatcher =& JDispatcher::getInstance();
$results = $dispatcher->trigger( 'onSearch', array(
$this->getState('keyword'),
$this->getState('match'),
$this->getState('ordering'),
$areas['active']) );
$rows = array();
foreach($results AS $result) {
$rows = array_merge( (array) $rows, (array) $result);
}
$this->_total = count($rows);
if($this->getState('limit') > 0) {
$this->_data = array_splice($rows, $this->getState('limitstart'), $this->getState('limit'));
} else {
$this->_data = $rows;
}
/* >>> ADDED: Run content plugins over results */
$mainframe =& JFactory::getApplication();
$params =& $mainframe->getParams( 'com_content' );
$params->set( 'nn_search', 1 );
foreach( $this->_data as $item ) {
if ( $item->text != '' ) {
$results = $dispatcher->trigger( 'onPrepareContent', array ( &$item, &$params, 0 ) );
// strip html tags from title
$item->title = strip_tags( $item->title );
}
}
/* <<< */
}
return $this->_data;
}
/**
* Method to get the total number of weblink items for the category
*
* @access public
* @return integer
*/
function getTotal()
{
return $this->_total;
}
/**
* Method to get a pagination object of the weblink items for the category
*
* @access public
* @return integer
*/
function getPagination()
{
// Lets load the content if it doesn't already exist
if (empty($this->_pagination))
{
jimport('joomla.html.pagination');
$this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
}
return $this->_pagination;
}
/**
* Method to get the search areas
*
* @since 1.5
*/
function getAreas()
{
global $mainframe;
// Load the Category data
if (empty($this->_areas['search']))
{
$areas = array();
JPluginHelper::importPlugin( 'search' );
$dispatcher =& JDispatcher::getInstance();
$searchareas = $dispatcher->trigger( 'onSearchAreas' );
foreach ($searchareas as $area) {
$areas = array_merge( $areas, $area );
}
$this->_areas['search'] = $areas;
}
return $this->_areas;
}
}