CS-Cart 日付オプション追加アドオンの拡張

先日リリースした日付オプション追加アドオンですが、必要に迫られていくつか機能拡張しました。

基本機能は下記の通りです。

  • オプションに日付を追加
  • 入力にカレンダーからの選択機能を追加
  • 携帯対応(通常のテキストフィールド)

これに下記の機能を追加しました。

  • 入力文字列の正規表現バリデート(デフォルトで持っている機能を当該アドオンでも利用するようにしただけですが。)
  • 特定の日付指定に対応(カンマ区切りで複数指定可 ex 2012/03/15,2012/03/30)
  • 日付範囲の指定に対応(入力可能な日付範囲を指定 ex 2012/04/01%%2012/05/26)
  • 当日より前の日付の指定禁止に対応(当日以降の日付選択のみに)
  • 携帯アドオンに完全対応(日付をセレクトボックスで生成 指定日も範囲も当日以降の日付表示も対応)

指定範囲を外れた入力に対してはPHP側でチェックします。
正規表現をうまく使えばデフォルトのバリデーションでチェックできます。
(上記画像の正規表現項目に設定してあるのは日付フォーマットのチェック用です)

これらの設定は商品の編集画面のオプションタブで行います。
携帯アドオンをご利用の場合には携帯用言語に切り替えてそちらでも設定する必要がありますので注意が必要です。

性質上「特定の日付指定」と「日付範囲の指定」は排他関係にありますが、それぞれの設定項目の入力制限は実装していませんので設定時にはどちらか片方のみにするようにしてください。(アップデートのリリース時には対応するかもしれませんが未定です)

このアドオンは某サイトのチケット販売でご利用頂いています。
(公開が可能であればご紹介させていただきますが現段階では導入サイトは非公開です)

ちなみに、CS-Cartでは jQuery UI のDatepicker が採用されています。

CS-Cart 日付オプションの追加アドオン

とあるアドオン開発中に必要に迫られて作ったものです。

商品オプションに「日付」がなかったなと。
CS-Cartでデフォルトで用意されているのは下記のものになります。

  1. テキストフィールド
  2. テキストエリア
  3. ラジオボタン
  4. チェックボタン
  5. セレクトボックス
  6. ファイル

オプションで日付を扱いたい場合(例えばチケット販売で日付指定するケース)、テキストフィールドに入力してもらう必要があります。
勿論運用上これで問題が無いケースもありますが

カレンダーで指定選択させたい。
入力される文字列フォーマットを統一したい 。

といった要望もあるかと思います。

というわけで日付オプションを追加するアドオンを作りました。
(携帯ではカレンダー表示できませんのでただのテキストフィールドとなります。)

日付オプションをふたつ使えば期間の指定も対応できます。(たぶん)

実装にあたってはコアも他のアドオンも触らず、当該アドオンだけで完結しますが、コアを触らない為に処理が多重化している箇所があります。
コアファイルにちょっと書き加えればもっと簡単に実装できますが「コアを触らない」ことを優先してます。

  • 商品一覧画面
  • 商品画面
  • カート
  • 注文手続き中の最終確認画面
  • マイアカウント内注文>注文情報ページ
  • 管理画面:注文内容の確認画面

これらで選択したオプション値(日付)が表示されなければいけませんのでそれなりに大変でした。

販売時期と価格は追って告知します。