Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемМихаил Чаадаев
1 Drupal.= Яндекс.Сервер; DrupalConf. Москва
2 Организатор конференции DrupalConf 2011
3 Генеральный спонсор
4 Серебряные спонсоры Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru
5 Кого не хватает?
6 Вот он FreeBSD 6.3, 7.0 (32/64) Linux 2.6.x (32/64) Windows 2000/XP/2003 (32/64) Файлы HTTP Базы данных (ODBC) Русский Быстрый Гибкий
7 Это и другое Как yandex.ru Русский, английский, украинский (морфология, диакри́тика) Язык запросов Операторы. Поиск в атрибутах Индексирование без остановки Управление по HTTP. Веб-интерфейс Результаты в XML. C дополнительными данными
8 Установка (Linux) $ sudo dpkg -i Yandex_Server Linux-x86_64.deb $ cat /usr/local/etc/yandex/yandex.cfg $ sudo /etc/init.d/yandex-server.sh restart
9 Язык запросов
10 Как обычно устроен поиск Модуль индексирования Индекс Модуль поиска Поиск
11 Есть такой модуль...
12 ... yserver Сейчас: Ожидается: Зависимости (PHP): PHP SimpleXML Extension PHP cURL Extension Drupal Search Module [Core]
13 Выгрузка для индексирования Cron: */30 * * * * /usr/bin/wget -O - -q -t 1\ && /path_to_yserver_script/yserver.sh reindex
14 Выгрузилось для индексирования
15 Области индексирования function your_module_init() { if (function_exists('yserver_remove_areas')) { // Удалим все определенные // ранее области индексирования. yserver_remove_areas(); your_module_set_area('node', array('your_module_get_node_ilist'), array('yserver_get_node_idata')); }}...
nid] = $record->changed; } " title="Задание области индексирования function your_module_get_node_ilist() { $query = "SELECT nid, changed FROM {node} WHERE status = 1"; $result = db_query($query); $nids = array(); foreach ($result as $record) { $nids[$record->nid] = $record->changed; } " class="link_thumb"> 16 Задание области индексирования function your_module_get_node_ilist() { $query = "SELECT nid, changed FROM {node} WHERE status = 1"; $result = db_query($query); $nids = array(); foreach ($result as $record) { $nids[$record->nid] = $record->changed; } return $nids; } Получить список (id => время изменения) nid] = $record->changed; } "> nid] = $record->changed; } return $nids; } Получить список (id => время изменения)"> nid] = $record->changed; } " title="Задание области индексирования function your_module_get_node_ilist() { $query = "SELECT nid, changed FROM {node} WHERE status = 1"; $result = db_query($query); $nids = array(); foreach ($result as $record) { $nids[$record->nid] = $record->changed; } ">
17 Задание области индексирования function your_module_get_node_idata ($nid) { $node = node_load($nid); $icontent = ' '. $node->title. ' '. render(node_view($node, 'full')); $ialias = drupal_get_path_alias( 'node/'. $nid); return array( 'content' => $icontent, 'attrs' => array( 'ys_title' => $node->title, 'ys_link' => $ialias, )); } Получить для id контент и атрибуты
18 Чистая форма поиска function your_module_form_search_block_form_alter(&$form,$form_state) { $form['#submit'] = array('your_module_search_box_form_submit'); } function your_module_search_box_form_submit($form, &$form_state) { $form_id = $form['form_id']['#value']; // Текст из поисковой формы. $keys = $form_state['values'][$form_id]; $path = 'search/yserver/'. trim($keys. //$path.= ' ys_tag:football'; $form_state['redirect'] = $path; } URL (строка браузера): Поисковая форма: зенит чемпион
19 Вывод данных в SERP template.php: function your_theme_preprocess_search_result(&$variables) { dvm($variables['result']['ys_attrs']); } search-result.tpl.php: print $ys_attrs['type']. ', '. $ys_attrs['subtype']. ':::'. $ys_attrs['address']; print $snippet;
20 Конец СПАСИБО!
21 Организатор конференции DrupalConf 2011
22 Генеральный спонсор
23 Серебряные спонсоры Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.