« 高負荷対策4~記事部分のモジュール化 | メイン | 目覚まし、克服 »

20050530Monday

「続きを読む」を折りたたむ

いろんな人のBLOGでよく見かけていた「続きを読む」部分の折りたたみ。これを先のEntryBodyに入れてしまえば、各アーカイブで続きをいちいち生成しなくてすむじゃないか!と妙な思いつきで作業に入る。

が、

スクリプトがうまく動かなくて表示はぶっ壊れ、修正のために何度も何度もリビルドするはめに。・・・もうちょっと考えてからやればよかった_| ̄|○

参考にさせていただいたエントリー
 小粋空間さんの「個別アーカイブに「続きを読む」を導入

新しいテンプレートモジュールを作り、記載されていたスクリプトを丸ごとコピーしてMTIncludeを使って各ページで呼び出すことに。

しかし全然きちんと動かない。リンクをクリックすると続きが表示されるはずが、個別アーカイブに飛んでしまうし、続き部分が全く表示されず。

調べてみると、私のBLOGにはすでにサイドバーの項目を折りたたむスクリプトを導入しているのですが、これが同じshowHideという関数を使用していました。

サイドバーのスクリプトもできればこっちのをうまく使いたかったのですが、面倒なので新しい方をshowHide2としてその場をしのぐことに(笑)

直したのは以下の部分

スクリプト部分
<script type="text/javascript" language="javascript">
<!--
function showHide2(entryID, entryLink, htmlObj) {
~略

各ページに記述する部分
<MTEntryIfExtended>
<div id="Link<$MTEntryID$>">
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide2(<$MTEntryID$>,'<$MTEntryPermalink$>',this);return false;">続きを読む ≫</a>
</div>
<div id="Text<$MTEntryID$>" style="display: none">
<$MTEntryMore$>
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide2(<$MTEntryID$>,0,this);return false;">≪ 続きを隠す</a>
</div>
</MTEntryIfExtended>

そして作ったばかりのEntryBodyに続き部分も入れてしまいたくて、EntryBody内に続き部分を記述したのですが、個別アーカイブで続き部分が閉じているのはちょっと違和感が・・・というわけでとりやめ。負荷対策を考えると続き部分は個別エントリーだけにある方がいいのだけれど・・・まぁいいか。


    こどもちゃれんじ見本バナー4

コメントする