datefield.inc.php

サマリ日付入力フィールドを提供するプラグイン
リビジョン1.5
対応バージョン1.4.6
投稿者jjyun
投稿日2003-12-03 (WED) 06:51:21

説明

  • 日付入力用のテキストフィールドを提供するプラグインです。 日付の書式を設定しておき、指定のフォーマットでの入力を促すものです。 trackerと組み合わせて用いることを想定して作成しています。

使用上の注意

日付入力用カレンダーの生成にJavascriptを使っています。 カレンダーを使った入力がしたければ、 ブラウザでJavascriptを有効にする必要があります。

また、最近のpukiwiki(1.4.5〜)では pukiwiki.ini.php の設定項目のひとつであるPKWK_ALLOW_JAVASCRIPTの設定を以下のように変更する必要があります。

define('PKWK_ALLOW_JAVASCRIPT', 1);     // 0 or 1

使い方

以下のように定義します。

#datefield([初期値],[日付書式])

入力方法には以下の2通りがあります。

  • テキストフィールドに直接入力
    テキストフィールド上で日付を記入しEnterキーを押すと、 確定と捉えてページの中の該当部分の更新処理を試みます。
  • 日付入力用のカレンダーを用いた入力
    テキストフィールド横のボタンを押していただくと、日付入力用のカレンダーを表示します。カレンダーで日付を選択すると、選択したテキストフィールドの中身の更新を行い、確定と捉えてページの中の該当部分の更新処理を試みます。
  • ユーザからの入力確定後(テキストフィールド上でEnterが押されるか、日付入力カレンダーでの日付選択後)、以下の2点について確認を行います。
    • 入力文字列が書式通りの設定になっているかどうか
    • 日付として正しいものかどうか

日付として正しければページ上を更新しますが、不整合を見つけた場合には元のページを更新せず、エラーページを出力します。

書式設定

以下の文字列が存在する場合には、日付情報に置き換えられます。 大文字小文字は区別しません。 何も指定しなかった場合は、"YYYY/MM/DD"がデフォルトとして採用されます。

  • YYYY : 西暦(4桁)
  • YY: 西暦(2桁)
  • MM: 月(2桁)
  • DD: 日(2桁)

    (例:"YY/MM/DD", "YYYY年MM月DD日 など)

制限事項

  • 日付書式は必ずシングルクォーテーションで囲まねばなりません。 シングルクォ-テ-ションでは囲まないでください。
  • 初期値も日付書式も省略することは可能ですが、カンマだけは入れといてください。
  • ゼロパディング(0埋め)を意識して入力してください。 現時点ではゼロパディングをしない書式は提供していません。
  • 書式指定に使えない文字*1
    • カンマ文字
    • クォート文字(ダブルクォート、シングルクォート)
    • 区切り文字として Y,M,D の文字は使えません。(思ったように認識できない場合があります)
  • 複数のフィールドを変更しておいて、 どこかのフィールドで改行を押しても変更されるのはひとつだけです。 一括で変更したい場合は編集機能を使ってください。

ダウンロードや設置方法、デモなど

設置方法やデモ、スクリプトなどをアップデートなどをしています。興味を持たれた方は以下のページへいらしてください。

公開は終了しました.

コメント

不備・不具合のご指摘、御要望等ありましたらご記入ください。

  • reimy 2003-12-03 (WED) 07:16:44

    PukiWiki 1.4はXHTML 1.1ですので、<script>と</script>の間はCDATAではなく#PCDATAです。「<」や「&」を直に書けないので、script部分は外部ファイルにするかXMLのCDATAセクション(<![CDATA[~]]>で囲んでください。XML未対応のブラウザとの互換性を考え、外部ファイルにするのが無難です。1.4系プラグイン作成時の注意参照。

  • jjyun 2003-12-03 (WED) 07:43:29

    ご指摘ありがとうございます。一度スクリプト部分を外出しにしたところ日本語部分が化けてしまったので、このVersionではとりあえず埋めこんだままにしてました。*2<![CDATA[~]]>で囲み直して試したところ私の手元にあるMozilla1.2(VineLinux)では Javascriptの関数 dspCalendar が読み出せなくなる状況でもあるため、外部ファイルにする方向で調査・勉強し直してみます。

  • jjyun 2003-12-04 (THU) 02:15:17

    スクリプト部分を外部ファイルとした修正を行い v0.2 としました。

  • jjyun 2003-12-06 (SAT) 05:08:22

    IEで表示させた時に plugin を埋めこんだ先のコンテンツが読めなくなる不具合、区切り文字を入れなかった場合の整合性の確認時の不具合などを対処し v0.4としました。また表示するカレンダのWindowの大きさの修正とResize可能にするよう修正も行いましたのでjsファイルやCSSファイルも若干修正を行いました。

  • jjyun 2004-01-17 (SAT) 18:50:45

    これまでは入力補助用のカレンダーは別のサブウィンドウで表示していましたが、レイヤー表示されるものも準備しました。

    • reimy 2004-01-17 (SAT) 19:15:00

      細かい点ですが下記の部分の修正が必要ですね。

      • デモページですが、<script> を使うときは <head>~</head> 内に <meta http-equiv="content-script-type" content="~" /> を指定するようにしましょう。
      • 同じく、onchange,onclick 属性を使うときは <head>~</head> 内に <meta http-equiv="content-script-type" content="~" /> を指定しなければなりません。
      • datefieldプラグインの<form>はname属性をid属性に変更する必要があります。どうしても<form>でname属性を使わないければいけない場合は、プラグイン内で、
        $html_transitional = TRUE;
        を設定してください。
  • jjyun 2004-01-25 (SUN) 01:58:13

    reimyさんご指摘ありがとうございます。指摘を頂いた部分を修正した v0.6 を作成しました。

  • jjyun 2004-01-25 (SUN) 23:32:52

    入力カレンダーでの最初の表示月のルールを、以下の二つから選べるようにしたv0.7を作成してみました。

    • テキストフィールドに記載された日付の月を使う
    • 更新日の月を表示する。
  • jjyun 2004-06-29 (TUE) 01:13:39

    (不具合修正のお知らせ)
    Ver.0.7のスクリプトでは、RedHatやFedoraCore2 などといった特定の環境において、datefieldプラグインを使ったページが文字化けすることがわかりました。言い替えると skin/pukiwiki.skin.xx.php 内でPHPのheader関数の定義有効にならないといった現象のようです。
    この現象の原因はどうやら、スクリプトの最後についていた余分な3つの空白行の存在であり、これを削除することによって上記の不具合の発生を抑えることができます。
    公開サイトに修正スクリプト(Ver.0.7.1)を載せておきますので、このプラグインを御利用の方は、お手元のスクリプトの修正 あるいは公開サイトから修正版のファイルのダウンロードと適用をしていただくようお願いします。
    また修正を行っても表示が改善されない場合は、ブラウザ側にページ内容がキャッシュされている可能性がありますので、数回再読み込みをしていただいて様子をみてください。

  • jjyun 2004-07-26 (MON) 07:53:08

    0.7.2へのバージョンアップ:機能拡張はありません。但し同じサイトで紹介しているtrackerのカスタマイズの最新版では、datefieldプラグインの関数を呼び出すことをしていますので、試される方はアップデートをお願いします。

  • jjyun 2004-08-13 (FRI) 19:04:57

    (0.7.2→0.8) PukiWiki-1.4.4rc1におけるディレクトリ構成の取り扱いを考慮し、jsファイルなどを格納するスキンディレクトリを SKIN_DIRで参照できるようにしました。

  • 日付を変更した後にページがリロードされますが、datefieldの位置までスクロールされません。なんとかする方法ってありませんか? -- taro? 2004-11-05 (金) 11:58:03
    • 気づくのが遅れてすいません。対応を検討してみます。 -- jjyun -- 御要望のあった機能を取り込んだ版(0.9)を公開しました。
      (0.8→0.9) 修正後のリロード時に、編集箇所へジャンプするように修正 -- jjyun 2004-11-22 (月) 04:25:47
  • ちょっと早い気もしますが 1.4.5 用に 1.0を公開します。大きな修正はありませんが、CVS側で既に対応されていたdev:BugTrack/578の対応を取り込んでいます。 -- jjyun 2004-12-31 (金) 18:31:19
  • カレンダーを表示する javascriptファイルを修正しました。変更点は以下の通りです。
    ・(layer版)trackerと組み合わせて使う際、今日の日付のリンクを押すと submitを発行して trackerの記事を投稿してしまう点を修正。
    ・(subwindow版) footer部分に今日の日付 を追加。表示月を変更した日付の入力が入力形式を反映していないことを修正。 -- jjyun 2005-03-27 (日) 10:43:17
    • 本体側の修正も行い Ver1.1 としました。
      (変更点)年を2桁表示の場合の処理を追加し、05/03/27 という入力を2005/03/27 と解釈するようにしました(今までは1905/03/27になっていました &sad;) -- jjyun 2005-03-27 (日) 12:27:14
  • 気づきそこねて対応が遅くなりましたが、pukiwiki本体側の変数の取り扱いの変更(html_transitional→pkwk_dtd) を行ったものを Ver1.2として用意しました. -- jjyun 2005-11-16 (水) 01:33:35

*1 他にもありましたらご指摘ください
*2 外部ファイルにした時の不具合は、私の勘違いによるミスでした。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-11-14 (金) 21:14:34
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 1.149 sec.

OSDN