Think Future, Imagine Alternative, Create Real!Drupal Modules Developed By TransNetCreation

エンティティに、Ajaxに対応した、シンプルなカレンダーを追加する

TNC Ajax Calendar Field Module

TNC Ajax Calendar Field Module
TNC Ajax Calendar Field Module は、名前に「Field」と入っているので、Drupal をよくご存知の方にはお分かりのことと思いますが、Field Module と連動して機能するタイプのモジュールです(Field Module につきましては、「TNC HTML Slideshow Field Module」のページの冒頭部分で、簡単に説明しています)。

TNC Ajax Calendar Field Moduleは、その Field Module と連動することにより、具体的には、「node」を始めとした全てのコンテンツタイプ(=「Entity」)に、Ajax に対応した、シンプルなカレンダーを追加します
2011年04月27日 UPDATE|多言語化に対応しました。
2011年03月08日 UPDATE|Drupal 7 に対応しました(それに伴い、当モジュールの名称変更と若干の機能追加を行いました)。
2011年01月11日 UPDATE|リンクになっている日付に、ツールチップとして、リンク先の URL と node タイトルを表示するようにしました
2010年04月13日 LAUNCH|当サイトにて、実運用を開始しました。Information No.0005
(アップデート内容の詳細につきましては、このページの最下部にてインフォメーションしております。)
2つの表示形式に対応
TNC Ajax Calendar Field Module は、シンプルにカレンダー機能を提供します。表示形式としては、「ワンライン・タイプ」と「改行タイプ(週毎)」の2つに対応しています。

3種類の抽出条件
TNC Ajax Calendar Field Module は、抽出条件に合致する「node」もしくは特定の「Entity」へのリンクを、カレンダー上にマッピングします。現在のところ、抽出条件としては、
「node」に対しては、コンテンツタイプ、ターム(一般的には「カテゴリー」に相当します)、ユーザーという3種類に対応しています。そして、これらについては、それぞれ、複数の項目を設定することができるようになっています。また、「Entity」については、「Entity Type」と「Bundle Type」の2つの条件に対応しています(「Entity Type」と「Bundle Type」の関係は、「node」と「article」との関係に相応していると理解すれば良いでしょう)。
また、これらの条件は、カレンダーを設置するノード毎に指定することができるようになっています。

Ajax対応
TNC Ajax Calendar Field Module は、Ajax に対応しています。そのため、JavaScript が有効な環境においては、ページ遷移を伴わないで前月や翌月のカレンダーを表示することが可能です。もちろん、JavaScript が有効でない環境にも対応しています。
2種類の表示方式 / 最初の年月の指定
TNC Ajax Calendar Field Module には、2種類の表示方式があります。1つは、カレンダーを常時表示させておくタイプで(実例:当サイトのコラムインデックスページ)、もう1つは、デフォルトではカレンダーを非表示にさせておいてボタン・クリックにより表示させるタイプです(実例:当サイトのコラムエントリーページ)。また、表示するカレンダーの最初の年月を指定することができるようになっています(当サイトでは、サイトを公開した2010年3月に設定しています)。
ノード毎に異なるカレンダーを設置する
TNC Ajax Calendar Field Module は、Field Module の1つのフィールドとして機能します。ですので、「node」を含めて、既存・新規を問わず、あらゆる「Entity」に設置することができます。もちろん、カレンダーを設置する「Entity」と設置しない「Entity」を、設定することができます。また、繰り返しになりますが、TNC Ajax Calendar Field Module は、2種類の抽出条件に対応しており、それらについてはノード毎に設定することができます。そのため、ページ毎に異なる条件で抽出したカレンダーを表示することができる
ようになっています。

実例
当サイトにおいて、「DIARY :: AROUND THE CORNER」に関するカレンダー以外のカレンダーは、トップページのものも含めて全て TNC Ajax Calendar Field Module により提供されています。

TransNetCreation は、ユーザーの方にとっての価値創造を目指して、今後も、Drupal によるサイト構築活動・システム開発活動・モジュール開発活動に取り組んで参ります。
2011年04月27日 UPDATE|多言語化に対応しました。
今回のアップデートにより、当モジュールを多言語化しているサイトにおいても使用することができるようになりました。ただし、カレンダーの「年月」表示部分については、今回は、日本語と英語のみへの対応となっています。カレンダーの日付から各エントリーへのリンクに関しては、全ての言語に対応可能です(ただし、オリジナルの「Entity」に関しては、その「Entity」が多言語化に対応している必要があります)。なお、Drupal 7 においては、各ページへの URL 設定により多言語化を行うためには、例えば「http://www.example.com/ja」「http://www.example.com/en」のようにパスの最初に言語選択のための文字列を指定する方法と、「http://ja.example.com」「http://en.example.com」のようにドメインに言語選択のための文字列を指定する方法の、2つの方法が用意されていますが、今回のバージョンアップにより、当モジュールは、パスの最初に言語選択のための文字列を指定する方法に対応しています。ドメインに言語選択のための文字列を指定する方法ヘの対応に関しては今後の課題ということになりますが、(1)現状では、この方法による言語選択のニーズは少ないように思われる、(2)この方法に対応するためにはやや大掛かりな修正が必要となる、という2点の理由により、バージョンアップ作業の優先順位は低いものと考えています。

2011年03月08日 UPDATE|Drupal 7 に対応しました(それに伴い、当モジュールの名称変更と若干の機能追加を行いました)。
今回のアップデートにより、当モジュールを Drupal 7 上で使用することができるようになりました。それに伴い、当モジュールの名称を、旧来の「TNC CCK Calendar Field Module」から、「TNC Ajax Calendar Field Module」へと変更しました。名称変更の理由は、(1)Drupal がバージョン 6 からバージョン 7 へと進化するのに伴い、当モジュールが機能する基盤モジュールがそれまでの CCK Module から Field Module となった(そのため、名称中の「CCK」というキーワードは実体にそぐわなくなった)、(2)当モジュールのコア機能として Ajax 対応している(=ページ遷移を伴わずにカレンダーエリアを更新できる)ということがあると考えた、ためです。また、第1の理由による当然の帰結として、当モジュールは、Drupal 7 から導入された「Entity」という概念・実装に対応しています(「Entity」については、ブログ「DIARY :: AROUND THE CORNER」のエントリー 「Entity 化する Drupal」 で、若干の解説を行っています)。つまり、当モジュールは、「node」だけでなく、全ての「Entity」に対して、追加フィールドとして機能するようになっています。ただし、カレンダーでのリストアップの対象を「node」以外の「Entity」にした場合には、当モジュールで抽出可能となるのは、当モジュールを追加フィールドとして設置しているバンドルタイプのみとなります(「node」の場合には全てのバンドルタイプを抽出可能です)。ちなみに、当サイトでは3つのコンテントタイプにこのモジュールを設置していますが、そのうち「Drupal、6つの自由自在をもたらすCMS」などの「Column」コンテントタイプのエントリーページと「当サイトを Drupal 7 にアップグレードしました」などの「Information」コンテントタイプのエントリーページは TransNetCreation の開発による当サイト専用のオリジナルの「Entity」を使用しており、フロントページ は「node」を使用しています。また、カレンダー表示形式として、これまでは「ワンライン・タイプ」のみでしたが、通常のカレンダーのように週毎に改行するタイプ」にも対応できるように機能追加を行っています(ということで、せっかくですので(同一サイトにおけるレイアウト・デザインの統一化という点では良いことではありませんが)、「Information」コンテントタイプのエントリーページでは「改行タイプ」で表示しています)。

2011年01月11日 UPDATE|リンクになっている日付に、ツールチップとして、リンク先の URL と node タイトルを表示するようにしました
細かいアップデートですが、このような対応により、リンク先ページについてより多くの情報を提供することができるようになるため、結果として、(1)サイト管理者側においては、カレンダーがノードリスト的な機能(=複数の node について、一覧的にその情報を提供する機能)も提供するようになる、(2)ユーザー側においては、それらの情報を把握することにより、より安心して、自分が関心のあるリンクをクリックすることができる、という2つのメリットを得ることができます。(2)については、その裏返しとして、より適切なタイトルを設定することにより、ユーザーの方にクリックしていただきやすくする(&その結果として、ユーザーの方が求めている情報を提供することで、顧客満足を提供する)効果が見込まれます。

「Indexed Database API」を用いて、そのサイト内での索引機能を提供する
目的ページへの直接的アクセス手段の提供により、サイトのユーザビリティを向上させる

TNC Personal Index Module

TwitterへTweetをポストする・ポストしたTweetをキュレートして表示する
将来的には、マイクロブログシステムと連動した「知識創造」機能の提供を目指す

TNC Tweet Synthesiser Module

ユーザーの思考活動の結果としての「形式知」を貯蔵する
そして、各「形式知」をテーマごとに編集(順列化)して、スライドショーとして提示する

TNC Thinking Incubator Module

サイトに、Wikiの機能を追加する
Ajax化により、閲覧・編集の生産性向上を図り、「知識共有」「知識創造」に寄与する

TNC Ajax Wiki Site Module

Bookmarklet経由でブックマーク情報をサイトに登録する
カテゴライズと情報追加が可能で、登録した情報の共有・有効活用を促進する

TNC Bookmark Module

内部リンクを Ajax 化し、既読ページのオフラインでの再現を可能にする
それにより、ネイティブ・アプリケーションのようなユーザー体験を提供する

TNC App Site Module

サイト内の全ての内部リンクを自動的に Ajax 化する
全てのコンテンツをページ遷移無しで迅速に表示し、その際にリッチなUXを提供する

TNC Ajax Site Module

エンティティに、スライドショーの機能を追加する
Wiki 記法にも対応しており、コンテンツを、より分かりやすく、より魅力的に提示する

TNC HTML Slideshow Field Module

エンティティに、メール送信機能を具備したメールフォームを追加する
Ajax化により、ページ遷移無しでのメールフォームの入力・確認・送信を可能にする

TNC Ajax Contact Form Field Module

エンティティに、Ajaxに対応した、シンプルなカレンダーを追加する

TNC Ajax Calendar Field Module

定時処理の内容部分とその実施日時の設定・管理部分を切り離す
定時処理の実施日時の設定・管理をプログラム修正無しで可能にする

TNC Cron Jobs Management Module

このページにつきまして、お問い合わせ・ご相談・ご意見等をお待ちしております。
このメールフォームを使うことにより、TransNetCreation にコンタクトすることができますので、
お気軽にご連絡いただけましたら幸いです。( * 印が付いているのは、必須項目です。)
名前 *
Eメールアドレス *
組織・団体 / 個人 *
組織・団体名
(組織・団体の場合)
ウェブサイトURL
お問い合わせ・ご相談・ご意見等 *