MODX Revo用のトランスポートパッケージを作ってみよう
自作のテンプレートや、スニペット、プラグインを作っていると他の人にも使って欲しい!という事があると思います。
Evoではソースコードをそのまま配布して手動インストールしてもらう感じでしたが、Revoではパッケージインストーラーが備わっていてパッケージ化されていればワンクリックでインストールが可能になりました。(実はEvoでも似たようなPackageManagerというモジュールがあるけどあまり普及していない)
インストーラーが読み込めるトランスポートパッケージの作り方を説明します。
-
パッケージを作る準備
- PackManをインストールする
- パッケージの内容を作る
-
パッケージプロファイルを作成
- テンプレートを登録
- スニペットを登録する
- パッケージファイルを作る
- インストールテストする
- レキシコン設定が何もない場合に出るエラー
- 公式ライブラリに登録してみる
パッケージ作成用のツールはいくつかありますが、GUIで操作出来る「PackMan」というツールを使用します。
phpでビルドファイルを設定して自分でビルドする方法もあって、PackManを使う前は私もやってましたが果てしなく面倒くさいです。
パッケージを作る準備
パッケージを開発するMODXとインストールのテストをするMODXは別に用意すると何かと楽です。
PackManをインストールする
「プロバイダから取得」をクリックして、検索エリアに「PackMan」と入力して、見つかったらダウンロードします。
家のアイコンをクリックしてパッケージマネージャーに戻り、先ほどダウンロードした「PackMan」をインストールします。
管理画面をリロードすると、「コンポーネント」のツリーに「PackMan」が追加されていると思います。
もし上手くインストール出来ない場合は、配布ページからダウンロードしてzipファイルのまま「core/packages」に保存して「プロバイダから取得」の右側の▽をクリック「転送済みパッケージの取得」からインストールしてみて下さい。
パッケージの内容を作る
例で「MyTemplate」という名前のテンプレートパッケージを作ることにします。
構成ファイルは以下のとおりです。
- テンプレート本体
- テンプレートで使用するCSSや画像ファイル
- コピーライト用に「年」を表示するための簡単なスニペット。これは別にあっても無くても。
まずMODX上でテンプレートとスニペットそれぞれのファイルを作ります。(投げやり)
できれば被らないような名前がいいので、被りそうなのはとりあえず「パッケージ名.なんとか」という感じにしましょう。
テンプレートは「MyTemplate」、スニペットは「MyTemplate.year」という名前で作成します。
スニペットの中身は簡単にこんな感じです。
パッケージプロファイルを作成
パッケージに含めるファイルが出来上がったら、PackManを開いてPackageNameの所に「MyTemplate」にしておきます。
右上のメニューから「CreateNewProfile」を選択して新しいプロファイルを作成します。ウィンドウのNameとDescriptionはPackManの管理にしか使用されないので自分で分かりやすい名前でもいいです。バージョンとリリース形態も必要なら編集します。
テンプレートを登録
Templatesタブをクリックしてパッケージに含めるテンプレートを選択します。
選択するとテンプレートの名前を使用してディレクトリパスが自動的に入力されますが、このディレクトリの中のファイルも同梱されます。なのでCSSや画像ファイルはこのディレクトリのパスに入れておくといいです。もしテンプレート名と別のフォルダだったり違う場所にファイルがある場合は正しいパスに修正しておきます。例えばテンプレートが「MyTemplateType1」、「MyTemplateType2」など複数あった場合は両方とも「{assets_path}templates/mytemplate/」にしておいてもいいです。
スニペットを登録する
CustomSnippetsタブに切り替えてスニペットを登録します。
テンプレートと同じくインクルードファイルやスニペットで使用するファイルがあれば、AssetsPathとCorePathのファイルが同梱されます。勝手に入力されますが、ファイルがなければ同梱されないだけなのでこのままにしておきます。
- {assets_path}:テンプレートやCSSファイルなど
- {core_path}:インクルード用のクラスファイルなど
リ���ースファイルを「assets」の中の「compnents」と「templates」どちらに置くかは適当ですが、今回のようなフロントエンド用のテンプレートだけなら「templates」、スニペットやプラグインから使うCSS等のファイルは「compnents」にまとめてしまうのが定石みたいです。(パスは変更できますが自動入力されるのがそれなので)
もしもテンプレートやスニペットがたくさんあって複雑なパッケージ構成の場合はテンプレート用のファイルも「compnents」に全てまとめてしまってもいいです。
パッケージファイルを作る
設定が終わったら右上にある「ExportTransportPackage」というボタンをクリックします。
「mytemplate-1.0-beta1.transport.zip」というファイル名でzipファイルがダウンロード状態になるので適当なフォルダに保存して、これがトランスポートパッケージになります。
インストールテストする
きちんとインストールできるかテストします。
できれば開発用とは別のMODXを使いたいですが、別途用意出来ない場合は元のエレメントや同梱ファイルを予め全部削除しておきます。
テスト用のMODXのマネージャーから
を開いて「プロバイダから取得」の右にある▽をクリックして「Upload a Package」を選択します。
「Choose files.」でさっき作ったzipファイルを選択して「アップロード」し、状態が緑の文字で「Upload successful」となったら閉じます。
ウィンドウを閉じると画面がリロードされてパッケージ一覧のリストに「未インストール」という状態で「MyTemplate」が追加されていると思います。インストールボタン>続けるをクリックします。
コンソールウィンドウが出て最後に「パッケージのインストールに成功しました」と下の様な画面が出たらひとまずインストールは成功です。
インストールが成功したら、実際にテンプレートやスニペットを使用してみてきちんと使えるか確認して問題なければパッケージファイルの完成~!
パッケージが完成したら、パッケージのzipファイルを配布したり公式ライブラリに登録申請しましょう(•ө•)ノ
レキシコン設定が何もない場合に出るエラー
レキシコンファイルが何もないとレキシコン設定を開いた時エラーが出ますが、気持ちが悪い場合は空でも良いので適当に「lexicon/en」ディレクトリを作っておき、ディレクトリ設定で追加しておくといいです。ネームスペースを作ったら勝手に作成されると思ったらされないようなので手動で作ります…。他の必要なコアファイルもあればまとめて同梱されるので以下のような書き方でいいと思います。
公式ライブラリに登録してみる
公式プロバイダ「modx.com」に登録していると、各MODXユーザーのパッケージマネージャーから検索やインストールが出来るようになります。バグやセキュリティの審査がありますが問題がなければ1週間~1ヶ月程度で登録してもらえると思います。
本家のサイトの右上にある「Login or Register」からログインまたはアカウントを作成しておきます。
英語ですがExtrasページのメニューの一番下にある「Submit an Extra」というページから申請出来ます。
ちなみに登録された場合世界中の人が見るのでパッケージ説明などは翻訳ソフトを使ってもいいのでとりあえず英語で書いておくのが無難だと思います。
その他のパッケージ作成ツール
-
ThemePackagerComponent テーマ作成専用 ★テーマのみならこれで十分そう
http://modx.com/extras/package/themepackagercomponent