<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dominic.Xu&#039;s 博客 &#187; 参数</title>
	<atom:link href="http://xuplus.com/article/tag/%e5%8f%82%e6%95%b0/feed" rel="self" type="application/rss+xml" />
	<link>http://xuplus.com</link>
	<description>Web 2.0 生活</description>
	<lastBuildDate>Wed, 24 Aug 2011 05:26:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Xoops中获取模块配置参数的方法。</title>
		<link>http://xuplus.com/article/2008/03/a92.html</link>
		<comments>http://xuplus.com/article/2008/03/a92.html#comments</comments>
		<pubDate>Fri, 28 Mar 2008 02:59:54 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[XOOPS]]></category>
		<category><![CDATA[参数]]></category>

		<guid isPermaLink="false">http://xuplus.com/article/2008/03/a92.html</guid>
		<description><![CDATA[Xoops群（53219504，17380705）中有人询问在开发的时候，怎样获取在xoops_version.php中添加的参数值。其实Xoops中统一管理模块的参数是非常好的一种做法（将在下一个平台性项目中借鉴这个做法），获取的方法也非常简单，针对不同的情况可以分别实现如下： 1、更改现有模块代码，且现有模块代码中包含了全局性变量$xoopsModuleConfig的情况 这种情况比较简单： global $xoopsModuleConfig; $configvalue=$xoopsModuleConfig["xxxx"]; //xxxx为xoops_vesion.php中定义的参数对应名称 2、现有模块代码中不包含$xoopsModuleConfig或者自行开发简单模块且不使用Framework $module_handler = &#38;xoops_gethandler('module');//获取module句柄$module_handler $module = $module_handler-&#62;getByDirname("xxx");//xxx为模块目录名称，获取特定module操作句柄$module $config_handler = &#38;xoops_gethandler('config');//获取config的句柄$config_handler $criteria = new CriteriaCompo(new Criteria('conf_modid', $module-&#62;getVar('mid')));// 根据上述module的id构建查询参数$criteria $configs =&#38; $config_handler-&#62;getConfigs($criteria);//用config句柄获得特定module的参数配置结果集 foreach(array_keys($configs) as $i) { $moduleConfig[$configs[$i]-&#62;getVar('conf_name')] = $configs[$i]-&#62;getConfValueForOutput();//转化成数组 } unset($configs); 之后直接使用$moduleConfig['xxxx']就可以访问了，也可以把$moduleConfig设置为全局变量。 3、使用Framework的模块 load_functions("config"); $moduleConfig = mod_loadConfg("moduledirname"); 使用Framework的情况可以参考article中代码。 标签： XOOPS, 参数]]></description>
			<content:encoded><![CDATA[<p>Xoops群（53219504，17380705）中有人询问在开发的时候，怎样获取在xoops_version.php中添加的参数值。其实Xoops中统一管理模块的参数是非常好的一种做法（将在下一个平台性项目中借鉴这个做法），获取的方法也非常简单，针对不同的情况可以分别实现如下：</p>
<p>1、更改现有模块代码，且现有模块代码中包含了全局性变量$xoopsModuleConfig的情况</p>
<p>这种情况比较简单：</p>
<pre class="csharpcode">global $xoopsModuleConfig;
$configvalue=$xoopsModuleConfig[<span class="str">"xxxx"</span>];
//xxxx为xoops_vesion.php中定义的参数对应名称</pre>
<p>2、现有模块代码中不包含$xoopsModuleConfig或者自行开发简单模块且不使用Framework</p>
<pre class="csharpcode">$module_handler = &amp;<a href="http://xuplus.com/article/tag/xoops" class="st_tag internal_tag" rel="tag" title="标签 XOOPS 下的日志">xoops</a>_gethandler(<span class="str">'module'</span>);<span class="rem">//获取module句柄$module_handler</span>
$module = $module_handler-&gt;getByDirname(<span class="str">"xxx"</span>);<span class="rem">//xxx为模块目录名称，获取特定module操作句柄$module</span>
$config_handler = &amp;xoops_gethandler(<span class="str">'config'</span>);<span class="rem">//获取config的句柄$config_handler</span>
$criteria = <span class="kwrd">new</span> CriteriaCompo(<span class="kwrd">new</span> Criteria(<span class="str">'conf_modid'</span>, $module-&gt;getVar(<span class="str">'mid'</span>)));<span class="rem">// 根据上述module的id构建查询参数$criteria</span>
$configs =&amp; $config_handler-&gt;getConfigs($criteria);<span class="rem">//用config句柄获得特定module的参数配置结果集</span>

<span class="kwrd">foreach</span>(array_keys($configs) <span class="kwrd">as</span> $i)
{
$moduleConfig[$configs[$i]-&gt;getVar(<span class="str">'conf_name'</span>)] = $configs[$i]-&gt;getConfValueForOutput();<span class="rem">//转化成数组</span>
}
unset($configs);</pre>
<p>之后直接使用$moduleConfig['xxxx']就可以访问了，也可以把$moduleConfig设置为全局变量。</p>
<p>3、使用Framework的模块</p>
<pre class="csharpcode">load_functions(<span class="str">"config"</span>);
$moduleConfig = mod_loadConfg(<span class="str">"moduledirname"</span>);</pre>
<p>使用Framework的情况可以参考article中代码。</p>
<style type="text/css">
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }
</style>

	标签： <a href="http://xuplus.com/article/tag/xoops" title="XOOPS" rel="tag">XOOPS</a>, <a href="http://xuplus.com/article/tag/%e5%8f%82%e6%95%b0" title="参数" rel="tag">参数</a><br />
]]></content:encoded>
			<wfw:commentRss>http://xuplus.com/article/2008/03/a92.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

