いくつか出来上がってきてますひとまず速報的に。アドオン:受注一覧の詳細検索に「支払方法」を追加する受注商品のソート順指定アドオン:納品書や配送表等で受注商品の並び順をコントロールする個々のネーミングは未定です。リリースタイミングも未定です。先日告知した「日付オプション追加アドオンの機能追加」と同時にリリースしようかなと思ってます。先日リリースした日付オプション追加アドオンですが、必要に迫られていくつか機能拡張しました。基本機能は下記の通りです。携帯対応(通常のテキストフィールド)これに下記の機能を追加しました。入力文字列の正規表現バリデート(デフォルトで持っている機能を当該アドオンでも利用するようにしただけですが。指定日も範囲も当日以降の日付表示も対応)指定範囲を外れた入力に対してはPHP側でチェックします。正規表現をうまく使えばデフォルトのバリデーションでチェックできます。(上記画像の正規表現項目に設定してあるのは日付フォーマットのチェック用です)これらの設定は商品の編集画面のオプションタブで行います。携帯アドオンをご利用の場合には携帯用言語に切り替えてそちらでも設定する必要がありますので注意が必要です。性質上「特定の日付指定」と「日付範囲の指定」は排他関係にありますが、それぞれの設定項目の入力制限は実装していませんので設定時にはどちらか片方のみにするようにしてください。(アップデートのリリース時には対応するかもしれませんが未定です)このアドオンは某サイトのチケット販売でご利用頂いています。アドオンの構成まず、アドオンには決められた作法があります。ディレクトリ構成、ファイル構成、それらの名称が下記のように定められています。以外のディレクトリはアドオンの構成上必要な場合のみ作成(下位階層も同様)ファイル構成/addons/[アドオン名]のディレクトリに配置するファイルは下記の通り。addon.xmlアドオンの設定ファイル。アドオンのインストールやアンインストールに必要。func.phpアドオンのコントローラー内で使用する関数を定義するファイル。init.phpアドオンで使用するフックを登録するファイル。config.phpアドオンで使用する定数や各種設定値を登録するファイル。/controllersアドオンで使用するコントローラーおよびCS-Cart標準コントローラーのプレコントローラーおよびポストコントローラーを格納するディレクトリ。/schemas管理者用パネル内のメニューや管理者に付与する権限など、既存のスキーマを拡張するファイルを格納するディレクトリ。全てのアドオンは上記のような構成で成り立っています。上記のディレクトリ構成を見ると分かりますが、/var/skins_repository/以下に置くディレクトリの下位階層について触れていません。(テンプレートでの表示側ですね)これらは必要に応じてと書いていますが、おおざっぱに言うとCS-Cart本体のディレクトリ構成に準じた命名規則と配置で設置します。admin側、customer側、mail以下ではその構成が異なりますが多くのアドオンは下記のようなディレクトリを持っています。(一部CS-Cart本体に無いディレクトリ名を使っている物もあります。理由が無い限りCS-Cart本体のディレクトリ構成に則った方が良いと思います。)/var/skins_repository/base/admin/addons/[アドオン名]以下common_templateshooksviews/var/skins_repository/base/customer/addons/[アドオン名]以下blockshooksviews/var/skins_repository/base/mail/addons/[アドオン名]以下hooksまずはアドオンがどういった構成で成り立っているのか上記を念頭においてください。下記は実際のアドオンの構成例です。アドオン開発リファレンスこれ需要あるかなー。飯のタネなんでこういうことを明文化するのは賛否ありそうなんだけど「CS-Cart利用者」を増やす為には「採用サイトを増やす」ことと同じくらい、いや普及フェーズにおいてはそれ以上に「CS-Cartをプロモーション」する必要がある。その為には「CS-Cartってなんぞや」ということを紹介していかなきゃいけない。機能紹介はうちのサイトでもそのうち拡充するとして、今現在あんどぷらすにしか出来ないことをやるべきなんじゃないかと。そのひとつが「アドオン」に関すること。アドオンの受託開発は勿論業務として行っているんだけど、もっと多くの優秀な人たちにアドオン開発に参加してもらいたい。世のPGとか俺より遥かに優秀な人たちばかりなので参入されるのは脅威でもあるんだけど。そんなわけで「アドオンの作り方」的な記事を書いていこうと思う。本当はCS-Cartそのものの動作について触れるべきなんだけどそこは最大限省略。CS-Cartではアドオンと呼んでいるけど、ZenCartではモジュール、WordPressではプラグイン。呼び名はあるけどまぁ似たようなもの。WordPressでは管理画面からプラグインを探してオンラインでインストールできちゃう。アップデートも管理画面からポチってやるだけで終わる。基本的にはどのプラグインも共通の作法に則って作られてるからできる芸当。ZenCartはFTPアップロードしてモジュールごとの仕様でインストール方法が異なる。ものによっては手動でSQLを走らせる必要がある。CS-CartはアドオンのファイルをFTPでアップロードする必要はあるけど本体へのインストール、アンインストールは管理画面からポチっとすれば終わる。XOOPSみたいな感じ。WordPress優位かな。CS-CartもWordPress的になると思うよ。どこが変わったかなーとちょっとだけマージツールで比較してみた。なってるのか調べようと。ほんとはリリース済み、リリース待ちのアドオンが2.2.4-jp-1でちゃんと動くかの確認が主目的だけど。アドオンにそれらしきものを発見したのでコードとかアドオンの構成を見てみた。下記は2.2.4-jp-1(設定にタブが追加)こっちが従前2.2.3-jp-1以前アドオンの設定ページにタブが表示されるのは従前よりあるのですがその表現方法が異なります。アドオンの構成を見るとvar/skins_repository/base/admin/addons/twigmo/settings/settings.tplなんてのが増えてる。テンプレート側に(repositoryね)アドオンの設定ファイルを置く形らしい。見ただけだと、これまでのaddon.xmlに書く形と大差ない、むしろ分割することがめんどくさいという捉え方もありそうです。実際のところ期待していいように思えます。いうのも、これまではxmlファイルに書く必要があったので制約も多かったんですよ。動的にプルダウンの中身を生成するとかタブンできなかったはず。条件分岐をして、他の設定に応じて表示非表示を切り替えたりってのも同様。smartyで色々制御できることは間違いないですね。PHPで制御できるかはまだちょっと見てないですけど。感覚的には決済系のアドオンの支払方法の設定ファイルに似てるかなーという感じ。速報気味にエントリー投稿しました。〜デザインされたHTMLをテンプレートにする方法〜」に参加してきました。