FlatPress.info

Information & blog

日誌に便利な自動日付入力とカレンダーによるアクセスを可能に

ジャーナル(日誌)を付けていると、タイトルとしての日付の入力をおっくうに感じることがありました。そこで、ボタン一つでタイトルに日付が入り、また、カレンダーの日付をクリックすると当日のジャーナルが表示できるようなプラグインを作ることにしました。これから完成した状態を説明していきます。

bbcodeAdv2-newpost-today

新規作成(ポスト)をすると上記のような画面になります。注目点は、

  1. [Today]ボタンが追加されており、クリックするとタイトルに「日付と曜日」が入力される。
  2. [CLR]ボタンもあって、これをクリックするとタイトルがクリアされる。
  3. 同時にカテゴリの[ジャーナル]のチェックがオンオフされる。
  4. カレンダーが表示されていて日付をクリックすると当日の記事にジャンプする。
  5. 日誌が登録されているかどうかは日付の文字色で容易に確認できる。

というように便利な機能が実現されています。最後の機能ですが「あれ?昨日は日誌を付けたっけ?!」というように、記録忘れをチェックできるところは非常にありがたい機能となりました。

ダウンロードについては「ブログに便利なプラグイン」からお願いします。

下のスナップショットはカレンダーの日付をクリックして該当する日付の記事を呼び出しているものです。

bbcodeAdv2-newpost-calender

このカレンダー機能については幾つか補足をしておきます。

  1. カレンダー上部の”<”と">"部分をクリックするとカレンダーの表示月を前後することができます。
  2. 日誌タイトル(例えば、2015-02-12,Thu)が検索キーになっているので、これに相当しないと表示はされません。
  3. 同じ日付タイトルが存在した場合には、一方しか表示されません。
  4. その月のデータを検索しますので、別の月に同一日付タイトルがあっても発見はされません。

 

ところで、ボタンやカレンダー表示の位置がテーマによっては異なる位置となります。実はこれについて、本プラグインの開発ではオリジナル(デフォルト)のテーマで位置決めをしてあります。なので、このようにインストール時のデフォルトのテーマの方が位置合わせがぴったりしているのです。(タイトル欄を若干狭めています)

bbcodeAdv2-originalTheme-newpost-today

次に、本プラグインのインストールについてですが/fp-plugins/ 配下にこのプラグインを展開後、以下のようにイネーブルにしておき、表示されている"bbcoceAdv2"の設定画面で二つの設定をします。

bbcodeAdv2-enable

設定欄が二つあります。上部はプラグイン機能の表示有無ですから"ON"または"OFF"に設定してください。下の欄はジャーナル(日誌)のカテゴリの自動チェックですから、カテゴリー名の"ジャーナル"が "cat[9]"であったらそのようにすれば良いので、みなさんの実例に合わせてください。(cat[9]とは、カテゴリ設定画面での記述としては"ジャーナル:9"という表現に相当します)

bbcodeAdv2-setting

まさにこのプラグインは私的カスタマイズの頂点ともいえる反面、さてはて、皆様が活用していただけるかどうか? いかがでしょうかね。

おまけ

本プラグインの作成に当たってはいろいろと勉強になりました。以下、まさに備忘としてメモを残します。

  1. 標準テンプレートを利用した場合ではタイトル(サブジェクト)をフックできるボタンを付けるポイントがないのでした。簡単に済ませるにはテンプレートにボタンを表示する Smarty 変数を付加すればよいのですが、それでは改造となってしまいます。そこで、toolbar をフックすることになりました。
  2. 次に、タイトル部への日付挿入なのですが、これがややこしくて PHP や smarty 変数を通じて変更ができませんでした。テンプレートの流れとして、新規投稿の状況ではタイトル表示が value="" というようにハードコーティングされてました。ここでこれを打破すべくタイトル設定を javascript で行うことを考えました。ご承知のように PHP はサーバ側で動作し、Javascript はPCのブラウザ側で動作しています。javascript と PHP で変数をやり取るするサンプル例がネット上に散見されてますが、実はそれは純粋に二者が独立して動作している場合なのでした。つまり、本件では PHP が javascript のソース自体を作りだしているので、なんのことはない、PHP 変数(ジャーナルタイトル日付)を文字列で渡してあげるだけだったのです。

 

FlatPess 記事

Copyright c  flatpress.info 2015. All Rights Reserved.