Пошук для Drupal
Модуль пошуку, що включено до модулів ядра CMF Drupal має два неприємних недоліки:
- відрутність морфології для української та російської мов;
- ресурсомісткість (тормознутість;)
Існує ряд інших відкритих проектів по реалізації full-text пошуку для веб-сайтів, які можуть бути інтегровані у фреймворк Друпал:
але системи такого рівня недоцільно використовувати для малих та середніх сайтів — достатньо Google Custom Search Engine. Як плату за такий сервіс Google буде розміщувати рекламні оголошення у результатах пошуку по вашому сайту. Але таку "несправедливість" можна подолати — достатньо замість CSE використати
Google AdSense для пошуку
і ви також будете отримувати прибуток від переходів по цим оголошенням. Для цього потрібно:
1. створити акаунт на Google AdSense;
2. в адмінці Drupal створити блок, де буде розміщуватися форма пошуку (формат вводу встановити PHP code);
3. створити сторінку для виводу результатів пошуку (формат вводу встановити PHP code та відключити коментарі), URL цієї сторінки необхідно буде вказати під час створення AdSense для пошуку. Для прикладу нехай це буде
http://example.com/?q=node/27
4. отримати код для форми пошуку та вставити у створений блок
<form action="http://example.com/?q=node/27" id="cse-search-box">
<div>
<input type="hidden" name="cx" value="partner-pub-xxxxxxxxxxxxxxxx:8dgt829ml2h" />
<input type="hidden" name="cof" value="FORID:11" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" name="q" size="27" />
<input type="submit" name="sa" value="Search" />
</div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>5. отримати код для сторінки, на яку будуть виводитися результати пошуку та вставити у створену сторінку http://example.com/?q=node/27
<div id="cse-search-results"></div>
<script type="text/javascript">
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth = 530;
var googleSearchDomain = "www.google.com.ua";
var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>В результаті у нас нічого не працює оскільки Google та Drupal використовують в url однакове "q".
6. Виправляємо ситуацію так:
Щоб позбутися "q" в адресах сайту активуємо чисті лінки (Clean URLs) в адмінці Друпал:
замість http://example.com/?q=node/27
отримуємо http://example.com/node/27
а за допомогою модуля ядра path, можна створити аліас http://example.com/cse
Правим код для форми пошуку — замінюємо name="q" на name="as_q". В кінцевому результаті маємо
<form action="http://example.com/cse" id="cse-search-box">
<div>
<input type="hidden" name="cx" value="partner-pub-xxxxxxxxxxxxxxxx:8dgt829ml2h" />
<input type="hidden" name="cof" value="FORID:11" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" name="as_q" size="27" />
<input type="submit" name="sa" value="Search" />
</div>
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>Готово.
Єдиний побічний ефект, викликаний модифікацією коду форми — відсутність
![]()
але і це також можна подолати.
- romand веблог
- Увійдіть або зареєструйтесь щоб залишати відгуки

Відгуки
я пропатчив rustemmer і його використовую без проблем
шукає нормально!
Привіт!
І українська морфологія також працює?
А на рахунок gravatar — не бачу перспектив у цього сервісу, такій функціональності місце у OpenID.
вбільшості випадків так: працює
http://my.ukrweb.info/ru/2008/05/3/rustemmer-drupal-6-drupal-5
ось тут
і постав gravatar!!!
Дякую, згодилося. Тільки нещодавно міркував як би це все зробити :) Єдине чого хотілося б - повернути на місце картинку з написом у формі...
Треба замінити це:
<input type="text" name="as_q" size="27" />на це:
<input type="text" name="as_q" size="27" style="background-image:url(google.gif); background-repeat: no-repeat; border: solid 1px #7E9DB9;" onclick="this.style.backgroundImage='url()';this.onclick=null;" />і поправити шлях до зображення

повинно працювати :)
Працює, дякую дуже