XCLでXWORDSを使う


投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2008/1/12 10:19
なーお  長老   投稿数: 1746

XCLでXWORDSを使う

Motion cafeで、 Xoops Cube Legacy 2.1.3にXWORDSを使っています。
XCLにはそのままではXWORDSは動かないようでして、まずインストール後に「xwords.textsanitizer.php」の下記箇所を修正。

1
2
3
4
	function XwordsTextSanitizer()
		{
		parent::MyTextSanitizer(); // この行を追加
		}

続いて、「xwords/admin/entry.php」の130行目をコメントアウト。

1
//$sform -> addElement( new XoopsFormHidden( 'categoryID', intval($categoryID) ) );

元ネタ:うさぎにもできるXoops cube入門:XCLにXwordを導入する際のトラブル

これでまずは、動くはず。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/1/7 8:38 | 最終変更
なーお  長老   投稿数: 1746

XWORDS用 piCalプラグイン、D3commentクラス

  •  ↑で構築中のサイトで、XWORDSのpiCalプラグイン、D3commentクラス が無いのに気付き、自分で作ってみました。
    こんな物でも誰かの役に立つならと思い、ダウンロードに登録しました。
  •  参考(元ソース)としたのは、weblinksのpiCalプラグイン、D3commentクラスです。 よって、XWORD側の閲覧権限等は全く考慮していません。公開専用です。

filexwords_pical.zip
filexwords_d3comment.zip

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/3/22 0:50 | 最終変更
なーお  長老   投稿数: 1746

XWORDS用 d3pipesジョイントクラス

  • 参考(元ソース)としたのは、bulletinのd3pipesジョイントクラスです。 よって、XWORDS側の閲覧権限等は全く考慮していません。公開専用です。
  • XWORDSのソースに手を加え、description表示も可能としていまして、そのソースも同梱してみます。

filed3pipes_xwords.zip

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/1/8 2:18 | 最終変更
なーお  長老   投稿数: 1746

XWORDS に Attachfile を適用

XWORDS-ver0.46にAttachfile-ver1.4を適用してみました。
少々面倒です。

  1.  Attachfileモジュールが、対象をD3モジュール前提な感じなので、少々ごまかしが必要。
    以下の内容のファイル「mytrustdirname.php」をつくり、xwordsのルートディレクトリにコピー。
    1
    2
    3
    
    <?php
    	$mytrustdirname = 'xwords' ;
    ?>
  2.  アクセス権限ファイルの作成
    念のため、ゲストにはアップロード不可に。
    XOOPS_TRUST_PATH/modules/attachfile/plugin/xword/permission.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
    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;
    }
     
    ?>
  3.  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
    		{
  4.  テンプレート編集
    •  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>
      23.gif
    •  xwords_entry.html 65行目付近 (「+」部分を追加)
      1
      2
      3
      
         <{$thisterm.term}>
       </h2>
      +<{attachfile_attach_download dirname=attachfile target_id=$com_itemid}>
      24.gif
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/1/12 10:44
なーお  長老   投稿数: 1746

XCLサイトにWikiレンダラーでXWORDSへの自動リンク

  1. XCLサイトにWikiレンダラーの組み込み
    Xoops Cube LegacyでWikiレンダラーを組み込むのは、2.0.16a JPとはほんの少し違っています。
     ↓のとおりでして、
    XOOPSマニア:xoopsモジュールの書き込みにxpWikiを適用する方法
    XOOPSマニア:keyword/MyTextSanitizer
    特に、↑のMyTextSanitizerのハック方法が違います。

  2. 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
//// xwordsへのオートリンク
$root->ext_autolinks[] = array(
    'url'   => 'https://ssl.motioncafe.net/modules/xwords/xwords_entries.php' ,                // 空白('')で自己xpWiki, 'ディレクトリ名' は自サイト内の別のxpWiki.
    'urldat'=> 1 ,                // urlはオートリンクデータそのもの(0:No, 1:Yes)
    'base'  => '' ,        // ベースページ名 (''[空白] ですべてのページ)
    'len'   => 3 ,                // オートリンクを有効にする文字数
    'enc'   => 'EUC-JP' ,        // 相手先の文字エンコーディング
    'cache' => 10 ,                //キャッシュする分数 (最小値: 10分)
    'title' => 'xwords:[KEY]' ,    // <a>タグのtitle属性 ([KEY] は対象語句に置換されます)
    'pat'   => XOOPS_URL.'/modules/xwords/entry.php?[URL_ENCODE]' ,                // リンクパターン. ([URL_ENCODE], [WIKI_ENCODE], [EWORDS_ENCODE]が使用可能)
);

これで、XCLサイトにWikiレンダラーでXWORDSへの自動リンクが完成します。 続いて、XWORD自体の本文にWikiレンダラーを組み込むには、別の手立てが必要です。 これは、次の投稿で。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/1/12 9:49
なーお  長老   投稿数: 1746

XWORDSにwikiレンダラー組込み

XWORDSは便利ですが、独自のサニタイズ処理が入っているため、そのままではxpWikiのレンダラーは通りません。

そこで、「xwords/class/xwords.textsanitizer.php」をハックすることで、XWORDS内でxpWikiレンダラーが有効にできました。
但し、XWORDSの一般設定で「記事本文にリンクを表示する」は「いいえ」とし、本文内ではwikiレンダラーによる自動リンク、欄外の「関連記事」部分にXWORDS専用リンクが表示されるようになります。

  • 最終的に、「xwords/class/xwords.textsanitizer.php」は以下のようになりました。
    filexwords.textsanitizer.php.zip

  • 一般ユーザー投稿時に有効にするには、XWORDS管理画面の一般設定で、「07.ユーザーのデータ追加時に管理者と同じフォームを使用させますか?」を「はい」としておきます。

  • 下のスクリーンショットは、実体ファイルをxpWikiページで書いて、XWORDSの記事にはincludeで表示している例です。
    xpWikiのincludeはサニタイズ処理の際に評価されるためか、includeされる実体ファイルに記載された「用語」には、欄外にXWORDSリンクされません。 XWORDS記事中に直書きした「用語」のみ、欄外にリンクされます。
    gate.jpg
投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ