CKEditor PHP 集成

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3602837/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 10:23:20  来源:igfitidea点击:

CKEditor PHP integration

phpckeditor

提问by Francisc

I am using CKEditor with PHP.

我在 PHP 中使用 CKEditor。

Using the sample PHP where the $code variable gets echoed printing the code that triggers the CKEditor to show. I do the same only in a real layout and the what happens is the Editor engulfs the surroding HTML inside it as if it was the initialValue for it.

使用示例 PHP,其中 $code 变量得到回显,打印触发 CKEditor 显示的代码。我只在真实的布局中做同样的事情,结果是编辑器将周围的 HTML 吞没在其中,就好像它是它的初始值一样。

Any idea why I am getting this, please?

知道为什么我会得到这个吗?

Here is the code:

这是代码:

// Include CKEditor class.
@require_once("ckeditor/ckeditor.php");

// Create class instance.
$CKEditor = new CKEditor();

// Do not print the code directly to the browser, return it instead
$CKEditor->returnOutput = true;

// Path to CKEditor directory, ideally instead of relative dir, use an absolute path:
//   $CKEditor->basePath = '/ckeditor/'
// If not set, CKEditor will try to detect the correct path.
$CKEditor->basePath = 'ckeditor/';

// Set global configuration (will be used by all instances of CKEditor).
$CKEditor->config['width'] = 600;

// Change default textarea attributes
//$CKEditor->textareaAttributes = array("cols" => 80, "rows" => 10);

//Set formatting options
$config['toolbar'] = array(
    array( 'Source','-',
          'NewPage','Preview','Templates','-',
          'Cut','Copy','Paste','PasteText','PasteFromWord','-',
          'Undo','Redo','-',
          'Find','Replace','-',
          'SelectAll','RemoveFormat','-',
          'Maximize', 'ShowBlocks'),
    '/',
    array('Bold','Italic','Underline','Strike','-',
          'Subscript','Superscript','-',
          'NumberedList','BulletedList','-',
          'Outdent','Indent','Blockquote','-',
          'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-',
          'Link','Unlink','Anchor','-',
          'Image','Flash','Table','HorizontalRule','SpecialChar'
          ),
    '/',
    array('Format','Font','FontSize','-',
          'TextColor','BGColor')
);

//Set skin
//$config['skin'] = 'kama';//kama si defailt skin for 3.4

//Set language and UI Color
$config['language']='ro';
//$config['uiColor']='#AADC6E';


//Remove the html tags in the status bar (e.g. body p strong for when cursor is in a strong tag within a p tag within the body)
$config['removePlugins']='elementspath';

//Allow / deny resizing of editor from dragging the bottom-right corner. Maximize will still work.
$config['removePlugins']='resize';//Remove resize image
$config['resize_enabled ']=false;//Disallow resizing

//Remove the collapse formatting area button (arrow on the middle-right part of the editor
//$config['toolbarCanCollapse']=false;

// The initial value to be displayed in the editor.
$initialValue = '';

//Add the CKFinder for upload of files directly from the `Add Image` / `Add Flash` buttons.
include_once($CKEditor->basePath.'ckfinder/ckfinder.php');
// You can use the "CKFinder" class to render CKFinder in a page:
$finder = new CKFinder();
$finder->BasePath = 'ckeditor/ckfinder/';   // The path for the installation of CKFinder (default = "/ckfinder/").
//$finder->SetupCKEditor($CKEditor,$CKEditor->basePath.'/ckfinder/');

// Create first instance.
$CKEditorOutput = $CKEditor->editor("continut",$initialValue,$config);

Afterwards, I just do: $output.='<div>'.$CKEditorOutput.'</div>;Of course, the layout around the div in which the CKEditor resides is larger.

之后我就干了:$output.='<div>'.$CKEditorOutput.'</div>;当然,CKEditor所在的div周围的布局更大。

Thank you!

谢谢!

回答by Francisc

Ah, got it...

啊,明白了……

This line: $CKEditorOutput = $CKEditor->editor("continut",$initialValue,$config);

这一行: $CKEditorOutput = $CKEditor->editor("continut",$initialValue,$config);

The layout contains a div with an ID selector of "continut", so <div id="continut">.Thus messing everything up and turning that div and all inner HTML into the RTE Textarea.

该布局包含一个 ID 选择器为“continut”的 div,<div id="continut">.因此将所有内容弄乱并将该 div 和所有内部 HTML 转换为 RTE Textarea。

Sorry and thanks everyone!

对不起,谢谢大家!