$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 – параметр, сообщающий, нужно ли проскроллить страницу к данному указателю (необходим для того, чтобы при переходе по прямой ссылке в лонгпейдж раздел проскроллить страницу до него)