Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Вспомогательные функции

$nc_Core->get_display_type()

Метод возвращает настройку способа отображения для текущего раздела. Если это титульная страница – возвращается настройка сайта. Если это раздел с наследованием – возвращается настройка ближайшего родителя, отличная от «Наследовать». Если в запросе есть параметр lsDisplayType – сразу возвращается этот параметр (нужно для корректной подгрузки shortpage содержимого)

 

Навигация и ссылки

nc_ls_display_link($subdivisionId = null, $animationSpeed = 0, $displayType = null, $onClick = null, $data = array())

Функция формирует специальный атрибут data-ls-display-link, который содержит JSON-объект, необходимый для корректной работы нетрадиционного отображения страницы.

Данная функция используется в теле тегов-ссылок, например, в навигации, или в ссылках на полное отображение объекта.

  • $subdivisionId – необязательный параметр, который поясняет, в каком контейнере необходимо подгрузить шортпейдж содержимое, или к какому контейнеру необходимо прокрутить longpage содержимое. В случае, если параметр не указан, shortpage содержимое будет подгружаться в контейнер на странице, который имеет атрибут data-ls-display-container. Longpage страница корректно работать не будет, так как для нее необходимо явное указание идентификатора контейнера. Идентификатор контейнера может быть числом или словом.
  • $animationSpeed  - скорость прокрутки лонгпейдж ссылки
  • $displayType – параметр позволяет явно задать, какой механизм будет реализовывать ссылка. Например, необходимо в лонгпейдж сайте обеспечить шортпейдж подгрузку полного отображения объекта. Для этого полные ссылки на объект мы снабжаем атрибутом nc_ls_display('full', 0, 'shortpage'), а в теле раздела формируем контейнер <div <?php echo nc_ls_container(‘full’); ?> > </div>. Таким образом, теперь полная ссылка будет подгружать шортпейдж контент в контейнер full, то есть будет работать специально заданным образом, отличным от способа отображения родительского сайта.
  • $onClick – параметр позволяет задать колбек на нажатие ссылки. По умолчанию вызывается коллбек: $(this).addClass('active').siblings().removeClass('active'). Коллбек задается в виде: function() { … }
  • $data – вспомогательные параметры (временные, рабочие, на стадии отладки) для реализации сложных, пока неясных моментов. Например, параметр массива skipTemplate – для принудительного пропуска шаблона.

Пример формирования навигации:

$browse_template['prefix']   = "";
$browse_template['suffix']   = "";
$browse_template['active']   = "<li class='active'><a href='%URL' " . nc_ls_display_link('%SUB', 200, null, '') . ">%NAME</a></li>";
$browse_template['unactive'] = "<li><a href='%URL' " . nc_ls_display_link('%SUB', 200, null, '') . ">%NAME</a></li>";

или ссылки на раздел

<a href="/" <?php echo nc_ls_display_link(332, 0, null, ''); ?>>Ссылка на раздел</a>

Примеры формирования атрибутов ссылок:

  • nc_ls_display_link() — ссылка будет открывать shortpage контент в контейнер на странице
  • nc_ls_display_link(12) — в случае longpage — скроллинг к контейнеру 12, в случае shortpage — контент подгрузится в контейнере 12
  • nc_ls_display_link(3, 500) — в случае longpage произойдёт скроллинг к контейнеру 3 со скоростью анимации 500
  • nc_ls_display_link('portfolio', 0 'shortpage') — ссылка будет принудительно вести себя как shortpage-ссылка и загрузит контент в контейнер с id = 'portfolio'
  • nc_ls_display_link(3, 0, null, 'function() { alert(123); }') — при нажатии на ссылку появится всплывающее окно

 

Идентификатор контейнера

nc_ls_display_container($subdivisionId = null, $onReadyScroll = false)

Функция формирует специальный атрибут data-ls-display-container, который содержит JSON-объект, необходимый для корректной работы нетрадиционного отображения страницы.

Данная функция используется в теле тегов-контейнеров, которые содержат контентную часть шортпейдж страницы, или лонгпейдж разделов.

  • $subdivisionId – параметр, задающий идентификатор контейнера (чаще всего – это идентификатор раздела, но может быть ручное задание любого имени контейнеру).
  • $onReadyScroll – параметр, сообщающий, нужно ли проскроллить страницу к данному контейнеру (необходим для того, чтобы при переходе по прямой ссылке в лонгпейдж раздел проскроллить страницу до него)

Пример использования:

<div <?php echo nc_ls_display_container('main-section'); ?>></div>

Таким образом, для того чтобы сформировать ссылку на данный контейнер, нужно указать указанный идентификатор:

<a href="/" <?php echo nc_ls_display_link('main-section', 0, null, ''); ?>>Ссылка на контейнер с id = 'main-section' </a>

Примеры формирования атрибутов контейнеров:

  • nc_ls_display_container() — сформируется атрибут контейнера без указателя
  • nc_ls_display_container(12) — сформируется атрибут контейнера с указателем 12
  • nc_ls_display_container('test') — сформируется атрибут контейнера с указателем test

 

Плавный скроллинг к указанному контейнеру

nc_ls_display_pointer($subdivisionId = null, $onReadyScroll = false)

Функция формирует специальный атрибут data-ls-display-pointer, который содержит JSON-объект, необходимый для корректной работы нетрадиционного отображения страницы.

Функция-указатель является необязательной для корректной работы, но позволяет улучшить юзабилити. При автоматическом формировании лонгпейдж-ленты, данные указатели вставляются перед каждым началом раздела, чтобы при скроллинге прокручивать странцу именно к началу раздела, а не к его контентной области (актуально в том случае, если раздел имеет свой макет-верстку.

  • $subdivisionId – параметр, задающий идентификатор указателя (чаще всего – это идентификатор раздела, но может быть ручное задание любого имени контейнеру).
  • $onReadyScroll – параметр, сообщающий, нужно ли проскроллить страницу к данному указателю (необходим для того, чтобы при переходе по прямой ссылке в лонгпейдж раздел проскроллить страницу до него)

Описание проекта