Results tagged “tips”

自分は、今見ているテストページがスタティックパブリッシングとダイナミックパブリッシングのどちらによる出力なのか、一目で分かるように、以下のような表示をさせておくことがあります。

このテンプレートは<mt:ifDynamic>ダイナミック<mt:else>スタティック</mt:ifDynamic>で構築されました。

いくらPerl弄っても動作が直らないと思ったらPHPのほうに問題があった。何を言ってい(ry等と言うことにならないためですね。

さて、ここでちょっとした罠があります。mt:ifDynamicと対になるようなテンプレートタグmt:ifStaticでは、このような書き方は出来ません。

このテンプレートは<mt:ifStatic>スタティック<mt:else>ダイナミック</mt:ifStatic>で構築されました。

上記テンプレートは、スタティックでは期待通りに動きますが、ダイナミックでは以下のような出力になってしまいます。

このテンプレートはで構築されました。

原因は、mt:ifStaticタグのPHPでの実装が、テンプレートタグとしてではなく、コメント(のような)扱いになっているためです。
<mt:ifStatic>・・・</mt:ifStatic>の部分が、再構築より前に強制的にテンプレートから削除されてしまうんですね。なので、その中に何個mt:elseを書こうが、全部消えてしまうわけです。mt:ignoreと同じですね。

これはおそらくダイナミックパブリッシングでは、ページビューごとに構築が行われるため、より細部の高速化を重視しているものかと思われます。mt:ifStaticとmt:ifDynamicで非対称な動作となっているのでちょっと違和感がありますが、上手く使い分けると良いと思います。

<mt:setvar foo value="fizz","buzz">
こんなMTタグの書き方はありでしょうか!?実はありなんです!

というわけで、MT4.1で利用可能なMTタグの書式を調べてみました。

全般編

基本形
<$MTBlogName$>
$マークは省略出来る
<MTBlogName>
かたっぽだけというのもOK。ただしかっこ悪い。
<$MTBlogName>
<MTBlogName$>
これはMT3から省略できました。ちなみに、ブロックタグでは$マークをつけること自体出来ません。ブロックの閉じタグの頭のスラッシュ「/」と$マークが両立できないためです。
末尾に/を付けられる
これはMT4からの機能。
<MTBlogName />
XMLの空タグ風に記述できます。これもブロックタグでは使えないかと思われます。

タグ名編

大文字小文字は問わない
MT4より。
<mtblogname>
<mtBlogName>
<mTblOgnAme>
すべてOKです
「MT」とタグ名の間にコロンを挟める
MT4より。
<mt:blogname>

モディファイア編

基本
キー="値"の形で指定します。
<mt:setvar name="foo" value="fizz">
値の括りはシングルクオートでも可
<mt:getvar name='foo'>
クオートを省略しても可
<mt:getvar name=foo>
ただし、半角スペースのような、単語の区切りとみなされる物を値に含む場合はダメです。つまり、これはOKですが
<mt:setvar name=fizzbuzz value=15>
<mt:getvar name=fizzbuzz>
これはNGです。
<mt:getvar name=fizz buzz>
イコールの前後やアトリビュートの前後にスペースや改行を挟める
<mt:setvar name = "boo" value = " fizz buzz ">
<mt:getvar name = "boo" capitalize = "1" strip = "-" />
値には小なり「<」大なり「>」記号を含めることが出来る
実はMT4.1から。それ以前は大なり「>」を含めることが出来ませんでした。
<mt:setvar name="goo" value="<fizz><buzz>">
nameキーは省略可能
<mt:getvar goo>
これは、
<mt:getvar name="goo">
と同じ意味となります。
カンマ区切りで配列を渡せる
<mt:setvar moo value="fizz","buzz">
区切りはコロンでもOKです。
<mt:setvar weekdays value="sun":"mon":"tue":"wed":"thu":"fry":"sat">
なお、配列を指定する場合は、クオート(''や""の括り)が必須となります。
実際にモディファイアに直接配列を指定できるケースというのはそう多くは無いのですが、Entriesのidモディファイアや、regex_replaceグローバルモディファイアで利用することが出来ます。
<mt:entries id="1":"3":"5">
    <mt:entrytitle>
</mt:entries>
<mt:getvar boo regex_replace="/z/g","k">
$記号で変数展開
<mt:setvar doo value="foo">
<mt:getvar name="$doo">
これは、変数「foo」の値が出力されます。
この変数展開は、配列に対しても有効です。
<mt:setvars>
pattern=/z/g
replace=p
</mt:setvars>
<mt:getvar boo regex_replace="$pattern","$replace">
なお、[]や{}による配列やハッシュへのアクセスは、あくまで「mt:setvar」「mt:getvar」のタグに固有の機能となりますので、今回は調べませんでした。
おわり。

Action Streams!

  • Posted on
  • by

SixApartから登場した新しいプラグイン、Action Streams がステキすぎます。

自分もいくつか似た様なものを作っていましたが、こっちのほうがよさそうですね。

さて、早速導入してみたのですが、導入に関して何箇所かつまずいたところがあったので、注意点をまとめておきます。

文字コードは UTF-8 で!

現在のバージョンでは文字コードの変換を行ってくれないようです。このブログは euc-jp で公開していたのですが、見事に取得したActionが文字化けしてくれました。
多分何も文字コードを操作していないと思うのですが、twitterやvoxに日本語をポストしている場合はutf-8で返ってくるようですので、MT側もutf-8なら問題ないようです。
文字コードが異なる状態でActionStreamsが動作してしまった場合、文字化けした状態のActionやタグが登録されてしまい、後の作業での障害になる場合があります。特に文字化けしたタグは削除することが容易ではないので、必ず事前に、導入する MT の文字コードがutf-8であることを確認しましょう。


自分の場合は、かねてからutf-8にしたいと考えていたので、無理やり文字コードを変更しました。こちらの記事が参考になりました。

追記: あー、どうもあちこちおかしいと思ったら、Storableされてるメタデータやプラグインデータがぶっ壊れたかも。ふむう。DBのダンプをnkfではダメみたい。なにか違うやり方を考えないと。

テンプレートセットを適用するときはユーザーの言語設定を英語に!

ActionStreamsプラグインは、専用のテンプレートセットを提供してくれます。が。こちらもローカライズが一部問題あるようです。
以下の手順で、テンプレートが中途半端に日本語化されないようにしましょう。

  1. プロフィール画面を開く。管理画面右上の「こんにちは(ログイン名)さん」から開けます。
  2. 使用言語を英語にして保存
  3. テンプレートセット「ActionStream」を使って新規ブログを作成

テンプレートセットの適用後は、言語設定を日本語に戻してしまっても問題ありません。

Actionが少ないと寂しい!

えー。
・・・・・・頑張ってついったりヴぉくすったりします。


ではでは。

16:55:36 on Hatena Bookmark

Something Orange -  似非オタでもOK!
[オタク] 「そしてそのことを非難されても困る。」知識が半端で困るのは消費者ではなくコミュニティ。スポーツの場合ははっきりしているよね。オタク界隈については良く分からん。

web activities on September 21, 2007

  • Posted on
  • by

00:23:19 on del.icio.us

ニコニコ動画(RC)‐SIREN 屍人観察 理沙
[niconico][siren] タックルタックル

00:33:16 on Hatena Bookmark

ニコニコ動画(RC)‐SIREN 屍人観察 前田一家
[niconico][siren] このステージはマジで怖かった。こうして見ると愉快な一家だな。

01:18:10 on Twitter

UserAgentが”MovableType”だと、del.icio.usからユーザーごとのフィードを取れないっぽい。。。

17:09:52 on Twitter

ノートのバッテリーが完全死んだー。ACアダプタも接触が不安定で時々即死する。あうあう。

YouTube - まるでコメディのようなサッカーハプニング集 CheeZ チーズ

23:25:25 on Hatena Bookmark

YouTube - まるでコメディのようなサッカーハプニング集 CheeZ チーズ
[football][youtube] 何個か見たことの無い映像があった

YouTube - Buffon On Scherzi A Parte

23:38:54 on Hatena Bookmark

YouTube - Buffon On Scherzi A Parte
[Scherzi A Parte][football][ブッフォン] フェイエ戦でもポスト蹴ってたなあ。

Amazon.co.jp: 暗号解読 上巻 (1) (新潮文庫 シ 37-2): 本: サイモン・シン,青木 薫

23:56:44 on del.icio.us

Amazon.co.jp: 暗号解読 上巻 (1) (新潮文庫 シ 37-2): 本: サイモン・シン,青木 薫
[books][サイモン・シン] 最近読み終わった。下巻末の読者向け問題の解読ドキュメントが良かった。単行本より文庫で読んだほうが良いかも。