2008 06/07 22:46
Category : メモ帳
■エクラ汎用日記帳Ver2.0の仕様と構築メモ。
■変数・関数。
Fget() Ajax汎用取得関数。
Fx.ent() Ajaxエントリ汎用関数。
Fx.e(s) データ取得の汎用関数。
Fx.user Fx.eコール時のユーザー。
Fx.uri Fx.eコール時のアドレス。
Fx.oUser 取得完了後で要素構築後のユーザ(直前のFx.user)。
■メニューの構成
・カテゴリ別新着 Fx.user="all"のみのエントリ。
・前後の記事 Fx.pageTpe="one"のみのエントリ。
・最新の記事 /home/Fx.user/diary/でのエントリ。
・最新のコメント 上と同じ。
・Archives 全てでエントリ。
・Category 上と同じ。
■メニューのタグ構成
・コンテナ(<$$div id="menu">~<$$/div>)に入る。
・最新の記事のタグ構成(最大で5件の表示)
<$$div id="latest_articles" class="link">
<$$div class="link_title">最新の記事<$$/div>
<$$ul class="link_text">
<$$li id="link_o0" class="C[0-9]+"><$$a href="pageType=one">タイトル<$$/a><$$/li>
(以下、link_o[1-4]まで繰り返し)
<$$/ul>
<$$/div>
・最新のコメントのタグ構成(最大で20件表示、設定で変更可)
<$$div id="latest_comments" class="link">
<$$div class="link_title">最新のコメント<$$/div>
<$$ul class="link_text">
<$$li><$$a href="pageType=one#commentID"><$$span class="from">from<$$/span>
<$$span class="poster">投稿者<$$/span>
<$$span class="to">to<$$/span>
<$$span class="title">タイトル<$$/span><$$/a><$$/li>
(以下、繰り返し)
<$$/ul>
<$$/div>
・前後の記事のタグ構成(最大で5件の表示。中央が現在のページでシフトする)
<$$div id="neighbors" class="link">
※未更新(旧仕様)のページの場合は<$$div class="link">となっていて、#neighborsを参照できませんので注意が必要です。
<$$div class="link_title">前後の記事<$$/div>
<$$ul class="link_text">
<$$li id="link_l2" class="C[0-9]+"><$$a href="pageType=one">2つ先の記事タイトル<$$/a><$$/li>
<$$li id="link_l1" class="C[0-9]+"><$$a href="pageType=one">1つ先の記事タイトル<$$/a><$$/li>
<$$li id="link_here" class="C[0-9]+"><$$a href="pageType=one">現在表示の記事タイトル<$$/a><$$/li>
<$$li id="link_o1" class="C[0-9]+"><$$a href="pageType=one">1つ前の記事タイトル<$$/a><$$/li>
<$$li id="link_o2" class="C[0-9]+"><$$a href="pageType=one">2つ前の記事タイトル<$$/a><$$/li>
※link_hereの位置によってそれぞれ1-4までシフトする。
<$$/ul>
<$$/div>
・Archivesのタグ構成
<$$div class="link" id="archives">
※classとidの記述の順序が異なりますので正規表現では注意が必要です。
※旧仕様の場合は、class="link" が入らないので注意が必要です。
<$$div class="link_title">Archives<$$/div>
<$$ul class="link_text">
<$$li>
<$$a class="link_year" href="/home/userID/diary/[0-9]{4}/" title="[0-9]{4}年の記事一覧">[0-9]{4}<$$/a>
<$$a class="link_month" href="/home/userID/diary/[0-9]{4}/[0-9]{2}/" title="[0-9]{4}年[0-9]{2}月の記事">[0-9]{2}<$$/a>
※記事があれば繰り返し。
<$$/li>
※繰り返し。
※現在の仕様は<$$li>~<$$/li>の前後に2つ改行が入る。旧仕様は1つ。
<$$/ul>
<$$/div>
・Categoriesのタグ構成
<$$div class="link" id="categories">
※classとidの記述の順序が異なりますので正規表現では注意が必要です。
※旧仕様の場合は、class="link" が入らないので注意が必要です。
<$$div class="link_title">Category<$$/div>
<$$ul class="link_text">
<$$li class="C[0-9]+"><$$a class="category" href="カテゴリ別uri">カテゴリ名<$$/a><$$/li>
※旧仕様の場合は、class="C[0-9]+"が入らないので注意が必要です。
※繰り返し。
※現在の仕様は<$$li>~<$$/li>の前後に2つ改行が入る。旧仕様は1つ。
<$$/ul>
<$$/div>
■HTMLページとCGIページでは次の違いがある。
1.連続した複数の空行はCGIページでは一行になる。この違いは大きいな。
■カレンシステムのソースコードの配色。
s = s.replace(/\[(beforeExec|body|cssText|exec|boot)\](.+?)(\[\/\1\])/g, function(e0,e1,e2,e3){
return "<$$div class='code'>[" + e1 + "]<$$/div><$$div class='codeDef code_" + e1 + "'>" + e2.replace(/\x20\x20/g, " ") + "<$$/div>"<$$div class='code'>" + e3 + "<$$/div>";});
div.code {font-weight:bold; color:brown;}
div.codeDef {
line-height:1.0em; font-family:'MS Gothic';
background:url(files/kabe12.gif);
}
div.code_beforeExec {color:darkgreen;}
div.code_cssText {color:tomato;}
div.code_body {color:#808080;}
div.code_exec {color:darkgreen;}
※ひとまず完了。
■月別の記事表示を逆に並び替える。(時間を追って上から読める)
if(Fx.uri.match(/\/home\/[a-z0-9\-]+\/diary\/\d{4}\/\d\d\/$/)){
if(main.match(/\x3chr \/>/)){
var s1 = main.split("<" + "hr />");
main = s1.shift();
s1.reverse();
main += s1.join("");
} else {
main += "どうやら一件も日記がないようです。";
}
}
■変数・関数。
Fget() Ajax汎用取得関数。
Fx.ent() Ajaxエントリ汎用関数。
Fx.e(s) データ取得の汎用関数。
Fx.user Fx.eコール時のユーザー。
Fx.uri Fx.eコール時のアドレス。
Fx.oUser 取得完了後で要素構築後のユーザ(直前のFx.user)。
■メニューの構成
・カテゴリ別新着 Fx.user="all"のみのエントリ。
・前後の記事 Fx.pageTpe="one"のみのエントリ。
・最新の記事 /home/Fx.user/diary/でのエントリ。
・最新のコメント 上と同じ。
・Archives 全てでエントリ。
・Category 上と同じ。
■メニューのタグ構成
・コンテナ(<$$div id="menu">~<$$/div>)に入る。
・最新の記事のタグ構成(最大で5件の表示)
<$$div id="latest_articles" class="link">
<$$div class="link_title">最新の記事<$$/div>
<$$ul class="link_text">
<$$li id="link_o0" class="C[0-9]+"><$$a href="pageType=one">タイトル<$$/a><$$/li>
(以下、link_o[1-4]まで繰り返し)
<$$/ul>
<$$/div>
・最新のコメントのタグ構成(最大で20件表示、設定で変更可)
<$$div id="latest_comments" class="link">
<$$div class="link_title">最新のコメント<$$/div>
<$$ul class="link_text">
<$$li><$$a href="pageType=one#commentID"><$$span class="from">from<$$/span>
<$$span class="poster">投稿者<$$/span>
<$$span class="to">to<$$/span>
<$$span class="title">タイトル<$$/span><$$/a><$$/li>
(以下、繰り返し)
<$$/ul>
<$$/div>
・前後の記事のタグ構成(最大で5件の表示。中央が現在のページでシフトする)
<$$div id="neighbors" class="link">
※未更新(旧仕様)のページの場合は<$$div class="link">となっていて、#neighborsを参照できませんので注意が必要です。
<$$div class="link_title">前後の記事<$$/div>
<$$ul class="link_text">
<$$li id="link_l2" class="C[0-9]+"><$$a href="pageType=one">2つ先の記事タイトル<$$/a><$$/li>
<$$li id="link_l1" class="C[0-9]+"><$$a href="pageType=one">1つ先の記事タイトル<$$/a><$$/li>
<$$li id="link_here" class="C[0-9]+"><$$a href="pageType=one">現在表示の記事タイトル<$$/a><$$/li>
<$$li id="link_o1" class="C[0-9]+"><$$a href="pageType=one">1つ前の記事タイトル<$$/a><$$/li>
<$$li id="link_o2" class="C[0-9]+"><$$a href="pageType=one">2つ前の記事タイトル<$$/a><$$/li>
※link_hereの位置によってそれぞれ1-4までシフトする。
<$$/ul>
<$$/div>
・Archivesのタグ構成
<$$div class="link" id="archives">
※classとidの記述の順序が異なりますので正規表現では注意が必要です。
※旧仕様の場合は、class="link" が入らないので注意が必要です。
<$$div class="link_title">Archives<$$/div>
<$$ul class="link_text">
<$$li>
<$$a class="link_year" href="/home/userID/diary/[0-9]{4}/" title="[0-9]{4}年の記事一覧">[0-9]{4}<$$/a>
<$$a class="link_month" href="/home/userID/diary/[0-9]{4}/[0-9]{2}/" title="[0-9]{4}年[0-9]{2}月の記事">[0-9]{2}<$$/a>
※記事があれば繰り返し。
<$$/li>
※繰り返し。
※現在の仕様は<$$li>~<$$/li>の前後に2つ改行が入る。旧仕様は1つ。
<$$/ul>
<$$/div>
・Categoriesのタグ構成
<$$div class="link" id="categories">
※classとidの記述の順序が異なりますので正規表現では注意が必要です。
※旧仕様の場合は、class="link" が入らないので注意が必要です。
<$$div class="link_title">Category<$$/div>
<$$ul class="link_text">
<$$li class="C[0-9]+"><$$a class="category" href="カテゴリ別uri">カテゴリ名<$$/a><$$/li>
※旧仕様の場合は、class="C[0-9]+"が入らないので注意が必要です。
※繰り返し。
※現在の仕様は<$$li>~<$$/li>の前後に2つ改行が入る。旧仕様は1つ。
<$$/ul>
<$$/div>
■HTMLページとCGIページでは次の違いがある。
1.連続した複数の空行はCGIページでは一行になる。この違いは大きいな。
■カレンシステムのソースコードの配色。
s = s.replace(/\[(beforeExec|body|cssText|exec|boot)\](.+?)(\[\/\1\])/g, function(e0,e1,e2,e3){
return "<$$div class='code'>[" + e1 + "]<$$/div><$$div class='codeDef code_" + e1 + "'>" + e2.replace(/\x20\x20/g, " ") + "<$$/div>"<$$div class='code'>" + e3 + "<$$/div>";});
div.code {font-weight:bold; color:brown;}
div.codeDef {
line-height:1.0em; font-family:'MS Gothic';
background:url(files/kabe12.gif);
}
div.code_beforeExec {color:darkgreen;}
div.code_cssText {color:tomato;}
div.code_body {color:#808080;}
div.code_exec {color:darkgreen;}
※ひとまず完了。
■月別の記事表示を逆に並び替える。(時間を追って上から読める)
if(Fx.uri.match(/\/home\/[a-z0-9\-]+\/diary\/\d{4}\/\d\d\/$/)){
if(main.match(/\x3chr \/>/)){
var s1 = main.split("<" + "hr />");
main = s1.shift();
s1.reverse();
main += s1.join("");
} else {
main += "どうやら一件も日記がないようです。";
}
}