アーカイブ2008年12月10日カテゴリの階層の深さを取得するMTプラグインMTのテンプレートを書いていると、現在のカテゴリの深さによって、表示を変えたりしたいときがあります。トップカテゴリと、サブカテゴリのデザインを変更したり、表示するものを変えたり。親カテゴリがあるかないかで判断するなどの方法もありますが、もっとシンプルに「カテゴリの深さを取得する」プラグインを考えてみました。2;}1;これが、そのプラグインになります。「category_depth.pl」などの名前でファイルに保存して、MTシステムにインストールしてください。<$CategoryDepth$>タグで、カテゴリのレベルが取得できるので、SetvarBlockなどで変数に代入して、比較を行うとよいかと思います。現在のカテゴリの親カテゴリをさかのぼって取得しています。取得できた配列の最後の添字を取得して、それに2を足したものが「階層の深さ」になります。Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。お問い合わせはこちらまで。2008年12月24日シェルアクセスできないレンタルサーバでMTのプラグインをデバッグする今回もMTのデバッグネタです。先日、弊社のプラグインをインストールしたところうまく動かない、というお客様がいらっしゃいました。手元の環境では問題なく動作していますが、お客様の管理画面にアクセスして調べてみると、やはりうまく動作してません。サーバのシェルにアクセスして調べようにも、お客様が契約されたレンタルサーバでは、シェルでのアクセスが出来ない環境でした。このプラグインは、テンプレート内にPerlのスクリプトを記述できるようにするもので、再構築時にスクリプトを実行し、その結果を出力します。プラグインには2つスクリプトが同梱されていて、それぞれ指定された場所へインストールするようドキュメントに書かれていますが、私は以下のようにファイルを配置し、プラグインディレクトリへコピーしました。使い方は、テンプレートにPerlスクリプトを記述し、MTPerlScriptタグで囲うだけです。例として、MTのコンフィグをダンプするスクリプトを書くと以下のようになります。1つのテンプレートの中にMTPerlScriptタグをいくつも置くこともできます。サブルーチンを定義することも出来ます。作成したテンプレートを再構築し、出力内容を確認するという手順を繰返して、デバッグします。便利かつ強力なプラグインですが、その反面、テンプレートの編集権限さえあれば、何でも出来てしまう危険なプラグインでもありますので、取り扱いにはご注意ください。Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。お問い合わせはこちらまで。