Home > Internet > Movabletype > MT5テーマでの「default_pages」importerがイケテナイ件について

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がイケテナイ点についてでした。

ping a Trackback

TrackBack URL for this entry.(1)

Please! leave a Comment.

スクリプトの読み込みが完了していません。

Sign in Sign in Sign in

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > MT5テーマでの「default_pages」importerがイケテナイ件について

MT5Techniques

MT5Techniques

2冊目の共著「Movable Type 5 実践テクニック」(シックスアパート監修)が出版されました。(ソフトバンク クリエイティブ刊)

検索
(5)
(6)

別ページに遷移します。

Powered by Hyper Estraier

Feeds
Link Status
In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top