<<
2006.11
>>
[xpWiki開発日記] |
||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 4 | ||||
5 | 6 | 9 | 10 | 11 | ||
12 | 14 | 15 | 16 | 17 | 18 | |
20 | 21 | 22 | 23 | 25 | ||
26 | 27 | 30 |
ページ保存直前と直後に、独自の処理を挟み込めるようにしました。
ディレクトリにPHPファイルを置くことで、そのファイル内容の処理が実行されます。
基本的には、こんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
この機能を利用したプラグインが tag.inc.php です。 tag プラグインでは、ページ編集してtagプラグインの記述が削除された時とページ削除時に Tag の更新処理を行います。 その内容は、次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|
pukiwiki.ini.php に設定項目を追加しました。
ページキャッシュ関連の設定項目です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
XOOPSの管理画面にWikiページを表示する仕組みを追加しました。
ページ内容に
#xoopsadmin
と記述するか、もしくはアクションプラグイン動作時に管理画面内に表示するようにするには、plugin_*_init() 関数内で
1 2 3 4 |
|
と記述してください。
プラグイン独自の言語ファイル読み込みの仕組みを追加しました。
lang/plugin/プラグイン名.言語コード.php に $msg 配列を書いて、plugin_*_init() 関数内に、
1 2 |
|
と命令文を書くとプラグインオブジェクト->msg に格納されます。
html側にあれば、trust側を上書きします。
例えば、dump プラグインの言語ファイルは、次のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
html側に必要な、wiki/*.txt, cache/*.dat をCVSに入れ忘れていました。(爆)
いい機会だったので、モジュールインストール・アップデート時にチェックして、足らないファイルがあった場合、trust側からhtml側にコピーするようにしました。
いよいよ、ページ情報のデータベース化に取り掛かります。
とりあえず、考えたテーブル構造は次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | - | | | | | | | | | | | | | | | | ! - | | | | | | | ! - | | | | | | | | | | | | | | | | | | | ! - | | | ! - | | | | ! - | | | | | | | | | | ! |
|
#refx(pginfo.png,around,right) DB対応に先がけて、ページ毎の権限設定を実装しました。PukiWikiMod では、ページ編集画面に権限設定フォームを付けていましたが、xpWiki では、別画面にしました。
管理者およびページ作成ユーザーにはメニューに「権限」が表示されるので、それをクリックすることで権限編集画面に移動します。
ユーザー名の選択には、リストボックスではユーザーが増えたときに実用的ではないので、JavaScript を使った「サジェスト」方式にしました。
また、下位ページへの権限継承を「強制」「規定値」「なし」から選べるようにしました。「強制」は、下位ページで変更させない継承。「規定値」は下位ページに継承するが変更可能、「なし」は継承なし、そのページのみの設定となります。
権限設定のサイト規定値を pukiwiki.ini.php に追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
サムネイルの作成などに HypCommonFunc を使うので、trust/class に hyp_common ディレクトリ以下を置いてください。
xoops_trust ├ class │ └ hyp_common └ modules └ xpwiki
DB化に伴ない、attach と ref プラグインの整備しました。
ref プラグインには、attachref プラグインの動作も一部取り入れています。#ref() とか &ref(); とすると、こんな ⇒ [添付] 添付リンクが表示されます。そこをクリックしてファイル添付するとその場所に添付ファイルが表示されます。(このリンクは表示サンプルなので添付しないでね。)
引数を指定したい場合は &ref(,100x100,zoom); こんな風に引数の先頭にカンマをひとつ置いてください。
ページ名の読みを、pginfo DB に格納するようにしました。
DBフィールドを追加したのでモジュールアップデートを実行してください。
オリジナルの PukiWiki は、1つのWikiページにすべてのページの読みを保存するようになっているのですが、これだと、ページ数が増えた時のパフォーマンス低下が避けられないことと、メンテナンス性に問題があるので、DBに格納するようにしました。
さらに、ページ名読み ⇒ ページ頭文字読み に変更しました。
例えば「メモ/色々/下書き」というページ名の場合「メ/イ/シ」となります。
一覧で日本語ページの読みを反映したい場合は、pukiwiki.ini.php での以下の設定項目を適切に設定してください。ただし「$root->pagereading_config_page」は、意味を持ちません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|