织梦DEDECMS系统首页sql调用disucuz2.5内容怎么解决?
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
注明:如果你安装在不同的数据库,需要在sql中指定数据库,我这边是jtb,与公司的织梦dedecms不是安装在同库中。
调用图文帖子的方法:
{dede:sql sql=”SELECT jtb.pre_forum_threadimage.tid, jtb.pre_forum_threadimage.attachment, jtb.pre_forum_thread.tid, jtb.pre_forum_thread.fid, jtb.pre_forum_thread.subject FROM jtb.pre_forum_threadimage
LEFT JOIN jtb.pre_forum_thread ON jtb.pre_forum_thread.tid=jtb.pre_forum_threadimage.tid
WHERE displayorder >=0 LIMIT 0 , 2″}
{/dede:sql}
使用织梦CMS搭建网站的过程中,在官网下载的dede后台程序,在后台文件管理器中修改php或者css文件,保存之后会出现DedeCMS:CSRF Token Check Failed这样一个提示,无法保存修改的文件,那么DedeCMS:CSRF Token Check Failed到底是什么意思呢?
名词解释:CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
出现DedeCMS:CSRF Token Check Failed!,由于您重新打开了一个需要CSRF校验的表单页面。
织梦后台-模块-文件管理器,修改文件会报CSRF Token Check Failed的解决方法
打开 dede/file_manage_view.php 找到
$path_parts =pathinfo($filename);
在它下面一行加入:
$GLOBALS[‘token’]=make_hash();
完成。
修改文件就不会再出现DedeCMS:CSRF Token Check Failed!这个提示了!
在DedeCMS所有的数据表中,有两个TAG的表,分别是“dede_tagindex”和“dede _taglist”,选中其中一个表,点击查看表结构,然后拿其它程序对比一下,发现了两个问题。
1,dede_tagindex 这个表少了一个“`typeid` smallint(5) unsigned NOT NULL default ‘0’,”字段,“`tag` char(20) NOT NULL default ”,”应该是12,我的变成了20。
2,dede _taglist 这个表多出了一个“KEY `aid` (`aid`)”字段。
问题找出来了,接下来就是如何把它添加、删除和修改的问题了,具体方法如下:
首先,进入phpmyadmin里面点击左边数据库下拉菜单,选择你的网站数据库,拉到最下面,找到“dede_tagindex”这个表(前面的Dede是你安装时候的名称,可能不同),点击它打开,然后右面会显示出表结构,在tag后面添加一个typeid字段
新字段里面的内容填写如下:
(=后面为空的不用填写)
字段=typeid
型=SMALLINT
度/值*1=5
整理=
属性=UNSIGNED
Null=not null
默认2=0
额外=
填写完成后点击保存,。
然后,tag这个字段中“`tag` char(20) NOT NULL default ”,”把长度值改成12。
点击tag字段后面的更改,把长度/值改为12
最后,dede _taglist 这个表中多出的“KEY `aid` (`aid`)”字段,进去直接删除掉就可以了。或者在织梦sql命令输入Delete FROM dede_taglist where varname=”KEY `aid` (`aid`)”来删除
再去添加一个新的TAG标签看看,是不是OK了!
织梦cmsV5.7有一个非常智能的问题,使用dedecmsv5.7的朋友,可以发现以前发布的文章,修改之后发布时间是自动修改成当前时间的,这样做相当于自动更新了为网站的内容,这里分享下如何保障发布之后的文章显示的时间仍旧是老时间。
登陆网站的后台找到文件和代码:
/dede/templets/artical_edit.htm
把
$nowtime=GetDateTimeMk(time());
改成
$nowtime=GetDateTimeMk($arcRow[“pubdate”]);
就可以解决问题。
织梦系统在搬家或新建栏目后,在后台生成栏目可能会出现以下提示:没有该栏目数据可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限。
移动端网站就遇到这样的问题,就更改了inc_catalog_base.inc这个文件的写入权限,但实际上这并不管用。查询了相关资料,发现解决方法很简单,如下:
一. 把inc_catalog_base.inc缓存文件删掉
二. 更新系统缓存,点“生成——>更新系统缓存——>开始执行”就可以了
三. 然后重新生成栏目,就不会出现错误提示了
这里要注意的是,inc_catalog_base.inc这个文件就是放缓存信息的,删除并不会影响网站的使用,有的时候我们在设置服务器和空间文件属性的时候会影响到这个文件的写入权限,造成新生成栏目无法实现,此时删除就可完美解决。
织梦删除新变量的方法有两种:
(1)SQL命令行工具删除法
打开织梦后台-系统-SQL命令行工具,打开工具界面
2.在运行SQL命令行中,输入如下代码:
Delete FROM dede_sysconfig where varname=”这里写你自己写的名称”
例如删除我们之前创建的QQ变量cfg_qq ,那么我们的删除代码如下:
Delete FROM dede_sysconfig where varname=”cfg_qq”
之后点击确定,执行成功后,再回到系统参数的界面会发现,我们的新变量已经被删除了。
(2)数据库删除法
1.进入网站空间的phpmyadmin中找到对应数据库(如果不知道怎么进入数据库,请咨询你的空间商)
2.找到表:dede_sys_config(dede_是默认表前缀,请根据您的表前缀查找),单击“浏览”,就会看到所有变量,之后点击底部的页号,选择最后一页,因为一般情况下,您创建的新变量,都会在最后一页。找到你自己添加的变量后,把前面的勾打上,然后点X号删除。如下图:
同样执行成功后,回到系统参数的界面会发现,我们的新变量已经被删除了。
☉首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(330921598)进行交流。
未审核文档的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,否则为空。