MODx/Встроенные сниппеты/AjaxSearch: различия между версиями
Строка 77: | Строка 77: | ||
Здесь на писано что с крипт примет к сведению все языковые файлы, находящиеся по указанному выше пути. |
Здесь на писано что с крипт примет к сведению все языковые файлы, находящиеся по указанному выше пути. |
||
Можно использовать этот перевод: |
|||
<code> |
|||
<?php |
|||
/* |
|||
english.inc.php - for AjaxSearch 1.5 |
|||
Created by: KyleJ (kjaebker@muddydogpaws.com) |
|||
Created on: 01/22/07 |
|||
Description: Language strings for AjaxSearch |
|||
*/ |
|||
$_lang['as_resultsIntroFailure'] = 'Нет результатов. Попробуйте изменить запрос.'; |
|||
$_lang['as_searchButtonText'] = 'Поиск!'; |
|||
$_lang['as_boxText'] = 'Поискать здесь...'; |
|||
$_lang['as_introMessage'] = 'Введите ключевое слово(а) для поиска.'; |
|||
$_lang['as_resultsFoundTextSingle'] = '%d результатов найдено для "%s".'; |
|||
$_lang['as_resultsFoundTextMultiple'] = '%d результатов найдено для "%s".'; |
|||
$_lang['as_paginationTextSinglePage'] = ''; |
|||
$_lang['as_paginationTextMultiplePages'] = 'Страница результатов: '; |
|||
$_lang['as_moreResultsText'] = 'Нажмите чтобы увидеть все результаты.'; |
|||
$_lang['as_moreResultsTitle'] = 'Больше'; |
|||
?> |
|||
</code> |
|||
Для этого скопируйте всё что выделено зелёным, откройте не редактирование english.inc.php и (предварительно забэкапив :)) замените тело документа. Затем сохраните в '''необходимой кодеровке'''. Вышеописанное можно (как провило) сделать через встроенный редактор в панель управления хостингом. |
|||
==Примечание== |
==Примечание== |
Версия от 15:59, 14 мая 2008
Информация
Назначение: позволяет пользователям производить поиск по сайту, не покидая страницы, на которой они находятся. Результаты возвращаются посредством запроса ajax и выводятся в окно результата ниже формы поискового запроса. (Если у пользователя отключен JavaScript, результаты выводятся в отдельном окне)
Пример вызова в шаблоне
[!AjaxSearch? &AS_showResults=`0` &AS_landing=`17` &showMoreResults=`1` &moreResultsPage=`17`!]
Параметры:
- &ajaxSearch [ 0 | 1 ] (по умолчанию — 1) — включен ли AJAX.
- &ajaxSearchType [ 0 | 1 ] (по умолчанию — 0) — ‘1’ включает «живой» поиск.
- &ajaxMax [целое] (по умолчанию — 5) — число результатов, выводимых при использовании ajax.
- &showMoreResults [ 0 | 1 ] (по умолчанию — 1) — показывать ссылку «все результаты» при использовании AJAX.
- &moreResultsPage [целое] (по умолчанию — 1) — ID страницы «все результаты». Эта страница должна также содержать вызов сниппета.
- &addJscript [ 0 | 1 ] (по умолчанию — 1) — автоматическое подключение к странице библиотеки MooTools.
- &AS_showForm [ 0 | 1 ] (по умолчанию — 1) — показывать форму запроса вместе с результатами.
- &AS_landing [ 0 | 1 ] (по умолчанию — 1) — ID документа результатов поиска, когда не используется ajax.
- &AS_showResults [ 0 | 1 ] (по умолчанию — 1) — показывать результаты вместе со сниппетом, если не используется ajax.
- &extract [ 0 | 1 ] (по умолчанию — 1) — показывать выдержки из найденных страниц, включая подсветку ключевых слов.
- &grabMax [целое] (по умолчанию — 10) — число результатов на странице (при поиске без ajax или для «все результаты»).
Стили
Стили, определяющие вид панели поиска:
- #ajaxSearch_form
- #ajaxSearch_input
- #ajaxSearch_submit
- #ajaxSearch_output
- .ajaxSearch_paging
- .AS_ajax_result
- .AS_ajax_resultLink
- .AS_ajax_resultDescription
- .AS_ajax_more
Пример использования
В AjaxSearch все достаточно просто. Вызываешь в нужных местах сниппет и, используя два параметра &AS_showResults и &AS_showForm, заставляешь его показывать форму/результаты.
Например, если надо, чтобы на каждой странице была форма для поиска, а результаты открывались на отдельной странице, то надо так: Создать страницу, где будут результаты поиска. На ней вызывать сниппет с параметром &AS_showResults=`1` и, если надо форму поиска, то добавляешь &AS_showForm=`1` и &AS_landing=`id`. В шаблоне странице в месте для фомы поиска вставляешь вызов сниппет AjaxSearch с параметром &AS_showForm=`1`, &AS_showResults=`0` и &AS_landing=`указываешь ID документа, для результатов поиска`. Выше описан вызов поиска сниппетом AjaxSearch без использования технологии Ajax, поэтому во все вызовы надо добавить параметр &ajaxSearch = `0`.
Проблема с языком
Вопрос:Как сделать чтобы на кнопке в форме поиска вместо "Go!" выводилось "Поиск"?
Ответ: Для начала просто настроить используемый язык:
&language=`russian-uft8`, или: &language=`russian`
Если это не помогает то можно воспользоваться либо готовым переводом, либо пе ревести самостоятельно (Взять стандартный english.inc.php , перевести и положить в папку с языками (желательно с другим именем)). Языковые файлы находятся тут: assets/snippets/AjaxSearch/lang . (Соответственно попытка использовать &language=`russian-uft8` целесообразна только в том случае если в папке /lang есть файл вида "russian.inc.php" или "russian-utf8.inc.php" )
В самом скрипте есть 2 строчки.
Первая:
#include default language file
include($snipPath."AjaxSearch/lang/english.inc.php");
Здесь написано что Я зыком по умолчанию будет язык английский. Точнее язык по у молчанию берётся из файла "english.inc.php". по желанию можно заменить на родной, заменив текущее имя на нужный файл. (ДЛя начала убедитесь что такой файл существует в языковой папке.)
Вторая:
#include other language file if set.
$as_language = isset($language) ? $language : $modx->config['manager_language'];
if($as_language!="english" && $as_language != ) {
if(file_exists($snipPath ."AjaxSearch/lang/".$as_language.".inc.php"))
include $snipPath ."AjaxSearch/lang/".$as_language.".inc.php";
Здесь на писано что с крипт примет к сведению все языковые файлы, находящиеся по указанному выше пути.
Можно использовать этот перевод:
<?php
/*
english.inc.php - for AjaxSearch 1.5
Created by: KyleJ (kjaebker@muddydogpaws.com)
Created on: 01/22/07
Description: Language strings for AjaxSearch
- /
$_lang['as_resultsIntroFailure'] = 'Нет результатов. Попробуйте изменить запрос.';
$_lang['as_searchButtonText'] = 'Поиск!';
$_lang['as_boxText'] = 'Поискать здесь...';
$_lang['as_introMessage'] = 'Введите ключевое слово(а) для поиска.';
$_lang['as_resultsFoundTextSingle'] = '%d результатов найдено для "%s".';
$_lang['as_resultsFoundTextMultiple'] = '%d результатов найдено для "%s".';
$_lang['as_paginationTextSinglePage'] = ;
$_lang['as_paginationTextMultiplePages'] = 'Страница результатов: ';
$_lang['as_moreResultsText'] = 'Нажмите чтобы увидеть все результаты.';
$_lang['as_moreResultsTitle'] = 'Больше';
?>
Для этого скопируйте всё что выделено зелёным, откройте не редактирование english.inc.php и (предварительно забэкапив :)) замените тело документа. Затем сохраните в необходимой кодеровке. Вышеописанное можно (как провило) сделать через встроенный редактор в панель управления хостингом.
Примечание
Для работы кода этого сниппета в шаблон необходимо включить вызов javascript-библиотеки MooTools. Это будет сделано автоматически, если параметр &addJscript не установлен в 0.