Обновленная "БраГа" для iCMS 1.10

+33
2.31K
В этой версии произошло много изменений!


Это модуль в помощь вэбмастерам желающим дополнительно оживить свой сайт с помощью различных jQuery, CSS модулей. Теперь такой модуль можно запихнуть в tpl-шаблон модуля, вместо путей к картинкам, заголовков и т.п. поставить переменные и управлять им через админку.
Версия для iCMS 1.9

Установка:
1. Залить файлы модуля на сервер.
2. Установить права на запись (777) для директории /admin/modules/mod_braga/uploads.
3. Зайти в Админка -> Модули -> Установить модули и нажать "Установить модуль БраГа".
4. Зайти в настройки модуля и загрузить картинки из папки img (для каждой картинки новая запись) или сверстать шаблон tpl с использованием переменных модуля.
5. Настроить публикацию модуля на сайте.

Скачать БраГа 1.1.1

Обновления

Изменения в версии 1.1:
1. Совместима с InstantCMS 1.10 (UTF8)
2. Добавлена возможность загрузки любых файлов (до пяти штук в одной записи).
3. Добавлена возможность указать путь к файлу на сервере (без необходимости загружать).
4. Возможность указать для каждого файла свой заголовок.
5. Подтверждение при удалении записи.
6. Добавлены настройки порядка вывода записей (по порядку, по дате, по заголовку, в случайном порядке).
… и ряд мелких правок.

v 1.1.1
Добавлена возможность отсроченной публикации.
Добавлена возможность указать время окончания публикации.
--И то и другое происходит в автоматическом режиме. Параметр "Опубликовано" должен быть включен.
Добавлен готовый шаблон jQuery-слайдера. После установки и настройки отображения загрузите картинки из папки img.

Список переменных

{$brag.id} — id записи
{$brag.mod_id} — id модуля
{$brag.img} — путь к изображению
{$brag.filetitle1} — заголовок первого файла
{$brag.filename1} — путь к первому файлу
{$brag.filetitle2} — заголовок второго файла
{$brag.filename2} — путь ко второму файлу
{$brag.filetitle3} — заголовок третьего файла
{$brag.filename3} — путь к третьему файлу
{$brag.filetitle4} — заголовок четвертого файла
{$brag.filename4} — путь к четвертому файлу
{$brag.filetitle5} — заголовок пятого файла
{$brag.filename5} — путь к пятому файлу
{$brag.link} — ссылка
{$brag.title} — заголовок записи
{$brag.description} — текст (html) записи
Если нет возможности перебирать пункты циклически, то переменные можно указывать и так: {$braga[0].title}, {$braga[1].title}, {$braga[2].title} и т.д.

Пример реализации (используется по умолчанию)

Иллюстрация

(Данный материал предназначен для ознокомительных целей. В дистрибутиве это все уже сделано, повторяться не нужно)
Изначально мы имели такой код jQuery-слайдера:
Изначальный код (index.html)
Придется скачивать, текстом не помещается.

Это обычная страница вывода обычного jQuery-слайдера найденного на просторах интернета. Внутри этого кода есть подключение необходимых скриптов и стилей, js и разметка.
Все скрипты (кроме самого jQuery.js, он уже подключен в iCMS) и изображения перемещаем на сервер, например в папку с шаблоном.
Проверяем, чтобы все пути в скриптах (например в файле CSS пути к изображениям) были указаны верно.
Далее открываем файл mod_braga.tpl или его копию. И вставляем в него указанный выше код вывода слайдера.
Удаляем не нужную разметку (доктайпы, HTML, HEAD, BODY, не нужные дивы, в нашем случае #container и #footer).
Оборачиваем JS в {literal}{/literal} и поправляем пути к скриптам.
Переходим к разметке (здесь начинается полезность БраГи).
В разметке, внутри контейнера .slides_container мы видим повторяющийся код контейнера .slide:
  1. <div class="slide">
  2. <a href="http://www.flickr.com/photos/jliba/4665625073/" title="145.365 - Happy Bokeh Thursday! | Flickr - Photo Sharing!" target="_blank"><img src="img/slide-1.jpg" width="570" height="270" alt="Slide 1"></a>
  3. <div class="caption" style="bottom:0">
  4. <p>Happy Bokeh Thursday!</p>
  5. </div>
  6. </div>
Внутри него меняются только надписи, ссылки и пути к изображениям.
Удаляем все контейнеры .slide, кроме одного. Оставшийся размещаем между:
  1.  
  2. {foreach key=key item=brag from=$braga}
  3. . . .
  4. {/foreach}
  5.  
И заменяем все надписи, ссылки и пути внутри него на соответствующие переменные из набора БраГи.
В итоге у вас должно получиться следующее:
  1. <link rel="stylesheet" href="/templates/_default_/css/global.css">
  2. {literal}
  3. <script src="/templates/_default_/js/slides.min.jquery.js"></script>
  4. <script>
  5. $(function(){
  6. $('#slides').slides({
  7. preload: true,
  8. preloadImage: '/templates/_default_/imges/slide/loading.gif',
  9. play: 5000,
  10. pause: 2500,
  11. hoverPause: true,
  12. animationStart: function(current){
  13. $('.caption').animate({
  14. bottom:-35
  15. },100);
  16. if (window.console && console.log) {
  17. // example return of current slide number
  18. console.log('animationStart on slide: ', current);
  19. };
  20. },
  21. animationComplete: function(current){
  22. $('.caption').animate({
  23. bottom:0
  24. },200);
  25. if (window.console && console.log) {
  26. // example return of current slide number
  27. console.log('animationComplete on slide: ', current);
  28. };
  29. },
  30. slidesLoaded: function() {
  31. $('.caption').animate({
  32. bottom:0
  33. },200);
  34. }
  35. });
  36. });
  37. </script>
  38. {/literal}
  39.  
  40. <div id="example">
  41. <img src="/templates/_default_/imges/slide/new-ribbon.png" width="112" height="112" alt="New Ribbon" id="ribbon">
  42. <div id="slides">
  43. <div class="slides_container">
  44.  
  45. {foreach key=key item=brag from=$braga}
  46. <div class="slide">
  47. <a href="{$brag.link}" title="{$brag.title}" target="_blank"><img src="{$brag.img}" width="570" height="270" alt="{$brag.title}"></a>
  48. <div class="caption" style="bottom:0">
  49. {$brag.description}
  50. </div>
  51. </div>
  52. {/foreach}
  53.  
  54. </div>
  55. <a href="#" class="prev"><img src="/templates/_default_/imges/slide/arrow-prev.png" width="24" height="43" alt="Arrow Prev"></a>
  56. <a href="#" class="next"><img src="/templates/_default_/imges/slide/arrow-next.png" width="24" height="43" alt="Arrow Next"></a>
  57. </div>
  58. <img src="/templates/_default_/imges/slide/example-frame.png" width="739" height="341" alt="Example Frame" id="frame">
  59. </div>
Теперь можно заходить в админку загружать картинки, вносить соответствующие записи, указывать ссылки и не париться по поводу кода.

Это только пример. Варианты реализации этого модуля многочисленны. Например можно организовывать каталог документов с приложениями к ним.
Каждая запись — один документ с описанием, скриншотом, приложениями и с ссылкой на подробное описание.
0
Anor Anor 12 лет назад #
Я знаю много ребят которым нравится брага, но эта "БраГа" не из той серии явно.
Пока по ссылке не перешел на v1.9, о чем речь идет вообще не понятно было.
+3
Иван Шкута Иван Шкута 12 лет назад #
Эта БраГа именно из той серии. Только возможности расширились. Описание постараюсь найти время и сделать по подробнее.
0
Thanatognozija Thanatognozija 12 лет назад #
По ссылке "Скачать БраГа 1.1", открывается страница "файл не найден" :(.
+1
Иван Шкута Иван Шкута 12 лет назад #
Перезалил архив
+1
Thanatognozija Thanatognozija 12 лет назад #
Спасибо большое! +++++++
+1
AlexSF AlexSF 12 лет назад #
Спасибо, классный модуль.
Однако мне не хватило функционала)))) - мне ещё нужена функция "Срок окончания публикации(информация)",
а если ещё и автоматическое снятие с публикации по указанному сроку = БОЛЕЕ НИЧЕГО И НЕ НУЖНО
+3
Иван Шкута Иван Шкута 12 лет назад #
Предложение реализовано. Необходимо обновиться.
0
Иван Шкута Иван Шкута 12 лет назад #
Кто уже успел скачать, напишите как пошло?
0
Иван Шкута Иван Шкута 12 лет назад #
Народ, а что при создании в таблице двух TIMESTAMP существуют какие-то особые правила?
При попытке впихнуть в установщик таких строк:

`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`dateend` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

не хочет создавать таблицу. Когда убираю нижнюю - создает.
????????
0
Иван Шкута Иван Шкута 12 лет назад #
Тоже самое с DATETIME
+1
Иван Шкута Иван Шкута 12 лет назад #
Разобрался. Не нужно было в обоих строках указывать DEFAULT
В общем спать иногда тоже надо )))
+3
Иван Шкута Иван Шкута 12 лет назад #
Можно скачивать! Исправил две ошибки в установщике (из-за них убирал ссылку на скачивание) и теперь все работает.
0
Дмитрий Дмитрий 11 лет назад #
У меня неотображает и нет настроек в админке может я что не так сделал?
0
Дмитрий Дмитрий 11 лет назад #
Блин! Все модули которые ставлю так отображаются(
0
Иван Шкута Иван Шкута 11 лет назад #
Значит дело не в браге.
0
ALreD ALreD 11 лет назад #
Пилигрим, я Вам еще ошибку нашел... У Вас в путях к элементам оформления (в шаблоне) пропущена буква "a" в слове "images" что Вы понимаете к чему приводит...
0
ALreD ALreD 11 лет назад #
И сразу вопрос в дополнение... Я использую Ваш модуль с Вашей-же надстройкой CSS3 отображения (кстати, да, она работает в старом варианте без модификаций...) НО! Некорректно отрабатываются ссылки! Стоят три разные ссылки на внутренние разделы сайта (в админке) но все слайды переходят только на один раздел. Сразу уточню, что это не есть особенность обновленного модуля, так же работало и на 1.9, просто я тогда не уточнял, без надобности было - а вот сейчас очень надо! На подскажите, где бы это посмотреть?
0
ZmeeLove ZmeeLove 11 лет назад #
да, в пути буква пропущена "А" /templates/_default_/img_es/ если что. Это если у кого то не отображаются кнопочки.
0
Петр Петр 11 лет назад #
а что модуль не загружает картинки?
0
Петр Петр 11 лет назад #
хрень какая то, не могу разобраться как им пользоваться, загружаю картинку - ошибка
0
Иван Шкута Иван Шкута 11 лет назад #
2. Установить права на запись (777) для директории /admin/modules/mod_braga/uploads.
0
bondar bondar 8 лет назад #
Я честно пытался)) 3 дня тягался)) не вышло) Помогите , пожалуйста, переделать под 1.10.3)

Еще от автора

Доступность всех групп при редактировании записи
Сейчас администратор при редактировании чьей-то записи не может указать группу в которой не состоит сам.
Редирект менеджер обновлен
Наконец-то дошли руки до редирект-менеджера, вернее до его обновления. Новое: Поддержка 2.10.0+ Маски для исходного URL Переменные для целевого URL
Поле "Точка на карте"
Это поле позволяет указать точку на карте (Яндекс.Карты) и вывести карту с этой точкой в записи / профиле / группе.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.