分享
 
 
 

fck的中级使用

王朝other·作者佚名  2006-12-19
窄屏简体版  字體: |||超大  

今天突然想看看cms的东西,我到处找了找,发现了三个一个是dedecms,一个是phpcms(加密了),还有一个是verycms。

在弄dedecms的时候发现它使用的编辑器是fck,我原来也用过,但是没有他修改的那么好,修改了很多的东西,我也想

修改一个自己使用的,但是我使用的时候发现没有那么简单,现在的版本跟那个时候差的比较远,我到现在也没有找到

toolbar这些图片放到那里了,感觉是一张大图做的热点,而原来是是图片,而且也没找到具体的对应关系。

但是弄了就不能白弄,顺便修改了一个能使用的fck出来,当然是针对php的,关于fck的初级使用我就不说了,如果不会的你

可以去 blog.csdn.net/sanshi0815 上面去找 那里面有简单的一个使用。这个称之为中级使用,我一定是做修改的。

使用fck的好处就是,使用他的上传功能,fck的上传功能分三种,一种是文件,一种是图片,一种的flash,

如果使用默认的配置文件的话,一定会出现问题。他上传的文件全放在一个目录下,这个目录在你使用以上三种浏览的时候都看不到,

所以要设置下,修改 FCKeditor\editor\filemanager\upload\php\下 的文件,还有一个问题就是,他默认是你上传什么样的文件名字

最后给你存在服务器为什么名字。这样使用我感觉有写地方不太适用,我做了简单的修改

在config.php修改成了如下的样子

CODE:

[Copy to clipboard]

<?php

global $Config ;

$Config['Enabled'] = "uploader" ;

$Config['UserFilesPath'] = '/UserFiles/' ;

$Config['UserFilesAbsolutePath'] = '' ;

$Config['ForceSingleExtension'] = true ;

$Config['AllowedExtensions']['File'] = array('rar','doc') ;

$Config['DeniedExtensions']['File'] = array() ;

$Config['AllowedExtensions']['Image'] = array('jpg','gif','jpeg','png') ;

$Config['DeniedExtensions']['Image'] = array() ;

$Config['AllowedExtensions']['Flash'] = array('swf','fla') ;

$Config['DeniedExtensions']['Flash'] = array() ;

//sanshi add. set save file name ,donot the file type

//如果使用上传的文件名的话,设置 $saveFileName=false

$saveFileName = date("Y,m,d,H,i,s");

?>

而upload.php 同样进行了修改,动的比较乱,同时做一些东西做了简单的中文翻译

CODE:

[Copy to clipboard]

<?php

require('config.php') ;

require('util.php') ;

// This is the function that sends the results of the uploading process.

function SendResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )

{

echo '<script type="text/javascript">' ;

echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . str_replace( '"', '\"', $fileUrl ) . '","' . str_replace( '"', '\"', $fileName ) . '", "' . str_replace( '"', '\"', $customMsg ) . '") ;' ;

echo '</script>' ;

exit ;

}

// Check if this uploader has been enabled.

if ( !$Config['Enabled'] )

SendResults( '1', '', '', '这个文件上传失败请检查 "editor/filemanager/upload/php/config.php" 文件' ) ;

// Check if the file has been correctly uploaded.

if ( !isset( $_FILES['NewFile'] ) || is_null( $_FILES['NewFile']['tmp_name'] ) || $_FILES['NewFile']['name'] == '' )

SendResults( '202' ) ;

// Get the posted file.

$oFile = $_FILES['NewFile'] ;

// Get the uploaded file name extension.

$sFileName = $oFile['name'] ;

// Replace dots in the name with underscores (only one dot can be there... security issue).

if ( $Config['ForceSingleExtension'] )

$sFileName = preg_replace( '/\.(?![^.]*$)/', '_', $sFileName ) ;

$sOriginalFileName = $sFileName ;

// Get the extension.

$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;

$sExtension = strtolower( $sExtension ) ;

// The the file type (from the QueryString, by default 'File').

$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;

// Check if it is an allowed type.

if ( !in_array( $sType, array('File','Image','Flash','Media') ) )

SendResults( 1, '', '', '上传类别错误!' ) ;

// Get the allowed and denied extensions arrays.

$arAllowed = $Config['AllowedExtensions'][$sType] ;

$arDenied = $Config['DeniedExtensions'][$sType] ;

// Check if it is an allowed extension.

if ( ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) ) || ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) ) )

SendResults( '202' ) ;

$sErrorNumber = '0' ;

$sFileUrl = '' ;

// Initializes the counter used to rename the file, if another one with the same name already exists.

$iCounter = 0 ;

// The the target directory.

if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 )

$sServerDir = $Config['UserFilesAbsolutePath'] ;

else

$sServerDir = GetRootPath() . $Config["UserFilesPath"]."{$sType}/";

while ( true )

{

// Compose the file path.

//$sExtension 这个变量是文件后缀

// $saveFileName 为设置的保存文件名

//$sFilePath = $sServerDir . $sFileName ; //old

//sanshi add

if( $saveFileName!=false )

$sFileName = $saveFileName.".".$sExtension;

else

$sFilePath = $sServerDir . $sFileName ;

$sFilePath = $sServerDir . $sFileName ;

// If a file with that name already exists.

if ( is_file( $sFilePath ) )

{

$iCounter++ ;

$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;

$sErrorNumber = '201' ;

}

else

{

//SendResults( '1', '', '', $sFilePath) ;exit();

if( function_exists("move_uploaded_file") )

move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;

else

copy($oFile['tmp_name'], $sFilePath);

if ( is_file( $sFilePath ) )

{

$oldumask = umask(0) ;

chmod( $sFilePath, 0777 ) ;

umask( $oldumask ) ;

}

$sFileUrl = $Config["UserFilesPath"]."{$sType}/" . $sFileName ;

break ;

}

}

SendResults( $sErrorNumber, $sFileUrl, $sFileName ) ;

?>

php的文件基本处理完成了,然后看其他的文件

对fck的配制文件的修改是必然的了,就不在展示了

同时,我对几个错误处理文件也做了中文的错误提示的修改

路径是

FCKeditor\editor\dialog\的 fck_image ,fck_flash,fck_link 目录下的错误提示做的修改

然后就是对上面路径下的js文件大家有个思想准备,他们提供了错误号

0 成功

1 自己定义

101 自己定义

202 类型错误

203 权限错误

大家注意使用fck的时候会做一些权限的处理,这个时候可以使用js在这几个js的文件里做判断了

这几个文件是在提交的时候用的上,如果加权限判断的话,请加在 CheckUpload()这个函数里。

关于如何找到tool与文件的对应关系我使劲的找也没有结果,

不过大家可以看到 FCKeditor\editor\dialog\ 这个目录下有很多的对应文件,大家可以想办法做些处理来完善下。

说另外一个问题,多用户使用

fck可以完成多用使用,原来是不同的用户把图片放到不同的目录下,浏览的时候根据不同的用户去看不同的目录就可以了,

把管理员的目录放到最上面,也就是说其他人员的图片目录在管理员的目录下面,就可以了。

关于上传还是设置 config.php这个文件的 $Config['UserFilesPath'] 路径 加个什么其他的您自己看着办

浏览目录的设置在 FCKeditor\editor\filemanager\browser\default\connectors\php\config.php

文件

修改

$Config['UserFilesPath'] = '/UserFiles/' ; 要做基本的对应

这个目录看名字增加了很多新的功能,不过,没具体看

另外一个问题就是,如果用户上传了什么东西,我们要做个记录这个怎么办?

没有什么好的办法,在用户提交以后做判断,如果是附件上传那您需要自己分析下,如果是图片的

我写了一个,不过我正则不好,也就是笔画下,有什么好的方式,方法麻烦您留言,我也顺便学习下

CODE:

[Copy to clipboard]

<?php

$str='<p><img height="100" width="100" alt="" src="/UserFiles/Image/2006,08,24,12,10,36.jpg" /><img height="100" width="100" alt="" src="/UserFiles/Image/2006,08,24,12,10,36.jpg" /></p>';

$format='/<img.*?/>/i';

$temp=array();

preg_match_all($format,$str,$out);

foreach ((array)$out[0] As $k)

{

$format2 = '/src=["](.*)["]/';

$len=preg_match_all($format2,$k,$outTemp);

$temp[]=$outTemp[$len];

}

print_r($temp);

?>

还有个问题,就是css的问题,如果用户在选择字体的时候一直使用默认的,当用户发表以后有可能会发现,

编辑时候的字体与发表后的字体有区别,我当初使用的时候就遇到了,但是没想出来好的解决办法,现在告诉您,去修改一个文件

文件位置在

FCKeditor\editor\css\fck_editorarea.css 这个文件,起作用的是

body, td

{

font-family: Arial, Verdana, Sans-Serif;

font-size: 12px;

}

这里的内容把字体的大小设置成,跟您发布的默认大小一样就不会出现上面说的问题了。

最后一个问题就是,当我要浏览服务器上的图片,flash,还有文件的时候,会出现一个提示,你可以建立新的文件夹

并可以选择文件夹上传东西,这个功能如果你想关闭的话

请到

FCKeditor\editor\filemanager\browser\default 目录下

修改

frmcreatefolder.html

把下面的内容注释掉

CODE:

[Copy to clipboard]

<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">

<table cellSpacing="0" cellPadding="0" border="0">

<tr>

<td><img height="16" alt="" src="images/Folder.gif" width="16"></td>

<td>&nbsp;</td>

<td nowrap>Create New Folder</td>

</tr>

</table>

</button>

还有

frmupload.html 这个文件

CODE:

[Copy to clipboard]

<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">

还有

<input id="btnUpload" type="submit" value="Upload">

也同时注释掉

如果使用他们建立与上传

使用的文件是

FCKeditor\editor\filemanager\browser\default\connectors\php 下面的

commands.php 这个文件

这个上传与我们刚才修改过的那个上传是不一样,如果您想使用一个的话,请重新修改

到此fck的使用我也就说这么多了!会的也就这么多了。希望大家指教下,由于附件太少,我精简完是350k,所有没有办法给大家我的代码了,如果需要留下mail地址,我给大家发,或者你直接给我发邮件,我给你回复过去.

作者:叁石

mail:sanshi0815@tom.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有