All pastes #942967 Raw Edit

Unbenannt

public php v1 · immutable
·published 2008-03-14 21:25 UTC
rendered paste body
<?php/*** @version $Id: content.searchbot.php 1490 2005-12-20 15:53:29Z Jinx $* @package Joomla* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.* @license http://www.gnu.org/copyleft/gpl.html 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.*/// no direct accessdefined( '_VALID_MOS' ) or die( 'Restricted access' );$_MAMBOTS->registerFunction( 'onSearch', 'botSearchSchalter' );/*** 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 mathcing option, exact|any|all* @param string ordering option, newest|oldest|popular|alpha|category*/function botSearchSchalter( $text, $phrase='', $ordering='' ) {	global $my, $database;	global $mosConfig_offset;	// load mambot params info	$query = "SELECT id"	. "\n FROM #__mambots"	. "\n WHERE element = 'schalter.searchbot'"	. "\n AND folder = 'search'"	;	$database->setQuery( $query );	$id 	= $database->loadResult();	$mambot = new mosMambot( $database );	$mambot->load( $id );	$botParams = new mosParameters( $mambot->params );		$limit 		= $botParams->def( 'search_limit', 50 );	$nullDate 	= $database->getNullDate();	$now 		= date( 'Y-m-d H:i:s', time()+$mosConfig_offset*60*60 );		$text = trim( $text );	if ($text == '') {		return array();	}	$wheres = array();	switch ($phrase) {		case 'exact':			$wheres2 	= array();			$wheres2[] 	= "LOWER(a.name) LIKE '%$text%'";			$where 		= '(' . implode( ') OR (', $wheres2 ) . ')';			break;					case 'all':		case 'any':		default:			$words = explode( ' ', $text );			$wheres = array();			foreach ($words as $word) {				$wheres2 	= array();				$wheres2[] 	= "LOWER(a.name) LIKE '%$word%'";				$wheres[] 	= implode( ' OR ', $wheres2 );			}			$where = '(' . implode( ($phrase == 'all' ? ') AND (' : ') OR ('), $wheres ) . ')';			break;	}	$morder = '';	switch ($ordering) {		case 'oldest':			$order = 'a.datum ASC';			break;					case 'popular':			$order = 'a.hits DESC';			break;					case 'alpha':			$order = 'a.name ASC';			break;					case 'category':			$order = 'b.cat ASC, a.name ASC';			$morder = 'a.name ASC';			break;					case 'newest':		default:			$order = 'a.datum DESC';			break;			}	// search content items	$query = "SELECT a.name AS title,"	. "\n a.datum AS created,"	. "\n CONCAT( a.schalter) AS text,"	. "\n CONCAT( 'index.php?option=com_appbase&page=details&id=', a.id ,'&Itemid=467' ) AS href,"	. "\n '2' as browsernav, 'Schalterdatenbank' AS section"	. "\n FROM appbase AS a"	. "\n INNER JOIN appbase AS b ON b.cat=a.cat"	. "\n LEFT JOIN appbase AS u ON u.id = a.cat"	. "\n WHERE ( $where )"	. "\n AND a.published = '1'"	. "\n GROUP BY a.id"	. "\n ORDER BY $order"	;	$database->setQuery( $query, 0, $limit );	$list = $database->loadObjectList();	return array_merge( $list );}?>