好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

dedecms底层模版 dede底部模板

很多站长朋友们都不太清楚dedecms底层模版,今天小编就来给大家整理dedecms底层模版,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 什么叫底层模板 2、 dedecms中 底层模板用什么框架写的? 3、 dedecms中dede:global dede field分别是什么意思?有何区别?系统基本参数和DEDE标签是否一样? 什么叫底层模板

底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。

因为这个概念很虚线,那么这个地方还是通过实践去说明吧。

大家在标签测试的地方输入:

这是使用默认底层模板的标签:

{dede:arclist row=10}{/dede:arclist} <hr>

这是手工指定底层模板的标签:

{dede:arclist row=5}

◆ <a href=’[field:arcurl/]’>[field:title /]</a> 点击:[field:click/] <br />

{/dede:arclist}

有一点需注意的是,在没有指定底层模板(Innettext)的时候,系统一般调用 templets/system 里的相应该文件作为底层模板。例如: {dede:arclist row=10}{/dede:arclist} 它实际由系统默认调用了 templets/system/part_arclist.htm 这文件的东西作为底层模板。这文件的内容是 ·<a href="[field:filename /]">[field:title /]</a><br/>那么 {dede:arclist row=10}{/dede:arclist}

就等同于{dede:arclist row=10}·<a href="[field:filename /]">[field:title /]</a><br/>{/dede:arclist}既能用短标记,也能直接定义样式,又不依赖数据库,这是dedecms模板和其它模板的最大区别。

在标记之间 [field:…/] 这些就是底层模板变量,这些标记一般也是属于 Dedecms 标签的模式,只是 { … } 符号改为了 [ … ],因此底层模板中的标签也是具有DedeCms标签的特性的,例如,在底层模板中使用 [field:global name=’cfg_webname’/] 同样可以表示全局变量 $cfg_webname。

具体哪些标记可以用Innertext,那些不可以用,可以在这页面参考。

在此我简单介绍一下常用的 arclist 标记的底层模板字段及意义:

arclist的底层模板字段实际上是对应相应该的主索引表的,在文档模板中则对应该主表和附加表,主表字段是一样的,我等会介绍一下,附加表的可以在模型里找。

arclist常用的字段有:

ID(同 id),title(标题),color,typeid(栏目ID),description(摘要,同 info),writer(作者),shorttitle(短标题),memberid(会员ID),pubdate(发布时间),click,litpic(缩图图,同 picname),typename(栏目名称),arcurl(网址,同 filename),typeurl(栏目网址)stime(pubdate 的"0000-00-00"格式,等同于[field:pubdate function="strftime('%y-%m-%d',@me)"/]),textlink(等同<a href='[field:arcurl /]'>[field:title/]</a>),typelink(等同<a href='[field:arcurl /]'>[field:title/]</a>),,imglink(等同<a href='[field:arcurl /]'><img src='/data/upload/help/202212/10/596c549266027564a98ed0ecb620c328.' border='0'></a>),image(等同<img src='/data/upload/help/202212/10/596c549266027564a98ed0ecb620c328.'>),大家需注意的一个问题是:[field:标记名称/]这种写法是仅在底层模板中才用的。在文档模板中,字段是用 {dede:field name='title'/}这样形式表示的。不过在一种特殊的情况下,Innertext是无效的,就是指定了 runphp=’yes’ 属性,:A、function 扩展;B、在Innertext中直接编程。

一、那么首先说 A、function 扩展:

在标记中,可以使用 {dede:标记名称 function=”函数名(@me,其它参数)” /}这样模式对标记的值进行处理,其中 @me 就是表示标记当前的值,最终获得的结果是这个函数返回的值。

大家不妨测试一下下面这个标签:{dede:global function="file_get_contents('')" /}

下面再举个实用的例子(测试一下):

{dede:arclist row=5}

◆ <a href='[field:arcurl/]'>[field:title /]</a>

[field:pubdate function="strftime('%y-%m-%d %H:%M',@me);"/]<br />

{/dede:arclist}

从实例中大家可以注意到,{dede:xx/}和[field:xxx/}都支持function扩展。实际上 [field:xxx/] 这种模式也是dede标签解析器解析的,所以作用一样,它只是把 dede 换成 field { 换成 [在这里,function 属性的 function 不仅是用PHP自带的,用自己定义的也行。不过要注意function的格式,自定义的function不能用echo这样的输出,而是返回一个字符串,这样就行了。

写好的函数放入 include/inc_channel_unit_functions.php 文件,因为dede核心都会调用这个文件。

这里举个简单的函数:

function testMyFunc($str){return $str." 增加了我的东西哦!";}

在标签中使用:

{dede:global name='cfg_webname' function='testMyFunc(@me)'/}

用function扩展的好处是既可以增强系统的功能,又保持标记的简洁。

二、下面介绍的是另一种扩展 B、在Innertext中直接编程这种方式和function编程的不同之处是,你可以把PHP代码直接写入到标签的底层模板代码的地方,不过需要注意的是,在这里的PHP代码并非完全意义上的PHP代码,它必须符合Dede限定的格式,即是最终返回值返回到 @me 变量中,同样的是用 @me 表示标记的最初的值。

使用格式: {dede:标记名称 runphp=yes} PHP代码{/dede:标记名称}

大家测试一下这个代码:

{dede:global name='cfg_webname' runphp='yes'}

$baidu = file_get_contents("");preg_match_all("/<title>(.*)<\/title>/isU",$baidu,$baidus);@me = $baidus[1][0];{/dede:global}

这里的 cfg_webname 不再显示当前站点名了,因为 @me = $baidus[1][0]; 改变了它的值。

在使用标记内编程或function扩展时,很多情况都可能会调用数据库。在V5版本中,DedeCms的数据库进行了改进,无论你新建多少个类的对像,最终打开的链接是只有一个的,并且会生成一个 $dsql 的全局数据库类的变量。

以往有些懂dedecms数据库类的人在调用function扩展的时候,一般的做法是用 $dsql = new DedeSql(false); 这样新建一个类。实际上在V5中是不需要这样的。直接用 global $dsql;声明一下就能使用,并且在函数体中不要自行关闭(即执行 $dsql->Close())否则可能出错。

那么在这里举个简单的例子(测试代码):

{dede:global runphp='yes'}

global $dsql;$restr = '';$dsql->SetQuery("Select * From dede_feedback where ischeck=1 order by ID desc limit 5");$dsql->Execute('feedback');while($row = $dsql->GetArray('feedback')){$restr .= "<a target='_blank' href='/plus/feedback.php?arcID={$row['aid']}urlindex={$row['urlindex']}'>{$row['arctitle']}</a> -- ".cn_substr($row['msg'],200)."<hr />";}

@me = $restr;{/dede:global}

这代码是调用最新评论的。dede本身没有提供直接调用评论的标签,一般懂的人用loop标签调用,不过在本版中,新增的SQL标签会更简单。

在 DedeCms V5 中有一个标签{dede:sql sql="SQL语句 limit 记录"}底层模板{/dede:sql}

我现在改一下刚才调用评论的地方(测试代码):

{dede:sql sql="Select * From dede_feedback where ischeck=1 order by ID desc limit 5"}

<a target='_blank' href='/plus/feedback.php?arcID=[field:aid/]urlindex=[field:urlindex/]'>[field:arctitle/]</a> -- [field:msg/]<hr />

{/dede:sql}

这结果应该和上面的代码是一样的。

为了补允调用全站数据的不足,V5中新增了 arcfulllist 标记,它的作用与 arclist 标记有点类同,不示不同的是 arcfulllist 里的文件名有时候可能是动态的,这因为它是使用搜索时用的那个简单索引表。在专题文章、相关文章中默认都是使用 arcfulllist 调用指定的 id 的文档的。

由于这标记可能造成文件名不同步,我们系统后面增加了文档名批量修正功能,但为了防止忘记操作,建议建立栏目就设定好文档命名规则,以后不要经常更改。

一就是常用的模型,二是新出的模块,三是插件。

大家进到Dede管理后台“频道管理->内容模型管理”的地方可以看到:

分类信息专题普通文章图片集软件Flash产品这些都是内置的模型。大家也可以自己新建一个模型,有不少人问:Dedecms的文存储在哪里呀?下面我一步一步的教大家建立一个用文本存储的文章模型。

首先“增加一个新模型”,建立好后“添加字段”,然后转向栏目管理的地方。建立好后转到栏目管理的地方新建一个顶级栏目,内容模型选刚才建好的那个。建立好栏目后,随意在那个栏目增加一篇文章。预览文章,会发生新增的模型显示的文档。现在再回到频道模型管理的地方,在新建的频道点击“模板”。

对于类同的模型,最好是把类同的模板作为当前模型的模板。如刚才建立的模型,实际上模板和普通文章模板是一样的。

关于字段的问题,在文档模板中字段是用{dede:field name='字段名'/}表示。例如在软件模型中文件类型 filetype 单行文本(varchar) 固化表单 [修改]

语言 language 单行文本(varchar) 固化表单 [修改]

软件类型 softtype 单行文本(varchar) 固化表单 [修改]

授权方式 accredit 单行文本(varchar) 固化表单 [修改]

操作系统 os 单行文本(varchar) 固化表单 [修改]

软件等级 softrank 整数类型 固化表单 [修改]

官方网址 officialurl 单行文本(varchar) 固化表单 [修改]

语言这字段就可以用 {dede:field name='language'/} 表示,此外,title , keywords,description 这些实际上主索引表的东西,刚才说模板时已经介绍过它的含义了。

有用户提过一个问题,就是关于自定义模型如何在表布表单中调整字段的顺序。Dedecms目前没有这选项,需要改的必须用 phpmyadmin 进入 it_channeltype 这个表。编辑 fieldset 这里的XML,调一下位置就行了。

此外大家要区别一下自动模型和系统模型的区别,系统模型是固化了的,要调整必须自己修改程序,对于普通人是无法改的。不过这版本允许自行增加一些字段在里面。

因为这次讲座是个中级讲座,模型这块我就不太深入的讲解了,最后介绍一下插件和模块。

插件和模块DEDE增加新模型,必须一步到位,如果不用phpmyadmin,输入错误什么的,在后台修改不了。

插件在Dedecms中是就是一些小的实际的程序的集合,它可以简单的安装和删除,不过安装和删除仅去去掉数据库的索引记录,并非进行真正的安装。

官方网前自带的插件有:

文件管理器站内新闻发布友情链接模块留言簿模块投票模块论坛扩展广告管理正则规则测试器随机模板防采集木马扫描检测数据转换与导入实际上很多情况下单用插件是满足不了系统的需求的,实际上很多情况下单用插件是满足不了系统的需求的。因此Dedecms V5提出了模块的概念。

模块是对系统模型的一个补充,因为Dedecms的模板解析机制相对复杂,如果所有东西都依赖模型,就结果只有一个:速度越来越慢。而使用模块就补充了这方面的不足。在 Dedecms V5 的菜单中“扩展模块”里放的就是Dedecms的模块。

模块文件是一个标准化的xml文件,它即包含了模块安装删除的数据,也偶包含了图片等二进制文件。有些人问我,为什么在DedeCms V5的安装包里没发现ask、group等目录?因为这些东西都封装起来了,如果你不安装它,是不会看到这些文件的,这样就能尽大限度满足一些站长想要功能多,一些想要功能实用的需求。至于如何开发模块,我们会出一个说明,不过在今天的课程中就不讨论。

dedecms中 底层模板用什么框架写的?

{dede:type typeid=’0′ row=1} [field:typelink /] {/dede:type} 这样写的 这是调用栏目链接的!想了解更多的织梦教程可以上new.qq.com/

dedecms中dede:global dede field分别是什么意思?有何区别?系统基本参数和DEDE标签是否一样?

dede:global ,dede field标签一样的。

区别:

{dede:field.title}:

一般是在文章页调用的标题标签,显示文章的标题,全局都可以使用。 这个标签通常用在页面的head中。

基本语法:

<head><title>{dede:field.title}</title></head>。

dede:global :

是全局变量  例如后台基本参数中的站点根网址,{field:title/] :是列表页底层模板标签,需要配合{dede:list}{/dede:list}或者{dede:arclist}{/dede:arclist}一起使用。

基本语法:

{dede:list pagesize="10"}

<li>[<b>[field:typelink/]</b>]<a href="[field:arcurl/]" >[field:title/]</a></li>

{/dede:list}

扩展资料:

Field类

获得Field

1、Field[] fs=c.getFields();

//获得公有属性(只能是公有的)/*/可以是父类的公有的属性

2、Field[] fs2=c.getDeclaredFields();

//获得所有属性(全部类型的修饰符属性均可获得)

3、Field fs3=c.getField(String FieldName);

//获得指定名字的公有属性(只能是公有的)

4、Field fs4=c.getDeclaredField(String FieldName);

//获得指定名字的属性(全部类型的修饰符的属性中指定名字)

关于dedecms底层模版的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于dedecms底层模版 dede底部模板的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did161729
更新时间:2022-12-11   阅读:43次

上一篇: dedecms轮播图 网站轮播图如何实现

下一篇:dedecms搜索怎么做 dedecms采集怎么用

相关资讯

最新资料更新

  • 1.dedecms 栏目目录用首字母生成的方法
  • 2.windowsxp下织梦后台如何安装
  • 3.dedecms如何在列表页调用body内容字段的方法示例
  • 4.dedecms返回列表页功能的标签代码
  • 5.织梦dedecms在模板页面中实现会员登录退出状态显示的方法
  • 6.DedeCMS 5.7系统TAG标签伪静态设置
  • 7.dedecms会员登录积分每天只限增加一次的实现思路及代码
  • 8.dedecms搬家时出现数据库导入失败的解决方法
  • 9.Dedecms实现tags云标签随机颜色与字体大小方法详解
  • 10.DEDECMS在PHP5.4不能正常运行的解决方法
  • 11.dede调用指定栏目下相关文章的实现方法
  • 12.dedecms教程之dedecms生成速度提速的方法
  • 13.Dedecms提示信息及提示内容的修改方法
  • 14.dedecms中将系统的data目录迁移到web以外目录
  • 15.织梦栏目有缓存导致刚发布的文章条数和分页不同步处理方法
  • 16.织梦DEDE会员空间文章列表无法分页的问题的解决
  • 17.织梦dedecms自定义表单选项必填修改解决方法
  • 18.dedeCms批量修改文章发布时间的方法
  • 19.dedecms后台添加栏目图片的实现代码
  • 20.dedecms图片相关问题—后台上传图片实现图片轮播

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]