MODx/Встроенные сниппеты/AjaxSearch: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 46: Строка 46:


==Проблема с языком==
==Проблема с языком==
Вопрос:Как сделать чтобы на кнопке в форме поиска вместо "Go!" выводилось "Поиск"?
'''''Вопрос:'''''Как сделать чтобы на кнопке в форме поиска вместо "Go!" выводилось "Поиск"?


Ответ: Для начала просто настроить используемый язык:
'''''Ответ:''''' Для начала просто настроить используемый язык:


&language=`russian-uft8`, или: &language=`russian`
&language=`russian-uft8`, или: &language=`russian`


Если ни чего не помогает то можно воспользоваться либо готовым переводом, либо пе ревести самостоятельно (аменить стандартный english.inc.php на переведённый вами). Языковые файлы находятся тут: assets/snippets/AjaxSearch/lang .
Если это не помогает то можно воспользоваться либо готовым переводом, либо пе ревести самостоятельно (Взять стандартный english.inc.php , перевести и положить в папку с языками (желательно с другим именем)). Языковые файлы находятся тут: assets/snippets/AjaxSearch/lang .


В самом скрипте есть 2 строчки.
''Первая:''

<code>#include default language file
include($snipPath."AjaxSearch/lang/english.inc.php");
</code>

Здесь написано что Я зыком по умолчанию будет язык английский. Точнее язык по у молчанию берётся из файла "english.inc.php". по желанию можно заменить на родной, заменив текущее имя на нужный файл. (ДЛя начала убедитесь что такой файл существует в языковой папке.)

''Вторая:''

<code>#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";
</code>

Здесь на писано что с крипт примет к сведению все языковые файлы, находящиеся по указанному выше пути.


==Примечание==
==Примечание==

Версия от 15:31, 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 .

В самом скрипте есть 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";

Здесь на писано что с крипт примет к сведению все языковые файлы, находящиеся по указанному выше пути.

Примечание

Для работы кода этого сниппета в шаблон необходимо включить вызов javascript-библиотеки MooTools. Это будет сделано автоматически, если параметр &addJscript не установлен в 0.

Ссылки

Modx wiki - ajax search на английском