CakePHP开发之helpers

本文详细介绍了CakePHP中Helper的概念及应用方式。Helper是用于视图层处理重复性任务的类库,例如编辑器组件。文章通过实例展示了如何创建自定义Helper,并在控制器和视图中调用。
[b]helper顾名思义就是帮助类,主要运用于视图view层.[/b]

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

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

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

helper其实就是一个类库,他的命名也应该遵循CakePHP的相关{[url=http://lesorb.iteye.com/blog/735230]变形[/url]}法则.

像引入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之后,我们[b]还需要在相应的controller中引入[/b]它:

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


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

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



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

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


这样,你就可以在view中看到textareas被加载上编辑器的效果了.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值