织梦模板DEDECMS不显示未审核tag标签文档的的方法
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。
方法一
打开 /include/taglib/tag.lib.php 文件
找到
if(!empty($typeid))
{
$addsql=” where typeid=’$typeid’ “;
}
修改为
方法二
找到
$row[‘keyword’]=$row[‘tag’];
在其前边加入:
$rankrowss=$dsql -> GetOne(“SELECT count(tid) as rankcount FROM `dede_taglist` WHERE tid=$row[id] and arcrank >=0”);
if($rankrowss[rankcount]==0) continue;
通过以上两种方法就可以实现不显示未审核文档的tag标签
一、把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方。Duplicate entry ‘7’ for key ‘PRIMARY’错误原因是Duplicate entry ‘7’ for key ‘PRIMARY’解决方案:进入后台,“系统” – “系统设置” – “SQL命令行工具”运行SQL命令行:alter table dede_addonarticle drop primary key运行上面的代码就没有提示了ok!解决了!
二、这种方法可以解决这个错误提示,但是添加一篇文章,会调用出2篇文章出来,最好的方法是进入数据库,找到dede_addonarticle字段数据,浏览进去删掉没用的文章和Duplicate entry ‘7’ for key ‘PRIMARY’这个提示里的ID为7的文章即可解决了。
以下是进入数据库删除重复ID删除没用的文章的截图:
最近开发网站,需要一篇文章被多个栏目调用,织梦后台有副栏目这个功能,可是在用arclist调用的时候,副栏目却调用不出这篇文章,所以去简单修改了下/include/tag/arclist.lib.php文件
将295行,296行
2
if($CrossID==”) $orwheres[]=’ arc.typeid IN (‘.GetSonIds($typeid).’)’;
else $orwheres[]=’ arc.typeid IN (‘.GetSonIds($typeid).’,’.$CrossID.’)’;
注释,修改为
2
if($CrossID==”) $orwheres[]=’ (arc.typeid in (‘.GetSonIds($typeid).’) or FIND_IN_SET(”.GetSonIds($typeid).”,arc.typeid2)>0)’;
else $orwheres[]=$orwheres[]=’ (arc.typeid in (”.GetSonIds($typeid).”,’.$CrossID.’) or FIND_IN_SET(‘.GetSonIds($typeid).’,
TAG标签在后期维护的时候会进行更改或删除操作,如果对搜索引擎开放,被收录后却弹出如下的画面,对用户体验来说是非常糟糕的,下面看看TAG标签被删除后的正确操作。
系统无此标签,可能已经移除!
你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>
如果你的浏览器没反应,请点击这里…
DedeCMS标签中包含大写字母
解决方法:
在网站根目录下找到tags.php 此文件,将以下代码替换掉:
$tag=trim($_SERVER[‘QUERY_STRING’]);
换成
$tag=strtolower(trim($_SERVER[‘QUERY_STRING’]));
但该方法对特殊符号确仍然出现上面的错误。
DedeCMS标签伪静态后中文标签的问题
一般情况下,伪静态不会有问题,但后来把原始结果中的网址转化为“跳转方式”,于是问题就出现了,原本的网址是这样的:
http://www.dede58.com/tags/TAG%B1%EA%C7%A9.html
被百度转化之后成为:
http://www.dede58.com/tags/TAG标签.html
这时又会出现上边的错误,出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.php中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了,详细教程可参考《dedecms织梦Tag标签伪静态设置方法》一文。
搜索页面的搜索词大小写兼容问题
遇到大小写兼容问题还有dede搜索,相似的方法。找到plus/search.php,找到
$oldkeyword=$keyword=FilterSearch(stripslashes($keyword));
修改为
$oldkeyword=$keyword=FilterSearch(stripslashes(strtolower($keyword)));
TAG标签和搜索页面大小写兼容问题总结
还是有部分网友遇到遇到相似的问题,提供以上方法解决,不及时修改过来,TAG标签被收录,但是别人访问的时候却提示:TAG标签已移除,用户体验是相当差的。
Dede在制作下拉菜单时,可以使用channelartlist循环调用顶级栏目和子栏目,但该标签不能获取外部链接,
下拉菜单时一段代码搞定多个顶级栏目和子级栏目的同时输出。
{dede:channelartlist row=6}只能首页用,子页要用改成{dede:channelartlist row=6 typeid=’top’}
{dede:channel type=’son’ noself=’true’}
[field:typename/]
{/dede:channel}
{/dede:channelartlist}
注:如果你想控制顶级栏目的个数,请更改上面第一行红色的row参数
但这样循环,如果栏目属性是外部链接就不会输出,如果需要显示外部链接,5.7可以找include/taglib/channelartlist.lib.php第67行左右去掉红色代码
$tpsql=” reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 “;
改成
$tpsql=” reid=0 AND ishidden<>1 AND channeltype>0 “;
dedecms织梦搜索页不显示广告位解决方法
要修改includearc.searchview.class.php 这个文件
在require_once(DEDEINC.”/taglib/channel.lib.php”);
这句的后面增加下面这句
require_once(DEDEINC.”/taglib/myad.lib.php”);
在else if($tagname==”channel”)
{
}
下面增加这几行
else if($tagname==”myad”)
{
$this->dtp->Assign($tagid,lib_myad($ctag,$this));
}
最后在模板上调用{dede:myad name=’search_a_d1’/} 类似这种标签.
不少朋友需要了解这个自增函数的用法,在这里我列举一些常见的写法以及作用。
[field:global name=autoindex/]
[field:global name=autoindex runphp=”yes”]@me=@me+5;[/field:global]
[field:global name=autoindex runphp=”yes”](@me%2==0)? @me=”|”:@me=””;[/field:global]
[field:global name=autoindex runphp=”yes”](@me!=8)? @me=”|”:@me=””;[/field:global]
[field:global runphp=’yes’ name=autoindex]
$a=”
$c=”
if ((@me % 5)==0) @me=$c;
else @me=$a;
[/field:global]
[field:global runphp=’yes’ name=autoindex]
$a=”
$b=”广告1″;
$c=”
“;
$d=”广告2″;
$e=””;
if (@me==5) @me=$a.$b.$c;
else if (@me==10) @me=$a.$d.$c;
else @me=$e;
[/field:global]
{dede:global name=’itemindex’ runphp=’yes’}
$a=”
- “;
$c=”
- “;
if ((@me % 2)==0) @me=$c;
else @me=$a;
{/dede:global}
[field:global name=”autoindex” runphp=”yes”]
if (@me <=3) @me=@me-1;
else if (@me%4==0) @me=”3″;
else if (@me%4==1) @me=”0″;
else if (@me%4==2) @me=”1″;
else if (@me%4==3) @me=”2″;
else @me=””;
{/dede:global}
织梦dedecms的arclist循环中,判断如果是第一个li,则添加固定的css,否则不加
写法如下:
2
4
{dede:arclist row=4 flag=’p’}
{/dede:arclist}
[field:global name=autoindex runphp=”yes”](@me==1)? @me=”class=on”:@me=””;[/field:global]
这句话的意思就是,如果循环出的是第一个,则添加class=on,否则为空。