- 2010-01-31 (日) 18:42
- MovableType


- MT5テーマでの「default_pages」importerがイケテナイ件について
テーマを作っていて気づいたシリーズ第2弾です。
テーマを使ってウェブページを作成出来る事は、「MT5の新機能「テーマ」を適用させたときに同時にフォルダとウェブページを作成する方法 | Movable Type技術情報 | MTエンジニアブログ | スカイアークシステム」ですっぱ抜かれたり、公式ドキュメント「標準のテーマ エレメント」にも登場したりと、知ってるヒトも多いと思うのですが、その「default_pages」importer部分の動作で妙な箇所を見つけました。
一つ目は、これは絶対皆さん気づいている現象だと思うのです。というのもプロフェッショナルウェブサイトを作成した時に、確認できる内容だからです。
default_pages:
component: core
importer: default_pages
name: Default Pages
data:
about:
basename: index
title: About
text: <__trans phrase="_PWT_ABOUT_BODY">
tags: @about
folder: about
こんな風に設定すると、ウェブページの出力ファイル名(ベースネーム)は「index」、フォルダ指定は「about」になっている筈なのです。
ところが、何故か出来上がったウェブページ「About」のベースネームは「about」になってしまいます。
どうも、いろいろ試してみた感じでは、そもそも「basename」指定が有効ではないみたいです。ベースネームにはidentifierが使われているようでした。おそらく、シックスアパートでも気づいている現象だと思うのですよね。対応待ってまぁーす。
という訳で、いけてない2つ目。今度はウェブページ作成時に出来る、フォルダについてです。
上のウェブページの例を見て解るとフォルダが自動作成されるのが解ります。出来るフォルダは「anout」です。
この場合、出来上がるフォルダの名前は「about」でフォルダのベースネームは「about」になります。しかし、この様な事は少なかったりしますよね。普通はフォルダ名「会社情報」・ベースネーム「about」という風に、両者が異なるケースがほとんどでは無いでしょうか。
では、「folder: about」では無く「folder: 会社情報」とした場合どうなるでしょうか?この場合は予想通りフォルダ名「会社情報」になりベースネームまで「会社情報」になります。
ウェブページとは別に、フォルダの作成機能もテーマにはあります。これと組み合わせたらどうでしょうか?
default_folders:
component: core
importer: default_folders
data:
about:
description: 会社情報について
label: 会社情報
これで、フォルダ名「会社情報」でベースネームが「about」のフォルダが作成されます。これとウェブページのimporterを組み合わせれば、思うとおりのものが出来るはずです。
default_folders:
component: core
importer: default_folders
data:
about:
description: 会社情報について
label: 会社情報
default_pages:
component: core
importer: default_pages
name: Default Pages
data:
about:
basename: index
title: About
text: <__trans phrase="_PWT_ABOUT_BODY">
tags: @about
folder: about
このコードで実行してみました。すると、なぜか出来上がるフォルダは、フォルダ名が「about」になってしまいます。description指定もされていません。どうやら、ウェブページのインポート時に、フォルダの設定が上書きされてしまったようです。ついでだからウェブページのフォルダ指定を「folder: 会社情報」にしたらどうなるでしょうか?
結果ウェブページの指定フォルダは「会社情報」になるのですが、そのフォルダのベースネームは「会社情報」になりました。ソレと別にフォルダ作成指定の「会社情報」という名の「about」というベースネームのフォルダが、もう一つ作成されています。
上書きされたのなら、順番を変えたらどうでしょうか?という訳で、フォルダインポーターとウェブページインポーターの順序を変えて試してみました。
default_pages:
component: core
importer: default_pages
name: Default Pages
data:
about:
basename: index
title: About
text: <__trans phrase="_PWT_ABOUT_BODY">
tags: @about
folder: about
default_folders:
component: core
importer: default_folders
data:
about:
description: 会社情報について
label: 会社情報
やっと、うまく出来ました。問題ないようです。という訳で、フォルダとウェブページをテーマで同時に作成させる場合には、ウェブページの作成を先にさせる必要があるみたいです。要注意点ですよ。
ちなみに、既存のフォルダが作成済みの場合には、問題は発生しませんでした。ウェブページをインポートした時に、勝手にフォルダ名やベースネームが変化する事はありませんでした。
それから、ウェブページでのフォルダ指定は、identifierで指定する必要があるみたいです。ここをフォルダ名で指定した場合、上の例で出したようにベースネームの異なるフォルダが2つ作成されてしまいました。
という訳で、以上、テーマ作成で気づいた「default_pages」importerがイケテナイ点についてでした。
- Newer >: 「blog_static_files」importerを使うには・・・
- < Older: アイテムサムネイルのsquareモディファイアが言う事を聞かない
ping a Trackback
- TrackBack URL for this entry.(1)




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