在本文中,我们将为您详细介绍织梦dede调用dede:sql,dede:php标签调用新闻的静态链接地址的相关知识,并且为您解答关于织梦cms调用栏目图片的疑问,此外,我们还会提供一些关于dede标签
在本文中,我们将为您详细介绍织梦dede调用dede:sql,dede:php标签 调用新闻的静态链接地址的相关知识,并且为您解答关于织梦cms调用栏目图片的疑问,此外,我们还会提供一些关于dede 标签调用,dede调用_PHP教程、DedeCMS 栏目页调用新闻的*张图片、dedecms织梦dede:arclist按照自定义字段的条件调用相关新闻、dedecms织梦dede:channel在标签里面调用文章列表的有用信息。
本文目录一览:- 织梦dede调用dede:sql,dede:php标签 调用新闻的静态链接地址(织梦cms调用栏目图片)
- dede 标签调用,dede调用_PHP教程
- DedeCMS 栏目页调用新闻的*张图片
- dedecms织梦dede:arclist按照自定义字段的条件调用相关新闻
- dedecms织梦dede:channel在标签里面调用文章列表
织梦dede调用dede:sql,dede:php标签 调用新闻的静态链接地址(织梦cms调用栏目图片)
很多时候我们用织梦后台调用数据的时候,自带的标签很多时候都没方案调用我们要的数据,因此要自己写sql去调用,之前有个问题搞了两天都没搞出来,后来看到下面这个新闻,问题解决了!使用dedecms这个程序建站有两年多的时间了,期间建了不少网站不过至今没有一个网站赚钱的,痛苦啊。可能平时花太多的时候在折腾网站上面,而没有用心去推广宣传。喜欢折腾没方案,不然也就没有以下的内容分享给大家了。
补充:发布这往篇新闻后,无意间发现在了dedecms的GetOneArchive,只要传入一个文档id就可以获得新闻链接了,其实这个函数返回的的新闻信息数组包含了:链接地址,标题,新闻ID,栏目ID,这里只需要新闻链接地址。具体代码如下
{dede:sql sql="select * From dede_archives a where a.title like '%<a href=http://www.dede58.com/a/dedejq/"http:/www.qmtx3.com/live/" target="_blank">生活</a>小<a href=http://www.dede58.com/a/dedejq/"http:/www.qmtx3.com" target="_blank">窍门</a>%' and a.arcrank>-1 limit 8"}<li><a title="[field:title/]" href=http://www.dede58.com/a/dedejq/"[field:id runphp='yes']$url=GetOneArchive(@me);@me=$url['arcurl'];[/field:id]">[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]</a></li>{/dede:sql}
如果你仅仅需要调用新闻的链接地址该办法不失为一个快捷的办法,新闻下部分介绍的办法较为复杂,但如果你想调用新闻链接地址的同时还想调用栏目名称不妨试下
为什么要使用dede:php,dede:sql
在一些比较复杂的调用中用dede:arclist标签是解决不了问题的,比如说大家常说的调用某一会员发布的新闻等等之类,这些一般要通过dede:sql标签来实现。
今天我所说的调用也是比较特殊的就是在首页调用指定关键词的新闻,其实这个跟dedecms的相关新闻标签类似。这里给大家分享两种办法。
dede:sql标签调用指定关键词新闻静态地址
这里引用dedecms官方关于dede:sql的介绍
【Sql 标记】
功能说明:用于从源码中用一个SQL查询获得其返回内容。
适用范围:非扩展模块所有源码。
(1)语法:{dede:sql sql="这里写sql语句"}底层源码{/dede:sql}
(2)属性:
[1] sql 完整的SQL查询语句。
(3)底层源码:
SQL语句中查出的所有字段都可以用[field:字段名/]来调用。
好了了解dede:sql标签后,就可以根据自己的需求写sql语句了,我这里是要调用指定关键词的新闻,sql语句如下:
"select * From dede_archives a where a.arcrank>-1 and a.title like '%生活小窍门%' limit 8"
语句解析:a.arcrank>-1限制调用已审核的新闻;like '%生活小窍门%'调用指定关键词的新闻;limit 8为调用条数为8条
然后就开始写完整的标签和底层源码了,如下:
这样就OK了?起初我也以为就是这么简单,兴奋的打开预览页面,靠,title="",href=""这两个属性都是空的,想一下算是明白了。dede:sql标签其实就是通过sql查询数据库返回查询的字段(注:这里我查询的字段为*,你可以根据你的实际情况来查询),底板源码中的[field:字段名称]调用的就是这个返回的字段,这些字段是没有经过任何程序处理的,直接就是数据库里的内容。比如说fulltitle,arcurl这个在数据库中就没有这两个字段,平常我们在dede:arclist中用到的这些字段只不过是dede在php程序中处理的。知道了问题所在然后查了下资料终于解决了。
1、首先解决完整标题和截字问题:我使用的是[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]这种办法相信大家也经常用到,这里就不多作介绍了,以后可能会专门弄个新闻介绍这种用法。50就是截字长度
2、解决dede:sql标签静态新闻地址问题:这里比较麻烦了,我在网上转了一下,多数给出的解决方案就是href="/plus/view.php?aid=[field:id/]",显然这不是我想要的这不是静态地址,而其他地址用arclist调用的又是静态地址,结果就成了一篇新闻有两个地址一个静态一个动态,这对seo来说显然不友好,*好通过自己折腾终于成功了
3、解决id不能正确获取的问题:之前没注意到因为dede_arctype和dede_archives两个表id字段名是一样的,以至于底层源码获取不到正确的id,之前select改了下,增加了别名。
dede:sql调用新闻静态链接地址的完美办法
{dede:sql sql="select * From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like '%生活小窍门%' and a.arcrank>-1 limit 8"}<li><a title="[field:title/]" href=http://www.dede58.com/a/dedejq/"[field:array runphp='yes'] @me=GetFileUrl(@me['id'],@me['typeid'],@me['senddate'],@me['title'],@me['ismake'],@me['arcrank'],@me['namerule'],@me['typedir'],@me['money']); [/field:array]">[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]</a></li>{/dede:sql}
不管如何说总算还是实现了我想要的效果,后来想了想用dede:php标签怎么实现这个效果呢,其实办法和dede:sql标签是一样的,也就不多说什么了,直接贴代码:
{dede:php}
$dsql->SetQuery("select a.id as aid, t.id as tid,typeid,senddate,title,ismake,arcrank,namerule,typedir From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like '%生活小窍门%' and a.arcrank>-1 limit 8");
$dsql->Execute();
while($row = $dsql->GetArray()){
echo '<li><a title="'.$row['title'].'" href="'.GetFileUrl($row['aid'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],$row['arcrank'],$row['namerule'],$row['typedir'],$row['money']).'">'.cn_substr($row['title'], 50).'</a></li>';
}
{/dede:php}
*后的叼叼,dedecms个人觉得做一般的新闻资讯类站点还是够用的,不过要做什么会员、download。。。这些功能的站,dedecms貌似不如何能胜任,就像dede:php,dede:sql这些标签,菜鸟网站管理员肯定搞不清晰的。这个效果在窍门天下首页右边那里有演示,
{dede:sql sql="select a.id as aid, t.id as tid,typeid,senddate,title,ismake,arcrank,namerule,typedir From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like '%生活小窍门%' and a.arcrank>-1 limit 8"}<li><a title="[field:title/]" href=http://www.dede58.com/a/dedejq/"[field:array runphp='yes']@me=GetFileUrl(@me['aid'],@me['typeid'],@me['senddate'],@me['title'],@me['ismake'],@me['arcrank'],@me['namerule'],@me['typedir'],@me['money']);[/field:array]">[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]</a></li>{/dede:sql} 本文章网址:http://www.ppssdd.com/code/13189.html。转载请保留出处,谢谢合作!
dede 标签调用,dede调用_PHP教程
dede 标签调用,dede调用
调用某栏目名字
{dede:type typeid=''1''}[field:typename /]{/dede:type}
调用某栏目链接
{dede:type typeid=''1''}[field:typelink /]{/dede:type}
DedeCMS 栏目页调用新闻的*张图片
1:有的幻灯片有大小图,一般来说那大图比小的要大很多,例如我仿制的163k的新闻幻灯片就是如此,我看很多人都放弃了这个幻灯,因为显示大图的地方调用缩略图的话就会图片失真...
2:用来实现有些博客风格一个功能:在栏目页面每个log的标题下显示一张图片(不是dede的缩略图哦)
方案,
由于标签arclist不支持body,所以arclist调用的地方改为sql标签 独立模型列表和list支持底层源码调用body ,所以可以直接使用
{dede:sql sql='select * from dede_archives left join dede_addonarticle on dede_archives.id=dede_addonarticle.aid where find_in_set("f",dede_archives.flag)>0 order by dede_archives.id desc limit 0,5'}
<div>[field:body function=firstimg('@me')/]</div>
{/dede:sql}
注意:实现的方案是自定义一个函数
函数代码
Copy codefunction firstimg($str)
{
$str1 = str_replace('"','',$str);
preg_match('/<img[^>]*>/i',$str1,$str2);
$str3 = array_shift($str2);
$str4 = str_replace(' alt= ',' ',$str3);
return $str4;
}
将以上代码加入到include下的channelunit.func.php中,
底层源码字段调用的时候
[field:body function=firstimg('@me')/]
标签调用
{field:body function=firstimg('@me')/}
不过这个函数有它的局限性,新闻中的图片一定要出现在新闻的开头才能达到效果,否则会失败
好了,辛苦了几天终于搞定!
本文章网址:http://www.ppssdd.com/code/4451.html。转载请保留出处,谢谢合作!dedecms织梦dede:arclist按照自定义字段的条件调用相关新闻
dedecms织梦dede:arclist按照自定义字段的条件调用相关新闻,这对于想要在首页调用某个自定义字段的新闻的同学来讲,特别不错
打开 \include\taglib\arclist.lib.php 找到
//关键词条件
在它的上面加入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//自定义字段关键词条件
if($ctag->GetAtt('addk')!='')
{
$addkeywords = explode(',' , trim($ctag->GetAtt('addk')));
$addf = $ctag->GetAtt('addf') ? $ctag->GetAtt('addf') : "body";
$filtersql = '';
$n = 1;
foreach($addkeywords as $k)
{
if(trim($k)=='') continue;
else $k = addslashes($k);
$filtersql .= ($filtersql=='' ? " find_in_set('$k', addf.$addf) " : " OR find_in_set('$k', addf.$addf) ");
$n++;
}
$orwheres[] = $filtersql;
}
源码调用标签写法
1
2
3
4
5
6
7
8
9
{dede:arclist typeid='1' row='10' channelid='1' addfields='jiage,dengji,shangdao,canyin' addk='奢华6星' addf='dengji'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" width="143" border="0" height="106">
<span>[field:title/]</span><br/>
<small>岛屿等级:[field:dengji/]</small>
</a>
</li>
{/dede:arclist}
channelid='1' //模型id号
addfields='jiage,dengji,shangdao,canyin' //自定义字段
addk='奢华6星' //要调用的自定义字段值
addf='dengji' //要调用的自定义字段
本文章网址:http://www.ppssdd.com/code/12147.html。转载请保留出处,谢谢合作!dedecms织梦dede:channel在标签里面调用文章列表
关于织梦dede调用dede:sql,dede:php标签 调用新闻的静态链接地址和织梦cms调用栏目图片的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于dede 标签调用,dede调用_PHP教程、DedeCMS 栏目页调用新闻的*张图片、dedecms织梦dede:arclist按照自定义字段的条件调用相关新闻、dedecms织梦dede:channel在标签里面调用文章列表等相关知识的信息别忘了在本站进行查找喔。
本文标签: