Разделы

[REVO] EventsCalendar 2.2.0

Переписал почти заново свой каленадарь.

Что нового:
• Переписал в соответствии с архитектурой компонентов MODX.

• Появилась нормальная интернационализация — все тексты, включая имена месяцов и дней в словарях системы. Языковые параметры типа &lang убрал.

• Вынес все скрипты и css из чанка с календарем в отдельные файлы. (/assets/components/eventscalendar2/)
• Ошибки пишутся в системный лог и на экран. Вывод на экран, как и раньше можно отключить.

• Сделал возможность переключения месяцев без ajax — поисковикам понравится.

• Добавил новый параметр events. Он принимает json строку с массивом событий, например:
[[!eventsCalendar?
    &events=`
    [
	{
	    "id": "1"
	    ,"date": "2012-01-01 00:00:00"
	    ,"pagetitle": "Test page"
	},
	{
	    "id": "2"
	    ,"date": "2012-01-02 12:05:00"
	    ,"pagetitle": "Test page 2"
	}
    ]
    `
]]

Обязателен параметр date у каждого события, для корректной работы. Это обновление позволяет выводит в календаре любые события, хоть откуда, с любыми параметрами (лишь бы они потом были в чанке tplEvent2).
Если указан параметр id — он превратится в ссылку на ресурс.

• Результат всех трудов оформил в репозиторий на Github, где теперь можно писать об ошибках и форкать проект.

Надеюсь, вы оцените проделанную работу, а может, кто-то что и закоммитит.

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

Кстати, я не гарантирую, что после обновления у вас все будет хорошо работать.

Посмотреть в работе и почитать про параметры и плейсхолдеры

UPD.
Обновил сниппет еще раз, версия 2.2.1 rc1

• Параметр &includeContent, по умолчанию контент теперь не грузится — так быстрее.

• Поддержка ТВ. Параметры &includeTVs, &includeTVList, &processTVs, &processTVList — работают как в getResources.

• Параметр &plPrefix для установки произвольного префикса для всех плейсхолдеров (включая ТВ)

• Параметр & regCss — загрузка родного css со стилем календаря. По умолчанию включено.

• Параметр & regJs — загрузка родного js скрипта для листания календаря. По умолчанию включено. Если вы хотите перелистывать с перезагрузкой страницы — отключите этот параметр.

• Календарь теперь полностью парсится при выводе. Можно использовать фильтры, чанки, сниппеты и все остальное. Не факт, что это будет быстро, но можно.

Пакет в репозитории, как обычно.
  • +19
  • 19 января 2012, 20:27
  • bezumkin

Комментарии (22)

RSS свернуть / развернуть
0
А для Evo вариант будет?
avatar

alex-alex

  • 19 января 2012, 21:03
+1
Могу ответить за автора — не будет в его исполнении никогда=)
avatar

alooze

  • 19 января 2012, 21:06
0
Нет, Evolution не поддерживает ни словари, ни транспортные пакеты.

И я с ним не работаю уже давно.
avatar

bezumkin

  • 19 января 2012, 21:07
0
Но был же, и я успел даже поставить в паре проектов…
avatar

alex-alex

  • 19 января 2012, 21:09
0
Версия для Evolution была, и она никада не делась из репозитория modx.com/extras/package/eventscalendar2

Но моих обновлений для нее не будет.
avatar

bezumkin

  • 19 января 2012, 21:10
0
Ну и на том огромное человеческое спасибо ))
avatar

alex-alex

  • 19 января 2012, 21:12
0
в Revo после одного перехода назад на месяц перестает работать затемнение календаря при дальнейшем переходе, также не смог заставить его увидеть события, ошибок не выдал. Мне не понятно в чем отличие id от parents. Если только в том, что есть перечисление через "," то не стоило перегружать сниппет.
avatar

setest

  • 19 января 2012, 22:23
0
Проблемы с ajax загрузкой смотрите в консоли браузера, а не сайта.
В новой версии я постарался их исключить + теперь можно листать без ajax, для запущенных случаев.

Про параметры: сниппет развивается давно, и parents появился не сразу (с версии 2.0.5). Удалять старый параметр я не стал, иначе у многих людей после обновления будут проблемы.

Ссылка на параметры в топике.
avatar

bezumkin

  • 19 января 2012, 22:33
0
и скинь пожалуйста ссылку на инструкцию как собирать свой компонент в zip.
avatar

setest

  • 19 января 2012, 22:24
0
Для простых случаев отлично подходит расширение Packman

Для более продвинутых — советую статью Andchir на Хабре и напоминаю, что все необходимое лежит в modExtra.
avatar

bezumkin

  • 19 января 2012, 22:36
0
спасибо!
avatar

setest

  • 19 января 2012, 23:22
0
при удалении возникла получил следующий лог:

Поиск пакета с подписью: eventscalendar2-2.2.0-rc1
Пакет найден. Подготовка к деинсталляции.
Problem instantiating object from vehicle
Removed modCategoryClosure instance with primary key Array ( [0] => 30 [1] => 30 )
Removed modCategoryClosure instance with primary key Array ( [0] => 0 [1] => 30 )
Removed modCategory instance with primary key 30
Removed modChunk instance with primary key 105
Removed modChunk instance with primary key 106
Removed modSnippet instance with primary key 62
Removing files in file resolver: ....../www/assets/components/eventscalendar2
Removing files in file resolver: ......\www/core/components/eventscalendar2
Removed modNamespace instance with primary key eventscalendar2
Recoverable error: Object of class xPDOObjectVehicle could not be converted to string
PHP notice: Object of class xPDOObjectVehicle to string conversion
Ошибка при деинсталляции пакета с подписью:Object


точки в путях поставил сам.
avatar

setest

  • 20 января 2012, 18:06
0
Какая та фигня с пакетом =)
Я еще не мега ас в их сборке, буду разбираться.

Спасибо за отзыв!
avatar

bezumkin

  • 20 января 2012, 20:30
0
Вроде починил. Обновил пакет в репозитории.
avatar

bezumkin

  • 22 января 2012, 10:16
0
проверил, сейчас удаляется нормально, но не могу заставить его работать, возможно это моя личная проблема. Пробовал при указаном TV, через id — событий не выдает, parents — говорит что нет удовлетвлетворяющий событий, причем говорит 2 раза именно по кол-ву событий, но на TV не реагирует. Без Tv тоже событий не выдает. И также затемнение при переключении работает только 1 раз, в следующие разы не работает. Проверял на Firefox 9.0.1
avatar

setest

  • 22 января 2012, 14:11
+1
Не работает все, понятно.

Даже не знаю, чем помочь. Попробуйте с нуля поставить движок и расширение. Может, что получится.
avatar

bezumkin

  • 22 января 2012, 15:06
0
Я подстроил под себя работу предыдущей версии, которая работает у меня стабильно. И оставил соответствующий комментарий в предыдущей ветке. Конечно проблема может быть в чем угодно, я этого не отрицаю, но искать ее решение пока нет времени. Посмотрим, может кто то еще столкнется с этим же, спасибо за работу, у Вас отличный компонент!
avatar

setest

  • 22 января 2012, 15:54
0
Я на трех сайтах проверил — нет проблем.
avatar

bezumkin

  • 22 января 2012, 16:02
0
Нашел ошибку!!! В общем я использую Denwer (на WIN7) может поэтому у меня не работало, хотя я не нашел какого либо нюанса в документации связанной с WIN. У тебя есть строка
if (strftime('%Y-%n', strtotime($date) == "$year-$month")) {
примерно 365 ( номер примерный тк внедрил выше проверочный код). Дык там %n. Полагая, что должен быть месяц в цифрах, правим на %m Вуаля! И допиши в документации на новом сайте (красявашный получился :) ), что includeTVList и processTVList принимают только ИМЕНА TV параметров, а то string в данном случае не понятно звучит ведь 1,2,3 тоже string. И добавь пример на выводе в чанке, типа [[+ec.tv_name]]. Так будет понятнее. Да кстати если вместо id я пишу parents, то выводится все дерево документов, я не стал искать причину.

P.s.: установил все на новый Modx 2.2.0-pl2, работает быстрее чем на 1.5. При удалении компонента глюков не заметил.

P.p.s: запись if такого как у тебя первый раз вижу, и честно удивляюсь, что она работает, как то не думал что так можно писать.
avatar

setest

  • 30 января 2012, 03:27
0
Это ошибка, да. Причем, там вообще сравнение не будет работать (скобки не правильно стоят). Спасибо!

У меня в коде путаница с месяцами, где-то с ведущим нулем, а где-то нет. Не хватает времени сесть и почистить.

Про имена дописал.

По моему, очевидно, что в parents нужно писать цифры через запятую — в getResources ведь так? Проверять каждый параметр на правильность при запуске сниппета слишком накладно.

Рево 2.2.0 вообще офигенский

А что с if не так?
avatar

bezumkin

  • 30 января 2012, 08:55
0
bezumkin, хочу чтобы календарик был виден всегда, если устанавливаю position:fixed для блока в котором вызывается календарик, то получаю ужатый всплывающий блок (.event) Это как-то можно обойти? savepic.su/1359149.htm
avatar

Trent

  • 9 февраля 2012, 02:02
0
Колдуйте с css, что я еще могу сказать?

Скрытый блок с событием позиционируется относительно даты, и сходит с ума при fixed. Это не проблема сниппета, это чисто css.
avatar

bezumkin

  • 9 февраля 2012, 06:16

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.