ページ更新: 2006-10-09 (月) (6077日前)
サーバ管理やPukiwiki修正の記録。 [編集]2006-11-12 #[編集][PukiWiki] RSSの<link>を追加 #いまさらだけど。 skin/pukiwiki.skin.ja.php <link rel="alternate" type="application/rss+xml" title="RSS" href="http://discypus.jp/wiki/?cmd=rss10" />[編集] 2006-10-09 #[編集][PukiWiki] 特定の文字列でpcomment書き込みを排除 #続・質問箱/489 - PukiWiki-official の comment.wiki_ngword.diff を手で pcomment.inc.php に当てて見た。とりあえずエラーはなし。禁止文字列を含むコメントを排除できた。 パッチ。 *** pcomment.inc.php.org Mon Oct 9 21:37:31 2006 --- pcomment.inc.php Mon Oct 9 21:37:36 2006 *************** *** 59,64 **** --- 59,67 ---- // タイムスタンプを更新する define('PCMT_TIMESTAMP', 0); + // NGワード集ページ + define('COMMENT_NGWD_PAGE',':config/plugin/comment'); + function plugin_pcomment_action() { global $script, $vars; *************** *** 66,71 **** --- 69,99 ---- if (! isset($vars['msg']) || $vars['msg'] == '') return array(); $refer = isset($vars['refer']) ? $vars['refer'] : ''; + // QandA/489 + + $ng_words_page = COMMENT_NGWD_PAGE; + if(is_page($ng_words_page)) + { + $ng_words = array(); + foreach (get_source($ng_words_page) as $line) + { + $match = array(); + if (preg_match('/^-\s*(.[^\s]+)/',$line,$match) ) + { + $ng_words[] = preg_quote($match[1],'/'); + } + } + if(count($ng_words)>0) + { + $pattern = '/'. join('|',$ng_words). '/'; + if(preg_match($pattern,$vars['msg'])) + { + // NGワードに一致した場合は書き込めない + return array('msg'=>'', 'body'=>''); + } + } + } + // $retval = pcmt_insert(); if ($retval['collided']) { $vars['page'] = $refer;[編集] 2006-05-13 #[編集][PukiWiki] navigatorの順序を変更 #ナビゲータの順序を変更。 自分はメンテナンス時しか「一覧」を見ないし、「一覧」に切り替えると隣に「ファイル名一覧」も表示するので以後の並びが1つずれるのでうっとうしい。 そこで、「一覧」「ファイル一覧」の順序を後ろにずらしたいと思った。 念のため、アクセスログのてきとーな解析(2006年5月のみ調査、サーチエンジンのアクセスを排除してない、ページの遷移を分析してない)では: $ grep Recent access.log | wc -l ★最新の 352 $ grep Popular access.log | wc -l ★人気の 291 $ grep 'cmd=search' access.log | wc -l ★検索 186 $ grep 'cmd=list' access.log | wc -l ★一覧 94 :てなことで、めでたくアクセス数が多い順で「最新の」「人気の」「検索」「一覧」にすることに決定。 修正ファイルは skin/pukiwiki.skin.ja.php 。
2006-02-11 #[編集][PukiWiki] urlbookmarkプラグインの書式を変更 #urlbookmarkプラグインの書式を変更。日時(日付のみに変更)、Title、コメント の順に。 $ diff -u urlbookmark.inc.php.org urlbookmark.inc.php --- urlbookmark.inc.php.org 2006-02-11 06:13:16.000000000 +0900 +++ urlbookmark.inc.php 2006-02-11 06:00:28.000000000 +0900 @@ -35,10 +35,10 @@ // ブックマークの挿入フォーマット define('URLBOOKMARK_NAME_FORMAT','$name'); define('URLBOOKMARK_MSG_FORMAT',' -- $msg'); -define('URLBOOKMARK_NOW_FORMAT',' SIZE(10){$now}'); +define('URLBOOKMARK_NOW_FORMAT',' $now'); ///////////////////////////////////////////////// // ブックマークの挿入フォーマット(コメント内容) -define('URLBOOKMARK_FORMAT',"\x08NAME\x08 \x08MSG\x08 \x08NOW\x08"); +define('URLBOOKMARK_FORMAT',"\x08NOW\x08 \x08NAME\x08 \x08MSG\x08"); ///////////////////////////////////////////////// // ブックマークを挿入する位置 1:欄の前 0:欄の後 define('URLBOOKMARK_INS',1); @@ -101,7 +101,9 @@ } $_msg = str_replace('$msg', $post['msg'], URLBOOKMARK_MSG_FORMAT); - $_now = ($post['nodate'] == '1') ? '' : str_replace('$now', $now, URLBOOKMARK_NOW_FORMAT); + $date = get_date('Y-m-d',$time); + + $_now = ($post['nodate'] == '1') ? '' : str_replace('$now', $date, URLBOOKMARK_NOW_FORMAT); $urlbookmark = str_replace("\x08MSG\x08", $_msg, URLBOOKMARK_FORMAT); $urlbookmark = str_replace("\x08NAME\x08",$_name,$urlbookmark); 既存のブックマークはエディタで「」と行末の「」を取り除いてから、以下のawkスクリプトで修正。Cygwinのgawkを使用。 { if ($0 ~ /^-/) { date = $(NF-2) # 日付を取りだして $(NF-2) = ""; # 日付、 $(NF-1) = ""; # 曜日、 $(NF) = ""; # 時刻を消す $1 = substr($1, 2); # 先頭の - を削除 print "-" date " " $0; # - と日付、残りの文字列を出力 } else { print; } } ……AWKを一番最初に覚えたせいか、こういうパターンだとPerlやPythonを使うよりgawkのほうが楽だなあ。 [編集]2005-02-04 #[編集][Apache] PukiWikiのページのリダイレクト (力業編) #以下の2つのページを力業(ページごとにRewriteCond/RewriteRuleを記述)で新ページにリダイレクトした。
AliasプラグインでURLに「cmd=read」が付くのがいやだけど、「?ページ名」形式にすると 当然ループを検出できないので、あきらめてmod_rewriteで書き換えることにした。 httpd.conf への追加 RewriteEngine on # ソフト/開発ツール/Bug Tracking RewriteCond %{QUERY_STRING} ^%A5%BD%A5%D5%A5%C8%2F%B3%AB%C8%AF%A5%C4%A1%BC%A5%EB%2FBug%20Tracking$ RewriteRule ^/wiki/$ "/wiki/?ソフト/Bug Tracking" [R=301,L] # ソフト/開発ツール/Bug Tracking/trac RewriteCond %{QUERY_STRING} ^%A5%BD%A5%D5%A5%C8%2F%B3%AB%C8%AF%A5%C4%A1%BC%A5%EB%2FBug%20Tracking%2Ftrac$ RewriteRule ^/wiki/$ "/wiki/?ソフト/Bug Tracking/trac" [R=301,L] ブラウザの動作 : 「ソフト/開発ツール/Bug Tracking」の場合 GET /wiki/?%A5%BD%A5%D5%A5%C8%2F%B3%AB%C8%AF%A5%C4%A1%BC%A5%EB%2FBug%20Tracking HTTP/1.1 : HTTP/1.1 301 Moved Permanently : Location: http://discypus.jp/wiki/?%a5%bd%a5%d5%a5%c8/Bug%20Tracking : ブラウザの動作 : 「ソフト/開発ツール/Bug Tracking/trac」の場合 GET /wiki/?%A5%BD%A5%D5%A5%C8%2F%B3%AB%C8%AF%A5%C4%A1%BC%A5%EB%2FBug%20Tracking%2Ftrac HTTP/1.1 : HTTP/1.1 301 Moved Permanently Location: http://discypus.jp/wiki/?%a5%bd%a5%d5%a5%c8/Bug%20Tracking/trac (2006-02-08) 残りのページ「ソフト/開発ツール/Bug Tracking/trac/*」はすべて「ソフト/Bug Tracking/trac」にリダイレクトするようにした。 httpd.confの設定 # ソフト/開発ツール/Bug Tracking/trac/* RewriteCond %{QUERY_STRING} ^%A5%BD%A5%D5%A5%C8%2F%B3%AB%C8%AF%A5%C4%A1%BC%A5%EB%2FBug%20Tracking%2Ftrac%2F RewriteRule ^/wiki/$ "/wiki/?ソフト/Bug Tracking/trac" [R=301,L][編集] 2006-01-16 #[編集][PukiWiki] SubMenu #SubMenuを使ってみた。同一階層にたくさんページがあるとちょっと煩雑になるので、ページ構成を工夫しなきゃ… MenuBarに次の行を追加 #includesubmenu() 各階層のSubMenuページを作成 (例: 未整理の階層) ''未整理'' #ls2_1(未整理/,relative,depth=1,except=SubMenu) 各階層の目次ページ。「except=SubMenu」を追加 #ls2_1(,new,relative,except=SubMenu) |