ユーザー自身が含まれるグループを書き込み可能にしておいた後、スーパーユーザーにディレクトリ全体のOwnerをapacheに変えてもらうのがよさげ。あとでpukiwiki.ini.phpをいじりたいときにNot Ownerなんて言われたら超めんどくさいので。
いずれにせよ、少しめんどくさい。
pukiwiki.ini.phpにて&adminpassを適宜設定。
pukiwiki.ini.phpにて
// Edit auth (0:Disable, 1:Enable) $edit_auth = 1; $edit_auth_pages = array( '##' => 'kei', );
とする。上の例では、全てのページがパスワード保護される。
pukiwiki.ini.phpにて
// _Disable_ WikiName auto-linking $nowikiname = 1;
とする。McDonnaldsとかでオートリンクされるのがイヤン。
ini.php において
// Read auth (0:Disable, 1:Enable) $read_auth = 1; $read_auth_pages = array( // Regex Username '/^:.*$/' => 'kei',
などとやると、":"から始まるページはkeiのパスワードを要求することができる。RecentChangesやList of pagesなどにも表示されない。
http://fullmetal.dip.jp/pukiwiki/ の、自作/プラグイン にて配布しているdeldel.inc.phpをゲット。日本語がEUCのままなので、ujconvにてUTF8に変換し、pluginディレクトリにセット。
http://meteora.ucsd.edu/~kyoshimura/?cmd=deldel
とやると一括削除が可能になる。便利。
mixiでは、mixi日記を使わず「外部ブログ」を日記のところに表示させることができる。よくよく調べると、単にRSSを食わせているだけっぽいので、ここのようなpukiwikiページも外部ブログに登録できる、ってことだ。
というわけで、興味本位でやってみた。手順は以下のとおり。ちなみにmixiのページはここ(mixiログインが必要)。
このページではrss10ppを入れているので、デフォルトの場合はその部分を「rss10」にする。pageを設定するとそのページ以下のページのみがfeedされる。設定しないとすべてのページがfeed。
Mixi側でのRSSの更新は4時間ごとらしいので、すぐは更新されないことに注意。
デフォルトでは、画像等を貼り付けたいときはUpload→ファイル名を確認→&ref埋め込み、という作業が必要でめんどくさい。 ここ にある、attachref.inc.phpは、最初の文章に&attachref;を埋め込んでおくと、その後好きなときにUploadすれば自動的にrefを引いてくれるので、上記の3段階の手間の1.5手間くらい削減してくれる。
手順。
(旧)$pass = array_key_exists('pass',$vars) ? md5($vars['pass']) : NULL;の記述を
(新)$pass = array_key_exists('pass',$vars) ? $vars['pass'] : NULL;とする。普通のattachプラグインにかかっているパスワードとバッティングするのを避けるため。
デフォルトのRSSでは、更新ページのタイトルのみがフィードされ、つまらない。Google Desktopなどで購読する際にはdescriptionもあったほうが良い。というわけで、Epilogueさんのrss10pp.inc.phpを導入。入れ方は、
$_LINK['rss10']="$script?cmd=rss10pp";
でおしまい。
これで、ページ右下のRSSボタンを押すとこのようなdescriptionつき更新一覧がでる。また、Google Desktopのウェブクリップオプションでhttp://meteora.ucsd.edu/~kyoshimura/?cmd=rss10ppを追加すれば、更新のたびにDescriptionつきでポップアウトしてくれる。
ただ、ページの上のほうのテキストを抜粋しているだけなので、ページの中での新たな更新などはdescriptionに入らないのね。
(2007/06/23追記)
どうも、http://www.feedvalidator.org/ によるともとのrss10ppはvalidなrssではないみたい。generator、dc:creator、あと著作者のページ(宣伝)を書くところが問題、ということなので、それらをすべて削除した。
そして、 が下のRSSフィードボタンに表示されるようにした。(image/rss.pngを置き換えた)
ここ から取得、eucでかかれているのでUTF-08に変換。
[kyoshimura@meteora ~/http]$ ujconv calendar.inc.php.0.15.txt -t utf8 > plugin/calendar.inc.php
calendar2との主な違い(上記HPに記載のないもの)
行末に"~"で改行。
正規表現はどうするのかなあ…。コード表で相当するのを直書きするのが良いようだ。めんどくさ。("&"は"&")
&sad;や&bigsmile;を使うとこういうの(
)が出る。;)や(^^;でもでるみたい
。でも、後者のは、直前に空白がいるみたいだ。
Editの際、空にしてUpdate。
プラグイン#jphotoを使用(オプション)。ポップアップされるのとか、フラッシュそのものが嫌だったりする。
#ls2が使える。見出しまで表示したいときは#ls2(,title)とする。
#tracker_listが使えそう。詳細不明。
つくってみたが、trackerはうまく作動しても、tracker_listのほうに大きな問題があるみたいだ。それを使いたいのに…。本文が長いとlistが止まり、[body]という項目があるとなにやら勝手に反応する。(予期していない項目が[body]を食っていたりする。)
やれやれ、どうしたもんだか。長くなりそうなので大項目を作った。
ひとつずつしかできない。tarでまとめてアップし、そこで解凍させるらしい・・・
ここ参照。
#contentsを挿入(デフォルト)
MenuBarに
RIGHT: total: &color(green){&counter;};~ today: &color(green){&counter(today);};~ yesterday: &color(green){&counter(yesterday);};~
などと埋める。
オプションプラグイン#accessでページごとのログ取り、#accessviewで閲覧。
#accessviewは一つ一つのページを埋め込む必要があって、めんどくさい。
秘密ページにもしたいが、やりかた不明→できた。あと、日本語でしか表示されない上に、エンコードに不備がある。(UTF-8が使われてない)
function readlog_accessview($page){ //global $timestamp,$ip,$host,$user_agent;というようにglobal〜のところをコメントアウト。(そうしないと、カウントが変)
[kyoshimura@meteora ~]$ cd http [kyoshimura@meteora ~/http]$ patch -p0 --dry-run --verbose < paraedit20060527.diff [kyoshimura@meteora ~/http]$ patch -p0 --verbose < paraedit20060527.diffで見出しごとに鉛筆マークが出るようになれば成功。
#pcomment(reply)
デフォルトのcomment.inc.phpおよびpcomment.inc.phpでは、inputタグのタイプで"text"を使用しているため、入力時に改行が使えない(Enterキーを押すと投稿されてしまう)。コピペも一行しかされない。というわけでここやここを参考に、それぞれを改造した。
ほとんど美麻wikiさんのいうとおり書き換えたが、元の一行comment、pcommentも保存しておきたいのでそれぞれcomment2、pcomment2というプラグインにした。
改造のポイントは次のとおり。
改造後のファイル:&attachref(comment2.inc.php); &attachref(pcomment2.inc.php);
./image 内に画像を置き、pukiwiki.skin.phpにて
// Set site identities $_IMAGE['skin']['logo'] = 'xxxx.jpg';
と変更。
pukiwiki.skin.php内にて
if (! defined('SKIN_DEFAULT_DISABLE_TOPICPATH')) define('SKIN_DEFAULT_DISABLE_TOPICPATH', 0); // 1, 0
とする。
pukiwiki.css.phpにて
/* kei */ div#menubar ul li { list-style-type:none; }
などと足す。
Navigation Barというらしい。pukiwiki.skin.phpにて
if (! defined('PKWK_SKIN_SHOW_NAVBAR')) define('PKWK_SKIN_SHOW_NAVBAR', 0); // 1, 0
の部分を0(Off)とする。下にもあるしね。
それぞれのスキンを別のディレクトリにおいて(例えばskin/i_blue)、index.phpの代わりのページ(例えばi_blue.php)にてSKIN_DIRを指定するようにする。
大体のスキンはそれで動くが、中には動かないものもある(skin直下にpukiwiki.skin.phpがないと、リンクが動かないとか。例えばGS)。
(2008/02/19: 各スキンへのリンクをはずしました。)
ikuyubon-sanのページからwgetし、入手したファイルはskin/i_blue(またはi_orange)に保存。index.phpをコピーしてi_blue.php(i_orange.php)を作成、その中でSKIN_DIRをskin/i_blue(またはi_orange)と指定。
hirokasa-san のページからwgetし、simple2.phpをpukiwikiディレクトリにセーブ。
i_blueなどと同様だが、UTF-8化されていない。
skin/iridのpukiwiki.skin.phpからはiridwire、orangebox、cloudwalkの3種類が選べるが、ブラウザからは選べないため、どれかのみ。UTF-8未対応。日本語をいくつか英語に変えた。
skin直下にしか置けない。色のバリエーションも豊富。
デフォルト。
studyのページでは、
#tracker(study) #tracker_list(study)
を使っている。 :config/plugin/tracker/study 及びその下のform・page・listというページ(ファイルではなく、Wiki上のページ のこと。)を適宜いじくる。
trackerを使いはじめてから:configのほうで項目を増やすと、すでにある投稿ページのtracker_listが壊れる(データベースとの整合性がとれなくなる?)可能性があるので要注意。
が、カテゴリーの要素を増やすことには対応できているようだ。
また、はっきりとした原因は不明だが、tracker_listによる検索のパワー不足でPHP実行のタイムアウトが頻発する模様。ページの内容が増えると加速度的に処理時間がかかるようだ(感じとしては、ページ全体に項目毎のパターンマッチングをかけている?)。 後で追加した内容でも、同様の問題が起きる。というわけで、
気がする。studyは現在10ページ・新規6項目(+いくつかの予約項目)で2.2秒。 ただ、defaultの設定(#tracker_listのみ)だと、新規項目数は5とそんなに変わらないのに0.3秒程度。謎。
#comment2_kcaptcha