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

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

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

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

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

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

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

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

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

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

Ответов: 5
Просмотров: 5071
Последний ответ 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

  • ****
  • 279
  • +48/-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

  • ****
  • 279
  • +48/-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

  • ****
  • 279
  • +48/-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

  • *****
  • 2444
  • +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

  • *****
  • 2444
  • +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

  • *****
  • 2444
  • +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()% 

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

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