Как реализовать дни рождения без профилей? [НЕ РЕШЕНО]

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

Аватар пользователя Dusk Dusk 20 января 2009 в 17:20

Как еще можно реализовать функции модуля birthday, не создавая при этом профилей пользователей? (Конечно хотелось бы чтобы они появлялись за неделю до ДР, а в день ДР краснели или что-то в этом духе.) У меня есть анкеты на людей и есть данные о их днях рождениях, но они не являются пользователями сайта.

Комментарии

Аватар пользователя sashken sashken 20 января 2009 в 22:36

Dusk wrote:
Спасибо, посмотрел. Но там нет цикличности, то есть ДР придется каждый год заново вводить.

нет не придется, Вам как я понял нужно для 5-ки... дак есть же модуль http://drupal.org/project/eventrepeat

Аватар пользователя Vladimir_VVV Vladimir_VVV 20 января 2009 в 21:05

если анкеты в базе данных можно с помощью модуля http://drupal.org/project/rules написать скрипт на php который будет брать данные о днях рождения из базы и выполнять какие-то действия (публикацию материала на главной, или вставка в код блока нового имени человека у которого д.р.)
А этот весь код прицепить на событие при срабатывании крона.

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

Аватар пользователя Dusk Dusk 20 января 2009 в 21:18

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

Аватар пользователя Vladimir_VVV Vladimir_VVV 20 января 2009 в 21:46

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

Аватар пользователя Dusk Dusk 21 января 2009 в 1:01

Vladimir_VVV данные в базе. Описываю:

Задача: корпоративный сайт. Есть сотрудники, на них нужно создать анкеты (нужный тип материала создан), распределить все это по отделам, это я все сделал, отчасти используя пример Ромки.
Собрал на 5.
Можно было бы использовать birthday, и как-то вытягивать его из профиля, но не все сотрудники будут зарегистрированы на сайте, поэтому заводить их просто для ДР как-то нецелесообразно.
В итоге хотелось бы получить цифровое поле (дату) в материале (анкете), в котором можно будет поставить дату при заведениии новой анкеты. Затем выводить эту дату в нужное время на главной с именем (имя являетя title-ом матераила) сотрудника(в общем все как в birthday). То есть еще нужно из матераила Анкета вытянуть title.
sashken, спасибо, завтра гляну eventrepeat.

Аватар пользователя direqtor direqtor 21 января 2009 в 6:24

Попробуйте модуль views. В нем можно создать блок для вывода на странице с очень широкими возможностями отбора. В том числе и по диапазону дат.

Аватар пользователя Vladimir_VVV Vladimir_VVV 21 января 2009 в 9:52

Задача довольно проста, никакие модули событий не нужны.

"direqtor" wrote:
Попробуйте модуль views. В

Это самое верное и простое решение. Создаете во views блок укажите фильтры для отбора типа "анкеты" с подходящей датой тип представления "поля" в поля добавить титл и еще что душа пожелает.

Аватар пользователя Dusk Dusk 21 января 2009 в 11:32

"direqtor" wrote:
Попробуйте модуль views.
Идея хорошая, а как выводить в нужное время? Они ведь будут все сразу болтаться на странице?

sashken, хотелось бы задействовать поле в Анкете, которое будет днем рождением, а так получается, что в ивенте мне просто придется наклепать дней рождений.

Аватар пользователя direqtor direqtor 21 января 2009 в 11:16

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

Аватар пользователя Dusk Dusk 21 января 2009 в 11:40

direqto, а как добавить календарное поле в материал? (чтобы можно было выбирать дату)Наверное есть модуль какой-то, типа calendar?

Аватар пользователя Dusk Dusk 21 января 2009 в 12:41

Ага, уже поставил date, тк calendar потребовал..
Выдавал такую ошибку, когда просил установить ему натройки даты и времени.

user warning: Table 'd5r.event_timezones' doesn't exist query: SELECT * FROM event_timezones WHERE name = 'Europe/Moscow' in Z:\home\d5r.te\www\includes\database.mysql.inc on line 172.

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

Не помогло, в принципе все настроено, и работает, только когда здесь /admin/settings/date-time жмешь сохранить, он все сохраняет и выдает ошибку...

Сделал поле, direqtor, а что нужно указать в фильтре, чтобы именно сейчас было?

Аватар пользователя Dusk Dusk 21 января 2009 в 17:49

Пробовал: now +7 days, но это следующая неделя, а мне надо предыдущую (заранее чтобы люди знали :)). Я ставил - 7, он это понимает и выводит ДР, которое в тот 1 день, отсчитав 7 дней от now, а вот как вывести весь диапозон от now до -7? Через запятую не хочет, выдает только последнее значение. Уже все перепробывал..

Аватар пользователя direqtor direqtor 21 января 2009 в 18:12

В фильтре какое условие стоит? equal что ли? так думать надо. там еще есть меньше, больше и т.д. А если тебе нужен диапазон добавь это поле в фильтр еще раз и поставь в нем другое условие.

Аватар пользователя Dusk Dusk 21 января 2009 в 18:26

Точно, спасибо, что-то забыл про больше, меньше. Но там нельзя исключить now или можно?
Насчет другого поля не подумал, если now нельзя исключить тогда добавлю полей на неделю)), благо у меня только неделя))

Аватар пользователя Dusk Dusk 21 января 2009 в 18:51

Нет, с добавленем еще одного поля не получилось.. видимо конфликтуют.
С больше чем -7 работает, но мне бы теперь исключить now. Так как я сдела 2 views Сегодня и Ближайшие.

Аватар пользователя direqtor direqtor 21 января 2009 в 19:11

Что там может конфликтовать?
На одно поле условие больше либо равно now
На это же поле добавленное повторно меньше либо равно now+7
Получаем вилку на неделю от текущей даты. А в следующем году придется в условиях еще один год отнять. Smile
Или вьюс для пятерки не позволяет поле дважды добавлять?

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

Видимо я что-то не так объяснил.
Я сделал один views для вывода сегодняшних ДР, там все ок, я поставил is equal to now.
Второй views для вывода ДР за неделю до текущей даты. Поэтому вывод ДР текущей даты мне уже не нужен, то есть надо исключить now. Прекрасно работает такая запись greater than or equal to -7 days. Но он выводит вместе с сегодняшними, а для них я уже сделал свой views, они не нужны.
Два views решил сделать потому что диз будет разный, ну там одни одного цвета, другие другого и тп.
Добавлять год не придется, потому что у меня же дни, я поле day вывожу - Date: День рождения - Day (field_birthday)
2 поля добавить можно.

Аватар пользователя direqtor direqtor 22 января 2009 в 2:58

Добавьте в неделю второе поле Date: День рождения - Day (field_birthday) и поставьте фильтр меньше чем now или now-1 day или просто -1 day

Аватар пользователя Dusk Dusk 22 января 2009 в 11:22

Супер, то что надо. Только я что-то протупил, дни рождения то будущие должны быть, а не прошедшие. Lol

less than or equal to + 7 days
greater than now

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

Всем спасибо, direqtor отдельное спасибо за терпение!

Аватар пользователя direqtor direqtor 22 января 2009 в 13:23

"Dusk" wrote:
По теме только один вопрос остался, а если бы один views был, можно ли было как то визуально отделить сегодняшних от будущих? Ну там черту поставить.
Во views 2 под шестеркой можно. Под пятеркой - не знаю.

Аватар пользователя Dusk Dusk 22 января 2009 в 18:39

Я не нашел.
Еще нужно добавить поле Date: - Month с параметрами is equal to now, иначе вылазят ДР со всех месяцев Smile

Аватар пользователя Dusk Dusk 28 января 2009 в 14:32

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