ページへ戻る

− Links

 印刷 

MyTextSanitizer (まい・てきすと・さにたいざぁ) のバックアップソース(No.21) :: XOOPS マニア

xpwiki:keyword/MyTextSanitizer のバックアップソース(No.21)

« Prev[4]  Next »[5]
#nopagecomment
#noattach
#navi
#contents
* MyTextSanitizer (まい・てきすと・さにたいざぁ) [#wd32ad0f]

XOOPS, XOOPS Cube Legacy において、登録されたテキストを整形し表示するクラス。

このクラスに変更を加えることで、その XOOPS 全体に渡り、テキスト整形のルールを変更することができる。

ここ XOOPSマニア のサイトでは、xpWiki のWikiレンダリング機能を使って、テキスト整形するように変更が加えられています。

** XOOPS Cube Legacy 2.1.x 〜 2.2.x 用 [#w210a13d]

XOOPS Cube Legacy 用には、本来ならプリロードだけで完結するようにすべきだとは思いますが、X2用モジュールとの互換性を保つために、module.textsanitizer.php を書き換える方法にしました。

XOOPS_ROOT_PATH/class/module.textsanitizer.php を置き換え、XOOPS_ROOT_PATH/preload/SetupHyp_TextFilter.class.php を配置してください。

Cube に対応させるために、[[XUGJ にて Marijuana さんにいろいろ教えていただきました。:http://www.xugj.org/modules/d3forum/index.php?topic_id=413]] :ok:
- &ref(module.textsanitizer_0.php){XOOPS_ROOT_PATH/class/module.textsanitizer.php}; (2.1.x 用)
- &ref(module.textsanitizer_1.php){XOOPS_ROOT_PATH/class/module.textsanitizer.php}; (2.2.x 用)
-- 変更箇所のみ
#code(php){{
    /**
     * Filters textarea form data in DB for display
     *
     * @param   string  $text
     * @param   bool    $html   allow html?
     * @param   bool    $smiley allow smileys?
     * @param   bool    $xcode  allow xoopscode?
     * @param   bool    $image  allow inline images?
     * @param   bool    $br     convert linebreaks?
     * @return  string
     **/
    function &displayTarea($text, $html = 0, $smiley = 1, $xcode = 1, $image = 1, $br = 1)
    {
        //$text = $this->_ToShowTarea($text, $html, $smiley, $xcode, $image, $br);
        $text = $this->mTextFilter->ToShowTarea($text, $html, $smiley, $xcode, $image, $br, true, 1);
        return $text;
    }

    /**
     * Filters textarea form data submitted for preview
     *
     * @param   string  $text
     * @param   bool    $html   allow html?
     * @param   bool    $smiley allow smileys?
     * @param   bool    $xcode  allow xoopscode?
     * @param   bool    $image  allow inline images?
     * @param   bool    $br     convert linebreaks?
     * @return  string
     **/
    function &previewTarea($text, $html = 0, $smiley = 1, $xcode = 1, $image = 1, $br = 1)
    {
        $text =& $this->stripSlashesGPC($text);
        //$text = $this->_ToShowTarea($text, $html, $smiley, $xcode, $image, $br);
        $text = $this->mTextFilter->ToShowTarea($text, $html, $smiley, $xcode, $image, $br, true, 0);
        return $text;
    }
}}
- &ref(SetupHyp_TextFilter.class.php){XOOPS_ROOT_PATH/preload/SetupHyp_TextFilter.class.php};
-- 2008/1/26 に修正しました。(BBコードの[siteurl]に対応。要 xpWiki 3.59 以上)
-- 2008/4/30 と 5/3 に修正しました。(BBコードの[img]が正常に変換できないことがある問題を修正)
-- 2008/5/30 に修正しました。(BBコードの siteimage, fig が正常に動作するようにした)
-- 2008/5/31 に typo 修正しました。[[参考スレッド:http://xoops.hypweb.net/modules/forum/index.php?topic_id=2362]]
-- 2008/10/9 xpWiki のディレクトリ名指定を定数 XPWIKI_RENDERER_DIR を使う方式としました。
--- xpWiki Ver 3.71.83 で搭載された画面変遷のないファイル添付とファイル名挿入に対応した。
-- 2008/10/11 10/9 の修正でCSSが効かなくなっていたのを修正しました。
-- 2008/12/22 PHP 4 環境で Warning エラーが出ていたのを修正しました。 (thx nonn50)
-- 2009/5/3 [quote]を使用した場合に、HTML構造が不正になることがある問題を修正しました。
-- 2009/5/12 5/3 の修正が原因で、レンダリング内容によっては、PHPがエラーで止まってしまうことがある問題を修正しました。(thx azumi)
#code(SetupHyp_TextFilter.class.php)
-- &font(b,Red){※}; xpWiki を xpwiki という名前以外でインストールしている場合は、6行目の 'xpwiki' を適宜変更してください。
#code(php,5-){{
// xpWiki wikirenderer dirctory name
define('XPWIKI_RENDERER_DIR', 'xpwiki');
}}

** XOOPS 2.0.16a JP 用 [#e3d11b6d]
- &ref(module.textsanitizer.php){XOOPS_ROOT_PATH/class/module.textsanitizer.php};
-- 2008/1/26 に修正しました。(BBコードの[siteurl]に対応。要 xpWiki 3.59 以上)
-- 2008/4/30 と 5/3 に修正しました。(BBコードの[img]が正常に変換できないことがある問題を修正)
-- 2008/5/30 に修正しました。(BBコードの siteimage, fig が正常に動作するようにした)
-- 2008/5/31 に typo 修正しました。[[参考スレッド:http://xoops.hypweb.net/modules/forum/index.php?topic_id=2362]]
-- 2008/10/9 xpWiki のディレクトリ名指定を定数 XPWIKI_RENDERER_DIR を使う方式としました。
--- xpWiki Ver 3.71.83 で搭載された画面変遷のないファイル添付とファイル名挿入に対応した。
-- 2008/10/11 10/9 の修正でCSSが効かなくなっていたのを修正しました。
-- 2008/12/22 PHP 4 環境で Warning エラーが出ていたのを修正しました。 (thx nonn50)
-- 2009/5/3 [quote]を使用した場合に、HTML構造が不正になることがある問題を修正しました。
-- 2009/5/12 5/3 の修正が原因で、レンダリング内容によっては、PHPがエラーで止まってしまうことがある問題を修正しました。(thx azumi)
#code(module.textsanitizer.php)
-- &font(b,Red){※}; xpWiki を xpwiki という名前以外でインストールしている場合は、36行目の 'xpwiki' を適宜変更してください。
#code(php,35-){{
// xpWiki wikirenderer dirctory name
define('XPWIKI_RENDERER_DIR', 'xpwiki');
}}


* Wikiヘルパーをテキストエリアに表示する方法 [#t9eb084b]

JavaScriptによる「Wikiヘルパー」(IE と FireFox に対応)をテキストエリアに適用させたい場合は、次の方法があります。どちらの方法でも構いません。

** まずはじめに [#o58cfbb2]

+ html側xpWikiモジュールディレクトリ/private/ini/pukiwiki.ini.php に以下の内容を記述する。~
#code(php,nonumbar){{
// Show the Wiki Helper on the site wide.
$root->render_UseWikihelperAtAll = 1;
}}

*** 選択その1 (ブロックの配置)[#n07203a4]

+ "''xpWikiのページ表示ブロック''" 又は "''XOOPSのカスタムブロックの自動フォーマットタイプ''" をすべてのページに配置する。ブロックに表示するページや内容は、どのような内容でも構いません。&br;このサイトでは、左ブロックの「サイト内 Wiki」がそれにあたります。

*** 選択その2 [#ea86b92d]

+ XOOPS テーマの theme.html の <head> 内 <{$xoops_module_header}> の下にJavaScriptを挿入して以下のようにする。
#code(html,nonumber){{
<{$xoops_module_header}>
<script type="text/javascript" src="<{$xoops_url}>/modules/xpwiki/skin/loader.php?src=wikihelper_loader.js"></script>
}}
-- パス中の xpwiki はxpWikiをインストールしたディレクトリ名に合わせてください。

#navi


« Prev[4]  Next »[5]