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

Аватар пользователя dylan

Наконец-то портировал модуль календаря по материалам на 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 КБ
Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя Айдар
Айдар 7 лет назад

Круто! Браво! Спасибо!

Аватар пользователя mNigma@drupal.org
mNigma@drupal.org 7 лет назад
dylan написал:
Портировал модуль на Drupal 7 и чуть улучшил. Смотреть здесь.

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

Аватар пользователя Виктор Степаньков ака RxB

Итак.
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 7 лет назад

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

Аватар пользователя Виктор Степаньков ака RxB
RxB написал:
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>';
Аватар пользователя dylan
dylan 7 лет назад

Не этот код, а получающийся html-список с классами (menu, first, last и т.д.)
Уговорили))) поменяю

Аватар пользователя hdcoder
hdcoder 7 лет назад

На вид отличный модуль. Перелистывание с месяца на месяц на аяксе?

Аватар пользователя dylan
dylan 7 лет назад

ога

Аватар пользователя duozersk
duozersk 7 лет назад

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

Добавлю свои 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 вряд ли нужны для функционирования модуля
  • рекомендуется включать полное название модуля не только в названия функций, но и в создаваемые переменные (вот выпустит РБК свой модуль для Друпала :))
  • про стандарт кода - табуляция в друпале только два пробела и никак иначе; после if, while и тд нужен пробел (чтобы отличалось визуально от вызова функций); возможно, что-то ещё
  • Комментарии к функциям...

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

Аватар пользователя P.Selfin@drupal.org
P.Selfin@drupal.org 7 лет назад

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

Аватар пользователя dylan
dylan 7 лет назад

так же как и под д6 только плюшек прибавилось

Аватар пользователя LeopART
LeopART 7 лет назад

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

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

Аватар пользователя Valeratal
Valeratal 6 лет назад

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

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

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

Аватар пользователя P.Selfin@drupal.org
P.Selfin@drupal.org 6 лет назад
dylan написал:
так же как и под д6 только плюшек прибавилось

жаль... а почистить это не было желания?

Аватар пользователя dylan
dylan 6 лет назад

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

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

Аватар пользователя FORTIS
FORTIS 6 лет назад

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

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, то в семерке они массивом предаются а не как отдельные параметры

Аватар пользователя dylan
dylan 6 лет назад

спасибо, поправил, забыл поменять при портировании

Аватар пользователя Petro
Petro 6 лет назад

А как вывести страницу через views? как сформировать адрес страницы /calendar/ГГГГ/ММ/ДД

Аватар пользователя pr0g
pr0g 6 лет назад

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

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

Аватар пользователя andypost@drupal.org
andypost@drupal.org 6 лет назад

Осталось залить модуль в песочницу на d.o

Аватар пользователя DyxLesa
DyxLesa 6 лет назад

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

Аватар пользователя ibest
ibest 6 лет назад

отличная работа! обязательно заюзаю в проектах где потребуется

Аватар пользователя dylan
dylan 6 лет назад

2  DyxLesa: если можете дать url, где установлен модуль - скиньте, посмотрю. Если сайт на локалхосте у вас, то не подскажу((
2  ibest: спасибо

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

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

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

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

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

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

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

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

$(".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};

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

Аватар пользователя youtosmile
youtosmile 6 лет назад

Спасибо! Автор добрая душа :)))))

Аватар пользователя albee29
albee29 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя biozz
biozz 6 лет назад

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

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

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

Аватар пользователя biozz
biozz 6 лет назад

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

Аватар пользователя Kavoru
Kavoru 6 лет назад

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

Аватар пользователя Freedom
Freedom 6 лет назад

Проблемы с перелистыванием и всплывающими подсказками при работе на поддомене вида http://domain.example/subdomain. Опускает /subdomain

Аватар пользователя dylan
dylan 6 лет назад

Поправил работу javascript'а при условии base_path не равного корню сайта...
Спасибо за заметку.

Аватар пользователя Freedom
Freedom 6 лет назад

Спасибо! Заработало, но при клике на саму дату ошибка осталась.

Аватар пользователя dylan
dylan 6 лет назад

Поправил)

Аватар пользователя Bios
Bios 6 лет назад

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

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

Аватар пользователя dylan
dylan 6 лет назад

Многоязычности нет. Как-нибудь добавлю.

Аватар пользователя Bios
Bios 6 лет назад

Многоязычности нет. Как-нибудь добавлю.

Спасибо! будем ждать

Аватар пользователя AVG
AVG 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

смотрите кеш

Аватар пользователя veleslab
veleslab 6 лет назад

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

Аватар пользователя IRONFELIX
IRONFELIX 6 лет назад

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

Аватар пользователя duozersk
duozersk 6 лет назад
IRONFELIX написал:
А когда модуль появится на drupal.org

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

Аватар пользователя dylan
dylan 6 лет назад

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

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя lifeIsGame
lifeIsGame 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя lifeIsGame
lifeIsGame 6 лет назад
dylan написал:
Это вам проще в самом представлении выбирать материалы

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

Аватар пользователя Kvark
Kvark 6 лет назад

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

Аватар пользователя lifeIsGame
lifeIsGame 6 лет назад

Если кто-либо сталкивался с переопределением адреса для вьюса подскажите пожалуйста.

Аватар пользователя IRONFELIX
IRONFELIX 6 лет назад

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

Аватар пользователя SergO
SergO 6 лет назад

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

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

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

Аватар пользователя lifeIsGame
lifeIsGame 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя lifeIsGame
lifeIsGame 6 лет назад

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

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

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

Аватар пользователя FORTIS
FORTIS 6 лет назад

зашел гостем все нормально =) анонимайзер может режет?)

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя chaosspy
chaosspy 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя _NEXT_
_NEXT_ 6 лет назад

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

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)

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

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

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

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

Аватар пользователя GoldenLion
GoldenLion 6 лет назад

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

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

Доработать можно)

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

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

Аватар пользователя chaosspy
chaosspy 6 лет назад

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

Аватар пользователя GoldenLion
GoldenLion 6 лет назад

У меня календарь без проблем работает: teleckoe.info - посмотрите тут

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

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

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

Аватар пользователя dylan
dylan 6 лет назад

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

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

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

Аватар пользователя Kvark
Kvark 6 лет назад

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

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

Аватар пользователя dylan
dylan 6 лет назад

@Kvark: согласен, полезная будет функция, реализую.

Аватар пользователя GoldenLion
GoldenLion 6 лет назад
dylan написал:
... полезная будет функция, реализую.

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

Аватар пользователя Kvark
Kvark 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

Добавил инверсию выбора типов материалов. Обновил здесь и на д.орге.

Аватар пользователя Kvark
Kvark 6 лет назад

Спасибо за оперативность!

Аватар пользователя Kvark
Kvark 6 лет назад

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

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя Виктор Степаньков ака RxB
_NEXT_ написал:
Предлогаю это вынести в настройки, либо проверку повесить на включеность чистых ссылок.

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

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

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 6 лет назад

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

Попробовал переправить код для 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 6 лет назад

Полностью подделав обработку 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));
?>
Аватар пользователя dylan
dylan 6 лет назад

vaplas: Спасибо. Обязательно добавлю.

Аватар пользователя billomania
billomania 6 лет назад

как добавить класс active к активному числу?

Аватар пользователя dalerr
dalerr 6 лет назад

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

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 6 лет назад

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

Т.е. в файле 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 лет назад

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

Аватар пользователя pr0g
pr0g 6 лет назад

А как темизировать вывод материалов при выборе дня? Путем редактирования файла node.tpl.php?

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя proweb
proweb 6 лет назад

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

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя pr0g
pr0g 3 года назад

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

Аватар пользователя dylan
dylan 6 лет назад

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 ассоциируется как минимум с календарём с обнаженными русскими красавицами ;)

Аватар пользователя pr0g
pr0g 3 года назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

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

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

Аватар пользователя dylan
dylan 6 лет назад

там перевод немного другой был

Аватар пользователя andypost@drupal.org
andypost@drupal.org 6 лет назад

Для полных названий месяцев в ядре предусмотрен специальный контекст (пример) - его и нужно использовать, а делать заглавные буквы нужно посредством css

Аватар пользователя Splinter
Splinter 6 лет назад

Подскажите, в чем проблема. Поставил модуль, настроил для отображения статей и новостей на сайте.
Путь 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 6 лет назад

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

Аватар пользователя dylan
dylan 6 лет назад

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

Аватар пользователя dimmapril
dimmapril 6 лет назад

Спасибо автору!

Аватар пользователя AmiGator
AmiGator 6 лет назад

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

Аватар пользователя qqga
qqga 6 лет назад
_NEXT_ написал:
Опубликовано _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 4 года назад

Проблема опять-же в чистых и грязных ссылках.
(Интересно что в 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 6 лет назад

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

Аватар пользователя Skeptik
Skeptik 5 лет назад

Если попытаться открыть на сайте несуществующую ноду, то вываливается ошибка. Чтобы ошибка не вываливалась, нужно поставить проверку на существование ноды, у которой берутся свойства. Для этого в файле 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))) {

Аватар пользователя galserg
galserg 5 лет назад

Супер модуль, спасибо, оч пригодился

Аватар пользователя Skeptik
Skeptik 5 лет назад

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

Аватар пользователя Sancho_pance
Sancho_pance 5 лет назад

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 3 года назад

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

Пример:

пруфлинк

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

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

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

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

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

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

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

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

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

Аватар пользователя sdm98
sdm98 5 лет назад

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

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

Аватар пользователя xSPiRiTx
xSPiRiTx 5 лет назад

А как русифицировать месяцы?

Аватар пользователя sdm98
sdm98 5 лет назад

конфигурация-регион и язык-перевод интерфейса.
ищешь название месяца и вбиваешь ему перевод.

Аватар пользователя xSPiRiTx
xSPiRiTx 3 года назад

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 5 лет назад

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

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

Аватар пользователя sdm98
sdm98 5 лет назад

to xSPiRiTx

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

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

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 5 лет назад

sdm98, проблема именно в js файле, т.к. не подгружается tipTip. Пропатченные файлы. Наверное достаточно будет поменять только .js (+ чистка кеша).

Аватар пользователя sdm98
sdm98 5 лет назад

файлы обновил. кэш почистил. не помогло ((((((

Аватар пользователя g78knl6cvxf0
g78knl6cvxf0 5 лет назад

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

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

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

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

Аватар пользователя duozersk
duozersk 5 лет назад

отписываюсь

Аватар пользователя sdm98
sdm98 5 лет назад

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

Аватар пользователя sdm98
sdm98 5 лет назад

победил костылём. всем спасибо. некрасиво. но работает.у меня дважды jQuery подключается...

Аватар пользователя izac
izac 5 лет назад

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

Аватар пользователя Bios
Bios 5 лет назад

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

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

Аватар пользователя ihorls
ihorls 4 года назад
Bios написал:
Прошу помощи с многоязычным сайтом...

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

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

Аватар пользователя mixxael
mixxael 5 лет назад

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

Аватар пользователя Bios
Bios 5 лет назад

Как связаться с автором модуля????

Аватар пользователя Smoliannikoff
Smoliannikoff 5 лет назад

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

Аватар пользователя kirminator2
kirminator2 4 года назад

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

Аватар пользователя ibest
ibest 4 года назад

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

Аватар пользователя Dochost
Dochost 4 года назад

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

Аватар пользователя AlexeyBorisenko
AlexeyBorisenko 4 года назад

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

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

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

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

Аватар пользователя AlexeyBorisenko
AlexeyBorisenko 4 года назад
ibest написал:
- используйте аргументы 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 4 года назад
AlexeyBorisenko написал:
1. Какой именно аргумент нужно использовать?

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

Аватар пользователя chelwolf
chelwolf 4 года назад

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

Аватар пользователя DenIС
DenIС 4 года назад

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

Аватар пользователя your_magnet
your_magnet 4 года назад

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

Аватар пользователя daur_sdg
daur_sdg 4 года назад

Спасибо большое)

Аватар пользователя Kvark
Kvark 4 года назад

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

Аватар пользователя ihorls
ihorls 4 года назад
Kvark написал:
Как у вас настроено распознование языка на сайте?

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

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

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

Аватар пользователя avbelov73
avbelov73 3 года назад

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

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

Аватар пользователя tlito
tlito 3 года назад

Какая активная тема!
Я тоже хочу настроить ваш модуль 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 3 года назад

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

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

Аватар пользователя 237us
237us 3 года назад

Здравствуйте, Подскажите есть ТЗ как его лучше реализовать писать модуль или есть готовое простое решение? Очень нужен совет.
Создание маленького сайта на 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 3 года назад
237us написал:
Здравствуйте, Подскажите есть ТЗ как его лучше реализовать писать модуль или есть готовое простое решение? Очень нужен совет.
Создание маленького сайта на Drupal 7

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

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

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

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

Аватар пользователя 237us
237us 3 года назад

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

Аватар пользователя 237us
237us 3 года назад
ibest написал:

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

Аватар пользователя ibest
ibest 3 года назад
237us написал:
Спасибо, можете помочь с инструкциями по написанию собственного модуля?

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

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

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

Аватар пользователя 237us
237us 3 года назад

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

Аватар пользователя anatolt
anatolt 3 года назад

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

Аватар пользователя Dochost
Dochost 3 года назад

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

Аватар пользователя Mainara
Mainara 3 года назад

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

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

Аватар пользователя goodboy
goodboy 3 года назад
Mainara написал:
Всем доброго времени суток!
Пишу заранее, что в работе с Drupal я очень-очень новенький новичок :)
Вопрос следующего характера: на сайте установлен модуль, описанный выше, 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);
    }
  }
Аватар пользователя Mainara
Mainara 3 года назад

Огромное СПАСИБО за ответ.
Работает:)))))

Удачного дня!

Аватар пользователя kaa39518
kaa39518 2 года назад

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

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

Аватар пользователя kaa39518
kaa39518 2 года назад

Ага, прочитал предыдущую страницу комментариев :)))
Перевел в ручную.
Еще раз спасибо за модуль!

Аватар пользователя Scorpio29
Scorpio29 1 год назад

подскажите как сделать отображение месяца на русском языке?

Аватар пользователя Studio VIZA
Studio VIZA 1 год назад
Scorpio29 написал:
как сделать отображение месяца на русском языке?
kaa39518 написал:
в ручную.
Аватар пользователя sdm98
sdm98 1 год назад

попробуй добавить переводы

Аватар пользователя Malhaz
Malhaz 5 месяцев назад

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

Аватар пользователя Malhaz
Malhaz 5 месяцев назад

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

Аватар пользователя sas@drupal.org
sas@drupal.org 5 месяцев назад

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

Аватар пользователя Malhaz
Malhaz 5 месяцев назад

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

Аватар пользователя sas@drupal.org
sas@drupal.org 5 месяцев назад

В файле template.php своей темы функцию назвать <название Вашей темы>_pretty_calendar

Аватар пользователя sas@drupal.org
sas@drupal.org 5 месяцев назад
1

Да не хватает, не заметил, скорей всего css поможет, переключите на тему bartik и проверьте там?!

Аватар пользователя Malhaz
Malhaz 5 месяцев назад

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

Аватар пользователя WillWe
WillWe 1 неделя назад

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

Аватар пользователя itcrowd72
itcrowd72 1 неделя назад

Ну я бы переопределил в своих стилях эти классы. В очень крайнем случае можно использовать !important

Аватар пользователя sas@drupal.org
sas@drupal.org 1 неделя назад

Через _preprocess & _theme , мало, делай fork