- 2010-03-28 (日) 14:42
- MovableType


- カスタムフィールドのあんな事やこんな事
カスタムフィールドを含む記事のエクスポート
普段あまり(というかほとんど)カスタムフィールド使わない人なんですが、今回テーマ作った時にいろいろとカスタムフィールドを使ってみました。
そもそも、ブログ記事のエクスポートで記事に付けたカスタムフィールドの値も出力されるのは、全然知らなかった・・・![]()
つまりMT5だと、テーマのエクスポートでカスタムフィールドの設定エクスポートして、ブログ記事のエクスポートしておけば、別なMTにカスタムフィールド付きのブログ記事が、ごっそり移せるって事なんですね。なるほどー!
但し、試してみて気づいた注意点があります。
値を入力していない状態でエクスポートされたものは、YAMLの仕様なのか、必ず半角スペースが補完されて取り込まれてしまうようです。
ですので、「<mt:If tag="XXXX">値:<$mt:XXXX$></mt:If>」のように条件判断で出力させようと思った場合に、正しく値の有り無しが判断できなくなります。その場合は、お決まりの「<mt:If tag="XXXX" strip_linefeeds="1" trim="1">値:<$mt:XXXX$></mt:If>」で対処しておくといい筈です。
残念ながら検索置換処理に半角スペースのみというのは出来ないようなので、phpMyAdmin等で直接いじっても良いですが、どのみち誤入力対応に「strip_linefeeds="1" trim="1"」を追加しておくのは無駄ではないと思います。
カスタムフィールドの型を拡張するプラグイン
最初はすでに取り上げた「Two Dimensional Pull Down」プラグイン。
「byrnereese's mt-plugin-cf-twodimselect at master - GitHub」
親子関係のプルダウンを型として追加するプラグインです。ただしハッシュで定義する時に日本語を使うと、正常に項目として機能しませんでした。また、どうやらこのプラグインをインストールしていると、ラジオボックスのような複数値をカンマ区切りで入力する型の作成で、最初の項目が数字の場合にHASHエラーが発生してしまいます。
なかなかいい感じに使えそうなプラグインなのですが、先の日本語項目に対応していない点など、残念な箇所がイッパイ有りますね。
「More Custom Fields | Plugins | Eat Drink Sleep Movable Type」
こちらは複数の型を追加します。複数のチェックボックスをグループ化して表示する「Checkbox Group」、ラジオボタンの最後のその他の項目入力エリアを追加できる「Radio Buttons with Input」、ブログ記事・ウェブページとの関連付けを設定できる「Selected Entries」と「Selected Pages」が追加されます。
「数値型のカスタムフィールドを追加するプラグイン(その1) - The blog of H.Fujimoto」
ブログ記事などをカスタムフィールドによりソートさせる目的で、数値として扱う型を追加します。これは、何故標準機能に取り込まれないのか不思議なくらい。
カスタムフィールドに機能を追加するプラグイン
「小粋空間: CustomFieldAssetDetailsHandler プラグイン v0.20」
画像のカスタムフィールド使用時にファイルオプション画面を表示させるプラグインです。MT4.2用のもののアップデート版になります。些細な事かもしれないけど、便利です。
「システムレベルのカスタムフィールドをテーマで扱うプラグイン - The blog of H.Fujimoto」
標準では扱えないシステムレベルのカスタムフィールドを、テーマとしてエクスポート・インポートが可能になります。サイト間移動の時に便利ですね。
作成したカスタムフィールドそれぞれに対して、DIVとINPUTに対するスタイルシートの記述を行ないます。仕組みはわかり易いので、ちょっとしたスタイル指定に便利だと思います。
ただ、ラジオボタンや上記のCheckbox Groupなどの、チェックする要素が複数あるような時に、管理画面上では各項目が縦に並んでしまって、邪魔くさいなと感じるケースで、リスト要素(LI)にフロート指定したいなと思っても、適用される箇所が違うのでうまくいきません。(なんか、裏技があったりするのかな?)
それで、ふと思いついたのが、同じ天野さんによる以下のプラグインです。
「MT > ScriptInjection - ToI」
本来の用途は、Javascriptライブラリを管理画面に追加して、特定の項目に対して変更が行われた時に、他の項目の値を修正するような仕組みを提供する事のようです。
ちょうど、例として扱われていたのがjQueryのコマンドだったので、「それならスタイルシートの変更できるよな」と思い試した所バッチリでした。
$("#customfield_<カスタムフィールドのベース名>-field").find("li").css({"float":"left"}).find("label").css({"margin":"0 1em 0 0.2em"});
$("#customfield_<カスタムフィールドのベース名>-field").find(".hint").css({"clear":"both"});
こんな感じで書いてみたところ、ずばり項目が横並びになってくれました。どちらもMT4.2用にリリースされたものですが、ボタンの表示が少し変なだけで、(間違い、原因は別にありました)MT5.01で問題なく動作しています。本来の機能と併せて、カスタムフィールドを使用している場合は是非ともインストールしておくべきプラグインですね。
- Newer >: MTLinkの条件判断
- < Older: 「Movable Type 5実践テクニック」見本誌到着しました
ping a Trackback
- TrackBack URL for this entry.(1)
Comments:(4)
-
said
March 29, 2010 9:55 PM
|
ReplyThis!
カスタムフィールドを含む記事のエクスポートはMT5で対応しているのはしりませんでした!
テキスト形式のCFはインポートできるみたいですが、アセット(画像等)はできないみたいですか?-
-
replied for
kze's comment
March 30, 2010 12:09 AM
|
ReplyThis!
はじめましてですよね。
>カスタムフィールドを含む記事のエクスポート
私も、教えてもらうまで知らなかったんですよ。
>アセット(画像等)はできないみたいですか?
そもそもアイテムは、移動する手段が無いですからねぇ。出来なかったはずですよ。エクスポートにはアイテムのIDの様な内部情報含まれませんから。
あまり、ここら辺は使わない機能なので、詳しく検証したわけではないのですが。
個人的にはアイテムインポーター追加してもらいたいなと思っています。-
-
replied for
oscar's comment
March 31, 2010 1:03 AM
|
ReplyThis!
以前から読ませて頂いてますが、コメントするのは初めましてです!
アセットのインポートができなくて残念です。
ファイルパスを記述するだけでインポートしてくれたら完璧なんですけどね〜。プラグインでもまだエントリーをインポートしてもアセットを登録できるものがないようなので私みたいに大量の写真が登録してある場合エントリーのインポート/エクスポートは困難ですね。。。
-
-
replied for
kze's comment
March 31, 2010 8:35 AM
|
ReplyThis!
kzeさん、よろしくお願いいたしますね。
さてアイテムですが、ブログ記事のインポート/エクスポートに対応してのアイテムのインポートはかなり難しい話になって、おそらく対応される事は無いような気がしますよ。
というのも、AssetIDがインポートされる事で変化してしまうから。
単独でのアイテムのインポート機能なら、どうにかなりそうな気がします。AssetHandlerがやっている処理みたいな事を、importerとして用意できればどうにかなりそうなので。
-
-
-




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。