Модуль блока календаря по материалам для Drupal 7

Главные вкладки

Аватар пользователя dylan dylan 12 декабря 2011 в 0:54

Наконец-то портировал модуль календаря по материалам на Drupal 7 (не без финансовой помощи, правда, вот этого человека (namli), а так бы ещё полгода, наверно, портировал)...

Итак, суть модуля:

Простой календарь по материалам, которые можно выбирать либо по дате создания материала, либо по полю типа date (если date установлен, конечно). Если выбор материалов идет по полю, то возможны множественные значения полей (несколько дат на один материал).

Модуль по-прежнему включается как блок и в нем ещё формируется страница типа /calendar/ГГГГ/ММ/ДД для отображения страницы с материалами за выбранный день. Все настройки модуля можно найти в параметрах блока из контекстного меню "Настроить блок". Обновлены по сравнению с версией модуля для 6-ки выборки по типам материалов и поле с датой. Добавлено изменение заголовков событий. Если раньше все материалы назывались событиями, то теперь можно указать, что это будет (записи, новости, события и т.д.)

Добавлена возможность создания отдельных тем оформления календаря. Сейчас там три темы оформления: стандартная, vista и gridy. Стандартная тема тянется по ширине блока, а vista и gridy фиксированной ширины (198 и 182 точки соответственно).

В темы оформления добавлены симпатичные всплывающие подсказки. Добавлены два типа отображения подсказок

      Стандартный - при наведении указателя мыши на день отображается количество материалов

      Подгрузка ссылок - загружается список ссылок на материалы при наведении указателя мыши на день. Для этого типа можно выбрать количество показываемых ссылок.
В натройках блока:

      ● селектор типов материалов (не надо писать руками)

      ● селектор полей с датой (с проверкой на модуль date)

      ● список тем оформления

      ● изменение подписей к материалам

      ● ссылки во всплывающих подсказках

      ● настройка количества элементов на страницах и в подсказках

Пока только не доделал перевод на английский и файл перевода... а там и на drupal.org выложу

За спасибо, приму копеечки на яндекс.деньги 41001896059641 или заказ на разработку новых модулей )))

UPD от 15 декабря 2011:
обновлен модуль с замечаниями RxB (все кроме темизации html через функцию, всё-таки считаю не нужным, но если найдутся те, кому позарез надо будет, сделаю), поэтому обязательно при обновлении модуля отключите старую версию, так как ряд функций был переименован.

UPD от 16 марта 2012:
обновлен модуль, добавил разделение материалов по языкам, добавил темизацию через .tpl файлы, добавил ещё одну тему оформления и выложил на д.орг (http://drupal.org/sandbox/DmitriyMakeev/1488326)

ВложениеРазмер
Иконка пакета russian_beauty_calendar.zip47.79 КБ

Комментарии

Аватар пользователя mNigma@drupal.org mNigma@drupal.org 12 декабря 2011 в 12:55

"dylan" wrote:
Портировал модуль на Drupal 7 и чуть улучшил. Смотреть здесь.

Спасибо за модуль - нужная вещь. Под 7 симпотный. Пора ставить кнопку donate

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 12 декабря 2011 в 13:32

Итак.
1.
russian_beauty_calendar_menu()
В параметре title текст оборачивать в t() не требуется.
2.

function rbc_year_to_arg($arg) { return empty($arg) ? date("Y") : $arg; }
function rbc_month_to_arg($arg) { return empty($arg) ? date("m") : $arg; }
function rbc_day_to_arg($arg) { return empty($arg) ? date("d") : $arg; }

вы бы хоть префикс в виде имени модуля использовали.

3.
строка 80.
                '#description' => 'Выберите тему оформления календаря.',
Коль уж начали по-английски, надо бы и продолжить?

4.
russian_beauty_calendar_block_container()
russian_beauty_calendar_block_content()
почему вы их не сделали функцией темизации?
Юзеры будут изменять HTML на выводе хаком модуля?

5.

        print '<ul>';
        foreach ($result as $row) {
                print '<li>' . l($row->title, 'node/'.$row->nid) . '</li>';
                $counter++;
                if ($counter >= $tooltip_count) break;
        }
        print '</ul>';

что за нах? Есть есть же theme('list') и иже с ними.

6.
Где .install-файл? Кто мусор из системы чистить будет? Пушкин?

Аватар пользователя dylan dylan 12 декабря 2011 в 15:45

1. Спасибо, не знал
2. Не хотелось длинных названий, но придется поменять для д.орга
3. Уже писал, что "Пока только не доделал перевод на английский и файл перевода"
4. Не вижу смысла html редактировать для темизации, всё css-файлами делается свободно, но может поменяю
5. Про темизацию списков знаю, но не хотелось из-за избыточного кода
6. Забылось))) Всё-таки целых 7 переменных)))
Приятно слышать адекватную критику

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 12 декабря 2011 в 15:48

"RxB" wrote:

5. Про темизацию списков знаю, но не хотелось из-за избыточного кода

т.е. (грубо)

        foreach ($result as $row) {
$items[] =  l($row->title, 'node/'.$row->nid);
}
print theme('item_list', $items)

избыточнее вашего?

        print '<ul>';
        foreach ($result as $row) {
                print '<li>' . l($row->title, 'node/'.$row->nid) . '</li>';
                $counter++;
                if ($counter >= $tooltip_count) break;
        }
        print '</ul>';
Аватар пользователя duozersk duozersk 15 декабря 2011 в 17:08

Красивый календарик.

Добавлю свои 5 копеек:

  • не надо пихать свои css и js файлы на каждую страницу через hook_init(). Вы же выводите блок или специфическую страницу - подключите их при выводе блока, в функции из хука меню
  • не надо в конце .module файлов и любых других php файлов (.inc, ...) ставить закрывающие "?>" - на вопрос "почему?" не рекомендуется этого делать именно в Друпале ответ найдется в поисковиках
  • в хуке меню вряд ли все айтемы должны быть MENU_NORMAL_ITEM - там же наверняка есть аяксовые колбеки, например russian_beauty_calendar_links_loader
  • непонятно, почему в аяксовом колбеке не была использована drupal_json_output() - но тут я не проверял, как будет проходить оттемизированный аутпут
  • в js файлах тем включен jQuery плагин за авторством Drew Wilson и с его копирайтами - не лучше ли подключить через libraries
  • опять же про js - где Drupal.behaviors?
  • файлы Thumbs.db вряд ли нужны для функционирования модуля
  • рекомендуется включать полное название модуля не только в названия функций, но и в создаваемые переменные (вот выпустит РБК свой модуль для Друпала Lol
  • про стандарт кода - табуляция в друпале только два пробела и никак иначе; после if, while и тд нужен пробел (чтобы отличалось визуально от вызова функций); возможно, что-то ещё
  • Комментарии к функциям...

Вот этот модуль очень даже просится на друпал.орг - могу помочь с аппликейшен ревью, если подадите именно с ним - естественно, поправив все вышеуказанное + сам процесс одобрения может выявить недочеты.
В качестве идеи - сделать отображение тултипов не жестко через tiptip... есть ещё, например, beautytips, которые уже интегрированы с Друпалом и имеют глобальные настройки тултипов для всего сайта + возможность задавать собственные стили в коде через хук.

Аватар пользователя pselfin pselfin 15 декабря 2011 в 17:31

А он так же как и под д6 на каждое число страницу создает или все же только на ту дату, где есть что выводить?

Аватар пользователя LeopART LeopART 16 декабря 2011 в 3:59

При распаковке архива в линуксе файл модуля имеет вид Š®¯¨ï russian_beauty_calendar.module
Пришлось тащить в винду и распаковывать там Smile Проверьте названия файлов на русские знаки.

А в целом симпатично, спасибо Smile

Аватар пользователя duozersk duozersk 16 декабря 2011 в 10:56

"LeopART" wrote:
При распаковке архива в линуксе файл модуля имеет вид Š®¯¨ï russian_beauty_calendar.module

У меня на юбунте не было такого. Только Thumbs.db файлики.

Аватар пользователя dylan dylan 16 декабря 2011 в 21:10

Valeratal
это просто блок календаря и страницы с материалами... в настройке он гораздо проще calendar'я, а ещё удобная аякс листалка у блока по месяцам)))

P.Selfin@drupal.org">P.Selfin@drupal.org
не понял немного, что именно почистить... страницы он создает по запросу, если запрос не выдает нод, то сообщается об отсутствии материалов за дату

Аватар пользователя FORTIS FORTIS 18 декабря 2011 в 17:35

включил, повесил блок, выбрал стиль ему - стиля нет, блок размазан
--

drupal_add_css(drupal_get_path('module', 'russian_beauty_calendar').'/themes/'.$theme.'/calendar.css', 'module', 'screen');

заменил на

drupal_add_css(drupal_get_path('module', 'russian_beauty_calendar').'/themes/'.$theme.'/calendar.css');

а если хочется опций к drupal_add_css, то в семерке они массивом предаются а не как отдельные параметры

Аватар пользователя pr0g pr0g 20 декабря 2011 в 13:39

Можно ли сделать опцию включения маркеров для новостей(статей)? А то при длинных названиях новостей, она переносится на следующую строку и не понятно, то ли там две новости, то ли одна.

P.S. Все уже разобрался. Данную фишку можно сделать, просто поправив css файл.

Аватар пользователя DyxLesa DyxLesa 27 декабря 2011 в 5:21

При наведении на дату появляется подсказка: количество статей, но при нажатии на дату появляется страница с сообщением : Not Found. The requested URL/calendar/дата not found.
Если стоит тип подстказки "ссылки", то ничего не отображается (точнее, видна серая область и в ней полоса загрузки), тоже при переходе на другой месяц...
Может что-то надо еще указать?
С Drupalом еще на стадии знакомства.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 3 января 2012 в 13:29

Большое спасибо! Симпатичный календарик. Но возникла пара проблем:

Подсказки начинают появляется только после того, как щелкнешь по какой-нибудь из дат с новостями. При этом если перейти на другой месяц, то они опять перестают работать (пока опять не щелкнешь по дате с новостью).

При подключении модуля Calendar Tooltips, подсказки опять перестают работать, но на этот раз уже ничего им не помогает(

И еще, подскажите, пожалуйста, по месяцам можно переходить только с помощью навигации "вперед/назад" или как-то можно настроить вывод списка месяцев, чтобы и выбирать там?

Аватар пользователя dylan dylan 3 января 2012 в 21:10

"vaplas" wrote:
При подключении модуля Calendar Tooltips, подсказки опять перестают работать, но на этот раз уже ничего им не помогает(

Скажите какую ошибку выдает javasctipt в браузере через веб-консоль (если фаерфокс, например)

"vaplas" wrote:
И еще, подскажите, пожалуйста, по месяцам можно переходить только с помощью навигации "вперед/назад" или как-то можно настроить вывод списка месяцев, чтобы и выбирать там?

теперь понял для чего понадобился бы вывод блока через tpl-файл, как говорил RxB... к сожалению, этого пока нет и не знаю будет ли(

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 4 января 2012 в 12:27

При переходе между месяцами выдает

$(".tooltip").tipTip is not a function

function calendar_prev() { (function (... keepAlive:true}); }); })(jQuery); }

// ну или function calendar_next() { (function (... keepAlive:true}); }); })(jQuery); }
//смотря в какую сторону идти

script.js?lx8gr2 (строка 1)

Это без Calendar Tooltips. И подсказки при этом перестают работать, хотя навигация по месяцам продолжает работать нормально. Если обновить страницу - все работает для выбранного месяца.

добавлено:

если вынести функцию TipTip в какую-нибудь function myTipTip(options) {..}
а при загрузке и на кнопках определять ее

$.fn.tipTip = myTipTip;

то вроде работает нормально.
А еще почему бы настройки не вынести в глобальную переменную

var myOptions = {defaultPosition: "right", maxWidth: "400px", keepAlive:true};

или глобальные это хуже чем копипаст?

Аватар пользователя albee29 albee29 9 января 2012 в 15:50

Скажите пожалуйста, можно ли к этому модулю сделать показ будущих дат? В настройках вашего календаря это сделать можно с помощью date, но тогда мы теряем "дату создания материала"... Было бы здорово, если это работало вместе.

Аватар пользователя dylan dylan 9 января 2012 в 23:42

to albee29: для этого нужно установить множественное значение для даты в нужном поле, и для событий указывать и дату создания и дату события... не очень удобно, но можно)))

Аватар пользователя biozz biozz 20 января 2012 в 21:19

А планируется поправка бага с подсказками? ( в текущем месяце подставляются названия материалов, а если пролистать вперед или назад все переходит к виду "2 события")

Аватар пользователя dylan dylan 20 января 2012 в 22:26

"biozz" wrote:
А планируется поправка бага с подсказками? ( в текущем месяце подставляются названия материалов, а если пролистать вперед или назад все переходит к виду "2 события")

Скажите, где увидеть можно этот баг (линк, какой браузер), тогда, может, и устраню. Просто у меня во всех браузерах нормально

Аватар пользователя biozz biozz 21 января 2012 в 17:02

http://sotraining.com.ua/kalendar.html вот
При попадании на страницу изначально все работает нормально, в подсказке высвечивается название материала. Если сделать щаг в следующий или прошедший месяц, то вместо этой подсказки уже высвечивается количество событий. (Даже если вернутся на текущий месяц где все работало нормально, тоже все ломается) В данном примере, я поставил тестово на 21 число материал, и еще несколько событий в Апреле месяце. Все одинаково не работает во всех браузерах))) так что перечислять их не вижу смысла)

Аватар пользователя Kavoru Kavoru 24 января 2012 в 16:36

Супер, просто, понятно, работает. Автор - молодец! Надеюсь не посчитают флудом, просто редко встретишь вот такие модули, по-людски сделанные людьми для людей.

Аватар пользователя Bios Bios 6 марта 2012 в 14:09

Как у вашего модуля с многоязычностью??? есть поддержка???

Какое то время назад ставил по-моему он отображал новости сразу всех языков...

Аватар пользователя AVG AVG 11 марта 2012 в 10:15

Почему-то если я разлогиниваюсь на сайте, то календарь показывает первый месяц этого года. Если логинюсь, то всё нормально — март.

Аватар пользователя veleslab veleslab 16 марта 2012 в 14:32

А есть возможность редактировать страницу вывода материалов? не могу понять как они выводятся.
Было бы не плохо и год тоже менять, а не только месяц.
В целом модуль отличный! Спасибо!

Аватар пользователя duozersk duozersk 16 марта 2012 в 21:53

"IRONFELIX" wrote:
А когда модуль появится на drupal.org

Не знаю, сам автор не заинтересован, а размещать самому - как-то аморально Smile Выше я предлагал свою помощь в ревью кода для проджект аппликейшенов, вместе со списком исправлений - не получил никакой реакции.

Аватар пользователя dylan dylan 16 марта 2012 в 22:41

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

2 duozersk и IRONFELIX:
извиняюсь, что до сих пор не выложил... просто хотелось переделать чуть-чуть (благо новые идеи вы постоянно добавляете), но со временем туговато, как и у всех

Аватар пользователя dylan dylan 18 марта 2012 в 23:40

Обновил модуль, добавил разделение материалов по языкам, добавил темизацию через .tpl файлы, добавил ещё одну тему оформления, поправил мелочи и выложил на д.орг (http://drupal.org/sandbox/DmitriyMakeev/1488326)

Аватар пользователя lifeIsGame lifeIsGame 20 марта 2012 в 3:10

Спасибо. Круто работает. При отображении используется стандартная форма с файла node.tpl.php.
У меня есть вьюшки затемизарованные под мои задачи как необходимо. Можно-ли как-то добавить еще один путь для стандартной вьюшки "Taxonomy term", чтобы и по терминам таксономии(taxonomy/term/%) и по адресу вывода материалов за день модулем "Календарь"(calendar/) выводились одной и той же вьюшкой? Подскажите альтернативный путь, либо какую вьюшку создать для данного пути?

Аватар пользователя lifeIsGame lifeIsGame 20 марта 2012 в 15:17

"dylan" wrote:
Это вам проще в самом представлении выбирать материалы

Вы вообще поняли что Вы сказали? Речи не идет о материале. Читайте внимательней.

Аватар пользователя Kvark Kvark 20 марта 2012 в 15:56

О! Вечером попробую использовать у себя в газете Smile Кстати язык я так понял можно другой подцепить уже через ро?

Аватар пользователя IRONFELIX IRONFELIX 21 марта 2012 в 22:41

Подсказки со списком материалов не пропадают, если после их появления курсор мыши не попал на них, даже если курсор увести с календаря. Так и остаются некрасиво висеть на календаре, даже если скролировать страницу ниже, пока специально мышкой по нему не проведешь.

Аватар пользователя SergO SergO 22 марта 2012 в 8:30

Спасибо за модуль, пришёлся очень кстати. Я его, правда, уже "раздербанил" под свои нужды, так что с обновлениями несовместим Smile

А вообще, если интересно, то у меня была такая задача: исторический календарь, т.е. нужно показывать ноды с полем типа date, которые совпадают с днём и месяцем любого года. Иными словами, если я ткну на календаре 21-го марта 2012, то хочу увидеть все события, произошедшие 21-го марта в разные годы. Соответственно, и адрес страницы выглядит как /calendar/ММ/ДД.

Кстати, из-за того, что даты обрабатываются в формате Timestamp, модуль не находит даты старше начала эпохи UNIX. Решил использованием класса DateTime, однако, не всем это подойдёт из-за ограничения версии PHP: например, метод DateTime::createFromFormat появился только в версии 5.3.0

Аватар пользователя lifeIsGame lifeIsGame 24 марта 2012 в 21:21

Проверял дизайн сайта с anonymouse.org(Прокси-сервер) и увидел как отображается календарь. При авторизированном пользователе(проверял только с администратора) отображается так как хотелось, но когда заходишь на сайт как Гость - то календарные дни отображаются в столбик. Проверял роли - бесполезно. Подскажите пожалуйста.

Аватар пользователя dylan dylan 25 марта 2012 в 23:25

Нужна ссылка на сайт или ошибки, которые показывает консоль. Без них помочь не смогу. Скорее всего стиль оформления не цепляется.

Аватар пользователя lifeIsGame lifeIsGame 26 марта 2012 в 0:12

Сайт поднят недавно. если есть какие замечания - прошу.

"dylan" wrote:

Нужна ссылка на сайт или ошибки, которые показывает консоль. Без них помочь не смогу. Скорее всего стиль оформления не цепляется.

Да, конечно - http://iftech.ru

Аватар пользователя dylan dylan 26 марта 2012 в 8:15

У вас не подключились таблица стилей и скрипты (.js и .css файлы). Попробуйте отключить кеш css и js и посмотрите снова. Или попробуйте обновить кеш.

Аватар пользователя chaosspy chaosspy 26 марта 2012 в 10:02

Здравствуйте.
у меня есть несколько вопросов.
Практически на чистый сайт добавил ваш модуль. (скопировал всю папку в "sites/all/modules/" )
добавил блок в нужную область.
календарь сразу высветил даты когда добавлялся материал, при переходе я получал 404 по адресу(/calendar/2012/03/25)
при настройке блока увидел сообщение о недостающем модуле Date.
поставил Date, включил Date и DateAPI.
Создал материал. но никаких изменений все тотже 404
ни каких каталогов не создается(должны ли??)....
подскажите как решить, что где включить и настроить...
ссылку дать не могу, сайт пока на локалхост

Аватар пользователя dylan dylan 26 марта 2012 в 22:32

Он у вас пишет "Материалы не найдены" или всё же 404 ошибку выдает? Если 404, то попробуйте обновить модуль и сбросить кеш.

Аватар пользователя _NEXT_ _NEXT_ 8 мая 2012 в 8:53

Доброго времени суток! Прежде всего, огромное спасибо за модуль!

chaosspy wrote:
Здравствуйте.
у меня есть несколько вопросов.
Практически на чистый сайт добавил ваш модуль. (скопировал всю папку в "sites/all/modules/" )
добавил блок в нужную область.
календарь сразу высветил даты когда добавлялся материал, при переходе я получал 404 по адресу(/calendar/2012/03/25)
при настройке блока увидел сообщение о недостающем модуле Date.
поставил Date, включил Date и DateAPI.
Создал материал. но никаких изменений все тотже 404
ни каких каталогов не создается(должны ли??)....
подскажите как решить, что где включить и настроить...
ссылку дать не могу, сайт пока на локалхост

У тех у кого отключены чистые ссылки, будет выдаваться 404 ошибка, т.к. ссылки даты ссылаются на /calendar/YYYY/MM/DD а не /?q=calendar/YYYY/MM/DD
Решается это либо включением чистых ссылок, либо если это не возможно, то вручную правится в файле "russian-beauty-calendar-day.tpl.php" в 23й строке дописанием слева к calendar/ на ?q=
В итоге получаем ?q=calendar/
Предлогаю это вынести в настройки, либо проверку повесить на включеность чистых ссылок.

chaosspy wrote:
есть еще вопрос.
календарь не переходит по месяцам. после нажатия на смену месяца бесконечная анимация полосы загрузки.
и можете дать ссылку на рабочий календарь (хочется сверь генерируемый HTML)

У меня аналогичная проблема, тоже не перелистывает по месяцам, в чем может быть проблема? Очистка кэша не помогает.

Аватар пользователя klew klew 18 августа 2012 в 23:19

chaosspy wrote:
есть еще вопрос.
календарь не переходит по месяцам. после нажатия на смену месяца бесконечная анимация полосы загрузки.
и можете дать ссылку на рабочий календарь (хочется сверь генерируемый HTML)

У меня аналогичная проблема, тоже не перелистывает по месяцам, в чем может быть проблема? Очистка кэша не помогает.[/quote]

Присоединяюсь - та же проблема - бесконечная анимация - отпишитесь пожалуйста кто решил проблему

Аватар пользователя GoldenLion GoldenLion 27 марта 2012 в 20:26

Вопрос такой: нельзя ли этот календарь немного доработать?
Для использования его в электронных версиях печатных СМИ (газет). Дело в том, что у печатного периодического издания есть номер и дата выпуска (обычно, такого формата: "РГ" № 77 (1675) от 27.03.2012). Идея такая: при размещении материала в электронную версию, например газеты, к той или иной статье, помимо даты, чтоб была возможность присвоить порядковый номер газеты... Нужен небольшой блок над Вашим календарем, где вместе дат (чисел и месяцев) указывались бы № газет (например, 77 (1675), 78 (1676) и так далее)... Наведя курсором на тот или иной номер газеты, пользователь видит список опубликованных в данном номере газеты материалов...

Аватар пользователя dylan dylan 28 марта 2012 в 1:05

"GoldenLion" wrote:
Вопрос такой: нельзя ли этот календарь немного доработать?

Доработать можно)
"GoldenLion" wrote:
Дело в том, что у печатного периодического издания есть номер и дата выпуска (обычно, такого формата: "РГ" № 77 (1675) от 27.03.2012).

Но нужна ли информация такого рода посетителям сайта? Не проще у самих статей сделать поле термина таксономии и в нем задавать выпуск, в котором была опубликована статья?

Аватар пользователя chaosspy chaosspy 2 апреля 2012 в 9:01

есть еще вопрос.
календарь не переходит по месяцам. после нажатия на смену месяца бесконечная анимация полосы загрузки.
и можете дать ссылку на рабочий календарь (хочется сверь генерируемый HTML)

Аватар пользователя GoldenLion GoldenLion 9 апреля 2012 в 17:18

"dylan" wrote:
Но нужна ли информация такого рода посетителям сайта? Не проще у самих статей сделать поле термина таксономии и в нем задавать выпуск, в котором была опубликована статья?

Для электронных версий печатного СМИ очень нужна...
1) На сайте нужен некий такой симпатичный блок, где была бы возможность выбора дней, месяца, года, и при выборе этих параметров на дополнительном окошке (помимо окошка дней) появились бы номера выпусков: 77 (1675), 78 (1676) и так далее...
И по аналогии с Вашим календарем, при наведении курсора на тот или иной номер выпуска, высвечивались бы названия статьей (материалов), опубликованных в данном номере, а при нажатии на номер - на главной странице сайта появились анонсы этих статьей...
То есть задумка такая:
- сделать некую такую визуальную поисковую форму в форме календаря, чтоб посетитель примерно зная: или номер выпуска, или месяц и год публикации той или иной статьи, мог быстро найти нужный ему материал...
2) Чтоб при публикации статьи на сайте в параметрах публикации можно было бы присвоить именно тот номер и дата выпуска бумажного СМИ, в котором эта статья опубликована...

Как лучше все это реализовать, Вам, веб-кодерам и программерам, виднее... Я же всего лишь потребитель готовых разработок и решений, с помощью которых на досуге занимаюсь сборкой сайтов... Сделаете? Могу взнос DONATE внести...

Аватар пользователя dylan dylan 9 апреля 2012 в 21:34

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

Аватар пользователя GoldenLion GoldenLion 10 ноября 2015 в 11:48

dylan wrote:
... так и не смог себе представить, как это может выглядеть...
Номер выпуска можно сделать полем для материала, и группировать материалы по этому полю как по тегам. Но не пойму как визуально это можно совместить с календарем.

Нужно, чтоб визуально выглядело примерно так, как в прикрепленном рисунке...
и чтоб:
1) при наведении курсора как на дату, так и на номер выпуска, выдавался список материалов данного номера...
2) при смене месяца календаря в разделе "Номера выпусков" отображались только номера выпусков только данного месяца.
То есть нужен более расширенный календарь, с отображением номеров выпусков (которые привязаны к той или иной дате)...
Представляю так: при размещении того или иного материала на сайте СМИ, помимо даты (которая, как правило, присваивается автоматически, исходя из текущей системной даты сервера сайта или вручную), вручную в специальной доп.графе данного типа материалов указывается номер выпуска (текущего года и нарастающим за все годы)... Вот этот номер и надо вывести в календаре дополнительно...

Аватар пользователя Kvark Kvark 3 мая 2012 в 11:31

Привет, поработаю с удовольствием над переводом на литовский язык!

Вопрос по настройкам - может можно включить в следующию версию такую штуку как инверсия выборки?
Сейчас можно показывать "все" или "выбранное"+кнтрл, в моем случае много типов материалов (да знаю что криво сделал но еще работаю над оптимизацией) и вот пригодилась бы опция "все кроме отмеченных"
У меня вот только объявления исключить хочется, а типов статей за 20... и они постоянно меняются - и каждый раз приходиться лазить в настройки селектить...

Аватар пользователя GoldenLion GoldenLion 4 мая 2012 в 20:50

dylan wrote:
... полезная будет функция, реализую.
Будьте так добры, на мою "хотелку" обратите тож внимания... Для Вас реализовать её, как я понимаю, не составить труда. Очень она мне нужна... Wink Отблагодарю...

Аватар пользователя Kvark Kvark 2 мая 2012 в 11:25

супер! Мне кажется хватило бы добавить чек бокс "инвертировать выбор" и если он чекнут то срабатывает инверсия...

Аватар пользователя Kvark Kvark 3 мая 2012 в 11:25

Можно еще попросить расширить список правил по склонению? Мне не хватает Sad

Мне кажется это не только в литовском варианте, но и в русском: 1 статья, 2 статьи, 7 статей... или я не умею сконфигурировать?

Аватар пользователя dylan dylan 4 мая 2012 в 0:07

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 8 мая 2012 в 11:05

"_NEXT_" wrote:

Предлогаю это вынести в настройки, либо проверку повесить на включеность чистых ссылок.

Скорее там тупой хардкод, если выводить через l(), то она подставит нужное

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 7 июня 2012 в 19:24

Здравствуйте. Отличный модуль!

Возможно ли внести следующие изменения?

1.
при выборе вывода списка новостей, добавить возможность самостоятельно описать то, из чего должны состоять пункты. Т.е. сейчас это всегда заголовки, но было бы здорово, если бы это было что угодно (тизеры, или комбинация различных полей). Сейчас для этого приходится менять код с:

print '<li>' . l($row->title, 'node/' . $row->nid) . '</li>';

на

print '<li>' .myRenderRow($row->nid). '</li>';
...
function myRenderRow($nid){
/*
создания подходящего вида для отдельного пунтка
например тизера, или сборки из разных полей
*/

return $strNode;
}

Наверняка удобней, если бы эту функцию можно было описать в php-поле с поддержкой переменной $nid на странице с настройкой календаря.

2.
Вывод материала по полю типа Дата не работает для форматов Unix timestamp и ISO format. Приходится переписывать запросы на выборку и сравнение времени. Если бы они поддерживались в модуле, а выбор того, какой из них использовать производился на странице с настройкой модуля в раскрывающемся списке, было бы круто!

Спасибо!

Аватар пользователя dylan dylan 7 июня 2012 в 22:46

vaplas: Спасибо.
1. Думаю как время появится на д.орге допилю и хочу сделать селект для выбора отображения материалов (только ссылка, тизер, маркер и т.д. как это есть на странице настройки отображения типа материала), но это повтом)))
2. А можно подробнее, где вы указываете эти форматы, просто и на локалхосте под виндой и на серваках под никсами все в норме. Скажите, как сделать так, чтобы не работало)

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 8 июня 2012 в 2:31

dylan, извините, на счет ISO format погорячился, он работает.
Но вот с полями формата Date (Unix timestamp) по-прежнему не получается Sad
Доступ к тестовому сайту кинул в личку.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 8 июня 2012 в 11:17

Еще заметил такой глюк, что почему-то при включенном режиме "Кеширование блоков" (Cache blocks, /admin/config/development/performance). Для анонимных пользователей перестают подключаться таблицы стилей.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 18 июня 2012 в 18:06

Попробовал переправить код для Unix timestamp (russian_beauty_calendar.module)

<?php

строка 388
$day_nids

[(int) date('d'strtotime($row->$field_name))]++;
на
$day_nids
[(int) date('d'$row->$field_name)]++;
    
строка 586
$select
->where('DATE(' $field_name '_value) = :date'
array(
':date' => date('Y.m.d'$date)));
на
$select
->where('FROM_UNIXTIME(' $field_name '_value,\'%Y.%m.%d\') = :date'
array(
':date' => date('Y.m.d'$date)));

строка 655
$select
->where('DATE_FORMAT(fd.' $field_name '_value, \'%Y%m\') = :stamp'
array(
':stamp' => date('Ym'$date)));
на
$select
->where('FROM_UNIXTIME(fd.' $field_name '_value, \'%Y%m\') = :stamp'
array(
':stamp' => date('Ym'$date)));

?>

заработало, но только на половину (в календаре дни отмечаются, но при наведении на одни из отметок выводится "Error", хотя при наведении на другие - все хорошо).

Вот пример: http://test.infine.me/
Все новости в июне показываются нормально, кроме 7-ого числа. И так в каждом месяце находится такие ошибочные.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 20 июня 2012 в 18:17

Полностью подделав обработку Unix stamp под алгоритм вывода даты создания (которая тоже в этом формате) кажется удалось добиться того что надо.

Т.е. так:

строка 388

<?php
$day_nids
[(int) date('d'strtotime($row->$field_name))]++;
?>

на

<?php
$day_nids
[(int) date('d'$row->$field_name)]++;

?>

строка 586

<?php
$select
->where('DATE(' $field_name '_value) = :date'
array(
':date' => date('Y.m.d'$date)));
?>

заменить на

<?php
$select
->where($field_name '_value >= :dateL AND '.$field_name '_value < :dateR', array(':dateL' => $date':dateR' => ($date+86400)));

?>

строка 655

<?php
$select
->where('DATE_FORMAT(fd.' $field_name '_value, \'%Y%m\') = :stamp'
array(
':stamp' => date('Ym'$date)));
?>

заменить на

<?php
$dateL 
mktime(000date('m'$date), 1date('Y'$date));
$dateR mktime(000date('m'$date) + 11date('Y'$date));
$field 'fd.' $field_name '_value';      
$select->where$field.' >= :dateL AND ' $field ' < :dateR', array(':dateL' => $dateL':dateR' => $dateR));
?>
Аватар пользователя dalerr dalerr 14 июля 2012 в 14:33

При включении настройки " Кэширование блоков", почему то не подгружаются JS & CSS файлы модуля, можно ли это как то исправить?
Если да, то могли бы вы выложить отдельно, не через git.

Спасибо за модуль Smile

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 14 июля 2012 в 15:17

Решение проблемы с кешированием блоков.

Т.е. в файле russian_beauty_calendar.module изменить функцию russian_beauty_calendar_block_view на такую:

<?php
function russian_beauty_calendar_block_view($delta '') {

  

$theme variable_get('russian_beauty_calendar_theme''round');
  
//drupal_add_css(drupal_get_path('module', 'russian_beauty_calendar') . '/themes/' . $theme . '/calendar.css');
  //drupal_add_js(drupal_get_path('module', 'russian_beauty_calendar') . '/themes/' . $theme . '/script.js');

  

$m date('m');
  
$y date('Y');

  if (

arg(0) == 'calendar') {
    if (
arg(1) > 0) {
      
$y = (int) arg(1);
    }
    if (
arg(2) > 0) {
      
$m = (int) arg(2);
    }
  }

  if (

arg(0) == 'node' && arg(1) > 0) {
    
$type variable_get('russian_beauty_calendar_node_type''');
    
$node node_load(arg(1));
    if ((
$node->type == $type && $type != '%') || ($type == '%')) {
      
$m date('m'$node->created);
      
$y date('Y'$node->created);
    }
  }

  
  
  
  
 

// $block['subject'] = t('Calendar');
 // $block['content'] = '<div id="calendar-body">' .    russian_beauty_calendar_block_content(mktime(0, 0, 0, $m, 1, $y)) .    '</div>';
    
    
    

    

$block = array
    (
      
'subject' => t('Calendar'),
      
'content' => array
      (
        
'#markup' => '<div id="calendar-body">' .
    
russian_beauty_calendar_block_content(mktime(000$m1$y)) .
    
'</div>',
        
'#attached' => array
        (
          
'js' => array(drupal_get_path('module''russian_beauty_calendar') . '/themes/' $theme '/script.js'),
          
'css' => array(drupal_get_path('module''russian_beauty_calendar') . '/themes/' $theme '/calendar.css'),
        ),
      ),
    );   
  
  return 
$block;
}
?>
Аватар пользователя Freedom Freedom 6 августа 2012 в 0:19

При включении флажка "Separate nodes by language" и открытии страницы все нормально. Интерфейс на нужном языке. Однако при листании месяца, интерфейс переключается на язык по умолчанию, а с ним и выводимые в конкретной дате названия нод.

Аватар пользователя proweb proweb 31 августа 2012 в 1:02

спасибо за модуль.

не знаю, баг или не доделано:
В настройках календаря в выпадающем списке Date field, выбираю созданное мною поле(тип поля - дата). Это поле состоит из даты начала и даты окончания. Ы блоке календаря подсвечивается только дата начала, а сам временной промежуток нет.

Аватар пользователя dylan dylan 31 августа 2012 в 19:46

Модуль не показывает дату окончания, только даты начала. Поле даты может иметь несколько значений.

Аватар пользователя pr0g pr0g 10 ноября 2015 в 11:48

dylan
А где можно взять последнюю версию календаря? У той которая прикреплена к данной теме в теме оформления Round небольшой глюк, если в текущий день были статьи то значок полностью закрашен синим.

Аватар пользователя dylan dylan 12 сентября 2012 в 8:07

pr0g: Спасибо, в следующем коммите поправлю css в теме round. А последнюю версию можно взять на d.org в моей песочнице http://drupal.org/sandbox/DmitriyMakeev/1488326 открыть Repository viewer (http//drupalcode.org/sandbox/DmitriyMakeev/1488326.git) и кликнуть справа на ссылку с текстом snapshot. Модуль поменял название на Pretty Calendar, так как Russian Beauty Calendar ассоциируется как минимум с календарём с обнаженными русскими красавицами Wink

Аватар пользователя pr0g pr0g 10 ноября 2015 в 11:48

dylan
Скачал я последнюю версию с песочницы и заметил что названия месяцев на английском языке, хотя дни недели отображаются на русском. В версии что прикреплена к данной теме название месяца на русском языке.

Аватар пользователя dylan dylan 12 сентября 2012 в 20:19

там переводить надо через перевод интерфейса... пока что модуль в песочнице перевод с модулем размещать нельзя, а localize.drupal.org не даёт добавлять перевод пока модуль не опубликован.

Аватар пользователя pr0g pr0g 12 сентября 2012 в 21:29

"dylan" wrote:
там переводить надо через перевод интерфейса... пока что модуль в песочнице перевод с модулем размещать нельзя, а localize.drupal.org не даёт добавлять перевод пока модуль не опубликован.

А в старой версии вроде было на русском или там было в коде написано по русский?

Аватар пользователя Splinter Splinter 6 октября 2012 в 18:09

Подскажите, в чем проблема. Поставил модуль, настроил для отображения статей и новостей на сайте.
Путь calendar/YYYY/MM/DD переопределил с помощью views. Всё работает отлично. Но на страницах просмотра по дате через календарь, вылетает вот такая ошибка:

Notice: Undefined index: localized_options в функции menu_navigation_links() (строка 1858 в файле /var/www/omsk/httpdocs/includes/menu.inc).

Раньше такого не было, поиск не дал результатов. Спасибо. Модуль классный.

Аватар пользователя great.earl great.earl 15 октября 2012 в 12:35

модуль хорош, но есть вопрос - можно ли ему указать, чтобы показывал определенный контент в зависимости от групп? Модуль Organic Groups использую. Сейчас отображает контент всех групп, а надо только те материалы, которые принадлежат группе, куда входит пользователь.

Аватар пользователя dylan dylan 15 октября 2012 в 20:18

Спасибо за идею. Такое пока не предусмотрено. Добавлю в список возможных дополнений. Как-нибудь сделаю, но скоро не обещаю.

Аватар пользователя AmiGator AmiGator 22 ноября 2012 в 16:52

хорошо бы еще, чтобы можно создавать сколько угодно блоков, под каждый раздел сайта, например. и соответственно в каждом таком блоке вместо /calendar/ГГГГ/ММ/ДД что то свое, типа design/ГГГГ/ММ/ДД photo/ГГГГ/ММ/ДД и прочее. была бы вообще конфетка Smile

Аватар пользователя qqga qqga 26 ноября 2012 в 12:46

"_NEXT_" wrote:
Опубликовано _NEXT_ в вт, 08/05/2012 - 10:53.

Доброго времени суток! Прежде всего, огромное спасибо за модуль!

chaosspy написал(а):
Здравствуйте.
у меня есть несколько вопросов.
Практически на чистый сайт добавил ваш модуль. (скопировал всю папку в "sites/all/modules/" )
добавил блок в нужную область.
календарь сразу высветил даты когда добавлялся материал, при переходе я получал 404 по адресу(/calendar/2012/03/25)
при настройке блока увидел сообщение о недостающем модуле Date.
поставил Date, включил Date и DateAPI.
Создал материал. но никаких изменений все тотже 404
ни каких каталогов не создается(должны ли??)....
подскажите как решить, что где включить и настроить...
ссылку дать не могу, сайт пока на локалхост
У тех у кого отключены чистые ссылки, будет выдаваться 404 ошибка, т.к. ссылки даты ссылаются на /calendar/YYYY/MM/DD а не /?q=calendar/YYYY/MM/DD
Решается это либо включением чистых ссылок, либо если это не возможно, то вручную правится в файле "russian-beauty-calendar-day.tpl.php" в 23й строке дописанием слева к calendar/ на ?q=
В итоге получаем ?q=calendar/
Предлогаю это вынести в настройки, либо проверку повесить на включеность чистых ссылок.

chaosspy написал(а):
есть еще вопрос.
календарь не переходит по месяцам. после нажатия на смену месяца бесконечная анимация полосы загрузки.
и можете дать ссылку на рабочий календарь (хочется сверь генерируемый HTML)
У меня аналогичная проблема, тоже не перелистывает по месяцам, в чем может быть проблема? Очистка кэша не помогает.

Проблема опять-же в чистых и грязных ссылках.
(Интересно что в calendar-day.tpl.php (pretty_calendar-7.x-1.x-dev) есть проверка на чистость ссылок и все бы работало вот только вместо "?q=" он вставляет "q?=".)
Так вот если у вас грязные ссылки, то вы скорее всего не можете перелистывать месяца, чтобы решиь эту проблему
найдие функцию calendar_go(в pretty_calendar-7.x-1.x-dev она в файле pretty_calendar.js), и добавьте опять же
"?q=" в строку "$.get("?q="+Drupal.settings.basePath + "calendar_get/" +....."

Аватар пользователя Dochost Dochost 21 января 2014 в 8:36

Проблема опять-же в чистых и грязных ссылках.
(Интересно что в calendar-day.tpl.php (pretty_calendar-7.x-1.x-dev) есть проверка на чистость ссылок и все бы работало вот только вместо "?q=" он вставляет "q?=".)
Так вот если у вас грязные ссылки, то вы скорее всего не можете перелистывать месяца, чтобы решиь эту проблему
найдие функцию calendar_go(в pretty_calendar-7.x-1.x-dev она в файле pretty_calendar.js), и добавьте опять же
"?q=" в строку "$.get("?q="+Drupal.settings.basePath + "calendar_get/" +....."

Вот решение !)

Аватар пользователя dalerr dalerr 30 ноября 2012 в 10:56

Я бы заказал у вас доработку, нужно выводить выпадающее меню с выбором года, чтобы не кликать по 12 месяцев для навигации по архиву по годам.

Аватар пользователя Skeptik Skeptik 21 января 2013 в 23:01

Если попытаться открыть на сайте несуществующую ноду, то вываливается ошибка. Чтобы ошибка не вываливалась, нужно поставить проверку на существование ноды, у которой берутся свойства. Для этого в файле pretty_calendar.module необходимо заменить строку 252 с

if ($use_all || (in_array($node->type, $types) && !$use_all)) {

на

if (($use_all || (in_array($node->type, $types) && !$use_all)) && (!empty($node))) {

Аватар пользователя Skeptik Skeptik 25 января 2013 в 15:17

А у меня не работает листалка - все заголовки с тизерами вываливаются на одно страницу. Особенно печально, когда без даты просто http://my_sit/calendar. (((
Ставлю разное "количество на страницу" в настройках блока, но толку никакого.

Аватар пользователя Sancho_pance Sancho_pance 13 февраля 2013 в 14:06

Очень нужен ваш совет. МОДУЛЬ-СУПЕР все работает, ошибок не выдает,
но он выводит только часть информации, из-за этого пока нельзя его использовать. Есть Contextual filters: дата начала события start date (field_date) и дата окончания (field_date:value2)). Долго настраивал, но в календарике выводит только дату начала события. Соответственно, если у меня пять событий каждое по 5 дней (кино) то на календаре у меня всего пять дат, а должно быть больше.
Очень прошу подсказать направление. Спасибо заранее

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 10 ноября 2015 в 11:49

Добавил поддержку диапазонов дат (патч). Включение и отключение обработки диапазонов дат производится в настройке блока календаря (чекбокс "Use date range")

Пример:

пруфлинк

Еще предлагаю изменить javascript для тултипов, т.к. сейчас чтобы они исчезли нужно навести на них курсор, а потом увести. Поэтому если курсор вообще не наводить на всплывшую подсказку - она подвиснет.

Решение: убирать тултип если курсор убран с ячейки дня, и при этом не наведен на сам тултип в течении дельты времени, например, 0.3 с (патч)

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

Еще, может в rel вместо даты выводить список nids. Потому что врядли существуют дни, связанные с сотней новостей, а вот если на сайте тысяч десять новостей, и каждый раз при наведении фильтровать их по дате - будет затратно.

Помню автор хотел добавить выбор между тайтлом, тизером и т.д. а также php поле для задания собственного вывода. Но что-тот так и не добавил. Для наглядности пользы от этого:

Что там с настроечкой для Unix timestamp ?)

Если что, готов оказать посильную помощь. Спасибо за внимание Smile

upd: подправил патч с диапазоном дат (а именно косяк, если начало диапазона было в прошлом месяце)

пропатченные файлы

Аватар пользователя sdm98 sdm98 12 марта 2013 в 15:45

добрый. спасибо за модуль!

после того, как пропатчил появился глюк. когда загружается показывает название события, но после того, как поменяешь месяц показывает "1 story". похоже в js ошибка где-то. в настройках стоит показывать линк к ноде.

Аватар пользователя xSPiRiTx xSPiRiTx 10 ноября 2015 в 11:49

искал там уже...не находится ничего!
Вот на скрине видно, что результаты поиска отсутствуют, а под оверлеем сам календарь

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 13 марта 2013 в 12:26

sdm98, если речь об этом патче, то не знаю чем помочь, у меня при листании все ок. Давай ссылку, вдруг чего увижу.

xSPiRiTx, "March" а не "MARCH", это ж не аббревиатура

Аватар пользователя sdm98 sdm98 13 марта 2013 в 12:43

to xSPiRiTx

Заранее спасибо!
патч, который задаёт диапазон дат.
вот сам сайт с календарем. http://ideal-aesthetics.ru/novosti справа "календарь мероприятий". март открывается нормально. а апрель или февраль ужу глюки. возвращаешь назад на март, та же хрень.

ЗЫ. можете выложить полностью пропатченный модуль. у меня второй патч, где исчезает надпись ругнулся.

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 13 марта 2013 в 15:36

При переходе по месяцам вылазит ошибка:

Uncaught TypeError: Object [object Object] has no method 'tipTip'

Но сильно сомневаюсь, что в этом виноват патч. Возможно она появилась раньше, просто не заметил. Проверь без патча, если она исчезнет - тогда буду ломать голову, иначе сам вспоминай, чего там навертел.

На тестовом сайте с которого сделаны патчи и взяты файлы - таких проблем нет

Аватар пользователя sdm98 sdm98 13 марта 2013 в 19:10

фигня какая-то (((
на локале развернул чистый друпал. поставил date+pretty_calendar, создал тип материала. всё работает.
этот же модуль копирую на рабочий сайт, чищу кэш сайта, кэш броузера, и не работает (( что может быть? от каких-то модулей он может зависеть?

Аватар пользователя izac izac 15 марта 2013 в 17:28

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

Аватар пользователя Bios Bios 16 октября 2013 в 14:58

Прошу помощи с многоязычным сайтом...

есть сайт с несколькими языками (по умолчанию русский). Нужно чтобы для каждого языка отображались свои новости (обычно новости добавляются через переводы русских новостей). В настройках блока календаря стоит галочка "Разделять материалы по языкам", но отображаются почему то только новости на русском

Аватар пользователя ihorls ihorls 8 декабря 2014 в 18:07

Bios wrote:
Прошу помощи с многоязычным сайтом...

есть сайт с несколькими языками (по умолчанию русский). Нужно чтобы для каждого языка отображались свои новости (обычно новости добавляются через переводы русских новостей). В настройках блока календаря стоит галочка "Разделять материалы по языкам", но отображаются почему то только новости на русском

У меня та же проблема... Напишите, удалось ли Вам ее решить

Аватар пользователя mixxael mixxael 22 октября 2013 в 12:09

У меня проблема с использованием colorbox. Хочу при формировании ссылок в календаре, чтобы при клике на дату страница 'calendar/yyyy/mm/dd' или ссылка на ноду 'node/[nid]', нода выводилась в сплывающем colorbox, для этого добавляю класс ссылке "colorbox-load", но нода все равно открывается в этом же окне, а не в попапе. пробовал также использовать попап через модуль modal forms, но все равно происходит переход на страницу, а не попап

Аватар пользователя Smoliannikoff Smoliannikoff 21 ноября 2013 в 19:53

Кто знает почему не применяются темы к календарю ((( .... блок отображает просто даты в строчках и все ! Как прикурить темы оформления ? (drupal 7.24 jQuery 1.7.1)

Аватар пользователя kirminator2 kirminator2 22 декабря 2013 в 3:19

классный модуль.
тут в комментариях писали о том, что материалы на страницах выбранных дат отображаются тизерами, и якобы надо править файлы темы. А кто-нибудь пробовал вывести эти материалы через представления?
создавайте представления страниц и указывайте такой путь: /calendar/%/%/%
у меня все четко работает, правда отображается материал за все время.
Подскажите как настроить фильтр, чтобы отображался материал за 1 день?

Аватар пользователя ibest ibest 27 декабря 2013 в 10:58

Вот наконец добрался до реального применения этого календарика ) был очень удивлен что сабж не понимает дату в формате unix, тоже касается и патча на диапазон дат. Если для кого то актуально, могу написать инструкции по фиксу, и не мешало бы автору самому внести правки в след. итерации

Аватар пользователя Dochost Dochost 21 января 2014 в 6:54

Календаарь работает!!! но есть одина проблема! когда мы выбираем дату нынешнего месяца, события данного числа выдаются так как и должны, но когда мы начинаем перелёстывать месяца, то в адресной строке выдает такой адрес: http://xxx.ru/calendar_get/?q=calendar/2013/12/17,
а нам нужен http://xxx.ru/?q=calendar/2013/12/17, соответственно css стили не применяются к данной страници, подскажите как это исправить. заранее спасибо!

Аватар пользователя AlexeyBorisenko AlexeyBorisenko 27 февраля 2014 в 8:02

Люди подскажите как сделать свое оформление для страницы /calendar/YYYY/MM/DD ?
Делал через views путь страницы /calendar/%/%/%
но тогда при переходе на страницу, никакой привязке к дате нет, выводятся все материалы, а не привязанные к дате.

Аватар пользователя ibest ibest 27 февраля 2014 в 10:36

AlexeyBorisenko wrote:
Люди подскажите как сделать свое оформление для страницы /calendar/YYYY/MM/DD ?
Делал через views путь страницы /calendar/%/%/%
но тогда при переходе на страницу, никакой привязке к дате нет, выводятся все материалы, а не привязанные к дате.

- используйте аргументы views
- более разумный метод, используя hook_menu_alter сформировать новый список собственной функцией
- также можно темизировать отдельные элементы используя node.tpl.php или node--ТИП_НОДЫ.tpl.php, это самый простой вариант

* на всякий случай поясняю, что для двух последних вариантов views не нужен

Аватар пользователя AlexeyBorisenko AlexeyBorisenko 27 февраля 2014 в 10:43

ibest wrote:

- используйте аргументы views
- более разумный метод, используя hook_menu_alter сформировать новый список собственной функцией
- также можно темизировать отдельные элементы используя node.tpl.php или node--ТИП_НОДЫ.tpl.php, это самый простой вариант

* на всякий случай поясняю, что для двух последних вариантов views не нужен

1. Какой именно аргумент нужно использовать?

2. Почитаю об этом.

3. Темизация node--ТИП_НОДЫ.tpl.php темизирует ноду при открытие, но не вывод, который выдается на calendar/YYYY/MM/DD.
Если в node.tpl.php сделать

<?php
if ($node->type == 'MyType'): ?> Новый вывод <? else: ?> Обычный вывод <? endif; ?>

То да, переопределяется.

Аватар пользователя ibest ibest 27 февраля 2014 в 16:57

"AlexeyBorisenko" wrote:
1. Какой именно аргумент нужно использовать?

точно не скажу, давно views не использовал, есть чтото вроде Year, Month, Week

Аватар пользователя chelwolf chelwolf 20 марта 2014 в 15:14

Календарь отличный. Хорошая замена той срамоте, что есть сейчас по стандарту. Радует. Спасибо за работу. Готов вложиться лишь бы модуль был быстрей завершён.

Аватар пользователя DenIС DenIС 27 марта 2014 в 2:39

Здрасти .....
Я стесняюсь спросить: как его установить, чтобы он появился на сайте? Я вроде модули все поставил, все ошибки исправил, всё активировал, настройки все провёл .... А календаря нет.
Я даже специально новую публикацию сделал чтобы что то появилось. А календаря нет.:(

Аватар пользователя your_magnet your_magnet 4 мая 2014 в 0:17

Скажите, как можно для определенных пользователей разных ролей сделать, чтобы на календаре отображались только события(в моем случае заявки), закрепленные за этим пользователем, а другому пользователю-другие заявки? Спасибо.

Аватар пользователя ihorls ihorls 11 декабря 2014 в 13:05

Kvark wrote:
Как у вас настроено распознование языка на сайте?

по префиксу пути

UPD: и правда... похоже, дело в том, что модуль формирует ссылки не учитывая префикс, соответственно они верны только для языка по умолчанию...

может кто подскажет как исправить пока я сам искать буду?

Аватар пользователя avbelov73 avbelov73 17 декабря 2014 в 13:08

Доброго времени суток!

При использовании модуля в один календарь вывожу даты двух типов материалов (новости и события). Проблема в том, что нужно выводить кастомные даты (field_news_date и field_event_date). Можно ли сделать множественный выбор для полей даты или каким образом можно кастомизировать?

Аватар пользователя tlito tlito 24 декабря 2014 в 0:42

Какая активная тема!
Я тоже хочу настроить ваш модуль russian_beauty_calendar
но у меня не получается:
у меня материалы типа Праздник имеют поле date без установки года, то есть год равен 0.
я не могу понять где в коде изменить чтобы выбирались материалы с годом 0, а не 2014 как нажимает пользователь.
как вообще год отключить?

вот часть кода со строки 557 в файле russian_beauty_calendar.module

<?php
function russian_beauty_calendar_select_nodes($date 0$links_only FALSE) {
  global 
$language;
  
$field_name variable_get('russian_beauty_calendar_field_date''');
  
$node_types explode(','variable_get('russian_beauty_calendar_node_type'''));

  

// Check if field was deleted.
  
if (field_info_field($field_name) == '') {
    
$field_name '';
  }

  

// Select nodes without date field.
  
$select db_select('node''n')
    ->
fields('n', array('nid''title''created'))
    ->
condition('n.status'1);
  
// Multilanguage condition.
  
if (variable_get('russian_beauty_calendar_separate_languages'FALSE)) {
    
$select->condition('n.language'$language->language);
  }
  
// Check date.
  
if ($date 0) {
    if (
$field_name == '') {
      
$select
        
->condition('created'$date'>=')
        ->
condition('created'$date 86400'<');
    }
    else {
      
$select->distinct();
      
$select->leftJoin('field_data_' $field_name'fd''fd.entity_id = n.nid');
      
$select->fields('fd', array($field_name '_value'));
      
$select->where('DATE(' $field_name '_value) = :date', array(':date' => date('Y.m.d'$date)));
    }
  }
  
// Check types.
  
if ($node_types[0] != '') {
    if (
variable_get('russian_beauty_calendar_node_invert'FALSE)) {
      
$select->condition('n.type'$node_types'NOT IN');
    }
    else {
      
$select->condition('n.type'$node_types'IN');
    }
  }
  
$select->orderBy('n.sticky''DESC')
    ->
orderBy('n.created''DESC');

  if (!

$links_only) {
    
$select->extend('PagerDefault')
      ->
limit(variable_get('russian_beauty_calendar_node_per_page''20'))
      ->
addTag('node_access');
    return 
$select->execute()->fetchCol();
  }
  else {
    
$select->addTag('node_access');
    
$result = array();
    foreach (
$select->execute() as $row) {
      
$result[] = $row;
    }
    return 
$result;
  }
}
?>

как правильно изменить выборку select на строке 586 чтобы год выбирался равным нулю
$select->where('DATE(' . $field_name . '_value) = :date', array(':date' => date('Y.m.d', $date)));

реально дата праздника в бд выглядит так для 8 марта:
0000-03-08 00:00:00

и 8 марта должно показываться каждый год в календаре.

Аватар пользователя Marygold Marygold 10 апреля 2015 в 16:07

Как дублировать блок с календарем?
Например, на странице Новостей, надо чтобы он показывал календарь "новостей", а на странице других материалов - показывал календарь для других типов материалов соответственно.

По дефолту ведь только 1 модуль, который можно настроить на определенный тип/типы и всё?

Аватар пользователя 237us 237us 12 апреля 2015 в 22:47

Здравствуйте, Подскажите есть ТЗ как его лучше реализовать писать модуль или есть готовое простое решение? Очень нужен совет.
Создание маленького сайта на Drupal 7
site dedicated to our pets.
1. The system users are pet-owning employees.
2. “Pet” content type should hold the following fields (all required):
Name, Owner, Year of Birth (input field – not select list), Type (dog, cat, fish…)
3. The admin is the one who creates the users and the pets.
4. create:
a. 2 users: employee 1 named “Henzel” and employee 2 named “Gretel”
b. Their pets:
i. “Rex” the dog belongs to “Henzel”
ii. “Rocko” the cat and “Fonzi” the fish belong to “Gretel”
5. The homepage uses panels, and should show a view block of the 2 newest pets (show name and type) on the site.
6. When saving pet node (in Drupal admin area), do the following validation (using a hook): if the year of birth is an even number, don’t allow save and show the following error: “Pets are never born on even years”

Т.е. грубо говоря сайт где есть два хозяина у животных, где можно добавлять животных(указывая вид животного, дату рождения и хозяина), только администратор может создавать пользователей, создать двух пользователей у которых есть у одного собака, у другого кот, Панель пользователя, и блок в котором будут отображаться два новых добавленных животных. сохраняя нового животного в админ панеле, если год рождения животного четный вывести ошибку.
Заранее спасибо.

Аватар пользователя ibest ibest 13 апреля 2015 в 8:09

237us wrote:

Здравствуйте, Подскажите есть ТЗ как его лучше реализовать писать модуль или есть готовое простое решение? Очень нужен совет.
Создание маленького сайта на Drupal 7

Т.е. грубо говоря сайт где есть два хозяина у животных, где можно добавлять животных(указывая вид животного, дату рождения и хозяина), только администратор может создавать пользователей, создать двух пользователей у которых есть у одного собака, у другого кот, Панель пользователя, и блок в котором будут отображаться два новых добавленных животных. сохраняя нового животного в админ панеле, если год рождения животного четный вывести ошибку.
Заранее спасибо.

>> писать модуль
"если год рождения животного четный вывести ошибку" - обычно подобные вещи реализуется собственным модулем
но для самых ленивых можно найти альтернативное решение, в данном случае field_validation
с остальным аналогично

>> есть готовое простое решение
друпал сам по себе уже является готовым решением
всё описанное реализуется прямо из "коробки" путем не хитрых манипуляций с полями, типами материалов и профилем пользователя
потребуется ещё модуль references

>> Создание маленького сайта на Drupal 7
если это какая то студенческая задача, то вам должно быть видней как и что использовать Smile

Аватар пользователя ibest ibest 13 апреля 2015 в 15:11

237us wrote:

Спасибо, можете помочь с инструкциями по написанию собственного модуля?

много инструкций писать придётся

воспользуйтесь поисковой системой по интернету и этому сайту
поищите как создать свой модуль, как изменить существующую форму - в данном случае форму создания материала (подсказка hook_form_alter), как сделать свою валидацию (подсказка свойство #validate)

всё есть, главное не полиниться найти и прочитать

Аватар пользователя 237us 237us 13 апреля 2015 в 21:23

Модуль который инсталируется создал, простой вывод отображается в друпале на главной странице, теперь вопрос, внесение данных о питомцах должен делать только админ сайта, как реализовать в собственном модуле, чо бы у него была своя страница в которой админ сайта вводит данные?

Аватар пользователя anatolt anatolt 10 августа 2015 в 14:29

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

Аватар пользователя Dochost Dochost 10 ноября 2015 в 11:50

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

Аватар пользователя Mainara Mainara 4 ноября 2015 в 15:31

Всем доброго времени суток!
Пишу заранее, что в работе с Drupal я очень-очень новенький новичок Smile
Вопрос следующего характера: на сайте установлен модуль, описанный выше, pretty calendar. Все публикации на конкретную дату подтягиваются отлично. Блок отображается при открытии любой страницы. Но! не показывает текущую дату. Т.е. календарь открывается на той дате, когда страница была создана.
Например: я открываю страницу, которая была опубликована 14 августа 2014 года, и календарь открывается на августе 2014; перехожу на страницу, дата публикации которой 5 марта 2015 - календарь тоже открывает на марте 2015.
Помогите, пожалуйста.
Подозреваю, что вопрос из разряда глупых...
Буду благодарна за дельные советы

P.S. за умные ответы на глупые вопросы:):):)

Аватар пользователя goodboy goodboy 5 ноября 2015 в 19:24

Mainara wrote:
Всем доброго времени суток!
Пишу заранее, что в работе с Drupal я очень-очень новенький новичок Smile
Вопрос следующего характера: на сайте установлен модуль, описанный выше, pretty calendar. Все публикации на конкретную дату подтягиваются отлично. Блок отображается при открытии любой страницы. Но! не показывает текущую дату. Т.е. календарь открывается на той дате, когда страница была создана.
Например: я открываю страницу, которая была опубликована 14 августа 2014 года, и календарь открывается на августе 2014; перехожу на страницу, дата публикации которой 5 марта 2015 - календарь тоже открывает на марте 2015.
Помогите, пожалуйста.
Подозреваю, что вопрос из разряда глупых...
Буду благодарна за дельные советы

P.S. за умные ответы на глупые вопросы:):):)

В файле pretty_calendar.module закомментируйте следующие строки:

  if (arg(0) == 'node' && arg(1) > 0) {
    $types = explode(',', variable_get('pretty_calendar_node_type', ''));
    $use_all = in_array('', $types);
    $node = node_load(arg(1));
    if ($use_all || (in_array($node->type, $types) && !$use_all)) {
      $m = date('m', $node->created);
      $y = date('Y', $node->created);
    }
  }
Аватар пользователя kaa39518 kaa39518 8 марта 2016 в 18:56

Здравствуйте!
Спасибо за отличный модуль!

Но возникла не большая проблема - названия месяцев выводятся на английском, при этом дни недели на русском. Хотелось бы что бы выводилось все на русском. Что надо подправить?

Аватар пользователя Malhaz Malhaz 5 июля 2018 в 17:21

Привет, очень надеюсь что тема еще жива. Установил календарь, все отлично, кроме одного момента, как видно на скрине, те даты где есть материал не отображается, но если навести вплывает окно с линком, как решить данную проблему ? + как сделать что при нажатие на дату он не ввел на http://мой сайт/calendar ?

Аватар пользователя Malhaz Malhaz 6 июля 2018 в 9:50

Спасибо за оперативный ответ. Можно чуточку подробнее, смотрю на инфо. по линку и как то ничего не могу понять.

Аватар пользователя sas@drupal.org sas@drupal.org 6 июля 2018 в 16:00

В модуле есть функция темизации function pretty_calendar_theme
в ней определены темные шаблоны.
Шаблоны типа pretty-calendar.tpl.php Вы можете кинуть себе в тему и переопределить
Вызываются они через например theme('pretty_calendar'

Аватар пользователя Malhaz Malhaz 12 июля 2018 в 15:11

Вы совершено правы! все дело в CSS было, он на эти даты ставил opacity: 0; + position: inherit; надо было указать ) теперь все отлично. Спасибо Вам за помощь.

Аватар пользователя WillWe WillWe 5 декабря 2018 в 7:40

Почему-то не на всех темах работает. Долго мучился, не мог понять: не отображает дни, где есть материалы. Из-за этого все клетки смещаются и календарь вообще становится неправильным. Смотрел в CSS и не понял, какого рожна им надо. Потом понял, что такое поведение получается в теме bootstrap 3. При этом ссылки там где-то есть, сплюснутые. Если при этом у a class="tooltip" убрать свойство display: block и posotion: absolute, то все отображается нормально. А как это починить и где?