概要と本文を切り替える(Movable Type 4・デフォルトテンプレート版)
当サイトで利用している、トップページのエントリー概要とエントリー本文の表示を切り替えるカスタマイズで、以前紹介した「概要と本文を切り替える(デフォルトテンプレート版)」のMovable Type 4・デフォルトテンプレート版です。
概要に本文の先頭から指定文字数を表示する設定になっている(=概要フィールドに何も書いていない)場合、デフォルトで概要を表示し、タイトルまたは概要の末尾にあるリンクをクリックすることで、ページ遷移をせずに全文を表示することができます。
このエントリーではデフォルトテンプレートのトップページおよびカテゴリーアーカイブ/日付アーカイブに適用する例を紹介します(ブログ記事リストを使用したアーカイブにも適用されます)。
1.スクリプトのダウンロード・アップロード
下記のリンクより menufolder.js をダウンロード(本カスタマイズ用に機能追加しています)
ダウンロードしたスクリプトを、ブログの index.html と同じディレクトリにアップロードしてください。
2.script 要素の追加
「デザイン」→「テンプレート」→「テンプレートモジュール」→「ヘッダー」を開き、head 終了タグの前に下記の script 要素を追加。
<script type="text/javascript" src="<$MTBlogURL$>menufolder.js"></script>
3.エントリータイトルに折りたたみのリンクを与える
「デザイン」→「テンプレート」→「テンプレートモジュール」→「ブログ記事の概要」を開き、エントリータイトルのタグ
<h2 class="asset-name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h2>
を下記のように変更します。a 要素を削除して h2 に id 属性を追加しています。
<h2 class="asset-name" id="content<$MTEntryID$>name"><$MTEntryTitle$></h2>
4.概要を追加する
エントリーを表示するタグ
<div class="asset-content">
<MTIfNonEmpty tag="EntryBody">
<div class="asset-body">
<$MTEntryBody$>
</div>
</MTIfNonEmpty>
<MTIfTagSearch>
<$MTInclude module="タグ"$>
</MTIfTagSearch>
<MTIfNonEmpty tag="EntryMore" convert_breaks="0">
<div class="asset-more-link">
<a href="<$MTEntryPermalink$>#more"><$MTEntryTitle$></a>の続きを読む
</div>
</MTIfNonEmpty>
</div>
に対し、青色のタグを追加します。
<div class="asset-content">
<div id="content<$MTEntryID$>list2">
<p><$MTEntryExcerpt$> <a class="foldmark" href="./" onclick="FoldNavigation('content<$MTEntryID$>','chng',''); return(false);" onkeypress="FoldNavigation('idName', 'chng',''); return(false);" title="全部読む">[ all ]</a></p>
</div>
<div id="content<$MTEntryID$>list">
<MTIfNonEmpty tag="EntryBody">
<div class="asset-body">
<$MTEntryBody$>
</div>
</MTIfNonEmpty>
<MTIfTagSearch>
<$MTInclude module="タグ"$>
</MTIfTagSearch>
<MTIfNonEmpty tag="EntryMore" convert_breaks="0">
<div class="asset-more-link">
<a href="<$MTEntryPermalink$>#more"><$MTEntryTitle$></a>の続きを読む
</div>
</MTIfNonEmpty>
</div>
</div>
また、同じ「ブログ記事の概要」テンプレートの一番最後(このテンプレートでは表示されていませんが、MTEntries の終了タグ直前)にスクリプト起動用の script 要素(下記)を追加します。
<script type="text/javascript">
//<![CDATA[
FoldNavigation('content<$MTEntryID$>','off',false);
//]]>
</script>
これでテンプレートを再構築すれば、概要と本文の切り替えができるようになります。
5.折りたたみ状態を保持しないようにする
このカスタマイズでは折りたたみ状態がクッキーを利用して保持されます。つまり、ブラウザをリロードした時等、直前の折りたたみ状態でページが表示されます。
折りたたみ状態を保持したくない場合は、ダウンロードした menufolder.js の中間辺りに下記の設定(赤色)
//--------------------------------------------------------
// 状態保持用設定データ
//--------------------------------------------------------
// 状態保持フラグ
// 有効にする:true
// 無効にする:false
var holdState = true;
を下のように変更してください。
//--------------------------------------------------------
// 状態保持用設定データ
//--------------------------------------------------------
// 状態保持フラグ
// 有効にする:true
// 無効にする:false
var holdState = false;
6.注意事項
概要の表示文字数より本文の文字数が少ないと効果ありません。
- ブログ記事ページでその記事以外のブログ記事一覧を表示する方法
- MTEntriesタグをテンプレートで複数使う時に記事を重複させない方法
- Movable Type5.2のTinyMCEを5.1のボタンに戻す方法
- Movable Typeで製品情報のテーブルを作る
- Movable Typeのブログ記事ページのファイル名に日別の通番を振る
- 予定日を過ぎたブログ記事を「最近のブログ記事」に表示しない
- mt-csv2customfields v0.03
- 複数ブログのブログ記事を時間順に1件ずつ表示する
- Movable Type のブログ記事にフラグメント識別子(ページ内リンク)を設定する
- 特定のカテゴリーに属するブログ記事一覧を表示する(改)
- Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その2)
- Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その1)
- ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版・改)
- ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版)
- Movable Type で画像挿入時の form 要素について
≫ 本文と概要の折りたたみ from MY Blog … 思いつかない…
本文と概要の記事を折りたためるようになりました♪ [続きを読む]
また、Wrodpress版のカスタマイズ方法もエントリーお願いします。
MT4バージョンの掲載ありがとうございます。
書かれているとおりに設定してみたのですが…
うまくいきません(T-T)
「エントリータイトルに折りたたみのリンクを与える」
のところで書き換えると、何故かエントリータイトルではなくブログタイトルにリンクが与えられてしまいます…。
どのように対処すればよろしいでしょうか?
すみません。ブログタイトルには何故かはじめからリンクが与えられてます…。
それと、エントリータイトルにもリンクが与えられていて、クリックするとそのエントリーだけのページとなるのですが、
このカスタマイズを利用するとエントリータイトルのリンクが消えてしまうようです。
きっちり確認しないままコメントして申し訳ありませんm(__)m
>panserさん
こんばんは。
ご返事遅くなり申し訳ありません。
ご質問の件ですが、実現可能であれば別途エントリーしたいと思います。
それではよろしくお願い致します。
>寺山 銀さん
こんばんは。
ご質問の件ですが、2項で設定したスクリプトが指定したURL
http://www.mt-silver.org/blog/menufolder.js
に存在しないようです。
menufolder.js のアップロード先をご確認頂ければ幸いです。
それではよろしくお願い致します。
MT4をインストールした場所ではなく、ブログ作成時に作られるindex.htmlの場所だったのですね…
今の今までそういうフォルダが作られていることすら気付いてませんでした(;^_^A アセアセ…
うまくできました♪
ありがとうございますm(__)m
>寺山 銀さん
こんにちは。
ご連絡ありがとうございました。
無事解決されたようで良かったです。
ではでは!
はじめまして。
概要と本文の切り替えを試してみました。
サンプルのようにある文字数にいったら省略させることはできたのですが、
その下に元の全文章が表示されてしまいます。
どのように対処すればよろしいでしょうか?よろしくお願いします。
>citronさん
はじめまして。
ご利用ありがとうございます。
ご質問の件ですが、おそらくJavaScriptが正常に動作していないのが原因です。
URLをご連絡頂ければより適切な回答ができると思います。
それではよろしくお願い致します。
お返事ありがとうございます。
気づいたことがあって、altをクリックして展開した状態になると下の全文は消え、
その状態で記事タイトルをクリックすると本来表示されるべき(であろう)形になります。
お手数かけます。よろしくお願いします(__;)
>citronさん
こんにちは。
原因が分かりました。
下のコードが改行を除去されて1行になっているためです(1行にしてしまうと、//<![CDATA[ の後ろが全てコメントとしてみなされてしまうため、 JavaScript が動作しません)。
<script type="text/javascript">
//<![CDATA[
FoldNavigation('content<$MTEntryID$>','off',false);
//]]>
</script>
上のソースコードは加工せず(少なくとも FlodNavigation~ が行頭にくるよう)にお使いください。
それではよろしくお願い致します。
コピーペーストをした結果1行になっておりましたのでそこは軽視しておりました…。
本当にお手数をおかけしましたが、
yujiroさんのおかげでうまく動作するようになりました^▽^
ありがとうございました。
>citronさん
こんにちは。
ご連絡ありがとうございました。
無事に直ったようでになによりです。
ではでは!
いつもBlog拝見させて頂いています。
大変参考になります。
そこでこちらのカスタマイズに挑戦しようと思うのですが
説明のテンプレートモジュールの中の「ヘッダー」、「ブログ記事の概要」などが
見当たりませんのでカスタマイズにつまづいています。
お手数ですがサポートお願いします。
>conanさん
こんにちは。
ご返事遅くなってすいません。
ご質問の件ですが、ご利用のテンプレートをお知らせください。
それではよろしくお願いいたします。