指定した文字で出力されるデータを分割する
MTプラグイン SplitModifier 0.1.0を公開
[ update 2011.03.01 ]

先週末、ホテルはまつにて「プロジェクトマネジメント基礎講座」が開催されました。
そのレポートは、誰かにお任せするとして。。。(笑)

ワークショップの際にご一緒させていただいた@type920さんから、
小粋空間さんで配布されているSplit プラグインをダイナミック・パブリッシングでも使えないかな?」とご質問をいただきました。

その折は、「ダイナミック・パブリッシングなら、PHPを直接記述するかも。」とお答えしたものの、
あまりスマートな答えとは、言えませんよね。。。

そこで、もっと簡単に実現できるよう、プラグイン化してみました。
Perlはsplit関数、PHPはexplode関数で分割・・・という、いたってシンプルなプラグインです。
制作にあたり、前述のSplit プラグインも参考にさせていただきました。

@type920さん、荒木さん、ありがとうございます!

導入方法

プラグインのダウンロードは、下記URLからお願いします。

SplitModifier 0.1.0
http://download.d-s-b.jp/MTPlugins/SplitModifier_v0.1.0.zip

---

追記 2011.03.01
SplitModifier 0.1.1に、アップデートしました。
詳しくは、指定した文字で出力されるデータを分割するMTプラグイン SplitModifier をアップデートをご覧ください。

---

ZIPファイルを解凍後にできるフォルダーをMovable Typeのシステムディレクトリ内にある「/plugins/」へコピー(アップロード)してください。

なお、商用・非商用に関わらず、自由にお使いいただけます。
ただし、実際にご利用される前に、テスト環境で動作に問題がないかをチェックいただくことをオススメします。(※現状、MT 4.2.3、MT5.0.4で動作チェック済みです。)

SplitModifier プラグインで、できること

SplitModifier プラグインの主な機能は、以下のとおりです。

  • split モディファイアで、分割の基準となる文字列を指定できます。
  • グローバル・モディファイアですので、MTファンクションタグで利用できます。(MTブロックタグは、テストしていません。)
  • 分割後の値は、固有の変数名を指定することで取得できます。
  • ダイナミック・パブリッシングに対応しています。

SplitModifier プラグインの使い方

本文に「37.400529,140.359743,15」とGoogle Mapsの座標が入力してあり、
緯度、経度、ズームレベルをそれぞれ取得する場合を例にあげてみます。

まず、テンプレート内の任意の場所で、SetVarsタグによる変数のセットを行います。
下記のサンプルでは、split モディファイアの値に「カンマ」を指定して、本文を分割しています。

<$mt:EntryBody split="," $>

SetVarsにセットされる値は、次のようになります。
変数名の接頭辞(split_var)は、固定値です。そこに、0から始まるインデック番号が付加されます。

split_var0 = 37.400529
split_var1 = 140.359743
split_var2 = 15

セットされた変数を出力する場合は、テンプレートの任意の場所でGetVarタグを記述してください。

緯度:<$mt:GetVar name="split_var0" $>
経度:<$mt:GetVar name="split_var1" $>
ズームレベル:<$mt:GetVar name="split_var2" $>

注意点

本文やテキスト(複数行)のカスタムフィールドの場合、p要素が出力される場合があります。
このプラグインでそのまま分割してしまうと、生成されたページの文書構造が崩れる可能性が考えられます。

また、インデックスやアーカイブなどの一覧表示部分で使用する際、
分割数にバラつきがあると、意図しない値が出力される場合がありますので、ご注意ください。

なお、不具合や愛のあるダメ出し(笑)などございましたら、お気軽にフィードバックをお願いします!

個人ブログで、jQuery Google Maps プラグイン ver.1.00をリリースしました。
よかったら、そちらもチェックしてみてくださいませ。

コメント:6件

  • 接頭辞に「._ 」が付いたファイル(AppleDouble?)があり、一緒にアップロードしてしまうとエラーになります。(Macだと大丈夫なのかな?)

    まずは、ご報告まで、

  • > 920さん
    大変失礼しましたー(汗)
    今ほど、Windowsで再圧縮したものをアップロードしました!

    コメント、ありがとうございます ^ ^

  • 早速ありがとうございます。

    ところで、「mt:SetVars」で設定した変数の数って取れませんよね?
    「mt:For」でまわすことってできないですよね?

    出力の頭に、「split_var_length=配列の要素数」をつけてみました。

    「mt:For」でまわせて、分割数があらかじめ分からないような場合、使い勝手がいいように思うのですが?

  • > 920さん

    なるほど。
    mt:Forは普段使ったことがないのですが、そんな方法もあるのですね。

    参考までに。
    単純に要素数を渡せれば、使える感じなのですか???
    後学のために、教えていただけると嬉しいです。

  • タグ使えるかどうか分からなかったので、

    http://potato.2nd-half.jp/split.txt

    とりあえずこんな感じでやってみました。

  • > 920さん

    ありがとうございます。
    参考にさせていただきつつ、アップデートしてみました。

    今回も、改行コードはイキなので、
    使いづらい時は部分的に修正していただければ・・・と<(^_^;)

コメントフォーム

トラックバック(0)

トラックバックURL : http://gabs.cc/mt/mt-tb.cgi/tb
※お手数ですが、上記URLの「tb」を「43」に置き換えてPingを送信してください。

最近のコメント

  • 2011.03.01 17:54 BUNのコメント: > 920さん ありがとうございます。
  • 2011.02.28 23:57 920のコメント: タグ使えるかどうか分からなかったので、
  • 2011.02.28 23:39 BUNのコメント: > 920さん なるほど。 mt:Fo
  • 2011.02.28 23:02 920のコメント: 早速ありがとうございます。 ところで、
  • 2011.02.28 20:11 BUNのコメント: > 920さん 大変失礼しましたー(汗)
  • 2011.02.28 19:53 920のコメント: 接頭辞に「._ 」が付いたファイル(Ap