Source for file content.searchbot.php
Documentation is available at content.searchbot.php
* @author Mambo Foundation Inc see README.php
* @copyright Mambo Foundation Inc.
* See COPYRIGHT.php for copyright notices and details.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see
* Mambo is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; version 2 of the
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onSearch', 'botSearchContent' );
* 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
global $mosConfig_absolute_path, $mosConfig_offset;
$_SESSION['searchword'] =
$text;
$now =
date( "Y-m-d H:i:s", time()+
$mosConfig_offset*
60*
60 );
$wheres2[] =
"LOWER(a.title) LIKE '%$text%'";
$wheres2[] =
"LOWER(a.introtext) LIKE '%$text%'";
$wheres2[] =
"LOWER(a.fulltext) LIKE '%$text%'";
$wheres2[] =
"LOWER(a.metakey) LIKE '%$text%'";
$wheres2[] =
"LOWER(a.metadesc) LIKE '%$text%'";
$where =
'(' .
implode( ') OR (', $wheres2 ) .
')';
foreach ($words as $word) {
$wheres2[] =
"LOWER(a.title) LIKE '%$word%'";
$wheres2[] =
"LOWER(a.introtext) LIKE '%$word%'";
$wheres2[] =
"LOWER(a.fulltext) LIKE '%$word%'";
$wheres2[] =
"LOWER(a.metakey) LIKE '%$word%'";
$wheres2[] =
"LOWER(a.metadesc) LIKE '%$word%'";
$wheres[] =
implode( ' OR ', $wheres2 );
$where =
'(' .
implode( ($phrase ==
'all' ?
') AND (' :
') OR ('), $wheres ) .
')';
$order =
'a.created DESC';
$order =
'a.created ASC';
$order =
'b.title ASC, a.title ASC';
$sql =
"SELECT a.title AS title,"
.
"\n a.created AS created,"
.
"\n CONCAT(a.introtext, a.fulltext) AS text,"
.
"\n CONCAT_WS( '/', u.title, b.title ) AS section,";
$sql .=
"\n CONCAT( 'index.php?option=com_content&task=view&id=', a.id ) AS href,";
$sql .=
"\n '2' AS browsernav"
.
"\n FROM #__content AS a"
.
"\n INNER JOIN #__categories AS b ON b.id=a.catid AND b.access <= '$my->gid'"
.
"\n LEFT JOIN #__sections AS u ON u.id = a.sectionid"
.
"\n AND a.access <= '$my->gid'"
.
"\n AND u.published = '1'"
.
"\n AND b.published = '1'"
.
"\n AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )"
.
"\n AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )"
$database->setQuery( $sql );
$list =
$database->loadObjectList();
$database->setQuery( "SELECT a.title AS title, a.created AS created,"
.
"\n a.introtext AS text,"
.
"\n CONCAT( 'index.php?option=com_content&task=view&id=', a.id, '&Itemid=', m.id ) AS href,"
.
"\n '2' as browsernav, 'Menu' AS section"
.
"\n FROM #__content AS a"
.
"\n LEFT JOIN #__menu AS m ON m.componentid = a.id"
.
"\n AND a.state='1' AND a.access<='$my->gid' AND m.type='content_typed'"
.
"\n AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )"
.
"\n AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )"
.
"\n ORDER BY " .
($morder ?
$morder :
$order)
$list2 =
$database->loadObjectList();
// search archived content
$database->setQuery( "SELECT a.title AS title,"
.
"\n a.created AS created,"
.
"\n a.introtext AS text,"
.
"\n CONCAT_WS( '/', 'Archived ', u.title, b.title ) AS section,"
.
"\n CONCAT('index.php?option=com_content&task=view&id=',a.id) AS href,"
.
"\n FROM #__content AS a"
.
"\n INNER JOIN #__categories AS b ON b.id=a.catid AND b.access <='$my->gid'"
.
"\n LEFT JOIN #__sections AS u ON u.id = a.sectionid"
.
"\n AND a.state = '-1' AND a.access <= '$my->gid'"
.
"\n AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )"
.
"\n AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )"
$list3 =
$database->loadObjectList();
Documentation generated on Mon, 05 May 2008 16:18:35 +0400 by phpDocumentor 1.4.0