Поиск Joomla только по заголовкам
Настала потребность сделать поиск обычных материалов Joomla 2.5 только в заголовках. Чтобы если поисковая фраза совпадает с заголовком, то отдавался в результатах поиска. Если совпадения только с текстом материала, то нет.Нам нужен файл /plugins/search/content/content.php
Здесь нужен кусок кода с 73 строки:
switch ($phrase) {
case 'exact':
$text = $db->Quote('%'.$db->escape($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->escape($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;
}
Как видно, я закомментировал те опции поиска, которые не нужны, и оставил только title.
Ещё можно исключить поиск по материалам компонента K2. Способ варварский, но действенный. Нам нужен файл /plugins/search/k2/k2.php. В строке 216 перечислены области поиска. Делаем их пустыми:
if (searchHelper::checkNoHTML($item, $searchText, array('')))