CakePHP開発のhelpers


helperはその名の通りヘルプクラスであり、主にビュービュービュー層に用いられる.
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\",
"; return $this->javascript->codeBlock(" tinyMCE.init({ $configs }); "); } }

OK helperを定義したら
また、対応するコントローラに導入する必要があります.
//  helpers  
var $helpers = array('Html','Tinymce');

コントローラの初期化のたびにロードされることを望んでいない場合があります.
対応アクションでは、次のように導入されます.
$this->helpers[] = 'Tinymce';

では、今、viewで使用する必要があります.
//     
echo $tinymce->init();

これにより、viewでtextareasがエディタにロードされた効果を見ることができます.