dedecms5.7 文章不能发布问题探讨及解决方法
1.dedecms5.7默认的编辑器变成ckeditor了,我个人感觉ckeditor比FCKeditor好,对这次变更还是挺满意的。
不过dedecms的前台会员发布文章的功能,用ckeditor就有点问题了,本身给前台会员投稿不需要太多的功能,还有就是会员上传图片,用ckeditor的话,非管理员账号点击上传图片按钮时会弹出:提示:需输入后台管理目录才能登录,网上看到的解决方法是
注释掉“/include/dialog/congig.php”中的以下代码:
if($cuserLogin->getUserID()<=0)
{
if(empty($adminDirHand))
{
ShowMsg("<b>提示:需输入后台管理目录才能登录</b><br/><form>请输入后台管理目录名:<inputtype='hidden'value='".urlencode($dedeNowurl)."'/><inputtype='text'value='mgr'/><inputtype='submit'value='转入登录'/></form>","javascript:;");
exit();
}
$gurl="../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);
echo"<scriptlanguage='javascript'>location='$gurl';</script>";
exit();
}
但是这样没有登录的用户也能显示那个页面了,虽然有一个报错。还有就是所有的用户都可以直接看到上传根目录下的所有文件,这样安全性大大降低了。于是,开始怀恋FCKeditor的前台上传图片功能,上传文件是用户单独的目录下,也没有权限问题,所以决定让后台继续用ckeditor,前台用户使用FCKeditor。
在网站目录\include\inc\inc_fun_funAdmin.php文件中,找到139行,functionSpGetEditor函数,if($GLOBALS['cfg_html_editor']=='fck')换成if($GLOBALS['my_html_editor']=='fck'||$GLOBALS['cfg_html_editor']=='fck'),然后再前面
if(!isset($GLOBALS['cfg_html_editor']))
{
$GLOBALS['cfg_html_editor']='fck';
}
接着跟上一句
if(!isset($GLOBALS['my_html_editor']))
{
$GLOBALS['my_html_editor']='0';
}
然后在需要使用FCKeditor的文件上方加上$GLOBALS['my_html_editor']='fck';比如要在会员普通文章中使用这个编辑器,则在article_add.php最上方加上$GLOBALS['my_html_editor']='fck';
刷新一下页面,成功。
说明:dedecms5.7自带没有FCKeditor,可以从5.6版本中提取,放在include目录下。
2.此问题是从5.6升级到5.7再导入老数据库3表(附加表,主表,微表)后出的问题。
因为DEDECMS5.7比5.6文章多了投票,所以archives表多了一个votid字段。
所以必须增加这个字段。否则发布或修改文章的时候会提示更新dede_archives出错。
解决办法:
请在后台SQL命令行输入以下命令后运行:
ALTERTABLE`dede_archives`ADD`voteid`mediumint(8)NOTNULL;
执行以上命令之后,问题就能完美解决。
另外,升级还有类似dede后台目录对应的问题,默认dede后台目录,你得把升级文件中dede目录的文件上传到你自己设置的后台目录中。
5.6的默认模板同样可以在5.7中适用,只要编码相同,直接上传更新即可
不过dedecms的前台会员发布文章的功能,用ckeditor就有点问题了,本身给前台会员投稿不需要太多的功能,还有就是会员上传图片,用ckeditor的话,非管理员账号点击上传图片按钮时会弹出:提示:需输入后台管理目录才能登录,网上看到的解决方法是
注释掉“/include/dialog/congig.php”中的以下代码:
if($cuserLogin->getUserID()<=0)
{
if(empty($adminDirHand))
{
ShowMsg("<b>提示:需输入后台管理目录才能登录</b><br/><form>请输入后台管理目录名:<inputtype='hidden'value='".urlencode($dedeNowurl)."'/><inputtype='text'value='mgr'/><inputtype='submit'value='转入登录'/></form>","javascript:;");
exit();
}
$gurl="../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);
echo"<scriptlanguage='javascript'>location='$gurl';</script>";
exit();
}
但是这样没有登录的用户也能显示那个页面了,虽然有一个报错。还有就是所有的用户都可以直接看到上传根目录下的所有文件,这样安全性大大降低了。于是,开始怀恋FCKeditor的前台上传图片功能,上传文件是用户单独的目录下,也没有权限问题,所以决定让后台继续用ckeditor,前台用户使用FCKeditor。
在网站目录\include\inc\inc_fun_funAdmin.php文件中,找到139行,functionSpGetEditor函数,if($GLOBALS['cfg_html_editor']=='fck')换成if($GLOBALS['my_html_editor']=='fck'||$GLOBALS['cfg_html_editor']=='fck'),然后再前面
if(!isset($GLOBALS['cfg_html_editor']))
{
$GLOBALS['cfg_html_editor']='fck';
}
接着跟上一句
if(!isset($GLOBALS['my_html_editor']))
{
$GLOBALS['my_html_editor']='0';
}
然后在需要使用FCKeditor的文件上方加上$GLOBALS['my_html_editor']='fck';比如要在会员普通文章中使用这个编辑器,则在article_add.php最上方加上$GLOBALS['my_html_editor']='fck';
刷新一下页面,成功。
说明:dedecms5.7自带没有FCKeditor,可以从5.6版本中提取,放在include目录下。
2.此问题是从5.6升级到5.7再导入老数据库3表(附加表,主表,微表)后出的问题。
因为DEDECMS5.7比5.6文章多了投票,所以archives表多了一个votid字段。
所以必须增加这个字段。否则发布或修改文章的时候会提示更新dede_archives出错。
解决办法:
请在后台SQL命令行输入以下命令后运行:
ALTERTABLE`dede_archives`ADD`voteid`mediumint(8)NOTNULL;
执行以上命令之后,问题就能完美解决。
另外,升级还有类似dede后台目录对应的问题,默认dede后台目录,你得把升级文件中dede目录的文件上传到你自己设置的后台目录中。
5.6的默认模板同样可以在5.7中适用,只要编码相同,直接上传更新即可