<?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>最优良人 &#187; webcontrol</title>
	<atom:link href="http://www.zui88.com/view-tag/webcontrol/feed" rel="self" type="application/rss+xml" />
	<link>http://www.zui88.com/blog</link>
	<description>中山php&#124;最优网络</description>
	<lastBuildDate>Mon, 13 May 2013 04:56:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>FleaPHP页面控件 WebControls的使用</title>
		<link>http://www.zui88.com/blog/view-131.html</link>
		<comments>http://www.zui88.com/blog/view-131.html#comments</comments>
		<pubDate>Tue, 16 Aug 2011 02:31:18 +0000</pubDate>
		<dc:creator>lin</dc:creator>
				<category><![CDATA[后端程序]]></category>
		<category><![CDATA[fleaphp]]></category>
		<category><![CDATA[webcontrol]]></category>

		<guid isPermaLink="false">http://www.zui88.com/blog/?p=131</guid>
		<description><![CDATA[如果不使用模板引擎，需要先注册控件 $ui =&#38; FLEA::initWebControls() ;其实就是返回控件的实例，该函数的代码是 00662 function &#38; initWebControls() 00663 { 00664 return FLEA::getSingleton(FLEA::getAppInf('webControlsClassName')); 00665 } 'webControlsClassName'默认是FLEA目录下的webControls类，该类封装了页面组件的实现，以及一些常用的页面控件，在找不到这些自带控件的时候就会去尝试搜索我们自定义的以_ctl开头的控件 /** * 构造一个控件的 HTML 代码 * * @param string $type * @param string $name * @param array $attribs * @param boolean $return * * @return string */ function control($type, $name, $attribs = null, $return = false) { $type [...]]]></description>
			<content:encoded><![CDATA[<p>如果不使用模板引擎，需要先注册控件 $ui =&amp; FLEA::initWebControls() ;其实就是返回控件的实例，该函数的代码是</p>
<p><span style="color: #800080;">00662</span>     function &amp; <span style="color: #800080;">initWebControls</span>()<br />
<a name="l00663"></a>00663     {<br />
<a name="l00664"></a>00664         <span class="keywordflow">return</span> <span style="color: #800080;">FLEA::getSingleton</span>(<span style="color: #800080;">FLEA::getAppInf</span>('webControlsClassName'));<br />
<a name="l00665"></a>00665     }</p>
<p>'webControlsClassName'默认是FLEA目录下的webControls类，该类封装了页面组件的实现，以及一些常用的页面控件，在找不到这些自带控件的时候就会去尝试搜索我们自定义的以_ctl开头的控件</p>
<p>    /**<br />
     * 构造一个控件的 HTML 代码<br />
     *<br />
     * @param string $type<br />
     * @param string $name<br />
     * @param array $attribs<br />
     * @param boolean $return<br />
     *<br />
     * @return string<br />
     */<br />
    function control($type, $name, $attribs = null, $return = false)<br />
    {<br />
        $type = strtolower($type);<br />
        $render = '_ctl' . ucfirst($type);<br />
        $attribs = (array)$attribs;</p>
<p>        $__ctl_out = false;<br />
        if (method_exists($this, $render)) {<br />
            $__ctl_out = $this-&gt;{$render}($name, $attribs);<br />
        } else {<br />
            $extfilename = ucfirst($type) . '.php';<br />
            if (!isset($this-&gt;_extends[$type])) {<br />
                foreach ($this-&gt;_extendsDir as $dir) {<br />
                    if (file_exists($dir . DS . $extfilename)) {<br />
                        require($dir . DS . $extfilename);<br />
                        $this-&gt;_extends[$type] = true;<br />
                        break;<br />
                    }<br />
                }<br />
            }</p>
<p>            if (isset($this-&gt;_extends[$type])) {<br />
                $__ctl_out = call_user_func_array($render,<br />
                        array('name' =&gt; $name, 'attribs' =&gt; $attribs));<br />
            }<br />
        }</p>
<p>        if ($__ctl_out === false) {<br />
            $__ctl_out = "INVALID CONTROL TYPE \"{$type}\"";<br />
        }</p>
<p>        if ($return) { return $__ctl_out; }<br />
        echo $__ctl_out;<br />
        return '';<br />
    }</p>
<p>实例化控件之后，在模版（也就是 .php）中：</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><!--</p>
<p>Code highlighting produced by Actipro CodeHighlighter (freeware)</p>
<p>http://www.CodeHighlighter.com/</p>
<p>--><span style="color: #008080;">1</span> <span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br />
</span><span style="color: #008080;">2</span> <span style="color: #000000;"> </span><span style="color: #800080;">$ui</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">control(</span><span style="color: #000000;">'</span><span style="color: #000000;">textbox</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;"> </span><span style="color: #000000;">'</span><span style="color: #000000;">username</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">array</span><span style="color: #000000;">(<br />
</span><span style="color: #008080;">4</span> <span style="color: #000000;">        </span><span style="color: #000000;">'</span><span style="color: #000000;">class</span><span style="color: #000000;">'</span><span style="color: #000000;"> </span><span style="color: #000000;">=&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">'</span><span style="color: #000000;">textbox</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span> <span style="color: #000000;">        </span><span style="color: #000000;">'</span><span style="color: #000000;">size</span><span style="color: #000000;">'</span><span style="color: #000000;"> </span><span style="color: #000000;">=&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">28</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">6</span> <span style="color: #000000;">        </span><span style="color: #000000;">'</span><span style="color: #000000;">maxlength</span><span style="color: #000000;">'</span><span style="color: #000000;"> </span><span style="color: #000000;">=&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">22</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">7</span> <span style="color: #000000;">    )<br />
</span><span style="color: #008080;">8</span> <span style="color: #000000;">);<br />
</span><span style="color: #008080;">9</span> <span style="color: #000000;">?&gt;</span></div>
<p>如果使用smarty，调用方式就是:</p>
<p>{ webcontrol type='textbox' value=$textbox_value }<br />
系统会自动去实例化控件对象</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zui88.com/blog/view-131.html/feed</wfw:commentRss>
		<slash:comments>318</slash:comments>
		</item>
	</channel>
</rss>
