<?php
/*
* Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* \brief CKEditor class that can be used to create editor
* instances in PHP pages on server side.
* @see http://ckeditor.com
*
* Sample usage:
* @code
* $CKEditor = new CKEditor();
* $CKEditor->editor("editor1", "<p>Initial value.</p>");
* @endcode
*/
class CKEditor
{
/**
* The version of %CKEditor.
* \private
*/
var $version = '3.6.2';
/**
* A constant string unique for each release of %CKEditor.
* \private
*/
var $_timestamp = 'B8DJ5M3';
/**
* URL to the %CKEditor installation directory (absolute or relative to document root).
* If not set, CKEditor will try to guess it's path.
*
* Example usage:
* @code
* $CKEditor->basePath = '/ckeditor/';
* @endcode
*/
var $basePath;
/**
* An array that holds the global %CKEditor configuration.
* For the list of available options, see http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
*
* Example usage:
* @code
* $CKEditor->config['height'] = 400;
* // Use @@ at the beggining of a string to ouput it without surrounding quotes.
* $CKEditor->config['width'] = '@@screen.width * 0.8';
* @endcode
*/
var $config = array();
/**
* A boolean variable indicating whether CKEditor has been initialized.
* Set it to true only if you have already included
* <script> tag loading ckeditor.js in your website.
*/
var $initialized = false;
/**
* Boolean variable indicating whether created code should be printed out or returned by a function.
*
* Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
* @code
* $CKEditor = new CKEditor();
* $CKEditor->returnOutput = true;
* $code = $CKEditor->editor("editor1", "<p>Initial value.</p>");
* echo "<p>Editor 1:</p>";
* echo $code;
* @endcode
*/
var $returnOutput = false;
/**
* An array with textarea attributes.
*
* When %CKEditor is created with the editor() method, a HTML <textarea> element is created,
* it will be displayed to anyone with JavaScript disabled or with incompatible browser.
*/
var $textareaAttributes = array( "rows" => 8, "cols" => 60 );
/**
* A string indicating the creation date of %CKEditor.
* Do not change it unless you want to force browsers to not use previously cached version of %CKEditor.
*/
var $timestamp = "B8DJ5M3";
/**
* An array that holds event listeners.
* \private
*/
var $_events = array();
/**
* An array that holds global event listeners.
* \private
*/
var $_globalEvents = array();
/**
* Main Constructor.
*
* @param $basePath (string) URL to the %CKEditor installation directory (optional).
*/
function CKEditor($basePath = null) {
if (!empty($basePath)) {
$this->basePath = $basePath;
}
}
/**
* Creates a %CKEditor instance.
* In incompatible browsers %CKEditor will downgrade to plain HTML <textarea> element.
*
* @param $name (string) Name of the %CKEditor instance (this will be also the "name" attribute of textarea element).
* @param $value (string) Initial value (optional).
* @param $config (array) The specific configurations to apply to this editor instance (optional).
* @param $events (array) Event listeners for this editor instance (optional).
*
* Example usage:
* @code
* $CKEditor = new CKEditor();
* $CKEditor->editor("field1", "<p>Initial value.</p>");
* @endcode
*
* Advanced example:
* @code
* $CKEditor = new CKEditor();
* $config = array();
* $config['toolbar'] = array(
* array( 'Source', '-', 'Bold', 'Italic', 'Underline', 'Strike' ),
* array( 'Image', 'Link', 'Unlink', 'Anchor' )
* );
* $events['instanceReady'] = 'function (ev) {
* alert("Loaded: " + ev.editor.name);
* }';
* $CKEditor->editor("field1", "<p>Initial value.</p>", $config, $events);
* @endcode
*/
function editor($name, $value = "", $config = array(), $events = array())
{
$attr = "";
foreach ($this->textareaAttributes as $key => $val) {
$attr.= " " . $key . '="' . str_replace('"', '"', $val) . '"';
}
$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";
if (!$this->initialized) {
$out .= $this->init();
}
$_config = $this->configSettings($config, $events);
$js = $this->returnGlobalEvents();
if (!empty($_config))
$js .= "CKEDITOR.replace('".$name."', ".$this->jsEncode($_config).");";
else
$js .= "CKEDITOR.replace('".$name."');";
$out .= $this->script($js);
if (!$this->returnOutput) {
print $out;
$out = "";
}
return $out;
}
/**
* Replaces a <textarea> with a %CKEditor instance.
*
* @param $id (string) The id or name of textarea element.
* @param $config (array) The specific configurations to apply to this editor instance (optional).
* @param $events (array) Event listeners for this editor instance (optional).
*
* Example 1: adding %CKEditor to <textarea name="article"></textarea> element:
* @code
* $CKEditor = new CKEditor();
* $CKEditor->replace("article");
* @endcode
*/
function replace($id, $config = array(), $events = array())
{
$out = "";
if (!$this->initialized) {
$out .= $this->init();
}
$_config = $this->configSettings($config, $events);
$js = $this->returnGlobalEvents();
if (!empty($_config)) {
$js .= "CKEDITOR.replace('".$id."', ".$this->jsEncode($_config).");";
}
else {
$js .= "CKEDITOR.replace('".$id."');";
}
$out .= $this->script($js);
if (!$this->returnOutput) {
print $out;
$out = "";
}
return $out;
}
/**
* Replace all <textarea> elements available in the document with editor instances.
*
* @param $className (string) If set, replace all textareas with class className in the page.
*
* Example 1: replace all <textarea> elements in the page.
* @code
* $CKEditor = new CKEditor();
* $CKEditor->replaceAll();
* @endcode
*
* Example 2: replace all <textarea class="myClassName"> elements in the page.
* @code
* $CKEditor = new CKEditor();
* $CKEditor->replaceAll( 'myClassName' );
* @endcode
*/
function replaceAll($className = null)
{
$out = "";
if (!$this->initialized) {
$out .= $this->init();
}
$_config = $this->configSettings();
$js = $this->returnGlobalEvents();
if (empty($_config)) {
if (empty($className)) {
$js .= "CKEDITOR.replaceAll();";
}
else {
$js .= "CKEDITOR.replaceAll('".$className."');";
}
}
else {
$classDetection = "";
$js .= "CKEDITOR.replaceAll( function(textarea, config) {\n";
if (!empty($className)) {
$js .= " var classRegex = new RegExp('(?:^| )' + '". $className ."' + '(?:$| )');\n";
$js .= " if (!classRegex.test(textarea.className))\n";
$js .= " return false;\n";
}
$js .= " CKEDITOR.tools.extend(config, ". $this->jsEncode($_config) .", true);";
$js .= "} );";
}
$out .= $this->script($js);
if (!$this->returnOutput) {
print $out;
$out = "";
}
return $out;
}
/**
* Adds event listener.
* Events are fired by %CKEditor in various situations.
*
* @param $event (string) Event name.
* @param $javascriptCode (string) Javascript anonymous function or function name.
*
* Example usage:
* @code
* $CKEditor->addEventHandler('instanceReady', 'function (ev) {
* alert("Loaded: " + ev.editor.name);
* }');
* @endcode
*/
function addEventHandler($event, $javascriptCode)
{
if (!isset($this->_events[$event])) {
$this->_events[$event] = array();
}
// Avoid duplicates.
i
没有合适的资源?快使用搜索试试~ 我知道了~
ckeditor上传图片功能使用
共653个文件
js:370个
png:78个
gif:76个
5星 · 超过95%的资源 需积分: 10 8 下载量 169 浏览量
2012-06-18
23:04:23
上传
评论
收藏 2.38MB ZIP 举报
温馨提示
利用jsp实现ckeditor_3_6_2 上传图片功能,里面包含完整的工程,不过需要自己引入commons-fileupload-1.2.1.jar,commons-io-1.4.jar文件上传包,网上一大把。只要能正确引入,该工程就能完成
资源推荐
资源详情
资源评论
收起资源包目录
ckeditor上传图片功能使用 (653个子文件)
ckeditor.asp 30KB
events.asp 4KB
advanced.asp 3KB
replaceall.asp 3KB
replace.asp 2KB
standalone.asp 2KB
sample_posteddata.asp 1KB
run.bat 270B
File_upload.class 5KB
.classpath 362B
org.eclipse.wst.jsdt.ui.superType.container 49B
editor.css 35KB
editor.css 31KB
editor.css 30KB
dialog.css 22KB
dialog.css 20KB
dialog.css 19KB
dialog.css 18KB
dialog.css 16KB
dialog.css 15KB
toolbar.css 13KB
toolbar.css 10KB
toolbar.css 10KB
richcombo.css 8KB
richcombo.css 7KB
icons.css 7KB
richcombo.css 7KB
icons.css 7KB
icons.css 6KB
menu.css 6KB
menu.css 5KB
menu.css 5KB
mainui.css 4KB
panel.css 4KB
panel.css 4KB
panel.css 4KB
mainui.css 3KB
yui.css 3KB
mainui.css 3KB
yui.css 3KB
sample.css 2KB
output_xhtml.css 2KB
templates.css 2KB
templates.css 2KB
templates.css 2KB
reset.css 2KB
reset.css 2KB
reset.css 2KB
templates.css 2KB
templates.css 1KB
templates.css 1KB
elementspath.css 1KB
toolbar.css 1KB
elementspath.css 1KB
elementspath.css 1KB
wsc.css 1KB
toolbar.css 1KB
wsc.css 1004B
presets.css 908B
presets.css 888B
parsesample.css 876B
presets.css 866B
editor.css 574B
editor.css 562B
contents.css 559B
editor.css 558B
output_for_flash.fla 84KB
0003.gif 47KB
uicolor.gif 1KB
uicolor.gif 1KB
cry_smile.gif 468B
cry_smile.gif 468B
angel_smile.gif 465B
angel_smile.gif 465B
confused_smile.gif 464B
confused_smile.gif 464B
sad_smile.gif 460B
sad_smile.gif 460B
wink_smile.gif 458B
wink_smile.gif 458B
whatchutalkingabout_smile.gif 452B
whatchutalkingabout_smile.gif 452B
omg_smile.gif 451B
omg_smile.gif 451B
regular_smile.gif 450B
regular_smile.gif 450B
shades_smile.gif 449B
shades_smile.gif 449B
tounge_smile.gif 446B
tounge_smile.gif 446B
angry_smile.gif 443B
angry_smile.gif 443B
embaressed_smile.gif 442B
teeth_smile.gif 442B
embaressed_smile.gif 442B
teeth_smile.gif 442B
devil_smile.gif 436B
devil_smile.gif 436B
envelope.gif 426B
envelope.gif 426B
共 653 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- oxygenhoku2014-06-06改改还是能用的。谢谢
- 蚂蚁Was2013-08-20不错貌似能用,
- a74835952015-04-07可以使用的
禾田八久
- 粉丝: 16
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功