バージョン上げ。
ifdefマクロのバグが修正されてますねー・・・って、やはりあれってバグだったのか。仕様かと思ってたよ(笑
さて。ここいらで、現状で気になった事をまとめてみる。
(1) RSSリーダーでRSSを読んだら日付が9時間ズレてる。
(2) rnote.php?mode=admin で自分以外の誰にでも更新できてしまう。
(3) スキン内でPHPスクリプト記述し、実行できるようになっていない。
(4) カレンダーに自由度が無い。
(5) 記事用に $site_link(サイト内リンク記述用) はあるのに $site_url(サイトURL) が無い。
他にもどーでもいいような事もあるが、要望&自分でなんとかできる事はこれくらいかな?
※あと、オンラインでの記事管理ができるようになったら、最新のツッコミ/Referer/トラックバックが見れると便利だな。
では、ひとつずつ説明。
(1) RSSリーダーでRSSを読んだら日付が9時間ズレてる。
デフォルトのままだとタイムゾーン指定がないので補正されてしまってる模様。
これはオフィシャルで修正してもらいたい事だが、自分で修正する場合は・・・
- rss_body.skin -
<dc:date><%=$last_modified fmt="%Y-%m-%dT%H-%M-%S"%></dc:date>
↓ ↓
<dc:date><%=$last_modified fmt="%Y-%m-%dT%H:%M:%S"%>+09:00</dc:date>
- rss_item.skin -
<dc:date><%=$Date fmt="%Y-%m-%dT%H:%M:%S"%></dc:date>
↓ ↓
<dc:date><%=$Date fmt="%Y-%m-%dT%H:%M:%S"%>+09:00</dc:date>
としてください。
ここで重要なのが rss_body.skin 内の %H-%M-%S の区切り文字。
これを「: (コロン)」にしないと、いくら +09:00 を付け加えても意味がない。
RSSとは関係ないが日付関連で rnote_config.php の日付時刻表示のフォーマット
define(DATETIME_FORMAT,'%Y-%m-%dT%H-%M-%S');
も
define(DATETIME_FORMAT,'%Y-%m-%dT%H:%M:%S');
のほうがよいはず。
(2) rnote.php?mode=admin で自分以外の誰にでも更新できてしまう。
現状では、キャッシュの再構築・RSSの生成を rnote.php?mode=admin 一発でできるので、悪意のある者の攻撃を受ける可能性がある。
対処方法として、rnote_config.php にまだ使用していない管理者パスワード設定があるから、これを使って管理者以外は更新できないようにする。
- rnote.php -
admin で検索すると
if($_GET['mode']=='admin')
が2箇所見つかるはずです。これを2箇所共・・・
if($_GET['mode']=='admin' && $_GET['pwd']==ADMIN_PASSWORD)
に修正して下さい。
これで、rnote.php?mode=admin&pwd=パスワード でしか再構築ができなくなります。
(3) スキン内でPHPスクリプト記述し、実行できるようになっていない。
スキン内でPHPスクリプトを記述して、カウンターとかアクセスログ収集とか、動的な事ができない。
オフィシャルでは、変数のバッティングを気にしているみたいですが、HTML生成がスクリプトの最後のほうにあるから気にするほどではないと思うのだが。
実際、当サイトでは・・・
- rnote.php -
print CreateHTML(NUM_ITEMS,$skin_main);
↓ ↓
eval('?>'.CreateHTML(NUM_ITEMS,$skin_main));
と変更して使用しているが、問題なく使えてたりする。
(4) カレンダーに自由度が無い。
現状のカレンダーはデザインが1つしかない。
CSSで多少デザイン変更できそうだが、CSSに依存するのを好まない人もいるだろう。 >ワタシの事(笑
とにかく、デザインを増やして選択できるようにするか、専用スキンが欲しいところ。
あと、これ以外に 先月・次月 といったボタンが必要かと思われる。
・・・って、まーうちではその改造はしているのだけどね。
とりあえず、先月・次月ボタンの追加する為のヒントになる部分だけ紹介します。
- rnote.php -
$p_y = $n_y = $y;
if((int)$s_m == 1){
$p_m=12;
$p_y--;
$n_m='02';
}elseif((int)$s_m == 12){
$p_m=11;
$n_m='01';
$n_y++;
}else{
$p_m=sprintf("%02d",((int)$s_m-1));
$n_m=sprintf("%02d",((int)$s_m+1));
}
$rep.= '<a href="'.MakeLinkUrl('',0,"$p_y-$p_m")
."\" title=\"$p_y/$p_m\"><<</a> $y/$s_m <a href=\""
.MakeLinkUrl('',0,"$n_y-$n_m")
."\" title=\"$n_y/$n_m\">>></a></th></tr>\n";
(5) 記事用に $site_link(サイト内リンク記述用) はあるのに $site_url(サイトURL) が無い。
サイト内記事リンクのURLを記述するとき <a>タグ内では $site_link だけでいいけど、<a>タグではさむ文字列に フルパスURL を記述したい場合 $site_url があると便利だなと思った。
で。$site_link を元に追加。
- rnote.php -
function FileGetEntries($fname){
・
・
・
if(ereg("$site_link/",$a)){
$a=str_replace('$$site_link/',REPLASE_CHAR,$a); // no replace
$a=str_replace('$site_link/',$base,$a);
$a=str_replace(REPLASE_CHAR,'$site_link/',$a);
}
if(ereg("$$site_url/",$a)){
$a=str_replace('$$$site_url/',REPLASE_CHAR,$a); // no replace
$a=preg_replace('/\$site_url\/+/',SITE_URL,$a);
$a=str_replace(REPLASE_CHAR,'$$site_url/',$a);
}
return $a;
}
赤い部分を追加することで、例えば、ここの記事へのリンクをしたい場合・・・
<a href="$site_link/topics/php/d20040722_rnote.htm">$site_url/$site_link/topics/php/d20040722_rnote.htm</a>
と記述すれば
https://www.punyu.net/topics/php/d20040722_rnote.htm
こうなる。
【補足】
これらは 0.9.3 での事で、最新のrNoteでは既に修正されています。
[ このエントリへはコメント出来ません ]
|