・・・え〜と。 先程スクリプト中での”010”は10でなくて8になるのだと知った管理人です。
( やっと小学校レベルを卒業出来たと思ったらまだオムツが取れてなかった、て感じです )
なんだか 色々と先行きが危ぶまれることしきりな訳ですが、新たな収穫もありまして。
以前からの懸案であった 「記事表示順を反転する方法」 を纏める事ができました。
過去何度か書いて来た事ですが、複数の記事が連続した「物語」となっているような場合、次の記事が読み終わった記事の下ではなく上にありますと、煩わしく感じられるものです ( 殆どのblogは「新着順」設定なので)。 これは特に「月別アーカイブ」で顕著であると言えましょう。
天界ならぬ地上界にある我々がこれを逆転する方法がFC2帝国発祥以前、JUGEM魔法王朝の時代に既に開発されておりました事は知る人ぞ知る処でありますが、その由来等については民明書房刊「Blog文明興亡史」でも御参照頂くとして、要は私はずっとこれを作りたかった訳です。
新たにして最大の課題に挑む前に是非クリアしておきたいテーマであったとも言えます。
・・では 「TOP頁以外で記事を『日付順』表示とする」 方法( FCafeバージョン)です
IE6、 Firefox、 Opera で動作
【 設置法 】 記事部分 ( topentryブロック ) を以下のようにします
<!--topentry-->
<div class="E">
★変更前のエントリタグ全て
</div>
<!--/topentry-->
現在あるtopentryブロックの内容を全て "E" というクラスのDIVタグで囲みます
( プラグイン INDEX を御使用の方は 追加したエントリラベルも含めて下さい )
topentry ブロック以降( </body> タグの手前等でも可 )に以下のスクリプトを書きます
<!--not_index_area--><!--not_permanent_area-->
<script type="text/javascript"><!--
function Reverse(T,C) {
var A=document.getElementsByTagName(T);
var B=new Array();
var k=0;
for (i=0;i<A.length;i++) {if (A[i].className==C) {B[k]=i;k++} }
if (k>1) {
var l=Math.floor(k/2); k--;
for (i=0;i<l;i++) {
var D = A[B[i]].innerHTML;
A[B[i]].innerHTML = A[B[k-i]].innerHTML;
A[B[k-i]].innerHTML = D;
} } }
Reverse('DIV','E');
//--></script>
<!--/not_permanent_area--><!--/not_index_area-->
【 解 説 】 スクリプトは各エントリを包含する DIVタグをクラス名で探しカウントします。
頁内に複数の記事があった場合は 先頭の記事と最後の記事、2番目の記事と後ろから2番目の記事、というように「入れ替え」ます。 頁内に(一つしか)記事が無い場合(カテゴリやアーカイブでも在り得ます)は何もしません。
お示ししたソースでは not_index , not_permanent のエリアタグで囲む事により
初期頁と個別表示モードではスクリプトは作動しません (トップページのみ新着順表示となります) が、
date エリアで囲むことにより アーカイブモードのみ「日付順」表示とする事も可能です。
このスクリプトの関数は引数に 「タグ名」と「クラス名」 を持ちます。
指定されたクラス名のタグ内容を並べ替える、という汎用性がある訳です。
「リストの表示順を反転させる」 なども可能です ( 別方面の応用があるかも? )
アーカイブモードで記事を並び替える仕様のものを共有プラグインに登録しました (2/18)
また、同原理を用いた時系列表示アーカイブリストも登録しております
|
★
aum
aum
Edit 03/02 00:52 |
スクリプトを利用させていただいたので、 |
|
★
daniel
daniel
Edit 03/02 01:08 |
aum さんはじめまして。 御利用有難うございます。 |
|
★
Emmy
Emmy
Edit 03/25 00:08 |
共有テンプレodinをお借りしてます。 |
|
★
daniel
daniel
Edit 03/25 04:10 |
Emmyさんこんばんは。 Odinの御利用有難うございます。 |
|
★
Emmy
Emmy
Edit 03/25 06:35 |
穴があったら入りたいほど恥ずかしいです……。 |