Компонент Моменты для InstantCMS 2.5.+

+46
4.84K
Всем привет. Пока скучал в одной теме на форуме, собрал небольшой компонент с использованием этого скрипта fullcalendar. Это своего рода пререлиз, демо-версия, free или lite version компонента, зовите как хотите, так как функционал скромный. Это версия компонента, который выйдет не скоро, причём очень даже не скоро. Даже у меня нет такого чёткого представления, что он вообще выйдет. Поэтому, скажем так, вероятность появления полнофункциональной версии есть, но сроков нет.

В общем подробнее обо всём

Доступ на демо предоставляется по запросу в личном сообщении. Скачать можно в дополнениях.
Для установки необходимо создать тип контента с любыми настройками, но обязательно с системным именем "moments" и установить компонент.
Очерёдность в этом деле начиная с версии движка 2.6.0 строгая, сначала тип контента, затем установка компонента.
С компонентом установится дополнительное поле "Событие в календаре".
Из настроек самого поля доступно лишь цветовое оформление события в календаре по умолчанию, которое можно изменить в настройках самого поля.
Иллюстрация
При создании/редактировании записи доступно чуть больше опций
Иллюстрация
Это дата начала, окончания события, варианты повторов события от ежедневного до ежегодного, включая повторы по дням недели и датам в ежемесячных повторах. А также возможность делать вложенные события. Или подобие вложенности событий smile.
В других типах контента это поле будет выводить дату начала/окончания и продолжительность события, но на календаре эти записи в лайт версии не будут отображены. В полной версии планируется работа без привязки к типу контента.
Привязка записей возможна только к записям из этой же категории.Из других категорий записи в список не попадут. Это сделано в основном, для того, чтобы можно было скажем одно мероприятие разбить на несколько частей, и эти части вывести в календаре.
Вот так выглядит запись у которой есть "подзаписи".
Иллюстрация
А так — которая сама является "вложенной"
Иллюстрация
В списке вид выглядит так
Иллюстрация
Содержимое календаря чувствительно к выборанной категории, наборам, фильтру.
Виджетов с календарём в этой версии нет. Доступны все стандартные функции, поля и виджеты как в обычном типе контента.

Для работы этого компонента нужна версия php не ниже 5.6. Я понимаю, что движок instantcms работает на версии 5.3, но "нормальные" php-функции для работы с датой и временем, появились только в 5.6.
0
Реклама Реклама #
+1
Алексей Алексей 5 лет назад #
Скромно так -
..Пока скучал..
.
Замечательный компонент и..вопрос: "Приватность присутствует? скажем для использования как расписания для себя или себя и друзей..."
+1
Alekskrug Alekskrug 5 лет назад #
Мне тоже интересно
+6
eoleg eoleg 5 лет назад #
Loadырь:
очень нескоро
Лодырь! laugh
+2
Loadырь Loadырь 5 лет назад #
спалился zst
0
vikont vikont 5 лет назад #
Умеют же люди скучать творчески.. smile
0
skewes skewes 5 лет назад #
Loadырь, +++ в карму!
Однозначно хорошая и многим нужная вещь!

Почему такого нет по умолчанию в Мапсе.? scratch
0
Def Def 5 лет назад #
Почему такого нет по умолчанию в Мапсе.?
потому что r2 не "скучает" так как скучает Loadырь)

--

компонент очень полезный. не совсем понял правда как повторять по указанным дням недели, т.к вроде нет возможности указать дни недели, или я вероятно не совсем понял эту фопцию)

а фильтр по городам возможен также с учетом типа контента и наличием поля город?)
0
Loadырь Loadырь 5 лет назад #
Ежемесячно по дате - это берётся дата начала скажем 18 число месяца и каждый месяц 18 числа повторяется.
Ежемесячно по дням недели - это берётся у даты начала день недели, скажем 4 мая - это первая среда месяца и повторяется каждую первую среду месяца, независимо от даты.
0
lezginka.ru lezginka.ru 5 лет назад #
шикарная штука...жаль что только для версия 2,5*
+1
Loadырь Loadырь 5 лет назад #
По поводу приватности поправил файлы. Перезалил архив, ссылку в посте поправил.
Приватность работает немного иначе чем в стандарте. Так как понятие "показать только название" тут я считаю лишнее. В итоге если выбрать в настройках типа контента "Не показывать", то ничего не покажет в календаре. Если выбрать любое другое, то в календаре выведет, записи согласно настроек самой записи - показывать всем или только друзьям.
+2
Loadырь Loadырь 5 лет назад #
Для обновления перезалейте у себя файлы из архива папки package в корень сайта. Добавил сегодня событие которое видно авторизованному пользователю demouser.
0
Алексей Алексей 5 лет назад #
Вот и славненько....! Еще раз Спасибо! Будет желание поскучать - пишите на форум
0
Def Def 5 лет назад #
Классно, записи фильтруются по городу:)
0
Олег Васильевич я Олег Васильевич я 5 лет назад #
Спасибо!
Денис Васильевич Денис Васильевич 5 лет назад #
Комментарий удален
Денис Васильевич Денис Васильевич 5 лет назад #
Комментарий удален
+1
Loadырь Loadырь 5 лет назад #
Тут немного иная цель преследуется. Но в целом принцип тот же. Поле для прикрепления одной записи к другой или нескольким, пара хуков и если не привязываться к файлам движка, то и свой компонент, для обработки этих хуков.
Денис Васильевич Денис Васильевич 5 лет назад #
Комментарий удален
0
ermakover ermakover 5 лет назад #
Отличное дополнение.
Немного расстроила фраза "Это версия компонента, который выйдет не скоро, причём очень даже не скоро", но я полагаю, что если будет стимул, то процесс можно и ускорить v
Пытался поделить события на "Прошедшие" и "Грядущие", чтобы прошло событие и уже в фильтре не показывалось, но и не было скрыто от пользователей, но не получилось.
При добавлении в наборы контента поля "Событие в календаре" у меня выскакивает ошибка 503.
0
Loadырь Loadырь 5 лет назад #
ermakover:
При добавлении в наборы контента поля "Событие в календаре" у меня выскакивает ошибка 503
Не стоит этого делать, так как в поле хранится массив данных, а вы пытаетесь дату провести в фильтре набора.
0
PolarOne PolarOne 5 лет назад #
Очень напомнило встраиваемый гугл календарь и еще пару плагинов от вордпресса.
Однозначно здорово!
0
Sergo Sergo 5 лет назад #
Спасибо, отличная вещь.
Я попробовал использовать с тэгами, но при клике по тэгу в ответ получил: Невозможно получить данные для календаря.
Скажите пожалуйста, в том виде как есть, эта ситуация неразрешима, или есть возможность где-то "поставить нужную галочку"?
0
Egu Egu 4 года назад #
На 2.7.1 не работает, как не пытался. Очень жаль - нужный компонент.
0
Pocus Pocus 4 года назад #
Loadырь, пожалуйста скажите, вы "календарную" тему совсем забросили?

Я сейчас обдумываю, как бы перевести "события" объектов InstantMaps на типы контента, но, боюсь, без календаря это не имеет смысла.
А с календарями в ICMS просто беда. Кроме вашего, нашел одинi от sitestroi и еще Афишу от Zau4man. Но первый вообще не годный, второй вроде бы можно приспособить, но там свои заморочки. Ваши "Моменты" подошли бы лучше всего, жаль что не работают на 2.7.1, да и вложенные события надо переводить на связи.
0
Loadырь Loadырь 4 года назад #
Не совсем забросил, поддержка будет, если кто-то отважится и скажет, что именно не работает. А ещё лучше будет, если код ошибки приведёт.
0
Pocus Pocus 4 года назад #
Спасибо. Тогда я сам попробую установить, а то поверил @Egu на слово.
0
Ris Ris 4 года назад #
Движок теперь не дает создавать типы контента с именем совпадающим с именем компонента.
0
Loadырь Loadырь 4 года назад #
laugh теперь сначала надо создать тип контента, а потом установить компонент. А тем, кто поторопился и уже установил компонент, сначала надо удалить его в админке в компонентах, а затем удалить папку monents из system/controllers. После этого не спеша установить в правильной последовательности
0
Ris Ris 4 года назад #
Может лучше сделать в админке форму ввода, куда привязываемый тип вписывать (или типы) ? zst
И в любом типе контента можно будет считать моменты.
0
Loadырь Loadырь 4 года назад #
Там не так просто отвязаться от типа контента, поэтому эта фича отложена до появления платной версии.
0
Pocus Pocus 4 года назад #
В общем так.
Сначала выдавал сообщение "Невозможно получить данные для календаря. Загрузка...", или типа того.
Включил категории, перенес запись в категорию, создал еще одну запись и всё заработало. Я так и не понял что это было, не успел в консоль глянуть.
Ну и, если шаблон свой, надо файлы к себе перетащить.

В общем, на 2.7.1, на первый взгляд, работает.
С миллисекундами вы конечно прикололись. Теперь их как-то удалять придётся.
И это.... кажется "моменты" - не совсем то, что я ожидал. Я думал, будет обычный список контента и где то рядом календарь, для фильтрации.
Поковыряю еще, может приспособлю.
0
Pocus Pocus 4 года назад #
Из неприятных мелочей:
1. Не хватает поля is_deleted для совместимости с корзиной в 2.7
2. js и css пытается тянуть из рабочего шаблона. Надо из default. Пришлось копировать файлы к себе.
3. Ну и странная установка. Хотя, если действовать по инструкции, то все ОК.
+1
Loadырь Loadырь 4 года назад #
Спасибо, поправил. Выложил в дополнениях.
0
alexandr22 alexandr22 3 года назад #
Здравствуйте, можно ставить на 2.10 ?
0
Loadырь Loadырь 3 года назад #
На 2.10.0 не проверялся, поэтому на свой страх и риск.
0
Ris Ris 4 года назад #
Создаваемый тип контента называете как хотите, но в 27 строке \system\fields\moments.php вместо get('con_moments'); напишите get('con_ваш_тип_контента'); В смысле системное имя вашего типа контента туда впишите.
И будет Вам счастье.

Спойлер
0
Def Def 3 года назад #
время идет, а компонент остается очень полезным! Спасибо автору огромное! на 2.8.2 полет пока нормальный.
0
Блицкриг Блицкриг 3 года назад #
Ошибка: Не должно называться именем существующего компонента
Я по дурости сначала установил, потом тип контента создать попытался. В базе нашёл табличку moments и удалил... перед этим снёс компонент. Всё равно ошибка при создании контента осталась...
Может что то ещё в БД нужно стереть?
+1
Loadырь Loadырь 3 года назад #
Вероятно, в таблице cms_controllers есть запись о компоненте
0
Блицкриг Блицкриг 3 года назад #
Нет. Искал в БД moments по запросу возвращает ноль строк. Записи нет.
0
Блицкриг Блицкриг 3 года назад #
phpMyAdmin:
Итого: 0 соответствий
0
Блицкриг Блицкриг 3 года назад #
Разобрался. Всё дело в хуках =)
0
Игорь ФИН Игорь ФИН 2 года назад #
Решил немного по тестировать .
Решил добавить его в группы.
Все работает только вот такое сообщения весит ( и в группе на календаре события не отражается, а в само календаре отражается.


InstantCMS v2.11.0

Notice: Undefined index: mc_start in /templates/default/content/moments_item.tpl.php on line 20
- Робототехника
0
Loadырь Loadырь 2 года назад #
Отключите режим отладки в настройках сайта, возможно появятся события в календаре.
0
Игорь ФИН Игорь ФИН 2 года назад #
Вот по шагам первый

Второй

третий

четвертый


Идем в группу

идем в календарь отдельно


Идем опять в группу


Но , он работает, хоть как-то.
0
Loadырь Loadырь 2 года назад #
Тут как выяснилось, записи могут быть либо только в группе, либо в календаре. Зависит от того, откуда добавляли.
0
fincheck fincheck 2 года назад #
Loadырь:
с использованием этого скрипта fullcalendar
Уважаемый Loadырь, а сложно будет прикрутить и синхронизацию с Google Календарь? В скрипте fullcalendar вроде как это предусмотрено.
0
Loadырь Loadырь 2 года назад #
Насколько я знаю, fullcalendar может вывести события из Google Календаря, а вот обратную связь я не замечал в нем.
0
fincheck fincheck 2 года назад #
Ну да, мне как раз это и нужно. Из Google Календаря в Моменты.
+1
Loadырь Loadырь 2 года назад #
Синхронизация подразумевает обмен данными в обоих направлениях. У fullcalendar только в одном направлении. Что касается сложно или нет, решайте сами: https://fullcalendar.io/docs/google-calendar это сложно или нет? Нужен ключ Google Calendar API и пара строк в нужном месте. Но пока не скажу в каком именно ))). Не до календаря пока.
+1
Алексей Т Алексей Т 1 год назад #
Добрый день!
Проверил работу на Конструкторе тем - полет нормальный
Кто то спрашивал - работает ли на Инфимере - ответ да :)
Отличный компонент
0
Антон {ignat} Антон {ignat} 1 год назад #
Как сделать чтоб под календарем на странице site.ru/moments отображались все записи?
0
fincheck fincheck 1 год назад #
Наверно виджетом со списком записей или типа того.
+1
Loadырь Loadырь 1 год назад #
Код с выводом списка записей из файла шаблона templates/шаблон/content/default_list.tpl.php добавьте в файл templates/шаблон/content/moments_list.tpl.php
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.