**datefield.inc.php [#se14badb] |RIGHT:100|LEFT:360|c |~サマリ|日付入力フィールドを提供するプラグイン| |~リビジョン|1.5| |~対応バージョン|1.4.6| |~投稿者|[[jjyun]]| |~投稿日|&new{2003-12-03 (WED) 06:51:21};| ** 説明 [#z8b6dc98] - 日付入力用のテキストフィールドを提供するプラグインです。 日付の書式を設定しておき、指定のフォーマットでの入力を促すものです。 trackerと組み合わせて用いることを想定して作成しています。 #contents ** 使用上の注意 [#nd72c339] 日付入力用カレンダーの生成にJavascriptを使っています。 カレンダーを使った入力がしたければ、 ブラウザでJavascriptを有効にする必要があります。 また、最近のpukiwiki(1.4.5〜)では pukiwiki.ini.php の設定項目のひとつであるPKWK_ALLOW_JAVASCRIPTの設定を以下のように変更する必要があります。 define('PKWK_ALLOW_JAVASCRIPT', 1); // 0 or 1 ** 使い方 [#gde2b5c0] 以下のように定義します。 :| #datefield([初期値],[日付書式]) 入力方法には以下の2通りがあります。 -- テキストフィールドに直接入力~ テキストフィールド上で日付を記入しEnterキーを押すと、 確定と捉えてページの中の該当部分の更新処理を試みます。 -- 日付入力用のカレンダーを用いた入力~ テキストフィールド横のボタンを押していただくと、日付入力用のカレンダーを表示します。カレンダーで日付を選択すると、選択したテキストフィールドの中身の更新を行い、確定と捉えてページの中の該当部分の更新処理を試みます。 -- ユーザからの入力確定後(テキストフィールド上でEnterが押されるか、日付入力カレンダーでの日付選択後)、以下の2点について確認を行います。 --- 入力文字列が書式通りの設定になっているかどうか --- 日付として正しいものかどうか 日付として正しければページ上を更新しますが、不整合を見つけた場合には元のページを更新せず、エラーページを出力します。 ***書式設定 [#pf0c24fa] 以下の文字列が存在する場合には、日付情報に置き換えられます。 大文字小文字は区別しません。 何も指定しなかった場合は、"YYYY/MM/DD"がデフォルトとして採用されます。 -- YYYY : 西暦(4桁) -- YY: 西暦(2桁) -- MM: 月(2桁) -- DD: 日(2桁) ~(例:"YY/MM/DD", "YYYY年MM月DD日 など) ***制限事項 [#e9dea9d8] --日付書式は%%必ずシングルクォーテーションで囲まねばなりません。%% シングルクォ-テ-ションでは囲まないでください。 -- 初期値も日付書式も省略することは可能ですが、カンマだけは入れといてください。 -- ゼロパディング(0埋め)を意識して入力してください。 現時点ではゼロパディングをしない書式は提供していません。 -- 書式指定に使えない文字((他にもありましたらご指摘ください)) --- カンマ文字 --- クォート文字(ダブルクォート、シングルクォート) --- 区切り文字として Y,M,D の文字は使えません。(思ったように認識できない場合があります) -- 複数のフィールドを変更しておいて、 どこかのフィールドで改行を押しても変更されるのはひとつだけです。 一括で変更したい場合は編集機能を使ってください。 ** ダウンロードや設置方法、デモなど [#x479510e] %% 設置方法やデモ、スクリプトなどをアップデートなどをしています。興味を持たれた方は以下のページへいらしてください。%% //-[[実験室/datefield.inc.php>jjyun:実験室/datefield.inc.php]] //-[[Lab/datefield.inc.php>jjyun:Lab/datefield.inc.php]] 公開は終了しました. **コメント [#l4eff084] 不備・不具合のご指摘、御要望等ありましたらご記入ください。 -[[reimy]] &new{2003-12-03 (WED) 07:16:44}; ~PukiWiki 1.4はXHTML 1.1ですので、<script>と</script>の間はCDATAではなく#PCDATAです。「<」や「&」を直に書けないので、script部分は外部ファイルにするかXMLのCDATAセクション(<![CDATA[~]]>で囲んでください。XML未対応のブラウザとの互換性を考え、外部ファイルにするのが無難です。[[1.4系プラグイン作成時の注意>dev:PukiWiki/Plug-inの仕様#v243f7d2]]参照。 -[[jjyun]] &new{2003-12-03 (WED) 07:43:29}; ~ご指摘ありがとうございます。一度スクリプト部分を外出しにしたところ日本語部分が化けてしまったので、このVersionではとりあえず埋めこんだままにしてました。((外部ファイルにした時の不具合は、私の勘違いによるミスでした。))<![CDATA[~]]>で囲み直して試したところ私の手元にあるMozilla1.2(VineLinux)では Javascriptの関数 dspCalendar が読み出せなくなる状況でもあるため、外部ファイルにする方向で調査・勉強し直してみます。 -[[jjyun]] &new{2003-12-04 (THU) 02:15:17}; ~スクリプト部分を外部ファイルとした修正を行い v0.2 としました。 -[[jjyun]] &new{2003-12-06 (SAT) 05:08:22}; ~IEで表示させた時に plugin を埋めこんだ先のコンテンツが読めなくなる不具合、区切り文字を入れなかった場合の整合性の確認時の不具合などを対処し v0.4としました。また表示するカレンダのWindowの大きさの修正とResize可能にするよう修正も行いましたのでjsファイルやCSSファイルも若干修正を行いました。 -[[jjyun]] &new{2004-01-17 (SAT) 18:50:45}; ~これまでは入力補助用のカレンダーは別のサブウィンドウで表示していましたが、レイヤー表示されるものも準備しました。 --[[reimy]] &new{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]] &new{2004-01-25 (SUN) 01:58:13}; ~reimyさんご指摘ありがとうございます。指摘を頂いた部分を修正した v0.6 を作成しました。 -[[jjyun]] &new{2004-01-25 (SUN) 23:32:52}; ~入力カレンダーでの最初の表示月のルールを、以下の二つから選べるようにしたv0.7を作成してみました。 --テキストフィールドに記載された日付の月を使う --更新日の月を表示する。 -[[jjyun]] &new{2004-06-29 (TUE) 01:13:39}; ~(不具合修正のお知らせ)&br;Ver.0.7のスクリプトでは、RedHatやFedoraCore2 などといった特定の環境において、datefieldプラグインを使ったページが文字化けすることがわかりました。言い替えると skin/pukiwiki.skin.xx.php 内でPHPのheader関数の定義有効にならないといった現象のようです。&br;この現象の原因はどうやら、スクリプトの最後についていた余分な3つの空白行の存在であり、これを削除することによって上記の不具合の発生を抑えることができます。&br;公開サイトに修正スクリプト(Ver.0.7.1)を載せておきますので、このプラグインを御利用の方は、お手元のスクリプトの修正 あるいは公開サイトから修正版のファイルのダウンロードと適用をしていただくようお願いします。&br;また修正を行っても表示が改善されない場合は、ブラウザ側にページ内容がキャッシュされている可能性がありますので、数回再読み込みをしていただいて様子をみてください。 -[[jjyun]] &new{2004-07-26 (MON) 07:53:08}; ~0.7.2へのバージョンアップ:機能拡張はありません。但し同じサイトで紹介しているtrackerのカスタマイズの最新版では、datefieldプラグインの関数を呼び出すことをしていますので、試される方はアップデートをお願いします。 -[[jjyun]] &new{2004-08-13 (FRI) 19:04:57}; ~(0.7.2→0.8) PukiWiki-1.4.4rc1におけるディレクトリ構成の取り扱いを考慮し、jsファイルなどを格納するスキンディレクトリを SKIN_DIRで参照できるようにしました。 -日付を変更した後にページがリロードされますが、datefieldの位置までスクロールされません。なんとかする方法ってありませんか? -- [[taro]] &new{2004-11-05 (金) 11:58:03}; -- 気づくのが遅れてすいません。対応を検討してみます。 -- [[jjyun]] -- 御要望のあった機能を取り込んだ版(0.9)を公開しました。 &br; (0.8→0.9) 修正後のリロード時に、編集箇所へジャンプするように修正 -- [[jjyun]] &new{2004-11-22 (月) 04:25:47}; -ちょっと早い気もしますが 1.4.5 用に 1.0を公開します。大きな修正はありませんが、CVS側で既に対応されていた[[dev:BugTrack/578]]の対応を取り込んでいます。 -- [[jjyun]] &new{2004-12-31 (金) 18:31:19}; - カレンダーを表示する javascriptファイルを修正しました。変更点は以下の通りです。&br; ・(layer版)trackerと組み合わせて使う際、今日の日付のリンクを押すと submitを発行して trackerの記事を投稿してしまう点を修正。&br; ・(subwindow版) footer部分に今日の日付 を追加。表示月を変更した日付の入力が入力形式を反映していないことを修正。 -- [[jjyun]] &new{2005-03-27 (日) 10:43:17}; -- 本体側の修正も行い Ver1.1 としました。&br; (変更点)年を2桁表示の場合の処理を追加し、05/03/27 という入力を2005/03/27 と解釈するようにしました(今までは1905/03/27になっていました &sad;) -- [[jjyun]] &new{2005-03-27 (日) 12:27:14}; - 気づきそこねて対応が遅くなりましたが、pukiwiki本体側の変数の取り扱いの変更(html_transitional→pkwk_dtd) を行ったものを Ver1.2として用意しました. -- [[jjyun]] &new{2005-11-16 (水) 01:33:35}; #comment //#comment