Форумы / National / Russian / Модули и плагины / [plugin] Light page

Страницы на ajax

Dr2005alex
#1 23.09.2013 21:34

Приветствую всех. 

Помогите протестировать данный плагин.

Light page помогает организовать переключение страниц на вашем сайте через ajax используя встроенный инструмент ajaxHelper в движка

Установка как обычно. Просто залить плагин и установить его из админки.

Теперь об интересном...

Необходимо организовать div блок, куда будет подгружаться контент.

Заходим в свой шаблон и в самом конце файла header.tpl ставим начало блока.

<div id="light_page">

Далее идём в файл footer.tpl  и в самом начале файла ставим конец дива.

</div>

Таким образом у нас получится такая структура..

в header

<div id="light_page">
---------------------------------------------------

контент: index, page, list   и т.д.

---------------------------------------------------
</div>

в footer

Теперь нам остается показать плагину, какие ссылки должны работать через ajax. Для этого у нас имеется класс lp_add_rel. Просто оберните необходимые места к примеру span  с классом class="lp_add_rel" или добавьте данный класс в имющийся div. Скрипт пропишет все ссылкам в блоке с классом lp_add_rel необходимые параметры.

пример для list

<span class="lp_add_rel">
<a href="{LIST_ROW_URL}"  > {LIST_ROW_SHORTTITLE} </a>
</span

Можно обертывать блок с множеством ссылок.

<div class="lp_add_rel">
<a href="{LIST_ROW_URL}"  > {LIST_ROW_SHORTTITLE} </a>
.......
......
{LIST_ROW_MORE}
</div>

Есть случаи когда в блоке с множеством ссылок не надо прописывать ajax параметры, к примеру ссылка ведет на другой ресурс. Для этого предусмотренно отключение скрипта для выбранных ссылок. Просто оберните данную часть кода блоком (span или div) c классом class="lp_no_rel". Скрипт не будет прописывать для ссылок находящихся в этом блоке параметры для ajax.

К примеру: Необходимо обернуть тег {LIST_ROW_TEXT} который может соодержать ссылки на др. ресурсы.

Важно:

  • блок с классом lp_add_rel не должен содержать в себе такой-же блок с таким-же классом.
  • блок с классом lp_no_rel может находится только в нутри блока с классом lp_add_rel
  • Если теги рейтинга страницы у вас находятся внутри блока с классом lp_add_rel, то их необходимо обернуть блоком с классом lp_no_rel
  • Тоже самое и для ссылок типа "поделиться в соц сетях".

Пример работы на сайте http://dev.ob4aga.ru/

Сам плагин: light_page_1.1

WebKaa.ru - Cotonti Relax
Отредактировано: Dr2005alex (24.09.2013 17:05, 10 лет назад)
Macik
#2 24.09.2013 06:21

Хорошая штука.

Есть несколько предложений: 

1. сделать возможным указывать  lp_no_rel  классом для конкретной ссылки, т.е. чтобы не городить обертку везде.
2. добвить в плагин (например на хук output) автоматический обработчик ссылок, который пробежится по странице перед выводом и сам расставит lp_no_rel для внешних ссылок, прямых ссылок на ресурсы (jpg|png|etc) и например ссылок на админку.
3. дать возможность пользователю в настройках плагина указывать класс/id для главного блока для всктавки (в твоем примере это будет #light_page). Это облегчит использование, т.к. во многих темах уже есть этот основной блок, и можно не лезть в шаблоны прописывать дополнительный.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Dr2005alex
#3 24.09.2013 14:40
  1. Сделаем.
  2. Рассмотрим метод данной реализации...
  3. Сделаем.

Спасиб за отзыв. 

Добавлено 2 часа спустя:

И так... поменял в первом посте ссылку на версию 1.1.

  1. Теперь можно указывать класс lp_no_rel и самой ссылке. (также осталавь возможность оборачивать)
  2. Доработан скрипт. (не прописывает параметры для внешних ссылок и для img вложенных в ссылку ) Картинки и внешние ссылки будут открываться в обычном режиме.
  3. Добавлено в настройках поле div id для контента.

По поводу админки, думаю лучше обернуть блок вручную.  

WebKaa.ru - Cotonti Relax
Отредактировано: Dr2005alex (24.09.2013 17:14, 10 лет назад)
Chiaroscuro
#4 28.11.2013 11:40

Ломает едитор коментов, текстовое поле делает :(

 

Очень жаль что нельзя выделеть конкретный блок, обновляет все между Header и Footer

 

Отредактировано: Chiaroscuro (28.11.2013 13:06, 10 лет назад)
Dr2005alex
#5 28.11.2013 15:57

Ломает едитор коментов, текстовое поле делает :(

это просто еще не доработали ckeditor,   чтобы работал и после ajax подгрузки...

по поводу блоков что именно хочется отдельно обновить?

WebKaa.ru - Cotonti Relax
Chiaroscuro
#6 30.11.2013 19:13

Идея сразу появилась, добавить к пагинации новостей, дабы только блок новостей обновлялся, но грузит весь index.
 

Dr2005alex
#7 30.11.2013 19:44
#38675 Chiaroscuro:

Идея сразу появилась, добавить к пагинации новостей, дабы только блок новостей обновлялся, но грузит весь index.
 

А кто сказал что не будет работать?

к примеру в news.tpl обернуть все в <div id="light_page"> ... </div>

а {PAGE_PAGEPREV}{PAGE_PAGENAV}{PAGE_PAGENEXT} обернуть  к примеру в  <div class="lp_add_rel"></div>

будет <div class="lp_add_rel">{PAGE_PAGEPREV}{PAGE_PAGENAV}{PAGE_PAGENEXT} </div>

Вот натолкнул на мысль доработки плагина... посмотримс что получится...

а грузить там нечему, код использует скрипт из base.js он и так грузится..

WebKaa.ru - Cotonti Relax
Chiaroscuro
#8 02.12.2013 09:15

Посл того как оборачиваю тот же news,  пагинация в "классе" и при переходе по ссылкам, дублируется полностью шаблон index.

YN
#9 13.04.2018 08:10

Отличный плагин был бы, есть какие-нибудь изменения? Попытался применить его к Recent items,  у меня так же как и у Chiaroscuro выводит полностью index :(
И кнопки пангинации остаються без изменений :(

Отредактировано: YN (13.04.2018 09:14, 6 лет назад)