23
3月
CakePHP1.1でFCKEditorヘルパー作成
CakePHPにFCKEditorを設置するためにググってたらFCKeditor – 設置編を見つけました。ん~ずいぶん古い記事ですね。Javascript書けば良いだけなんで手軽ですが使いたい場所でホイっと使えるようにヘルパーにしたい。ということで再度探すとCakePHP1.2RC3でFCK Editorを使うを見つけました。おお~…でも今回使っているのは諸事情によりCakePHP1.1なんです。
cakePHPでFCKeditorを使う(cakePHP1.1x系)も見つけたんですが、こりゃただJavascriptを吐いてるだけですね。この後ファイルアップロード云々するためにはPHPでやっておきたいのでCakePHP1.2RC3でFCK Editorを使うをCakePHP1.1用に書き直すことにしました。…と言ってもほとんど変わりません。強いて言えばデフォルト値を読み込めるようにしたことでしょうか。
<?php
vendor('fckeditor/fckeditor');
class FckHelper extends Helper
{
var $helpers = array('Html', 'Form');
function textarea($fieldName, $options = array())
{
$defaultOptions = array(
'value' => $this->Html->tagValue($fieldName),
'width' => '100%',
'height' => '300',
'toolbar' => 'Basic',
);
$options = array_merge($defaultOptions, $options);
$fieldName = explode('/', $fieldName);
$editor_name = "data";
if (count($fieldName) > 1) {
foreach ($fieldName as $key) {
$editor_name .= "[{$key}]";
}
} else {
$model = $this->Form->params['models'][0];
$editor_name .= "[{$model}][{$fieldName[0]}]";
}
$oFCKeditor = new FCKeditor($editor_name) ;
$oFCKeditor->BasePath = '/js/fckeditor/';
$oFCKeditor->Value = $options['value'];
$oFCKeditor->Width = $options['width'];
$oFCKeditor->Height = $options['height'];
$oFCKeditor->ToolbarSet = $options['toolbar'];
return $oFCKeditor->CreateHtml();
}
}
?>