LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 03:52:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Поиск только в выбранных разделах сайта  (Прочитано 5031 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Murz
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 41


« : 16.11.2005, 08:14:26 »

Можно ли сделать в стандартном компоненте поиска (com_search) поиск не по всему сайту, а только по выбранным модулям и по категориям? чтобы посетитель мог искать не по всему сайту, а  только в разделах сайта, в которых необходимо?
Или может какие-то альтернативные компоненты для этого существуют? Что-то поискал-поискал, да не нашёл ничего Cry, а заказчик - хочет этого!
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #1 : 16.11.2005, 13:06:17 »

ну чисто теоретически можно переписать стандартный поисковый бот, чтобы он понимал параметры ограничения зоны поиска... и подправить форму поиска, чтобы она эти параметры устанавливала
Записан
dinger
Гость
« Ответ #2 : 20.03.2006, 14:09:37 »

Такая же проблема! Если есть варианты решения напишите.
Записан
Vice
Гость
« Ответ #3 : 21.03.2006, 16:18:16 »

Присоединяюсь к просьбе
Записан
pr-web
Гость
« Ответ #4 : 07.11.2006, 08:52:21 »

Подскажите плиз как можно сделать поиск только в одном (2, 3) разделе, а не на всём сайте.
Записан
pr-web
Гость
« Ответ #5 : 07.11.2006, 11:24:31 »

Неужели из тех 850+ просмотров никто не смог дать дельного совета на этот вопрос?
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #6 : 07.11.2006, 11:30:13 »

Неужели из тех 850+ просмотров никто не смог дать дельного совета на этот вопрос?
хм, совет-то я дал, и если ему последовать, то получить желаемое несложно...
Записан
pr-web
Гость
« Ответ #7 : 07.11.2006, 12:09:00 »

хм, совет-то я дал, и если ему последовать, то получить желаемое несложно...
т.е. готового варианта нету так?
жаль, а что делать человеку незнакомому с пхп?
Я вот к примеру совсем не знаю ПХП, мне что учить его ради одного только поиска?
2 Smart, может поможете с решением данного вопроса?
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #8 : 07.11.2006, 12:26:04 »

т.е. готового варианта нету так?
нет, готового варианта я не видел...

жаль, а что делать человеку незнакомому с пхп?
Я вот к примеру совсем не знаю ПХП, мне что учить его ради одного только поиска?
как бы это цинично не звучало, но наверно платить тем, кто знает и может решить данную проблему...

2 Smart, может поможете с решением данного вопроса?
рад бы, да просто физически не смогу сделать из-за банального дефицита времени...
Записан
Dronch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #9 : 12.04.2011, 18:05:25 »

Сделал решение. Не скажу, что изящное. Работает в версии 1.5.20.

В файле /plugins/search/content.php Есть такие сторки (139-161)
Код:
$query = 'SELECT a.title AS title, a.metadesc, a.metakey,'
. ' a.created AS created,'
. ' CONCAT(a.introtext, a.fulltext) AS text,'
. ' 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

Их нужно заменить на

Код:
$query = 'SELECT a.title AS title, a.metadesc, a.metakey, a.sectionid,'
. ' a.created AS created,'
. ' CONCAT(a.introtext, a.fulltext) AS text,'
. ' 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.sectionid != 1'
. ' 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

В строчке «. ' AND a.sectionid != 1'» Нужно заменить цифру «1» на «id» раздела, который не должен учитываться поиском. Т.е. все содержимое этого раздела, не будет искаться.
Общий смысл в том, что из запроса поиска к базе данных, убираются указанные разделы.
Записан
blugirl-blugirl
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 5


Don't panic. We live in a beautiful world.


« Ответ #10 : 14.12.2011, 17:51:27 »

Dronch, спасибо помогло. Результаты теперь только в прайсе ищет.
Скажите мне, как результаты поиска вывести в таблице? Ну или хотя бы читаемо?
Заказчику не нравиться, что все результаты в одну строку и в тексте никак не выделяются. Пробовала различные модули поиска, изменений в выводе результата нет. Чувствую, что надо что-то менять в default_form.php....
Записан
Dronch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #11 : 14.12.2011, 18:06:11 »

...и в тексте никак не выделяются...
Если ты имеешь ввиду подсвечивание искомого слова в результате поиска. Тогда тебе сюда. Только я писал:
Код:
.highlight {
font-weight: bold;
color: #FF6600;
}
И не в основном CSS файле, а в typo.css. Тут все зависит от шаблона.

Что значит результаты поиска в одну строку? Есть пример?
Записан
blugirl-blugirl
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 5


Don't panic. We live in a beautiful world.


« Ответ #12 : 14.12.2011, 18:32:08 »

Dronch, вот так работает у меня :

примерно так хотел бы заказчик :


с подсветкой понятно, спасибо!
« Последнее редактирование: 14.12.2011, 18:35:41 от blugirl-blugirl » Записан
Dronch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #13 : 14.12.2011, 18:36:17 »

Dronch, вот так работает у меня :

примерно так хотел бы заказчик :


с подсветкой понятно, спасибо )

Тут нужно корячить файл default_results.php в com_search. Он выводит результат поиска. Вставлять в него таблицу.
Записан
blugirl-blugirl
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 5


Don't panic. We live in a beautiful world.


« Ответ #14 : 15.12.2011, 13:21:21 »

Попробую посидеть с выводом результатов, отпишусь тогда.
Записан
blugirl-blugirl
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 5


Don't panic. We live in a beautiful world.


« Ответ #15 : 19.12.2011, 13:35:13 »

Решила, что красиво вывод результатов самой мне не написать, нашла и поставила iJoomla Search & Archive, там есть вывод результатов поиска в виде таблицы. Компонент отлично встал, а при установке модуля ошибка выскакивает:

Warning: JInstaller::require_once [function.JInstaller-require-once]: failed to open stream: No such file or directory in *** on line 216
Fatal error: JInstaller::require_once() [function.require]: Failed opening required (include_path='.;/usr/local/php5/PEAR') in *** on line 216
line 216: require_once(dirname(__FILE__).DS.'adapters'.DS.strtolower($name).'.php');

не могу понять почему.....
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet