<?xml version="1.0" encoding="utf-8"?>
<!-- generator="wordpress/ME for XOOPS 0.6.0-Beta" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/" >

<channel>
	<title>めもらんだむ</title>
	<link>http://www.nobunobu.com/blog/index.php</link>
	<description>＿〆(。。)</description>
	<language>ja</language>
	<copyright>Copyright 2006</copyright>
	<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
	<generator>http://www.kowa.org/?v=0.6.0-Beta</generator>

		<item>
		<title>デリゲートでBBCodeの拡張を Part2</title>
		<link>http://www.nobunobu.com/blog/2006/11/30/enhance-bbcode-with-delegate/</link>
		<comments>http://www.nobunobu.com/blog/2006/11/30/enhance-bbcode-with-delegate/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 21:38:26 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/11/30/enhance-bbcode-with-delegate/</guid>
		<description>	このブログで、PHPのソースを紹介する時、以前は、WordPressのプラグインをつかって、色分けされたソースを表示していました。
しかしながら、同様のことはXOOPSのDelegateを使用しても実現出来ます。少し前の投稿からこのDelegateによって拡張したBBCodeの［phpsrc］タグを使用するように変更しました。

 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>このブログで、PHPのソースを紹介する時、以前は、WordPressのプラグインをつかって、色分けされたソースを表示していました。<br />
しかしながら、同様のことはXOOPSのDelegateを使用しても実現出来ます。少し前の投稿からこのDelegateによって拡張したBBCodeの［phpsrc］タグを使用するように変更しました。<a id="more-33"></a><br />
以下のソースをCustomSanitizer.class.phpというファイル名で/preloadディレクトリに置くことによって、３つの新しいタグが使用出来るようになります。<br />
・［siteimg]［/siteimg]：［url]タグに対する［siteurl] タグと同様の働きをするものを<br />
　　　　　　　 ［img]タグに適用したものです。<br />
・［phpsrc]［/phpsrc]： PHPのソースファイルの内容をそのまま表示するときに使用します。<br />
・［phpcode]［/phpcode]： PHPのソースの断片を表示するときに使用します。<br />
</p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:36.6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">CustomSanitizer&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">XCube_ActionFilter<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">preBlockFilter</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mRoot</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mDelegateManager</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">"MyTextSanitizer.XoopsCodePre"</span><span style="color: #007700">,array(&amp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">,</span><span style="color: #DD0000">"BBCodePre"</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">BBCodePre</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">$patterns</span><span style="color: #007700">,&nbsp;&amp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$allowimage</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Replacement&nbsp;rules&nbsp;for&nbsp;[siteimg]&nbsp;tag<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$patterns</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">"/\[siteimg&nbsp;align=(['\"]?)(left|center|right)\\1]([^\"\(\)\?\&amp;'&lt;&gt;]*)\[\/siteimg\]/sU"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$patterns</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">"/\[siteimg]([^\"\(\)\?\&amp;'&lt;&gt;]*)\[\/siteimg\]/sU"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</span><span style="color: #0000BB">$allowimage&nbsp;</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'&lt;img&nbsp;src="'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\3"&nbsp;align="\\2"&nbsp;alt=""&nbsp;/&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'&lt;img&nbsp;src="'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\1"&nbsp;alt=""&nbsp;/&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'&lt;a&nbsp;href"'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\3"&nbsp;target="_blank"&gt;'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\3&lt;/a&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'&lt;a&nbsp;href"'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\1"&nbsp;target="_blank"&gt;'</span><span style="color: #007700">.</span><span style="color: #0000BB">XOOPS_URL</span><span style="color: #007700">.</span><span style="color: #DD0000">'/\\1&lt;/a&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$patterns</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'/\[phpcode\](.*?)\[\/phpcode\]/es'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">"CustomSanitizer::phpSource('\\1',true);"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$patterns</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">'/\[phpsrc\](.*?)\[\/phpsrc\]/es'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$replacements</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #DD0000">"CustomSanitizer::phpSource('\\1',false);"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">phpSource</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">,</span><span style="color: #0000BB">$tag</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$maxlines&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">30</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$maxwidth&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"85%"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'\"'</span><span style="color: #007700">),array(</span><span style="color: #DD0000">'"'</span><span style="color: #007700">),</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">'/[&lt;&gt;"\']+/'</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(array(</span><span style="color: #DD0000">'&amp;gt;'</span><span style="color: #007700">,</span><span style="color: #DD0000">'&amp;lt;'</span><span style="color: #007700">,</span><span style="color: #DD0000">'&amp;quot;'</span><span style="color: #007700">,</span><span style="color: #DD0000">'&amp;#039;'</span><span style="color: #007700">),array(</span><span style="color: #DD0000">'&gt;'</span><span style="color: #007700">,</span><span style="color: #DD0000">'&lt;'</span><span style="color: #007700">,</span><span style="color: #DD0000">'"'</span><span style="color: #007700">,</span><span style="color: #DD0000">"'"</span><span style="color: #007700">),</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$linecount&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">))+</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"/\r\n/"</span><span style="color: #007700">,</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$linecount&nbsp;</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">$maxlines</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$linecount&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$maxlines&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">0.5</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$tag</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">highlight_string</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;?php\n"</span><span style="color: #007700">.</span><span style="color: #0000BB">$text</span><span style="color: #007700">.</span><span style="color: #DD0000">"\n?&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/(&lt;font&nbsp;color="#0000BB"&gt;)&amp;lt;\?php&lt;br&nbsp;\/&gt;/'</span><span style="color: #007700">,</span><span style="color: #DD0000">'$1'</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;font&nbsp;color=\"#0000BB\"&gt;?&amp;gt;&lt;/font&gt;\n"</span><span style="color: #007700">,</span><span style="color: #DD0000">''</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">highlight_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$text</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$text&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&lt;code&gt;&lt;font&nbsp;color=\"#000000\"&gt;\n"</span><span style="color: #007700">,</span><span style="color: #DD0000">'&lt;code&gt;&lt;font&nbsp;color="#000000"&gt;'</span><span style="color: #007700">,</span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #DD0000">'&lt;div&nbsp;class="phpsource"&nbsp;style="padding:0.0em&nbsp;10px&nbsp;0.1em&nbsp;10px;margin:&nbsp;5px&nbsp;10px&nbsp;5px&nbsp;20px;font-size:12px;line-height:1.2;height:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$linecount</span><span style="color: #007700">*</span><span style="color: #0000BB">1.2</span><span style="color: #007700">.</span><span style="color: #DD0000">'em;width:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$maxwidth</span><span style="color: #007700">.</span><span style="color: #DD0000">';max-width:'</span><span style="color: #007700">.</span><span style="color: #0000BB">$maxwidth</span><span style="color: #007700">.</span><span style="color: #DD0000">';overflow:auto;"&gt;'</span><span style="color: #007700">.</span><span style="color: #0000BB">$text</span><span style="color: #007700">.</span><span style="color: #DD0000">'&lt;/div&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>どうぞ、お試しあれ！</p>
	<p>実は、同様の拡張を、xoopscube.orgにてwanikooさんが公開されています。<br />
が・・・一部のソースがhtmlspecialcharsがかかって正しい状態にはになっていない<br />
ようですね。<br />
</p>
	<p>-<a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=295&#038;post_id=1817');" onkeypress="javascript:urchinTracker('/outgoing/xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=295&#038;post_id=1817');" href="http://xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=295&#038;post_id=1817" >Code Highlight2 Preload Hack ( XCCodeHighlight Version, for XC )</a><br />
-<a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=296&#038;post_id=1818');" onkeypress="javascript:urchinTracker('/outgoing/xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=296&#038;post_id=1818');" href="http://xoopscube.org/modules/xhnewbb/viewtopic.php?topic_id=296&#038;post_id=1818" >Code Highlight3 Preload Hack ( New xcode version, for XC )</a>
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/11/30/enhance-bbcode-with-delegate/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>$xoopsOption[&#8217;nocommon&#8217;]</title>
		<link>http://www.nobunobu.com/blog/2006/11/12/xoopsoptionnocommon/</link>
		<comments>http://www.nobunobu.com/blog/2006/11/12/xoopsoptionnocommon/#comments</comments>
		<pubDate>Sun, 12 Nov 2006 12:07:27 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/11/12/xoopsoptionnocommon/</guid>
		<description>	XOOPS Cube Legacy2.1では、モジュール開発者向けにモジュールの実行モードを2つ追加しました。
従来のXOOPS 2.0.xでは、モジュール開発者がXOOPSの実行環境を読み込む事によるオーバーヘッドを回避するために、
$xoopsOption[&amp;#8217;nocommon&amp;#8217;]=1;
include &amp;#8216;../../mainfile.php&amp;#8217;;
というように書くと、XOOPS_ROOT_PATH等のmainfile.phpに定義された定数だけを読み込むだけで、include/common.phpのinclude実行を行わない様にすることができます。
XOOPS2.0.xでは、この状態でXOOPSが提供しているfunctions.php等を独自に参照することが可能だったのですが、XOOPS Cube Legacy2.1ではfunctions.php内の関数が、XCube_Root等の XOOPS Cubeクラス群を参照するようになったため、定数を読み込んだだけの状態では、functions.phpのincludeに失敗してしまいます。
そこで、XOOPS Cube Legacy2.1 Beta3-d の時点で、$xoopsOption[&amp;#8217;nocommon&amp;#8217;]が設定されていても、必要最低限のXOOPS Cubeクラス群の初期化を行うように変更しました。
これによってXOOPS2.0.x用のモジュールで$xoopsOption[&amp;#8217;nocommon&amp;#8217;]を指定しているプログラムの大半が稼動可能になったはずです。

 </description>
		<content:encoded><![CDATA[	<p>XOOPS Cube Legacy2.1では、モジュール開発者向けにモジュールの実行モードを2つ追加しました。<br />
従来のXOOPS 2.0.xでは、モジュール開発者がXOOPSの実行環境を読み込む事によるオーバーヘッドを回避するために、</p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:3.6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />$xoopsOption</span><span style="color: #007700">[</span><span style="color: #DD0000">'nocommon'</span><span style="color: #007700">]=</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />include&nbsp;</span><span style="color: #DD0000">'../../mainfile.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>というように書くと、XOOPS_ROOT_PATH等のmainfile.phpに定義された定数だけを読み込むだけで、include/common.phpのinclude実行を行わない様にすることができます。</p>
	<p>XOOPS2.0.xでは、この状態でXOOPSが提供しているfunctions.php等を独自に参照することが可能だったのですが、XOOPS Cube Legacy2.1ではfunctions.php内の関数が、XCube_Root等の XOOPS Cubeクラス群を参照するようになったため、定数を読み込んだだけの状態では、functions.phpのincludeに失敗してしまいます。</p>
	<p>そこで、XOOPS Cube Legacy2.1 Beta3-d の時点で、$xoopsOption['nocommon']が設定されていても、必要最低限のXOOPS Cubeクラス群の初期化を行うように変更しました。<br />
これによってXOOPS2.0.x用のモジュールで$xoopsOption['nocommon']を指定しているプログラムの大半が稼動可能になったはずです。</p>
	<p>しかしながら、$xoopsOption['nocommon']を指定する目的の大半が、特定処理のオーバーヘッド軽減による高速化であったことから、この「必要最低限のXOOPS Cubeクラス群の初期化」でさえも重く感じる場合があるようです。<br />
何人かのメンバーとの討議の結果、新たに2つのPHP定数を用意して、これらのモジュール開発者の要望の期待に答えることにしました。 既存の$xoopsOptionでは無くPHP定数にしたのは、新たなグローバル変数の定義をコアチームとしては避けたかったからです。<br />
<a id="more-32"></a><br />
モジュールプログラム内で、この2つのPHP定数を使用する方法は以下のとおりです。<br />
<b>1. 単純にmainfile.phpで定義されている定数を参照したい場合</b></p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:3.6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />define</span><span style="color: #007700">(</span><span style="color: #DD0000">'_LEGACY_PREVENT_LOAD_CORE_'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />include&nbsp;</span><span style="color: #DD0000">'../../mainfile.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>上記指定によってmainfile.phpを読み込むことによって、XOOPS_URLなどの定数参照が可能になります。但しこの状態では、XOOPS Cube Legacyが提供しているファイルをincludeすることはたいていの場合エラーとなります。もし、データベースにアクセスする場合には、XOOPS_DB_HOST、XOOPS_DB_USERなどの定数を元にして直接PHPのmysql関数群を呼び出す必要があります。</p>
	<p><b>2. XOOPSのクラスや関数群をある程度のコントロールしの元に読み込んで、オーバーヘッドを減らしたい。</b></p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:3.6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />define</span><span style="color: #007700">(</span><span style="color: #DD0000">'_LEGACY_PREVENT_EXEC_COMMON_'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />include&nbsp;</span><span style="color: #DD0000">'../../mainfile.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>この記述は、XOOPS Cube Legacy2.1 Beta3-d の時点での、</p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:3.6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />$xoopsOption</span><span style="color: #007700">[</span><span style="color: #DD0000">'nocommon'</span><span style="color: #007700">])=</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />include&nbsp;</span><span style="color: #DD0000">'../../mainfile.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>と等価で、この記述方法もまだ対応していますが、$xoopsOption['nocommon']はXOOPS Cube Legacy2.1では非推奨とします。<br />
上記指定の場合には、mainfile.php内での定数定義に加えて、include/cubecore_init.phpが読み込まれます。<br />
cubecore_init.phpでは、XCube_Rootシングルトンインスタンスの生成及び、settings下のiniファイルに基づいてコントローラの初期化（通常はLegacy_Controllerの初期化）を行います。これによって、include/functions.phpの中ででDBアクセスを伴わない関数を中心とした幾つかが使用可能となります。<br />
さらに、</p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />define</span><span style="color: #007700">(</span><span style="color: #DD0000">'_LEGACY_PREVENT_EXEC_COMMON_'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />include&nbsp;</span><span style="color: #DD0000">'../../mainfile.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$root</span><span style="color: #007700">=&amp;</span><span style="color: #0000BB">XCube_Root</span><span style="color: #007700">::</span><span style="color: #0000BB">getSingleton</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$root</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeCommonSubset</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>というように、Legacy_Contorollerに新たに追加したexecuteCommonSubsetを呼び出すことによって、<br />
DBアクセスをはじめとして、Legacyのかなりの範囲のクラスメソッドを含めて利用することができます。<br />
executeCommonSubset()は、executeCommon()内の処理のうちで、preloadフォルダ内のActionFilter呼び出しとか、ユーザー認証及びセッション管理、xoopsConfigの読み込み、モジュール情報の初期化などを省いたサブセットとなっています。これらを省くことによって、処理の内容によってはかなりの高速化が見込めることとなります。<br />
executeCommonSubset(false)と関数パラメータにfalseを設定することによってさらにDB接続処理のスキップも可能です。<br />
legacyモジュールでもadmin/css.phpという管理画面のスタイルシートのフォールバック対応処理について、<br />
このモードで稼動するように変更したことによって、処理時間を半分以下に短縮することが可能になりました。<br />
これらの新しい動作モード定数の仕様については、現在はCVSに投入されており、<a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/xoops.sourceforge.jp/snapshot/');" onkeypress="javascript:urchinTracker('/outgoing/xoops.sourceforge.jp/snapshot/');" href="http://xoops.sourceforge.jp/snapshot/" >XOOPS Cube Legacy 2.1 Beta CVS Snapshot</a>より取得可能ですが、すでにXOOPS Cube legacyを使用している方は、mainfile.phpの修正が必要です。</p>
	<p><b>2.1 Beta3-c以前</b></p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:4.8em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if&nbsp;(!isset(</span><span style="color: #0000BB">$xoopsOption</span><span style="color: #007700">[</span><span style="color: #DD0000">'nocommon'</span><span style="color: #007700">])&nbsp;&amp;&amp;&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH</span><span style="color: #007700">.</span><span style="color: #DD0000">'/include/common.php'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>または、<br />
<b>2.1 Beta3-d以降</b></p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:6em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">@include_once&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH</span><span style="color: #007700">.</span><span style="color: #DD0000">'/include/cubecore_init.php'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$xoopsOption</span><span style="color: #007700">[</span><span style="color: #DD0000">'nocommon'</span><span style="color: #007700">])&nbsp;&amp;&amp;&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH</span><span style="color: #007700">.</span><span style="color: #DD0000">'/include/common.php'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>を</p>
	<div class="phpsource" style="padding:0.0em 10px 0.1em 10px;margin: 5px 10px 5px 20px;font-size:12px;line-height:1.2;height:8.4em;width:85%;max-width:85%;overflow:auto;">
<code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #DD0000">'_LEGACY_PREVENT_LOAD_CORE_'</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@include_once&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH</span><span style="color: #007700">.</span><span style="color: #DD0000">'/include/cubecore_init.php'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset(</span><span style="color: #0000BB">$xoopsOption</span><span style="color: #007700">[</span><span style="color: #DD0000">'nocommon'</span><span style="color: #007700">])&nbsp;&amp;&amp;&nbsp;!</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #DD0000">'_LEGACY_PREVENT_EXEC_COMMON_'</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;</span><span style="color: #0000BB">XOOPS_ROOT_PATH</span><span style="color: #007700">.</span><span style="color: #DD0000">'/include/common.php'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">?&gt;</span><br />
</span>
</code>
</div>
	<p>に変更していただく必要があります。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/11/12/xoopsoptionnocommon/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>XOOPS Cube Legacy2.1 BetaのXoopsErrorHandler</title>
		<link>http://www.nobunobu.com/blog/2006/11/04/xoops-cube-legacy21xoopserrorhandler/</link>
		<comments>http://www.nobunobu.com/blog/2006/11/04/xoops-cube-legacy21xoopserrorhandler/#comments</comments>
		<pubDate>Sat, 04 Nov 2006 17:35:32 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/11/04/xoops-cube-legacy21xoopserrorhandler/</guid>
		<description>	少し時間がたちますけど、GIJOEさんの記事、「Cube2.1betaをデバッグする前に」
で、XoopsErrorHandlerの復活について書かれていましたが・・・・

 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>少し時間がたちますけど、GIJOEさんの記事、<a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/xoops.peak.ne.jp/md/news/index.php?page=article&#038;storyid=379&#038;easiestml_lang=xlang%3Aja');" onkeypress="javascript:urchinTracker('/outgoing/xoops.peak.ne.jp/md/news/index.php?page=article&#038;storyid=379&#038;easiestml_lang=xlang%3Aja');" href="http://xoops.peak.ne.jp/md/news/index.php?page=article&#038;storyid=379&#038;easiestml_lang=xlang%3Aja" >「Cube2.1betaをデバッグする前に」</a>で、XoopsErrorHandlerの復活について書かれていましたが・・・・</p>
	<p>引用：<br />
<div class="xoopsQuote">
<blockquote>
このあたり、エラーハンドラの有効無効を選択式にする、という話をminahitoさんから聞いていたような気もするのですが、ぱっと見で一般設定には見つからないので・・・・・<br />
</blockquote>
</div>
	<p>この部分、minaitoさんの意図はXOOPS Cube Legacy2.1から、デバッグマネージャの初期化がDelegateによって実装されたこともあって、preloadで換装できますという意味だと思います。
<a id="more-31"></a><br />
ということでpreloadの実装サンプルです。<br />
/preload/DisableErrorHandler.class.phpというファイル名で、</p>
	<div class="phpsource" style="height:36.6em;">
<code><span style="color: #000000"><br />
<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">DisableErrorHandler&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">XCube_ActionFilter<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">preFilter</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mSetupDebugger</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">reset</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mSetupDebugger</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'My_DebuggerManager::createInstance'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />class&nbsp;</span><span style="color: #0000BB">My_DebuggerManager&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Legacy_DebuggerManager<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">createInstance</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">$instance</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$debug_mode</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">is_object</span><span style="color: #007700">(</span><span style="color: #0000BB">$instance</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(</span><span style="color: #0000BB">$debug_mode</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">XOOPS_DEBUG_PHP</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$instance&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">My_PHPDebugger</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">XOOPS_DEBUG_MYSQL</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$instance&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">My_MysqlDebugger</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">XOOPS_DEBUG_SMARTY</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$instance&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">My_SmartyDebugger</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;</span><span style="color: #0000BB">XOOPS_DEBUG_OFF</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$instance&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Legacy_NonDebugger</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />class&nbsp;</span><span style="color: #0000BB">My_PHPDebugger&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Legacy_PHPDebugger<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">error_reporting</span><span style="color: #007700">(</span><span style="color: #0000BB">E_ALL</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'xoopsErrorHandler'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />class&nbsp;</span><span style="color: #0000BB">My_MysqlDebugger&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Legacy_MysqlDebugger<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'xoopsErrorHandler'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />class&nbsp;</span><span style="color: #0000BB">My_SmartyDebugger&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">Legacy_SmartyDebugger<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'xoopsErrorHandler'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span><br />
</span>
</code>
</div>
	<p>という内容でpreloadを作成すると、xoopsErrorHandlerをすべて無効にすることができます。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/11/04/xoops-cube-legacy21xoopserrorhandler/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>Eclipse PHP IDE 0.7</title>
		<link>http://www.nobunobu.com/blog/2006/11/01/eclipse-php-ide-07/</link>
		<comments>http://www.nobunobu.com/blog/2006/11/01/eclipse-php-ide-07/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 23:45:17 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>雑記</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/11/01/eclipse-php-ide-07/</guid>
		<description>	Eclipse環境下のPHP IDEが、ZendやIBM支援の下でEclipse Project下で開発途上ですが、10月末に一挙にバージョンが0.7にあがって、stable buildとして、S20061026-M3がリリースされてました。
今までのリリースも何度となくダウンロードしてはテストをしていましたが、デバッグ環境が最近のバージョンではかなりの進歩を見せています。
従来のバージョンでは、ある決まったURLに対してのリクエストに対してのみのデバッグしかできず、単体テストレベルのデバッグしか行えなかったのですが、今回ダウンロードしたバージョンでは、ブラウザーでの対話中もデバッグが有効なままなので、任意箇所にブレークポイントを設定して、通常の対話シーケンスの中でのデバッグかかなり楽にできるようになりました。
	簡単に言うと、今までは単純なGETリクエストのページのデバッグしかできなかったのが、POSTリクエストによるデータ更新なども簡単にトレースを取ることができるようになったということです。
	WEBサーバと連携してのデバッグには、別途ZendFrameworkをダウンロードしてその中のZendDebugger.soをWEBサーバのPHP Extentionとして登録し、さらにEclipseを稼動させるPCのIPアドレスをphp.ini内にデバッグ許可端末として追加してあげる必要があります。
つまり、php.iniに
	


zend_extension=&amp;quot;/usr/lib/php4/20050606/ZendDebugger.so&amp;quot;
zend_debugger.allow_hosts=192.168.252.254



	のような行追加が必要となります。
	Eclipse PHP IDE では、minahito氏が絶賛しているVS.PHPに比べると使い勝手は少し落ちますが、VS.PHPと同様にphpdoc形式のコメントを元にしたソース編集時の入力補助機能もありますので、無償ということを考えると、今までのEclipse環境下のTruStudioやphpeclipseに比べても、
かなりお勧めだと思います。
	いずれにせよ、このようなデバッグ可能な開発ツールでXOOPS Cubeをステップ実行させると、どのようにしてXOOPS Cubeが動作しているかを目に見える形で理解するための良いツールとなるでしょう。

 </description>
		<content:encoded><![CDATA[	<p>Eclipse環境下の<a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/www.eclipse.org/php/');" onkeypress="javascript:urchinTracker('/outgoing/www.eclipse.org/php/');" href="http://www.eclipse.org/php/" >PHP IDE</a>が、ZendやIBM支援の下でEclipse Project下で開発途上ですが、10月末に一挙にバージョンが0.7にあがって、stable buildとして、S20061026-M3がリリースされてました。<br />
今までのリリースも何度となくダウンロードしてはテストをしていましたが、デバッグ環境が最近のバージョンではかなりの進歩を見せています。<br />
従来のバージョンでは、ある決まったURLに対してのリクエストに対してのみのデバッグしかできず、単体テストレベルのデバッグしか行えなかったのですが、今回ダウンロードしたバージョンでは、ブラウザーでの対話中もデバッグが有効なままなので、任意箇所にブレークポイントを設定して、通常の対話シーケンスの中でのデバッグかかなり楽にできるようになりました。</p>
	<p>簡単に言うと、今までは単純なGETリクエストのページのデバッグしかできなかったのが、POSTリクエストによるデータ更新なども簡単にトレースを取ることができるようになったということです。</p>
	<p>WEBサーバと連携してのデバッグには、別途ZendFrameworkをダウンロードしてその中のZendDebugger.soをWEBサーバのPHP Extentionとして登録し、さらにEclipseを稼動させるPCのIPアドレスをphp.ini内にデバッグ許可端末として追加してあげる必要があります。<br />
つまり、php.iniに</p>
	<div class="xoopsCode">
<pre>
<code>
zend_extension=&quot;/usr/lib/php4/20050606/ZendDebugger.so&quot;
zend_debugger.allow_hosts=192.168.252.254
</code>
</pre>
</div>
	<p>のような行追加が必要となります。</p>
	<p>Eclipse PHP IDE では、minahito氏が絶賛しているVS.PHPに比べると使い勝手は少し落ちますが、VS.PHPと同様にphpdoc形式のコメントを元にしたソース編集時の入力補助機能もありますので、無償ということを考えると、今までのEclipse環境下のTruStudioやphpeclipseに比べても、<br />
かなりお勧めだと思います。</p>
	<p>いずれにせよ、このようなデバッグ可能な開発ツールでXOOPS Cubeをステップ実行させると、どのようにしてXOOPS Cubeが動作しているかを目に見える形で理解するための良いツールとなるでしょう。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/11/01/eclipse-php-ide-07/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>OSC 2006 Tokyo/Fall</title>
		<link>http://www.nobunobu.com/blog/2006/10/31/osc-2006-tokyofall/</link>
		<comments>http://www.nobunobu.com/blog/2006/10/31/osc-2006-tokyofall/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 00:40:06 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/10/31/osc-2006-tokyofall/</guid>
		<description>	10月28日に日本電子専門学校にて開催されました、オープンソースカンファレンス2006 Tokyo/Fall（OSC2006 Tokyo/Fall) のセミナーでの発表に使用させていただいた資料を公開させていただきました。
準備不足もあって、十分な内容の資料とはなっておりませんが、ご参考まで。
	- 資 料 -

 </description>
		<content:encoded><![CDATA[	<p>10月28日に日本電子専門学校にて開催されました、オープンソースカンファレンス2006 Tokyo/Fall（OSC2006 Tokyo/Fall) のセミナーでの発表に使用させていただいた資料を公開させていただきました。<br />
準備不足もあって、十分な内容の資料とはなっておりませんが、ご参考まで。</p>
	<p><a href="http://www.nobunobu.com/documents/OSC2006Fall.html" >- 資 料 -</a>
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/10/31/osc-2006-tokyofall/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>XOOPS Cube Legacy 2.1 Beta2に入れ替えました</title>
		<link>http://www.nobunobu.com/blog/2006/10/30/enupgrade-toenxoops-cube-legacy-21-beta2jaja/</link>
		<comments>http://www.nobunobu.com/blog/2006/10/30/enupgrade-toenxoops-cube-legacy-21-beta2jaja/#comments</comments>
		<pubDate>Mon, 30 Oct 2006 21:28:18 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/10/30/enupgrade-toenxoops-cube-legacy-21-beta2jaja/</guid>
		<description>	当サイトをXOOPS Cube Legacy2.1 Beta2に入れ替えました。
cubeUtilsモジュールをはじめ、いくつかのカスタムプリロードもBeta2で正常動作するように修正しました。

 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>当サイトをXOOPS Cube Legacy2.1 Beta2に入れ替えました。<br />
cubeUtilsモジュールをはじめ、いくつかのカスタムプリロードもBeta2で正常動作するように修正しました。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/10/30/enupgrade-toenxoops-cube-legacy-21-beta2jaja/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>cubeUtils Version 0.5</title>
		<link>http://www.nobunobu.com/blog/2006/10/22/cubeutils-version-05/</link>
		<comments>http://www.nobunobu.com/blog/2006/10/22/cubeutils-version-05/#comments</comments>
		<pubDate>Sun, 22 Oct 2006 00:23:02 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/10/22/cubeutils-version-05/</guid>
		<description>	XOOPS Cube2.1 Betaに対応したcubeUtils Ver0.5をリリースしました。

 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>XOOPS Cube2.1 Betaに対応した<a href="http://www.nobunobu.com/documents/XOOPSCube2_1/PreloadSample/CubeUtils.html" >cubeUtils Ver0.5</a>をリリースしました。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/10/22/cubeutils-version-05/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>cubeUtils Version 0.3</title>
		<link>http://www.nobunobu.com/blog/2006/09/04/cubeutils-version-03/</link>
		<comments>http://www.nobunobu.com/blog/2006/09/04/cubeutils-version-03/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 22:04:26 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/09/04/cubeutils-version-03/</guid>
		<description>	plusangelさんからxoopscube.orgのフォーラムでレポート頂いた不具合に対応した、cubeUtils Ver0.3をリリースしました。
Wiki


 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>plusangelさんからxoopscube.orgのフォーラムでレポート頂いた不具合に対応した、<a href="http://www.nobunobu.com/documents/XOOPSCube2_1/PreloadSample/CubeUtils.html" >cubeUtils Ver0.3</a>をリリースしました。</p>
	<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Loginブロック内で取得しているパラメータの参照先を修正</li>
</ul>
	<p>
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/09/04/cubeutils-version-03/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>cubeUtils Version 0.2</title>
		<link>http://www.nobunobu.com/blog/2006/09/03/cubeutils-02/</link>
		<comments>http://www.nobunobu.com/blog/2006/09/03/cubeutils-02/#comments</comments>
		<pubDate>Sun, 03 Sep 2006 01:23:38 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/09/03/cubeutils-02/</guid>
		<description>	GIJOEさんからコメント頂いた不具合に対応した、cubeUtils Ver0.2をリリースしました。
Wiki


 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p><a class="ext" target="_blank" onclick="javascript:urchinTracker('/outgoing/www.peak.ne.jp/xoops/?easiestml_lang=xlang%3Aja');" onkeypress="javascript:urchinTracker('/outgoing/www.peak.ne.jp/xoops/?easiestml_lang=xlang%3Aja');" href="http://www.peak.ne.jp/xoops/?easiestml_lang=xlang%3Aja" >GIJOE</a>さんからコメント頂いた不具合に対応した、<a href="http://www.nobunobu.com/documents/XOOPSCube2_1/PreloadSample/CubeUtils.html" >cubeUtils Ver0.2</a>をリリースしました。</p>
	<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>xoops_version.phpのTYPO修正</li>
	<li>Auto Login直後リロードしないと、ゲストユーザと同等画面しか表示されなかった。</li>
</ul>
	<p>
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/09/03/cubeutils-02/feed/</wfw:commentRSS>
        	</item>
		<item>
		<title>cubeUtils Module 放流</title>
		<link>http://www.nobunobu.com/blog/2006/08/21/cubeutils-module-jaja/</link>
		<comments>http://www.nobunobu.com/blog/2006/08/21/cubeutils-module-jaja/#comments</comments>
		<pubDate>Mon, 21 Aug 2006 23:35:06 +0000</pubDate>
		<author>nobunobu</author>
		
	<category>Cube2.1情報</category>		<guid isPermaLink="true">http://www.nobunobu.com/blog/2006/08/21/cubeutils-module-jaja/</guid>
		<description>	XOOPS Cube2.1のカストマイズ柔軟性実証モジュールとして、cubeUtilsモジュールを公開します。
詳しくは、資料室をご覧下さい。

 </description>
		<content:encoded><![CDATA[<a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=ja"><img src="http://www.nobunobu.com/modules/cubeUtils/images/japanese.gif" alt="flag" title="japanese" /></a><a rel="nofollow" href="/blog/author/nobunobu/feed/?ml_lang=en"><img src="http://www.nobunobu.com/modules/cubeUtils/images/english.gif" alt="flag" title="english" /></a>	<p>XOOPS Cube2.1のカストマイズ柔軟性実証モジュールとして、<a href="http://www.nobunobu.com/documents/XOOPSCube2_1/PreloadSample/CubeUtils.html" >cubeUtilsモジュール</a>を公開します。<br />
詳しくは、<a href="http://www.nobunobu.com/documents/" >資料室</a>をご覧下さい。
</p>
]]></content:encoded>
		<wfw:commentRSS>http://www.nobunobu.com/blog/2006/08/21/cubeutils-module-jaja/feed/</wfw:commentRSS>
        	</item>
	</channel>
</rss>