CakePHP开发之helpers

helper顾名思义就是帮助类,主要运用于视图view层.

CakePHP在设计之初就充分考虑到了扩充性,在view中,常常会遇到需要处理的并且会多次重复使用到的框架,元素,部份数据...譬如:图表,编辑器等.

这个时候,就是helper大显身手的时候:

在CakePHP中, helper一般位于app/view/helper/目录下,当然这里指的是自己扩充的helper.

helper其实就是一个类库,他的命名也应该遵循CakePHP的相关{ 变形}法则.

像引入Tinymce编辑器的一个常用的helper帮助类如下:

class TinymceHelper extends Helper{
	// to do ...

	//在helpers中引入其它helper
	var $helpers = array('javascript');
	
	//变量,规定tiny_mce.js的存放相对路径
	var $tinymce_url = 'tiny_mce.js';

	var $options = array(
		'mode' => 'textareas',
		'elements' => "NodeBody",
		'theme' => 'advanced',
		'plugins' =>"..."
	);

	function init($options = false){
		$configs = '';

		if(isset($this->javascript))
			echo $this->javascript->link($this->tinymce_src);

		$this->options = ($options && is_array($options))?array_merge($this->$options, $options):$this->$options;

		foreach($this->options as $k=>$v)
			$configs .= "$k : \"$v\",\n";


		return $this->javascript->codeBlock("
			tinyMCE.init({
				$configs
			});
		");
	}

}



ok,这样定义好helper之后,我们 还需要在相应的controller中引入它:

//定义helpers变量
var $helpers = array('Html','Tinymce');


有的时候并不希望它在每次controller初始化都被加载,则可以在想要使用的 对应action中这样来引入:

$this->helpers[] = 'Tinymce';



好了,现在,你要做的就是在view中来使用它了:

//默认的加载
echo $tinymce->init();


这样,你就可以在view中看到textareas被加载上编辑器的效果了.

你可能感兴趣的:(JavaScript,框架,PHP,tinymce,cakephp)