我有一个关于在CakePHP中实现WYSIWYG编辑器的问题。我正在为我工作的员工开发内部网。我目前正在使用CakePHP 1.3。我找到了这个存储库
https://github.com/josegonzalez/cakephp-wysiwyg-helper/tree/1.3
包含几个不同的WYSIWYG编辑器捆绑在一起。我按照说明操作,确保我下载了NicEdit的JS发行版(与TinyMCE一起,在我与NicEdit挣扎之后,仍然没有合作)。
我跑
echo $this->Nicedit->input('content');
在我看来。当我在浏览器中加载页面时,输入框正确显示,但是没有用于文本编辑的工具栏。在页面运行时检查脚本时,在此代码块下
<div class="input textarea required"><label for="AnnouncementContent">Content</label><textarea name="data[Announcement][content]" cols="30" rows="6" id="AnnouncementContent" ></textarea></div><script type="text/javascript">
var area1;
function makePanel() {
area1 = new nicEditor({fullPanel : true}).panelInstance(
'AnnouncementContent',
{hasPanel : true}
);
}
bkLib.onDomLoaded(function() { makePanel(); });</script>
我收到此错误:未捕获的ReferenceError:未定义bkLib
我花了好几个小时试图解决这个问题无济于事。有没有人对解决这个问题有所了解?
答案 0 :(得分:0)
以下是我在最近的1.3项目中设置TinyMCE的方法,不使用该插件:
从我的观点来看,使用了TinyMCE编辑器:
//tell template to include the tinyMCE javascript file
<?php
if(isset($javascript)):
echo $javascript->link('tiny_mce/tiny_mce.js');
endif;
?>
//Build the form I need
<div class="responses form">
<?php echo $this->Form->create(null, array('controller' => 'Responses', 'action' => 'add')); ?>
<fieldset>
<legend>Add Response</legend>
<?php
echo $form->hidden('listing_id', array('value' => $tempid));
echo $this->Form->input('content');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
//set up the editor
<script type="text/javascript">
tinyMCE.init({
theme : "simple",
mode : "textareas",
convert_urls : false
});
</script>
我知道如果您真的想要使用该插件,这并不是真正回答您的问题,但如果您只使用TinyMCE就可以了,您可以通过这种方式轻松设置它。最好的部分是,它自动转换为HTML,因此您可以保存到您的数据库。当您从数据库中检索数据时,它将采用格式正确的html,因此您可以轻松地显示它。
您可以在init方法中更具体地说明您希望它使用哪个文本区域。我无法将其激活到特定文本区域,但您可能会有不同的运气。文档是here。您还可以启用更高级的主题。文档描述了这些选项。