PukiWiki1.4.xをベースにしたレンダリングエンジンmodPukiWikiをXOOPSに組み込むHackです。
環境や用途によって、2種類を用意しています。
- TYPE1
- XOOPSのサニタイザを使っているモジュールでTextArea内に入力したテキストをPukiWiki書式として扱います。
PukiWikiModの作者、nao-ponさんのHackをベースにしています。
XOOPSのサニタイザを使っているモジュールで PukiWiki書式が使用できるようになります。
XOOPSの従来のBBcodeやSmilyもそのままで使えるはずですが、一つのコンテンツの中で、変に併用すると
予期しない結果になる場合も起こり得ますのでご注意下さい。
但し、HTMLが有効になっている場合には、PukiWikiと競合するのでPukiWiki書式は使用出来ません。
- TYPE2
- XOOPSのサニタイザを使っているモジュールでTextArea内に入力したテキストで[wiki][/wiki]で囲んだ文字列部分を
PukiWiki書式として扱います。
Wikiで各部分を明示的に指示しなくてはいけないという煩雑さはありますが、XOOPSの従来のBBcodeやSmilyとの
親和性も良く、HTMLが有効になっている場合にも、PukiWikiと競合することなく、PukiWiki書式を利用出来ます。
PukiWikiエンジンが使われる部分も限られるためシステムの負荷も軽減出来ると思います。
[wiki][/wiki]内では、XOOPSの従来のBBcodeやSmilyは原則として使用出来ませんが、今のところ、[code][/code]で
囲まれた部分だけは、そのまま変換されてしまいます。
TYPE1,TYPE2のそれぞれに、一長一短がありますが、お好みに応じてそれぞれのタイプを選んで下さい。
このHackは、XOOPS2.0.13JPのファイルをベースにしています。
更新履歴
- 2005-10-24 XOOPS2.0.13JPのファイルをベースに変更し、脆弱性に対応しました。
XOOPSを2.0.13JPにアップデート後に、本リリースに更新されることを強く推奨します。
ダウンロード
導入方法
[導入方法]
1.バックアップ
このHackは以下のファイルを上書きしますので、導入前にバックアップをとって下さい。
- class/module.textsanitizer.php
- themes/default/style.css
2.ファイルのコピー
ダウンロードしたZIPファイルを解凍し、XOOPS_ROOT_PATH 以下に htmlディレクトリ以下のファイルをディレクトリごと配置して下さい。
3.ディレクトリの権限設定
modPukiWikiの画像系のプラグインを使ったり、レンダリングキャッシュを使用する場合には、
というディレクトリが存在して、Webサーバの実行ユーザによる書込権限が付与されている必要があります。
通常の環境では、自動的にディレクトリが作成され権限も付与するようになっていますが、XREAの用にPHPがSafeModeで
実行されている場合にはこの部分がうまく動作しないため、FTPツールなどを使用して自分で設定し直して下さい。
4.スタイルシートの修正
使用しているテーマのスタイルシートに、themes/default/modPukiWiki.css の内容を追加して下さい。
themes/default/style.cssと同様に、cssファイルの最下行に
/* Add For modPukiWiki by nobunobu */~
@import url(modPukiWiki.css); ~
/* Add For modPukiWiki by nobunobu */
を追加して頂いても良いと思います。
(その前に、themes/default/
modPukiWiki.cssを使用されているテーマディレクトリにコピーして下さい)
5. カストマイズ
お好みに応じて、class/modPukiWiki/xoops.dist.php*1を編集して、modPukiWikiのカストマイズを行って下さい。
カストマイズの仕方に関しては、xoops.dist.php内のコメントを参照して下さい。
ご注意
このファイルを直接編集頂いても良いですが、バージョンアップ時に上書きされるのを防ぐためにこのファイル(xoops.dist.php)をxoops.phpにコピーしてから、カストマイズする事をおすすめします。
コメント
- お疲れ様です。正式リリースですね!うちのサイトのmodPukiWikiも入れ替えました。 -- nao-pon
- バグを発見しましたので報告です。
# で始まる行でブロックプラグインが存在しない場合に、エラーでストップしてしまいます。
PukiWikiElement.php の 123行目ですが、
if (! preg_match("/^\#([^\(]+)(?:\((.*)\))?/", $text, $out) || ! exist_plugin_convert($out[1])) {
となっていますが、
if (! preg_match("/^\#([^\(]+)(?:\((.*)\))?/", $text, $out) || ! PukiWikiPlugin::exist_plugin_convert($out[1])) {
ですね。 -- nao-pon
- おっと。注釈に変換されてしまいました。 修正点は判るのでいいかな。 -- nao-pon
- xoops を 2.0.9 に上げましたが class/module.textsanitizer.php も変わっているようですそのままでは modPukiWiki 使えなくなったのでのぶのぶさん配布のものに差し替えていますが平気でしょうか -- kisite
- WordPressの大改造に嵌っている間に、2.0.9正式発表になってしまったんですね
少し調べたところでは、function &smiley が修正されているだけのようなので、大きな問題は無いと思います。
smiley関数だけ2.0.9のに入れ替えれば完璧だと思います。 -- nobunobu
- バグを発見しました。
カンマ',' から始まる文章を入力すると落ちてしまいました。
PukiWikiElement.php の 113行目 $_value = csv_explode(',', substr($text, 1)); を
$_value = PukiWikiFunc::csv_explode(',', substr($text, 1)); にするのが正しいかな? -- 通りすがりさん
- (テストです) -- 通りすがりさん
- 4.スタイルシートの部分で質問なのですが、modPukiWiki.cssと言うのが見当たらないのですが、テーマのstyle.cssに追加するだけで、よろしいのでしょうか?各テーマに必要なのは分かるのですが、modPukiWiki.cssが分からないので御指導頂けたらと思います。 -- 通りすがりさん
- XOOPS2.0.15JP以降で,module.textsanitizer.phpをmodPukiWikiの物に差し替えても問題ないのでしょうか? -- 通りすがりさん
- のぶのぶさん、お久しぶりです。modPukiWikiに関して伺いたいことがあります。localhostでXOOPS2.0.14JPからXC2.1α5にアップデートして、ファイルにあったmodule.textsanitizer.phpと同じところをハックしてみましたが、やはりレンダリングしなくなりました。もしかしたらコードの違いで不互換性でしょうか、それとも自分のミスでしょうか?では、よろしくお願い致します。(こんな日本語で申し訳ございません) -- FutureSpy
- module.textsanitizer.phpが正常にアップロードされなかっただけなので、自己解決しました。 -- FutureSpy
- こんなにすらっと書き込みをしてすみません。transform()でちょっと遊んでいたんですが、HTMLコードをレンダーしてみたら、<は& lt;に変化されてしまいます。自分でいろいろ調べてみたんですが、PHPはよくわからなくて原因は見つかれませんでした。では、よろしくお願い致します。 -- FutureSpy
以下のxoops.dist.phpは、TYPE2の場合にはxoops_2.dist.phpと読み替えて下さい