修改DEDECMS附件按月保存存档

2012 年 4 月 9 日 0 条评论 1.87k 次阅读 0 人点赞

dedecms默认情况下,上传的图片附件是按日保存的,一天生成一个文件夹, 时间长了, 这样在uploads/allimg中就会生成相当多文件夹,管理起来非常不方便。

虽然, dedecms的后台附件设置里面有”附件保存形式”的选项, 但功能好像不能更改完全,比如在后台上传和图片远程本地化还是没有不能按月存放,仍然是按日存放,我们就修改一下dedecms的程序代码, 让全部的图片附件都按月保存,并可以在后台统附件保存形式处统一管理。

1.  后台设置按月保存.
登录到后台, 系统>系统基本参数>附件设置, 有一个设置项 "附件保存形式",默认的值是:ymd 就是年月日的意思. 把他改成"ym"就是按年月保存附件了。

但这作用好像不大, 只有在用"CKeditor"中上传功能上传文件有作用. 你在后台测试一下就知道了.   用"上传新文件"上传的文件还是按日存放,如果是发表文章中如果选择了图片本地化, 调用的远程图片的话,图片文件还是按日保存。

下面就把这两个也通过后台统一改正改过来.

2. "后台上传"也按月保存.
在后台文件夹,打开文件 dede/media_add.php  (dede,为dedecms默认的后台路径)
找到(大约34行):
$dpath = MyDate("ymd", $uptime);
改成:
$dpath = MyDate($GLOBALS['cfg_addon_savetype'], $uptime);
这样你在后台上传文件时就也会按月存放了,

3. "下载远程图片"按月存放.
也是在后台文件夹,  找到文件 dede/inc/inc_archives_functions.php  (dede,为dedecms默认的后台路径) 查找(大约119行):
$imgUrl = $cfg_uploaddir.'/'.MyDate("ymd", time());
改为:
$imgUrl = $cfg_uploaddir.'/'.MyDate($GLOBALS['cfg_addon_savetype'], time()); 
以后图片本地化的附件也会按月保存了

可以看得出来, 因为系统都是直接通过MyDate函数来取得或创建文件夹,  没有对设置进行检查. 所以得改代码.,这样改成对设置进行判断, 直接在后台更改选项这样就很完美了。

雷雷

这个人太懒什么东西都没留下

文章评论(0)

(Spamcheck Enabled)