プロが教える店舗&オフィスのセキュリティ対策術

http://www.h-fj.com/blog/archives/2007/09/08-105 …
上記を実現したく作業していましたが、
テンプレートモジュール『サイドバー (2カラム)』を編集しても反映されません。
これまでサイドバーのカスタマイズはウィジェットセット『2カラムのサイドバー』を
いじっていただけなので(反映もされていたので)疑問に思わなかったのですが、
そもそもテンプレートモジュール『サイドバー (2カラム)』はどこで使われているのですか?
ウィジェットセットとは同時に使われるものですか?
それともどちらを使うか指定してあるのでしょうか。
サイドバーの設定について、これら2つの役割の違いがわかりません…。

大変初歩的な質問ですみません。よろしくお願いします。

A 回答 (2件)

「ウィジェットセット『2カラムのサイドバー』」というのがちょっとよくわからない(デフォルトではない?)のですが



>テンプレートモジュール『サイドバー (2カラム)』はどこで使われているのですか?

について。

「テンプレート」の画面にいくと、右上の検索窓が「検索 テンプレート」になっていると思います。この状態で、『サイドバー (2カラム)』と入れて検索してみて下さい。『サイドバー (2カラム)』と共に、この文字列が使われているテンプレートが出てくると思います。
(『サイドバー (2カラム)』というテンプレートモジュールはMT4.1系で使われている(MT4.2デフォルトにはない)ので、MT4.1と仮定します)

『サイドバー (2カラム)』で検索すると、「フッター」が出てくると思います。
フッターの中身を見てみると、条件分岐になっていると思います。それを読み解けば、どのテンプレートが有効なのかがわかります。
例えば下記のようになっているとすると
<MTIf name="sidebar">
<MTIf name="page_layout" eq="layout-tw"$>
<$MTInclude module="サイドバー (2カラム)"$>
<MTElse>
<MTIf name="page_layout" eq="layout-wt"$>
<$MTInclude module="サイドバー (2カラム)"$>
<MTElse>
<MTIf name="page_layout" eq="layout-twt"$>
<$MTInclude module="サイドバー (3カラム)"$>
<MTElse>
<$MTInclude module="サイドバー (3カラム)"$>
</MTElse>
</MTIf>…

<MTIf name="sidebar">は、「sidebarという名前がテンプレートに定義されている時」という意味です。つまり、テンプレートに<MTSetVar name="sidebar" value="1">という記述が入っている時、という意味になります。(例えばデフォルトテンプレートでは「メインページ」の冒頭部分に入っていると思います)

<MTIf name="page_layout" eq="layout-tw"$>
<$MTInclude module="サイドバー (2カラム)"$>
は、「page_layoutという名前にlayout-twという値がテンプレートに指定されている時、サイドバー (2カラム)を挿入する」という意味です。
つまり、「テンプレートに<MTSetVar name="page_layout" value="layout-wtt">という記述が入っている時、サイドバー (2カラム)を挿入する」という意味になります。
一方、<MTIf name="page_layout" eq="layout-twt"$>、つまりlayout-twtの場合は、<$MTInclude module="サイドバー (3カラム)"$>、「サイドバー (3カラム)」を挿入します。

でもってそもそもこのpage_layoutがどのような値を持っているかをどのように確認するか、なのですが。
テンプレートを探し回ると時間だけかかって大変ですので、これもやはり「テンプレートの検索」を使うと便利です。
「page_layout」と検索すると、このキーワードが使われているテンプレートが出てきますので、開いて見てみます(多分スタイルシートに書かれているのではないかと思うのですが)
そこにある
<MTSetVar name="page_layout" value="layout-**">
という記述のvalue=に書かれている値を読み取り、「フッター」においてどのサイドバーテンプレートモジュールを使うかを決定している、ということになります。(逆に言えば、ブログのカラム構成を変更したい場合は、このスタイルシートにあるpage_layoutの値を変更すればよい)

…という風にして、どのテンプレートが有効なのかを調べます。

この回答への補足

大変詳しい回答ありがとうございます!
すみません、おっしゃる通り使用しているのは4.1です。

ウィジェットセットは、デフォルトで
『2カラムのサイドバー』『3カラムのサイドバー(メイン)』『3カラムのサイドバー(サブ)』
の3つが用意されていました。
(スタイルに依存するのでしょうか?『規定のスタイル』からMinimalistを選びました)

テンプレートの検索も試したのですが(すみません、こちらも書くべきでした;)
『サイドバー (2カラム)』自体と、これのバックアップファイルしかヒットしなかったのです。
そこで「どこで使われてるんだろう?」と疑問に思ったのですが…。
疑問に思うまでもなく、見つからない=使われてない、で良かったのでしょうか;

ではフッターにはどのように記述されているかというと、
サイドバーを設定しているらしい記述は
<MTIf name="sidebar">
<$MTInclude module="サイドバー"$>
</MTIf>

の3行で、テンプレートモジュール『サイドバー』には
<div id="beta">
<div id="beta-inner">
<mt:if name="page_columns" eq="2">
<$mt:WidgetSet name="2カラムのサイドバー"$>
<mt:else name="page_columns" eq="3">
<$mt:WidgetSet name="3カラムのサイドバー(メイン)"$>
</mt:if>
</div>
</div>
<mt:if name="page_columns" eq="3">
<div id="gamma">
<div id="gamma-inner">
<$mt:WidgetSet name="3カラムのサイドバー(サブ)"$>
</div>
</div>
</mt:if>

と記述されています。
つまり現状では『サイドバー (2カラム)』はあるだけで使われてない、
よって編集しても反映されない、ということなのでしょうか。
私はてっきりテンプレートモジュールとウィジェットセットの両方から編集できるものかと思っていました。
例えば、サイドバーの内容をテンプレートモジュールとウィジェットセットに分割し、
『フッター』に
<MTIf name="sidebar">
<$MTInclude module="サイドバー(テンプレート)"$>
<$MTInclude module="サイドバー(ウィジェット)"$>
</MTIf>

として、
『サイドバー(テンプレート)』にどのテンプレートモジュールを使うか、
『サイドバー(ウィジェット)』にどのウィジェットセットを使うか、
をそれぞれ記述すれば、両方から編集することは可能ですか?

補足日時:2008/11/04 00:59
    • good
    • 0

お使いなのはMT4.15ですね。


確かにMT4.15では補足された内容になっています。(4.1でも他のバージョンだとテンプレートがまた違うので^^;)

>つまり現状では『サイドバー (2カラム)』はあるだけで使われてない、よって編集しても反映されない、ということなのでしょうか。

はい。
フッターの記述を<$MTInclude module="サイドバー(2カラム)"$>などと入れ替えて使うこともできますし。
デフォルトテンプレートは、「こんな使い方(書き方)ができます」の例だと思えばいいのではないでしょうか。

MT3系まではことさら部品が分離されず、一つのテンプレートに長々とソースが書かれているのが普通でしたので、そちらに慣れている人はウィジェットが面倒だと感じることがあるかもしれません。
同じソースが別の方法で存在しているのはそういうことではないかと。
つまり、あなたのいいように使って下さい、という。

テンプレートモジュールでもウィジェットセット使っても、とにかくちゃんとテンプレートタグの意味がわかって意図通りHTMLが吐き出されていればよいわけで、どういう使い方が正解、というのはありませんので、質問者様のお好きにテンプレート管理をされていいと思います。
(質問に対する直接の答えでなくてすみませんが)
    • good
    • 0
この回答へのお礼

随分とバージョンごとに細かく違うものなんですね;
にも関わらず丁寧に対応していただき、本当にありがとうございました。
ひとまず、現状ではウィジェットセットしか使うように指定されていない
ということがわかったのですっきりしました。
フッター、サイドバーの構造も解説していただいたので、
テンプレートモジュールとウィジェットセットの両刀(?)にも挑戦してみようと思います。
果たしてそれが私にとって本当に効率の良い管理の仕方かはまだわかりませんが;

お礼日時:2008/11/04 18:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!