ブログ カレンダー

« « 2024 4月 » »
31 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 1 2 3 4

カテゴリ一覧

アーカイブ

最新のエントリ

最新のコメント

最新のトラックバック

趣味のブログ - d3blog で IMGTag D3 の Lightbox 対応 imgtag コードを使用可能にする方法

d3blog で IMGTag D3 の Lightbox 対応 imgtag コードを使用可能にする方法

カテゴリ : 
XOOPS
執筆 : 
OhYeah! 2010.09.05 20:07
 d3blog で IMGTag D3 の imgtag を有効にする方法は、OceanBlue ユーザ掲示板の「d3blogに[imgtag]タグが効かない」にあります。が、imgtag を HTML タグに変換する部分に若干問題があることと、そのままでは Lightbox 表示に対応していません。
 てなわけで、「IMGTag D3 の imgtag コードを Lightbox 対応にする方法」に書いたようなコードの修正と Lightbox 表示対応にしてみました。
 まず、d3blog でも Lightbox 表示ができるように、「全てのモジュールで IMGTag D3 の画像を Lightbox 表示する方法」の修正を行います。

 次に、{XOOPS_TRUST_PATH}/modules/d3blog/include/d3blogTextSanitizer.class.php の postCodeDecode 関数の
        $text = preg_replace($patterns, $replacements, $text);
の直前に下記のコードを追加します。xoopsCodeDecode ではなく、postCodeDecode 側に追加するため、[imgtag] を使用する際は、d3blog の入力画面で「HTML を有効にする」をチェックしておく必要があります。
 「d3blogに[imgtag]タグが効かない」のコードを修正して、次のことが可能になっています。また、「IMGTag D3 の imgtag コードを Lightbox 対応にする方法」のコードと異なり、属性をクォートで括ることが可能です。これにより、title に [] や "、スペースを含めることが可能です(title に " を含める場合は、' で括ってください)。
  1. title 属性で日本語を使用可能にしました。
  2. [imgtag_b] 処理が未完成だったので、[imgtag] と同様に使用できるようにしました。
  3. [imgtag_b] はオリジナル画像をコンテンツにそのまま貼り付ける仕様でしたが、オリジナル画像が大きい場合に問題が出そうなので、プレビュー画像を貼り付けるように変更しました。
  4. align=left|right で画像の周りに文字が回り込むようにした場合、レイアウトが崩れないように <div style="clear:both;"> などを入れる必要がありますが、その代用として文字の回り込みを解除する [br] コードを追加しました。

// &#91;imgtag] Start addition
        $modname = 'd3imgtag'; // Set your module name

        $module_handler =& xoops_gethandler('module');
        $module =& $module_handler->getByDirname($modname);
        $config_handler =& xoops_gethandler('config');
        $config = $config_handler->getConfigsByCat(0, $module->getVar('mid'));
        if ( isset($config['d3imgtag_enableajax']) ) {
            $target = 'rel=\"lightbox\"';
        } else {
            $target = 'target=\"blank\"';
        }

        // &#91;imgtag] BBCode for d3imgtag
        $patterns[] = \"/\&#91;imgtag\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\1&sz=2\" '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\1&sz=0\" alt=\"\" /></a>';
        $patterns[] = \"/\&#91;imgtag title=(['\\"])([^\\1]*)\\1\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=2\" title=\\1\\2\\1 alt=\\1\\2\\1 '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=0\" alt=\\1\\2\\1 title=\\1\\2\\1 /></a>';
        $patterns[] = \"/\&#91;imgtag title=([^ \]]*)\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\2&sz=2\" title=\"\\1\" alt=\"\\1\" '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\2&sz=0\" alt=\"\\1\" title=\"\\1\" /></a>';
        $patterns[] = \"/\&#91;imgtag align=(['\\"]?)(left|center|right)\\1\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=2\" '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=0\" align=\"\\2\" alt=\"\" /></a>';
        $patterns[] = \"/\&#91;imgtag align=(['\\"]?)(left|center|right)\\1 title=(['\\"])([^\\3]*)\\3\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=2\" title=\\3\\4\\3 alt=\\3\\4\\3 '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=0\" align=\"\\2\" title=\\3\\4\\3 alt=\\3\\4\\3 /></a>';
        $patterns[] = \"/\&#91;imgtag align=(['\\"]?)(left|center|right)\\1 title=([^\]]*)\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=2\" title=\"\\3\" alt=\"\\3\" '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=0\" align=\"\\2\" title=\"\\3\" alt=\"\\3\" /></a>';
        $patterns[] = \"/\&#91;imgtag title=(['\\"])([^\\1]*)\\1 align=(['\\"]?)(left|center|right)\\3\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=2\" title=\\1\\2\\1 alt=\\1\\2\\1 '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=0\" align=\"\\4\" title=\\1\\2\\1 alt=\\1\\2\\1 /></a>';
        $patterns[] = \"/\&#91;imgtag title=([^ ]*) align=(['\\"]?)(left|center|right)\\2\]([0-9]*)\[\/imgtag\]/sU\";
        $replacements[] = '<a href=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=2\" title=\"\\1\" alt=\"\\1\" '.$target.'><img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=0\" align=\"\\3\" title=\"\\1\" alt=\"\\1\" /></a>';
        $patterns[] = \"/\&#91;imgtag_b\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\1&sz=1\" alt=\"\" />';
        $patterns[] = \"/\&#91;imgtag_b title=(['\\"])([^\\1]*)\\1\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=1\" alt=\\1\\2\\1 title=\\1\\2\\1 />';
        $patterns[] = \"/\&#91;imgtag_b title=([^ \]]*)\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\2&sz=1\" alt=\"\\1\" title=\"\\1\" />';
        $patterns[] = \"/\&#91;imgtag_b align=(['\\"]?)(left|center|right)\\1\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\3&sz=1\" align=\"\\2\" alt=\"\" />';
        $patterns[] = \"/\&#91;imgtag_b align=(['\\"]?)(left|center|right)\\1 title=(['\\"])([^\\3]*)\\3\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=1\" align=\"\\2\" title=\\3\\4\\3 alt=\\3\\4\\3 />';
        $patterns[] = \"/\&#91;imgtag_b align=(['\\"]?)(left|center|right)\\1 title=([^\]]*)\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=1\" align=\"\\2\" title=\"\\3\" alt=\"\\3\" />';
        $patterns[] = \"/\&#91;imgtag_b title=(['\\"])([^\\1]*)\\1 align=(['\\"]?)(left|center|right)\\3\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\5&sz=1\" align=\"\\4\" title=\\1\\2\\1 alt=\\1\\2\\1 />';
        $patterns[] = \"/\&#91;imgtag_b title=([^ ]*) align=(['\\"]?)(left|center|right)\\2\]([0-9]*)\[\/imgtag_b\]/sU\";
        $replacements[] = '<img src=\"'.XOOPS_URL.'/modules/'.$modname.'/index.php?page=image&id=\\4&sz=1\" align=\"\\3\" title=\"\\1\" alt=\"\\1\" />';

        // &#91;br] BBCode for d3imgtag
        $patterns[] = \"/\&#91;br\]\[\/br\]/sU\";
        $replacements[] = '<br />';
        $patterns[] = \"/\&#91;br\](left|right|all|none)\[\/br\]/sU\";
        $replacements[] = '<br clear=\"\\1\"/>';
// &#91;imgtag] End addition

トラックバック

トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/30

コメント一覧