Widgets 0.1

Набор виджетов для Cotonti + динамическая загрузка скриптов

Модуль Widgets - это набор виджетов для CMF Cotonti.

В версии 0.1 находится два виджета. (Далее будут пополнятся) 

#1. Виджет Zodiac

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

Выглядит он примерно так : 

Для его использование просто вставьте тег. (По умолчанию выводится картинка с подписью)


{USERS_DETAILS_BIRTHDATE_STAMP|wg('widgets','zodiac',$this)}

в файл users.detail.tpl в нужном вам месте.

Можно выводить только картинку без текста:

{USERS_DETAILS_BIRTHDATE_STAMP|wg('widgets','zodiac',$this,'image')}

либо только текст:

{USERS_DETAILS_BIRTHDATE_STAMP|wg('widgets','zodiac',$this,'text')}

#2. Виджет DataTimePicker

Это виджет удобного выбора дат на вашем сайте.

Его можно использовать в любом месте сайта, где необходимо ввести дату. Для коробочной версии Cotonti  он пригодится для ввода даты рождения пользователя или дат публикаций статей на сайте.

Для использования ввода даты рождения пользователя в файлах users.profile.tpl и user.edit.tpl необходимо заменит теги {USERS_PROFILE_BIRTHDATE} и {USERS_EDIT_BIRTHDATE} на тег гаджета.

{PHP.urr.user_birthdate|wg('widgets','datetimepicker','ruserbirthdate',$this)}

Для использования гаджета при создании и редактировании страниц.

 

В page.add.tpl заменить теги:

{PAGEADD_FORM_BEGIN} на

{PHP.rpagebegin|wg('widgets','datetimepicker','rpagebegin',$this)}

{PAGEADD_FORM_EXPIRE} на

{PHP.rpageexpire|wg('widgets','datetimepicker','rpageexpire',$this)}

 

В page.edit.tpl заменить теги:

{PAGEEDIT_FORM_BEGIN} на

{PHP.pag.page_begin|wg('widgets','datetimepicker','rpagebegin',$this)}

{PAGEEDIT_FORM_EXPIRE} на

{PHP.pag.page_expire|wg('widgets','datetimepicker','rpageexpire',$this)}

{PAGEEDIT_FORM_DATE} на

{PHP.pag.page_date|wg('widgets','datetimepicker','rpagedate',$this)}

 

Данный модуль имеет ряд преимуществ.

  1. Все испольняемые файлы, загружаются только на той странице, где вы его используете. Что положительно влияет на производительность сайта.
  2. Все необходимые js и css файлы подгружаются после загрузки страницы и только в том месте, где они необходимы. Использовался данный подход динамической подгрузки файлов.

В дальнейшем, по приходу идей о новых виджетах, они будут дополняться. 

Актуальная версия на hithub https://github.com/Dr2005alex/widgets

http://mycotonti.ru/cotonti/extensions/data-apis/Widgets

P.S. Установив данный модуль, вы можете использовать его функции подгрузки файлов в своих плагинах и модулях. Об этом я напишу статью позже..

 


1. Dayver  11.03.2015 09:06

А почему как модуль, а не плагин например? И почему виджеты вшиты в модуль, а не как то отдельно, если их число планируется увеличивать, а модуль является прослойкой в их подключении?

2. Dr2005alex  11.03.2015 13:23

Модуль или плагин, особой разницы нет. Виджеты вшиты в молуль именно потому, что планировался данный модуль для сбора некой библиотеки виджетов. Сами виджеты по сути это просто классы. вот их и будем дополнять в обновлениях. Можно конечно сделать все в виде плагинов, но когда их и так много в списке на сайте и их станет еще больше, а так только в список добавится один модуль.

3. Dayver  11.03.2015 14:01

Идеологически само расширение не тянет на модуль - хотя да это не принципиально. Что же касается самих виджетов то я имел ввиду даже не то что бы они были плагинами, а то что например есть модуль виджетов, а есть сам виджет ... нужно еще добавить\удалить виджет - удалил файл(ы) из определенной папки и все, а так я поглядел в модуле виджетов есть доп. код для конкретного виджета .... это тоже не принципиально но так мне кажется будет легче развивать данную тему виджетов .. вообщем высказанное мной лишь предложение по улучшению, а так штуки уверен хорошие, за что спасибо, просто пока негде реально применить дабы потестировать.

4. Dr2005alex  11.03.2015 15:09

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

5. Dayver  11.03.2015 17:05

Хотя честно говоря я подумываю более четко разделить сущность самих виджетов  в самой структуре модлуля

Вот об этом я и говорил

Добавление комментариев доступно только зарегистрированным пользователям