Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Joomla »

Modiicar el buscador

Estas en el tema de Modiicar el buscador en el foro de Joomla en Foros del Web. Estoy intentando modificar el buscador de joomla que viene de serie para que al buscar te aparezcan los articulos completos y no el titulo solo ...
  #1 (permalink)  
Antiguo 27/12/2008, 02:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 48
Antigüedad: 16 años
Puntos: 0
Modiicar el buscador

Estoy intentando modificar el buscador de joomla que viene de serie para que al buscar te aparezcan los articulos completos y no el titulo solo

Lo e intentado de mil maneras y no se como hacerlo, si alguien sabe como hacerlo me seria de gran ayuda

Un saludo
__________________
www.sexcontrollers.com
  #2 (permalink)  
Antiguo 13/02/2009, 10:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 48
Antigüedad: 16 años
Puntos: 0
Respuesta: Modiicar el buscador

estado mirando y creo ke ay ke modificar esto

<?php
/**
* @version $Id: content.php 10860 2008-08-30 06:45:31Z willebil $
* @package Joomla
* @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.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

$mainframe->registerEvent( 'onSearch', 'plgSearchContent' );
$mainframe->registerEvent( 'onSearchAreas', 'plgSearchContentAreas' );

JPlugin::loadLanguage( 'plg_search_content' );

/**
* @return array An array of search areas
*/
function &plgSearchContentAreas()
{
static $areas = array(
'content' => 'Articles'
);
return $areas;
}

/**
* 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
* @param mixed An array if the search it to be restricted to areas, null if search all
*/
function plgSearchContent( $text, $phrase='', $ordering='', $areas=null )
{
global $mainframe;

$db =& JFactory::getDBO();
$user =& JFactory::getUser();

require_once(JPATH_SITE.DS.'components'.DS.'com_co ntent'.DS.'helpers'.DS.'route.php');
require_once(JPATH_SITE.DS.'administrator'.DS.'com ponents'.DS.'com_search'.DS.'helpers'.DS.'search.p hp');

$searchText = $text;
if (is_array( $areas )) {
if (!array_intersect( $areas, array_keys( plgSearchContentAreas() ) )) {
return array();
}
}

// load plugin params info
$plugin =& JPluginHelper::getPlugin('search', 'content');
$pluginParams = new JParameter( $plugin->params );

$sContent = $pluginParams->get( 'search_content', 1 );
$sUncategorised = $pluginParams->get( 'search_uncategorised', 1 );
$sArchived = $pluginParams->get( 'search_archived', 1 );
$limit = $pluginParams->def( 'search_limit', 50 );

$nullDate = $db->getNullDate();
$date =& JFactory::getDate();
$now = $date->toMySQL();

$text = trim( $text );
if ($text == '') {
return array();
}

$wheres = array();
switch ($phrase) {
case 'exact':
$text = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false );
$wheres2 = array();
$wheres2[] = 'a.title LIKE '.$text;
$wheres2[] = 'a.introtext LIKE '.$text;
$wheres2[] = 'a.`fulltext` LIKE '.$text;
$wheres2[] = 'a.metakey LIKE '.$text;
$wheres2[] = 'a.metadesc LIKE '.$text;
$where = '(' . implode( ') OR (', $wheres2 ) . ')';
break;

case 'all':
case 'any':
default:
$words = explode( ' ', $text );
$wheres = array();
foreach ($words as $word) {
$word = $db->Quote( '%'.$db->getEscaped( $word, true ).'%', false );
$wheres2 = array();
$wheres2[] = 'a.title LIKE '.$word;
$wheres2[] = 'a.introtext LIKE '.$word;
$wheres2[] = 'a.`fulltext` LIKE '.$word;
$wheres2[] = 'a.metakey LIKE '.$word;
$wheres2[] = 'a.metadesc LIKE '.$word;
$wheres[] = implode( ' OR ', $wheres2 );
}
$where = '(' . implode( ($phrase == 'all' ? ') AND (' : ') OR ('), $wheres ) . ')';
break;
}

$morder = '';
switch ($ordering) {
case 'oldest':
$order = 'a.created ASC';
break;

case 'popular':
$order = 'a.hits DESC';
break;

case 'alpha':
$order = 'a.title ASC';
break;

case 'category':
$order = 'b.title ASC, a.title ASC';
$morder = 'a.title ASC';
break;

case 'newest':
default:
$order = 'a.created DESC';
break;
}

$rows = array();

// search articles
if ( $sContent && $limit > 0 )
{
$query = 'SELECT a.Content AS Content, a.metadesc, a.metakey,'
. ' a.created AS created,'
. ' CONCAT(a.introContent, a.`fullContent`) AS Content,'
. ' CONCAT_WS( "/", u.title, b.title ) AS section,'
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'
. ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,'
. ' u.id AS sectionid,'
. ' "2" AS browsernav'
. ' FROM #__content AS a'
. ' INNER JOIN #__categories AS b ON b.id=a.catid'
. ' INNER JOIN #__sections AS u ON u.id = a.sectionid'
. ' WHERE ( '.$where.' )'
. ' AND a.state = 1'
. ' AND u.published = 1'
. ' AND b.published = 1'
. ' AND a.access <= '.(int) $user->get( 'aid' )
. ' AND b.access <= '.(int) $user->get( 'aid' )
. ' AND u.access <= '.(int) $user->get( 'aid' )
. ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
. ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
. ' GROUP BY a.id'
. ' ORDER BY '. $order
;
$db->setQuery( $query, 0, $limit );
$list = $db->loadObjectList();
$limit -= count($list);

if(isset($list))
{
foreach($list as $key => $item)
{
$list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid);
}
}
$rows[] = $list;
}

// search uncategorised content
if ( $sUncategorised && $limit > 0 )
{
$query = 'SELECT id, a.title AS title, a.created AS created, a.metadesc, a.metakey, '
. ' a.introtext AS text,'
. ' "2" as browsernav, "'. $db->Quote(JText::_('Uncategorised Content')) .'" AS section'
. ' FROM #__content AS a'
. ' WHERE ('.$where.')'
. ' AND a.state = 1'
. ' AND a.access <= '.(int) $user->get( 'aid' )
. ' AND a.sectionid = 0'
. ' AND a.catid = 0'
. ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
. ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
. ' ORDER BY '. ($morder ? $morder : $order)
;
$db->setQuery( $query, 0, $limit );
$list2 = $db->loadObjectList();
$limit -= count($list2);

if(isset($list2))
{
foreach($list2 as $key => $item)
{
$list2[$key]->href = ContentHelperRoute::getArticleRoute($item->id);
}
}

$rows[] = $list2;
}

// search archived content
if ( $sArchived && $limit > 0 )
{
$searchArchived = JText::_( 'Archived' );

$query = 'SELECT a.title AS title, a.metadesc, a.metakey,'
. ' a.created AS created,'
. ' a.introtext AS text,'
. ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'
. ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,'
. ' u.id AS sectionid,'
. ' "2" AS browsernav'
. ' FROM #__content AS a'
. ' INNER JOIN #__categories AS b ON b.id=a.catid AND b.access <= ' .$user->get( 'gid' )
. ' INNER JOIN #__sections AS u ON u.id = a.sectionid'
. ' WHERE ( '.$where.' )'
. ' AND a.state = -1'
. ' AND u.published = 1'
. ' AND b.published = 1'
. ' AND a.access <= '.(int) $user->get( 'aid' )
. ' AND b.access <= '.(int) $user->get( 'aid' )
. ' AND u.access <= '.(int) $user->get( 'aid' )
. ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
. ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
. ' ORDER BY '. $order
;
$db->setQuery( $query, 0, $limit );
$list3 = $db->loadObjectList();

if(isset($list3))
{
foreach($list3 as $key => $item)
{
$list3[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid);
}
}

$rows[] = $list3;
}

$results = array();
if(count($rows))
{
foreach($rows as $row)
{
$new_row = array();
foreach($row AS $key => $article) {
if(searchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) {
$new_row[] = $article;
}
}
$results = array_merge($results, (array) $new_row);
}
}

return $results;
}
__________________
www.sexcontrollers.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:26.