XCLでXWORDSを使う
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
- XCLでXWORDSを使う (なーお, 2008/1/12 10:19)
- XWORDS用 piCalプラグイン、D3commentクラス (なーお, 2008/1/7 8:38)
- XWORDS用 d3pipesクラス (なーお, 2008/3/22 0:50)
- XWORDS にAttachfileを適用 (なーお, 2008/1/8 2:18)
- XCL・wikiレンダラーでXWORDSへ自動リンク (なーお, 2008/1/12 10:44)
- XWORDSにwikiレンダラー組込み (なーお, 2008/1/12 9:49)
XCLでXWORDSを使う
Motion cafeで、 Xoops Cube Legacy 2.1.3にXWORDSを使っています。
XCLにはそのままではXWORDSは動かないようでして、まずインストール後に「xwords.textsanitizer.php」の下記箇所を修正。
1 2 3 4 |
|
続いて、「xwords/admin/entry.php」の130行目をコメントアウト。
1 |
|
元ネタ:うさぎにもできるXoops cube入門:XCLにXwordを導入する際のトラブル
これでまずは、動くはず。
XWORDS用 piCalプラグイン、D3commentクラス
- ↑で構築中のサイトで、XWORDSのpiCalプラグイン、D3commentクラス が無いのに気付き、自分で作ってみました。
こんな物でも誰かの役に立つならと思い、ダウンロードに登録しました。
- 参考(元ソース)としたのは、weblinksのpiCalプラグイン、D3commentクラスです。 よって、XWORD側の閲覧権限等は全く考慮していません。公開専用です。
XWORDS用 d3pipesジョイントクラス
- 参考(元ソース)としたのは、bulletinのd3pipesジョイントクラスです。 よって、XWORDS側の閲覧権限等は全く考慮していません。公開専用です。
- XWORDSのソースに手を加え、description表示も可能としていまして、そのソースも同梱してみます。
XWORDS に Attachfile を適用
XWORDS-ver0.46にAttachfile-ver1.4を適用してみました。
少々面倒です。
- Attachfileモジュールが、対象をD3モジュール前提な感じなので、少々ごまかしが必要。
以下の内容のファイル「mytrustdirname.php」をつくり、xwordsのルートディレクトリにコピー。1 2 3
<?php $mytrustdirname = 'xwords' ; ?>
- アクセス権限ファイルの作成
念のため、ゲストにはアップロード不可に。
XOOPS_TRUST_PATH/modules/attachfile/plugin/xword/permission.php1 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
<?php // =========================================================================== // The permission file is necessary in each module. // If target module is "D3 module", the permission file is necessary // in each directory in XOOPS_TRUST_PATH (not XOOPS_ROOT_PATH). // // -- argument -- // // $mydirname : attachfile's dirname in XOOPS_ROOT_PATH // $module_dirname : target module's dirname in XOOPS_ROOT_PATH // $mytrustdirname : attachfile's dirname in XOOPS_TRUST_PATH // $targettrustdirname : target module's dirname in XOOPS_TRUST_PATH // $target_id : target mosule's contents id (target to attach) // // -- return value -- // // true : allow access // false : deny access // =========================================================================== function attachfile_check_upload_permission_plugin( $mydirname , $module_dirname , $mytrustdirname , $targettrustdirname , $target_id ) { global $xoopsUser ; if( $xoopsUser ) { return true; } else { return false; } } function attachfile_check_download_permission_plugin( $mydirname , $module_dirname , $mytrustdirname , $targettrustdirname , $target_id ) { return true; } ?>
- xwordsのsubmit.php のハック
submit.phpの210行目付近1 2 3 4 5 6 7 8
else { $legenddesc = constant("_MD_{$MYDIRNAME}_SUB_SNEWNAMEDESC2"); } $xoopsTpl -> assign ( 'entryID', $entryID ); //←naao hack この行を追加 } else // therez no parameter, so were adding an entry {
- テンプレート編集
- xwords_submit.html 45行目付近 (「+」部分を追加)
1 2 3 4 5 6 7 8 9 10
<{/foreach}> + <tr valign="top" align="left"> + <th class="head"> + <{attachfile_attach_upload dirname=attachfile label=1}> + </th> + <td class="even"> + <{attachfile_attach_upload dirname=attachfile target_id=$entryID}> + </td> + </tr> </table>
- xwords_entry.html 65行目付近 (「+」部分を追加)
1 2 3
<{$thisterm.term}> </h2> +<{attachfile_attach_download dirname=attachfile target_id=$com_itemid}>
- xwords_submit.html 45行目付近 (「+」部分を追加)
XCLサイトにWikiレンダラーでXWORDSへの自動リンク
- XCLサイトにWikiレンダラーの組み込み
Xoops Cube LegacyでWikiレンダラーを組み込むのは、2.0.16a JPとはほんの少し違っています。
↓のとおりでして、
XOOPSマニア:xoopsモジュールの書き込みにxpWikiを適用する方法
XOOPSマニア:keyword/MyTextSanitizer
特に、↑のMyTextSanitizerのハック方法が違います。 - WikiレンダラーでXWORDSへの自動リンク
全面的に、↓のページのとおりでございます。
XOOPSマニア:xpwikiからxwordsへのリンクはできないでしょうか?
ただ、「XOOPS_ROOT_PATH/modules/xpwiki/private/ini/pukiwiki.ini.php」内のオートリンク設定で、「url」部分はURLをべた書きしないとうまく行きませんでした。 たぶん、私のサイトがhttp:とhttps:の自動切り替えを使っているためでしょう。 普通は↑の記事中の内容で大丈夫なんだと思います。
1 2 3 4 5 6 7 8 9 10 11 |
|
これで、XCLサイトにWikiレンダラーでXWORDSへの自動リンクが完成します。 続いて、XWORD自体の本文にWikiレンダラーを組み込むには、別の手立てが必要です。 これは、次の投稿で。
XWORDSにwikiレンダラー組込み
XWORDSは便利ですが、独自のサニタイズ処理が入っているため、そのままではxpWikiのレンダラーは通りません。
そこで、「xwords/class/xwords.textsanitizer.php」をハックすることで、XWORDS内でxpWikiレンダラーが有効にできました。
但し、XWORDSの一般設定で「記事本文にリンクを表示する」は「いいえ」とし、本文内ではwikiレンダラーによる自動リンク、欄外の「関連記事」部分にXWORDS専用リンクが表示されるようになります。
- 最終的に、「xwords/class/xwords.textsanitizer.php」は以下のようになりました。
xwords.textsanitizer.php.zip - 一般ユーザー投稿時に有効にするには、XWORDS管理画面の一般設定で、「07.ユーザーのデータ追加時に管理者と同じフォームを使用させますか?」を「はい」としておきます。
- 下のスクリーンショットは、実体ファイルをxpWikiページで書いて、XWORDSの記事にはincludeで表示している例です。
xpWikiのincludeはサニタイズ処理の際に評価されるためか、includeされる実体ファイルに記載された「用語」には、欄外にXWORDSリンクされません。 XWORDS記事中に直書きした「用語」のみ、欄外にリンクされます。