dedecms 如何调用 内容模型是“分类信息|infos”的下级栏目中的分类信息
<tr>
{dede:arclist addfields='sjdz,yysj' channelid='1' row='10' orderby='sendate'}
<td>商家地址:[field:sjdz/]</td>
<td>营业时间:[field:yysj/]</td>
{/dede:arclist}
</tr>
有些参数是我随意加上去的,关键是addfields和channelid,addfields里面是你的自定义字段,channelid如果是普通文章就是1,其他后台有,根据需要改。
动态的URL地址特别是dede系统默认自带的动态,都是使用script跳转的,非常的恶心,正好作者也要修改这个,就把dede默认动态跳转到script的方法直接改成静态的URL地址了,也就是大家在列表页调用arcurl时直接显示的是静态URL地址,而不是动态的plus/viewphpaid=1这样的了。
演示系统及注意事项
演示系统:dede57UTF8版本
注意事项:作者本文这里修改的最终效果就是内容页和专题页的动态URL在使用arcurl调用时直接显示的是url地址,另外织梦默认专题是没有跳转的,作者这里简单的二次开发了改成了可跳转,大家可参考解决dede专题模型没有跳转
dede动态跳转修改为静态url地址修改
第1步:打开arclistlibphp文件。
注:arclistlibphp文件是dede的核心文件,此文件在“includetaglibarclistlibphp”。
第2步:在打开的arclistlibphp文件中全文搜索“$query”(位于第376行),并找到相应的sql语句,修改为以下SQL语句并保存。
$query = "SELECT arc,specredirecturl as specurl,arcurlredirecturl,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule, tpnamerule2,tpispart,tpmoresite,tpsiteurl,tpsitepath $addfieldsSql FROM `$maintable` arc LEFT JOIN `dede_arctype` tp on arctypeid=tpid left join dede_addonspec spec on arcid=specaid left join `dede_addonarticle` arcurl on arcurlaid=arcid $addfieldsSqlJoin $orwhere $ordersql $limitsql";注:以上SQL语句解释 上面语句比官方原来的多加了2个左联,分别左联dede_addonspec和dede_addonarticle表,同时添加查询这2个表的URL跳转地址,上面的SQL语句是添加完后SQL语句。
第3步:再次全文搜索“$query”(位于第405行),找到这行sql语句,修改为以下sql语句并保存。
$query = "SELECT arc,specredirecturl as specurl,arcurlredirecturl,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule,tpnamerule2,tpispart, tpmoresite,tpsiteurl,tpsitepath $addfieldsSql FROM `$maintable` arc left join `dede_arctype` tp on arctypeid=tpid left join `dede_addonspec` spec on arcid=specaid left join `dede_addonarticle` arcurl on arcurlaid=arcid $addfieldsSqlJoin WHERE arcid in($idlist) $ordersql ";第4步:全文搜索“arcurl”一行代码(第490行代码处),只有一行代码替换成以下几行代码并保存。
if($row['specurl']!=''){//判断专题页的跳转是否为空,如果空就直接显示静态URL地址。$row['filename'] = $row['arcurl']= $row['specurl'];
}else if($row['redirecturl']!=''){//判断文章页跳转是否为空,如果为空就直接显示静态URL
$row['filename'] = $row['arcurl']= $row['redirecturl'];
}else{
$row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
}
代码说明: 先判断从第2 3步sql查询出来的专题url是否为空,如果不是空的,就直接把arcurl替换为所填写的地址,内容也是这样,最后如果全是空的,那么就是正常的文章了,就按官方默认的url地址算就行了。
第5步:完成以上代码并保存,上传到服务器即可生效。
你这个问题是属于:在一个内容模型里面去调用另外一个内容模型的问题了。
解决方法如下:
{dede:arclist row=10 titlelen='8' type='image' addfields='price,trueprice' channelid='6' orderby='pubdate' typeid='5' }
<li>
<a href="[field:arcurl/]">[field:image/]<span>[field:title/]</span></a>
<div>市场价:[field:price/]元</div>
<div>优惠价:[field:trueprice/]元</div>
</li>
{/dede:arclist}
说明:
channelid='6' 是内容模型的id号
addfields='price,trueprice' 这个是想要调出来的字段名。
比如你输入<label>~name~:</label>~form~元,输出后类似这样的效果:
价格:____元
也就是你前台form表单的表现形式
dede数据库字段说明:dede_addonarticle 附加文章表
aid int(11) 文章编号
typeid int(11) 分类栏目编号
body mediumtext 文章内容
dede_addonflash 附加Flash表
aid int(11) FLASH编号
typeid int(11) 分类栏目编号
filesize varchar(10) 文件大小
playtime varchar(10) 播放时长
flashtype varchar(10) 作品类型
flashrank smallint(6) 作品等级
width smallint(6) 影片宽度
height smallint(6) 影片高度
flashurl varchar(80) FLASH地址
dede_addonimages 附加图集表
aid int(11) 图集编号
typeid int(11) 分类栏目编号
pagestyle smallint(6) 表现方式(1单页显示 2分多页显示 3多行多列展示)
maxwidth smallint(6) 大图限制宽度
imgurls text 集内容(标签存放)
row smallint(6) 多列式参数(行)
col smallint(6) 多列式参数(列)
isrm smallint(6) 是否下载远程
ddmaxwidth smallint(6) 小宽度限制
dede_addonsoft 附加软件表
aid int(11) 软件编号
typeid int(11) 分类栏目编号
filetype varchar(10) 文件类型
language varchar(10) 界面语言
softtype varchar(10) 软件类型
accredit varchar(10) 授权方式
os varchar(30) 运行环境
softrank int(11) 软件等级
officialUrl varchar(30) 官方网址
officialDemo varchar(50) 程序演示地址
softsize varchar(10) 软件大小
softlinks text 软件下载链接列表
introduce text 软件介绍
dede_addonspec 附加专题表
aid int(11) 专题编号
typeid int(11) 分类栏目编号
note text 专题内容(仅存放标签代码)
dede_admin管理员信息表
ID int(10) 自动编号
usertype int(10) 用户类型
userid varchar(30) 用户登录ID
pwd varchar(50) 用户密码
uname varchar(20) 用户笔名
tname varchar(30) 真实姓名
email varchar(30) 电子邮箱
typeid int(11) 负责频道(0表示全部)
logintime datetime 登录时间
loginip varchar(20) 登录IP
dede_admintype 系统用户组管理表
rank smallint(6) 组级别编号
typename varchar(30) 组名称
system smallint(6) 是否为系统默认组
purviews text 权限列表
dede_arcatt文档自定义属性表
att smallint(6) 编号
attname varchar(30) 属性名称
dede_archives 文章表
ID int(11) 自动编号
typeid int(11) 所属主栏目编号
typeid2 int(11) 所属副栏目编号
sortrank int(11) 文章排序(置顶方法)
iscommend smallint(6) 是否推荐
ismake smallint(6) 是否生成静态
channel int(11) 文章所属模型
arcrank smallint(6) 阅读权限
click int(11) 点击次数
money smallint(6) 消费点数
title varchar(80) 标题
shorttitle varchar(36) 简略标题
color varchar(10) 标题颜色
writer varchar(30) 作者
source varchar(50) 来源
litpic varchar(100) 缩略图
pubdate int(11) 录入时间
senddate int(11) 发布时间
arcatt smallint(6) 自定属性(att)
adminID int(11) 发布管理员ID
memberID int(11) 发布会员ID
description varchar(250) 摘要
keywords varchar(60) 关键词
templet varchar(60) 文档模板
lastpost int(11) 最近评论时间
postnum int(11) 评论数目
redirecturl varchar(150) 跳转网址
mtype int(11) 用户自定义分类
userip varchar(20) 用户IP
locklikeid smallint(6) 是否锁定相关文章
likeid varchar(240) 相关文章ID
dede_arcrank 阅读权限表
ID int(10) 自动编号
rank smallint(10) 权限等级
membername varchar(20) 等级名称
adminrank smallint(10) 管理等级
money int(11) 消费点数
dede_arctype 栏目管理表
ID int(10) 栏目编号(自动编号)
reID int(10) 父栏目编号
topID int(10)
sortrank smallint(6) 排序编号
typename varchar(30) 栏目名称
typedir varchar(100) 栏目目录
isdefault smallint(6) 栏目列表选项(1链接到默认页 0链接到列表第一页 -1使用动态页)
defaultname varchar(20) 默认页的名称
issend smallint(6) 是否支持投稿
channeltype smallint(6) 频道类型
maxpage int(11) 保留
ispart smallint(6) 栏目属性
corank smallint(6) 浏览权限
tempindex varchar(60) 封面模板
templist varchar(60) 列表模板
temparticle varchar(60) 文章模板
tempone varchar(60) 单独页面模板
namerule varchar(50) 文章命名规则
namerule2 varchar(50) 列表命名规则
modname varchar(30) 模板名称
description varchar(200) 栏目介绍
keywords varchar(100) 关键词
moresite smallint(6) 多站点支持
siterefer smallint(6) 多站点站点根目录属性
sitepath varchar(60) 多站点站点根目录
siteurl varchar(60) 多站点绑定域名
ishidden smallint(6) 是否隐藏栏目
dede_sgpage 单页
上面是一些常用字段,可以在dede后台-》系统-》SQL命令行工具执行sql语句来批量修改!
0条评论