web-dev-qa-db-ja.com

日付およびカレンダーモジュールを使用して誕生日カレンダーを作成するにはどうすればよいですか?

人を表すコンテンツタイプがあり、このコンテンツタイプにはCCK日付フィールド「誕生日」があります。次の誕生日のリストとそれらが表示されるカレンダーを追加したいと思います。

そのサイトのイベントにはカレンダーモジュールを既に使用していますが、誕生日のほうが難しいようです。ユーザープロファイルではなくノードで作業しているため、Birtdaysモジュールを使用できません。また、日付フィールドはこの使用例をサポートしていないようです。その計算で年を無視する方法がないため、次の誕生日のみを表示するビューを作成できません。

そのような誕生日カレンダーを実装する最も簡単な方法は何でしょうか?

2
Mad Scientist

Birthdays モジュールで試すことができます。ユーザーは自分の誕生日をプロファイルに追加できます。

誕生日モジュールを使用すると、ユーザーは自分の誕生日をプロファイルに追加できます。また、別のページと異なるブロックで誕生日をリストします。ユーザーは誕生日に電子メールを自動的に受け取ることができ、管理者は誕生日を迎えている人を定期的に通知することができます。コアのプロファイルモジュールを使用します。

2
heilop

私がこれを達成できた唯一の方法は、2つのフィールドを持つことです。 1つはfield_born、もう1つはfield_birthdayという名前です。

node_presaveフック を使用すると、field_birthdayは、年を現在の年に置き換えるfield_born日付のコピーです。次に、そのフィールドをカレンダー表示で使用します。

私が遭遇した唯一の問題は、来年何が起こるかです。すべての誕生日を再計算する必要があります。 SQLの使用は難しくありません。しかし、それが自動化されていればいいのですが。たぶん、1月1日に年次cronジョブで何かできるでしょうか?

また、これにより、カレンダービューが現在の年に制限されます。そうでなければ、未来と過去の年は空です。

だから、うまくいけば、これはあなたが望むものに近いです。しかし、まだ問題があります。何がいいのかというと、年がどういうわけかダイナミックな日付を保存する方法です。または、イベントが毎年繰り返された場合。しかし、それを行う方法がわかりません。

0
Jeff