DedeCMS全站动态发布文章取消自动获取关键字

动态浏览页面

       大多数的人用dedecms的静态列表形式展示,当然也可以用动态列表更方便管理,做好伪静态对搜索引擎更友好。但是发现V5.7版本对“动态发布文章”和“自动获取关键字”的选项控制性并不好,网上找到的方法也没有能实现这两个功能,自己动手修改一下就搞定了:

1.用SQL命令,将所有文档设置为“仅动态”

update dede_archives set ismake=-1;
update dede_arctype set isdefault=-1;

       这个方法修改已经发布的数据库里面的内容,再发布新内容仍旧是自动选择静态浏览,只能修改发布模板里面选项。

2.直接修改发布和修改程序(推荐)

album_add.htm 发表图集模板
archives_add.htm 发表通用文档模板
article_add.htm 发表普通模板
archives_sg_add.htm 发表特殊类文章模板

       找到对应的模板将代码:

<input name="ishtml" type="radio" class="np" value="1" checked="1" />//生成html
<input type="radio" name="ishtml" class="np" value="0" />//动态浏览

       修改为

<input name="ishtml" type="radio" class="np" value="1" />//生成html
<input type="radio" name="ishtml" class="np" value="0" checked='1'/>//动态浏览

       其他的模板就不重复了。上面checked方法,扩展一下解决DedeCMS自动获取关键字的问题。

3.去除自动获取关键字

       DedeCMS自动获取关键字很麻烦,基本上产生的都是乱七八糟的关键字,特别对TAG标签的整合更麻烦(TAG实际上是文章关键字)。有些版本V5.7在后台已经取消了“自动获取关键字”选择了,也就是说默认自动获取。网上也有修改data文件夹的办法,但是测试后也依然无效。下面是做啦测试过正确的方法,支持发布和编辑两种模板取消“自动获取关键字”

发布模板取消自动获取关键字

       在article_add.htm,找到

<td><input name="autokey" type="checkbox" onClick="ShowHide('keywords');"; class="np" id="autokey" value="1"<?php if($cfg_arc_autokeyword=='Y') echo ' checked="1" '; ?>/>自动获取,手动填写用","分开<br/>

       修改成

<td><input name="autokey" type="checkbox" onClick="ShowHide('keywords');"; class="np" id="autokey" value="1" />自动获取,手动填写用","分开<br/>

       这种实际上和修改data文件夹里面的config.cache.bak.php原理是一样的,其他发布模板对应的修改即可。

编辑模板取消自动获取关键字

       做了上面的修改之后,如果再次编辑文章,关键词为空后仍然会自动获取关键字。查看编辑模板并没有发现这类型的判断,于是在article_edit.php,找到

//对保存的内容进行处理
$pubdate = GetMkTime($pubdate);
$sortrank = AddDay($pubdate,$sortup);
$ismake = $ishtml==0 ? -1 : 0;
$autokey = 1;

       可以看到

$autokey =1;

       又变成自动获取了,可以注释掉或者把值修改为“0”;

$autokey = 0;

发布、编辑模板增加获取关键词按钮

       上面的修改后用户就不能通过手动输入关键词,可以增加选择"系统关键字"按钮,参考artcle_add.htm模板。

       在相应的编辑模板下面找到

<td width="90" height="51">&nbsp;关键字:</td>

       下面增加

<td><input type="text"  name="keywords"  id="keywords" style="width:60%" value="<?php echo $arcRow["keywords"]?>" /></td>

全站动态发布文章和取消自动获取关键字总结

       <input type='text' name='' check='1'>对后台模板修改容易实现,如果对模板不熟悉的话进来不要修改源文件,以免发生不必要的错误。对于其实看的到,对于是否勾选dede有用<?php?>进行判断,实在没辙了才修改后台模板。关于伪静态的修改可以看以下文章:

《DEDECMS Tag标签伪静态规则在Apache中的实现方法》

《DedeCMS实现全站php伪静态》