morikawa とは?†
ただのユーザ。
どっぷり pukiwiki ってわけにもいかないので、ほどほどな小物が目立ちます。
未公開含む、ぷらぐいん†
ここら(http://www.tetsuo.morikawa.name/m/?pukiwiki%2Fplugins )あたりでボチボチと。
PukiWiki/1.4/自作プラグイン
プラグイン編†
ぷらぐいん改造編†
自作プラグインに載せるほど大したものじゃなく。
でも改造したら便利かも、使うシーンがあるかも、ってなものを掲載。
オリジナル作者さんが取り込むもよし、ええな~と思った人が自作プラグインに
載せるもよし。
階層より下の更新一覧を表示する recent プラグイン†
改造版とオリジナル版のdiff ですが、添付しときます。
こんな感じ(http://www.tetsuo.morikawa.name/glaucoma/pukiwiki.php?%A5%ED%A5%D3%A1%BC )で、BBSライクに出来てお得。
2003-04-30
テキスト幅を変えられる lookup プラグイン†
4つめの引数にsize属性値を数値で、5つ目に値を渡すとテキストボックスの左の文字を非表示。
ここのメニュー(http://www.tetsuo.morikawa.name/glaucoma/ )みたく小型化可能。他には用途なさげだけどね。 :p
- ウチのlookupの改造も便乗で紹介。2つめの引数に$thispageを指定すると、現在表示中のページタイトルを入力欄に初期表示するようにしています。Googleとか検索エンジンのInterWikiNameと組み合わせて使用する以外に用途はなさげ :p -- にぶんのに
+ $s_page = htmlspecialchars($vars['page']);
$default = '';
- if (func_num_args() > 2)
+ if (func_num_args() > 2){
+ if ($args[2] == '$thispage'){
+ $default = $s_page;
+ }else{
$default = htmlspecialchars(trim(strip_tags($args[2])));
+ }
+ }
- $s_page = htmlspecialchars($vars['page']);
- これ、現在のページ以下を検索する際の、絞込み検索にもある程度有効そうですね。 -- morikawa
2003-04-30
ひとつ下の階層の一覧だけ表示する ls3 プラグイン†
diffってみれば分かるが、ls3 として関数名をリネームした変更がほとんど。
直接書き換えるなら、下記だけのはず。たぶん。ショボ・・・。
例)
- aaaページの #ls が
- aaa/bbb/ccc
- aaa/bbb/ddd
- aaa/bbb/eee
- aaa/zzz/abc
- aaa/zzz/def
- だとすると、aaa で #ls3 すると、
- になる。
$pages = array();
foreach (get_existpages() as $_page)
{
- if (strpos($_page,$prefix) === 0)
+ if ( (strpos($_page,$prefix) === 0) &&
+ (!preg_match('/[^\/]+\/+/', str_replace($prefix,'',$_page))) &&
+ (!preg_match('/\/\_/',$_page)) )
{
$pages[] = $_page;
- }
+ } // morikawa
オプション引数が利くかどうか、試してない。単に #ls3 としかしてないので・・・(汗
- pukiwiki:欲しいプラグイン/55 にあったもの。一部サイトで使っていた内容。ls3 とちょこっと違う。 -- morikawa
- そうか、これはやろうとしてやりかけだった。ごめんなさい。表示はされるけど、リンク先がおかしいや。
- てことで、急遽手を入れました。とりあえず、前からやりたかったことが出来てよかった。
ls3b.inc.php
- My hack of ls3b.inc.php, support weblog plugin. Use #ls3(,weblog,) for my weblog plugin. See this -- Candyz
- official:欲しいプラグイン/55のリンクからたどってきました。一階層下のリストのみを出力したいと思い ls3b.inc.phpを利用したところ、プラグインに指定した参照先ページ名の省略はされますが、2つ以上下の階層の省略がされない環境があります。ローカルにある環境(Vine Linux2.6/Apache 1.3.27/PHP 4.2.3/PukiWiki1.4.2)では一階層下のリストのみ表示されるのですが、レンタルサーバの環境(Linux/Apache 1.3.27/PHP 4.3.3/PukiWiki1.4.2)ですとうまくいきません。ls3bの検証用ページをレンタルサーバ側に準備しました (
ここです 現在は削除されています) できればうまく表示できるようにして頂きたいのですが、現象だけでも確認していただけませんか?よろしくお願いします。 -- jjyun
- ls3b.inc.phpの修正部分のコードの内容を確認したところ、str_replaceに第4引数が設定されていますがマニュアルにはありません。以下のようにstr_replace関数を修正したら、目的の通り表示されていなかったレンタルサーバ上でもうまく動きました。*1 -- jjyun
$pages = array();
foreach (get_existpages() as $_page)
{
- $prefix_removed = str_replace($prefix,'',$_page, 1);
+ $prefix_removed = str_replace($prefix,'',$_page);
if ( (strpos($_page,$prefix) === 0) &&
(!preg_match('/[^\/]+\/+/', $prefix_removed)) &&
(!preg_match('/\/\_/',$_page)) )
{
$pages[] = $_page;
$pages_p[] = $prefix_removed;
} // morikawa
- 欲しいプラグインにもあるようにこのような機能は需要があると思います.が、official:自作プラグイン/ls3.inc.phpにあるようにプラグインの名前が重複しています。今後を考えるとできれば改名して本家の自作プラグインに上げてもらえないでしょうか? -- jjyun
- 見出しの自動生成の仕組みを考え、ls系のプラグインをいろいろ試したものの、なかなかシックリとくるものが見つからず、ここにたどり着きました。jjyunさんご指摘の修正をしたところ、まさに希望していた通りの機能が実現できました! morikawaさん、jjyunさん、ありがとうございます。 -- SS
- official:自作プラグイン/ls2_1.inc.phpにも同様の機能があります。
2003-04-30
階層化しなくても、カテゴリ毎に同一サブメニュー†
./includesubmenu.inc.php メニューの入れ子とかも。
結構書き換えた。標準添付に取り込まれないかなあ。。。 - 2003-11-21
小物編†
ファイル名 unpack Ruby Script†
メモしたテキスト、他サイトのDBから抽出したテキストをpukiwiki fileに変換。
タイトル.txt を unpack してファイル作成、内容をEUCに変換して保存。
PHPで直接書き込んでもいいのだけど、エラー制御やUndo制御が面倒なのでやめた。
- 準備
- <dirname> 以下に、変換元テキストファイルを用意。実行ディレクトリに wiki というディレクトリを作成。
- 実行
- ruby conv_filename.rb <dirname>
- 結果
- wiki/ENCODED.txt というようにファイル名が unpack されて保存される。そのままFTPであげればよい。
- 自分の用途
- PostNukeのデータ、XOOPSのデータをMySQLからdumpして、コンバート。pukiwiki に変えた際、データ移行に利用した。
- dumpしたSQLからの切り出しは、処理があまりにもズサンなので公開に消極的。
- 自分の環境
- cygwin + ruby 1.6 (それ以外でも動くはず。)
- エラー制御はほとんど無視してます。あくまでワンライナー的に利用。*2
RSS2Mail for pukiwiki†
pukiwiki の Rss をメールで送信します。
- ダウンロード
pukiwiki.rss2mail.php.r1.3
- 必要なバージョン
- r1.1 : need MagpieRSS 0.5.1 - 2003-06-19
- r1.3 : need MagpieRSS 0.5.1, PEAR::XML::RSS - 2003-06-19
- このスクリプトの機能
- 複数RSSを指定可能
- Descriptino に入ってくる日付から、?秒前以降を無視する設定が可能(for Rss0.91.)
- 今のところあて先がひとつだけ。To:にカンマ区切りすればOKかも。
- 不足分
- Rss0.91のみ。1.0対応も考えています。(r1.3で対応)
- 自分は更新通知用MLを作成し、そのMLへcronで定期的に飛ばしています( for 関係者向けに )。 -- morikawa
- W3CDTF 2 time な、よい関数があれば教えてください。 -- morikawa
:CategoryPerson