我正在使用cakephp 3.7。我试图通过两种不同的方式使tinymce工作,但它不起作用。首先,我尝试调整以前的cakephp 2个步骤以使其正常工作,如Cakephp文档“ https://bakery.cakephp.org/2012/04/11/Helper-TinyMCE-for-CakePHP-2.html”中所示,它在以前的项目中使用了Cakephp 2,但在这里没有用。其次,我遵循了另一篇教程的建议,建议enter code here
在cakephp 3.7的插件文件夹中使用tinymce就像插件一样,但仍然无法正常工作。关于如何为cakephp 3.7安装tinymce的任何帮助吗?
N.B:我通过composer获得了Cakephp 3.7以及我使用的所有其他插件,除了我无法通过composer获得的tinymce。
我遇到此错误:方法App \ View \ Helper \ TinymceHelper :: domId不存在[CORE / src / View / Helper.php,行。
预先感谢。
public $helpers = ['tinymce.tinymce'];
在显示我在相关文本区域中添加的tinymce编辑器的视图中
<?php echo $this->Tinymce->input('content',
array('label' =>
'Content'),array('language'=>'en'),'bbcode');
?>
这是tinymceHelper.php中的头
use Cake\View\Helper;
use Cake\View\StringTemplateTrait;
class TinymceHelper extends Helper
{
// Take advantage of other helpers
public $helpers = array('Js', 'Html', 'Form');
...}
或者您可能还知道另一个与cakephp 3.7更相关的内容编辑器。谢谢你们!
答案 0 :(得分:0)
我从TinyMCE切换到CKEDITOR。我没有任何帮助,只是:
echo $this->Html->script('https://cdn.ckeditor.com/4.8.0/full/ckeditor.js');
)中加载JS wysiwyg_simple
)在输入上输入相关的类(例如wysiwyg_advanced
或echo $this->Form->input('description', ['class' => 'wysiwyg_simple']);
)onReady
中调用(以及每当可能将包含文本区域的动态内容加载到页面中时)if (typeof CKEDITOR !== 'undefined') {
for(name in CKEDITOR.instances) {
CKEDITOR.instances[name].destroy(true);
}
CKEDITOR.replaceAll(function (textarea, config) {
if (jQuery(textarea).hasClass('wysiwyg_advanced')) {
config.toolbar = [
{
name: 'clipboard',
items: ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo']
},
{name: 'editing', items: ['SpellChecker', 'Scayt']},
{name: 'links', items: ['Link', 'Unlink', 'Anchor']},
{name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar', 'PageBreak']},
'/',
{
name: 'basicstyles',
items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat']
},
{
name: 'paragraph',
items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv',
'-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']
},
'/',
{name: 'styles', items: ['Format', 'Font', 'FontSize']},
{name: 'colors', items: ['TextColor', 'BGColor']},
{name: 'tools', items: ['Maximize', 'ShowBlocks', '-', 'About']},
{name: 'document', items: ['Source']}
];
} else if (jQuery(textarea).hasClass('wysiwyg_simple')) {
config.toolbar = [
{name: 'clipboard', items: ['Cut', 'Copy', 'PasteText', '-', 'Undo', 'Redo']},
{
name: 'basicstyles',
items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat']
},
{name: 'paragraph', items: ['NumberedList', 'BulletedList']},
{name: 'styles', items: ['Format']}
];
} else {
return false;
}
config.resize_dir = 'both';
});
}
答案 1 :(得分:0)
经过一段时间的研究,并在@Greg Schmidt的建议下,我将Ckeditor并不是插件,而是放在js文件夹中。 1-我在AppController.php中用
引用了它public $ helpers = ['CkEditor.Ck'];
2-在media.ctp中,我通过“
”在文件开头调用了Ckeditor。SELECT IP, count(*) as nb FROM counter WHERE IP='$ipAddress' GROUP BY IP
(这是非常强制性的,因为没有此调用,cakephp 3.x将仅显示一个 空白的文本区域)。
3-在相关的表单元素中加载ckeditor的位置,我使用了语法 enter image description here
$results = $check->fetchAll(PDO::FETCH_COLUMN, 1);
$visitors = array_sum($results);
4-在相关布局中,我添加了 HTML-> script('https://cdn.ckeditor.com/4.8.0/full/ckeditor.js');就像格雷格·施密特(Greg Schmidt)所建议的那样。 然后Ckeditor出现!!!