Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Всплывающий календарь для выбора даты

Автор gleb.zabavnyyРаздел JS и AJAX

Ответов: 36
Просмотров: 14844
Последний ответ 10 Август 2013, 22:14:48
от Axiomateria
%news view()% непонятно почему выводится из шаблона default

Автор ArmorРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 3139
Последний ответ 10 Февраль 2012, 17:09:41
от Armor
Календарь для постов блога

Автор niakrissРаздел Custom макросы

Ответов: 4
Просмотров: 2046
Последний ответ 07 Ноябрь 2012, 15:23:49
от thefate
news __custom только для зарегистрированного пользователя

Автор rasergiyРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 268
Последний ответ 20 Май 2016, 12:33:51
от rasergiy
параметр s_days_interval в news lastlist

Автор bosyaРаздел Макросы UMI.CMS

Ответов: 5
Просмотров: 3302
Последний ответ 14 Январь 2012, 17:17:39
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

wolfman

  • *
  • 23
  • +0/-0
    • Просмотр профиля
Возникла необходимость приспособить одну категорию новостей под события и вывести календарь событий.
Для этой задачи в принципе подходит неописанный пока макрос - %news calendar()%

В суппорте юми никаких советов и рекомендаций не дают вообще, типа макрос не описан и т.п.

У макроса  %news calendar()% были замечены небольшие глюки в работе, не получается исправить самостоятельно.

Может быть кто-то сможет помочь решить эти проблемы (бесплатно или платно..)?

1) Если в календаре на определенную дату есть больше 1 новости - ссылка с календаря работает корректно, а если одна новость, то ссылка работает не правильно.

2) Почему-то не работают стрелки переключения месяцев предыдущий/следующий..
Судя по всему этот функционал заложен, но почему не работает - не понял.

3) Еще очень интересно, можно ли каким-то образом ограничить отображение в календаре новостей, только определенной категории, а не всех новостей сайта? Допустим есть 2 категории (раздела) новостей и нужно вывести в календаре новости, только из одной категории, как это сделать?

PS: А может есть вариант создания календаря событий другим способом, более просто и менее глючно? Такой вариант тоже интересен.

Заранее огромное спасибо!
« Последнее редактирование: 25 Январь 2012, 16:35:21 от wolfman »

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #1 : 25 Январь 2012, 17:40:03 »
По опыту, это очень хороший календарь. Я им доволен, как слон. Там надо всего чуть-чуть шлифануть напильником. Этот календарь работает:
__www.mariinsky.ru/playbill/playbill/
__nispb.peterlinkweb.ru/
__malafeev16.ru/private/calendar/

Как видите, вполне рабочий макрос.

Этот календарь калька с http://www.cascade.org.uk/software/php/calendar/, несколько модифицированная под идеологию ЮМИ. По указанной ссылке можно посмотреть способы применения.

Вам нужно переписать методы getCalendarLink, getDateLink и, возможно, скомпенсировать getMonthHTML под свои потребности.
Это решит все ваши озвученные вопросы.

*

wolfman

  • *
  • 23
  • +0/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #2 : 25 Январь 2012, 18:09:43 »
Да, судя по примерам макрос действительно хороший, не понятно почему разработчики юми на него забили и не поддерживают его.

Первую проблему решил, вторую кажется тоже.

А как вот исключить из этого календаря новости из других лент?
В него ведь попадают все новости, а как отображать в календаре только одну конкретную категорию новостей?

Можете написать подробнее, признаюсь честно - в программировании не силен.

PS: еще интересно, как можно выделить отдельным css стилем текущий день?
« Последнее редактирование: 25 Январь 2012, 20:07:37 от wolfman »

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #3 : 25 Январь 2012, 21:23:25 »
Логика там такая. При выводе конкретного дня вызывается метод getDateLink, который сканирует ленту(-ы) новостей на указанную дату. Конечно, это аццкая технология, которая генерирует немерянное количество запросов, но уж так он сделан.
Значит, нужно изменить штатную выборку, которая берет все новости по принадлежности к типу иерархии, дополнить ее неким фильтром. Это может быть фильтр по типу данных, если у вас вторая лента имеет свой тип, или фильтр по иерархии, ведь вы точно знаете id искомой ленты.
Все доступные методы фильтрации  http://api.umi-cms.ru/selections.umiSelection.html
Замечу только, что в addHierarchyFilter можно передавать не только elementId, но и массив id в виде addHierarchyFilter(array($id1,$id2....));
И хорошо бы еще жестко задать выборку именно элементов иерархии командой forceHierarchyTable(true);

Т.о., вам нужно добавить 1-2 строчки
$sel->addHierarchyFilter($elementId, $depth);
$sel->forceHierarchyTable(true);
« Последнее редактирование: 25 Январь 2012, 21:28:32 от Vladimir »

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #4 : 25 Январь 2012, 21:31:30 »
Ага. второй вопрос не заметил. Календарь штатно выделяет текущий день классом calendarToday, остается лишь задать ему стили в css

*

wolfman

  • *
  • 23
  • +0/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #5 : 26 Январь 2012, 07:59:58 »
Как все просто оказалось с выбором ленты, спасибо огромнейшее за подсказки!
И за класс calendarToday - тоже, действительно он был и я там его и искал, только но на пару строк ниже.. Спасибо еще раз!

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #6 : 03 Апрель 2012, 15:56:23 »
Скажите пожалуйста а где его фалы лежат?
Где внешний вид настроить?

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #7 : 04 Апрель 2012, 00:29:00 »
html самого календаря в файле /classes/modules/news/__calendar.php (если память не подводит). Внешний вид либо через css допиливать(что более удобный вариант), либо html менять в самом коде

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #8 : 04 Апрель 2012, 10:36:07 »
Поставил макрос %news calendar()% в код шаблона.
Когда я залогинен календарь отображается.
Когда нет, календарь на сайт не выводится.

 

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #9 : 04 Апрель 2012, 10:59:45 »
надо создать файл /classes/modules/news/permissions.custom.php и в нем прописать следующее
<?php
$permissions = Array(
'view' => Array('calendar'),
);
?>

дело в том, что по умолчанию право работать с этой функцией есть только у админа, для остальных надо её разрешать, что мы только что и сделали создав кастомный файл прав

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #10 : 01 Июль 2012, 15:19:50 »
_http://www.iriot.ru
Проблемы с календарем, подскажите пожалуйста

1. Если на число одна новость то при нажатии к примеру 20 число, открывается сама новость, а если более одной новости то вообще не открывается.

2. Как сделать так что бы при нажатии на дату выходил список новостей на конкретную дату.

3. Если 2 пункт сделать можно, где шаблон для вывода полученной информации.

и еще момент, как указать макросу что бы он искал только в нескольких определенных лентах?

« Последнее редактирование: 01 Июль 2012, 20:33:58 от korogan »

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #11 : 03 Июль 2012, 09:38:21 »
на основе чего у вас календарь? тут уже несколько модификаций предлагали выше и по-моему еще где-то была тема обсуждения по календарю на данном форуме

По большинству, все что вы хотите это кастомизация, то есть надо лезь в код и править его под ваши задачи

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Календарь событий с макросом %news calendar()%
« Ответ #12 : 03 Июль 2012, 12:40:05 »
Календарь на основе стандартного макраса %news calendar()% 

Выше пишут:
Как все просто оказалось с выбором ленты, спасибо огромнейшее за подсказки!

Не особо понятно что именно и куда нужно добавить.