需求3: 在添加某个商品的时候,我们希望多一个信息,就是付费方式,还希望多一个邮资信息,我们又该怎样处理?

引出修改内容模型的问题

每个模型的字段管理的所有信息 都属于附加表。

步骤:

  1. 点击 核心->内容模型管理->商品修改->字段管理->添加新字段.

说明: 当你操作完毕后,就会在对应的 附件表中增加了一个对应的字段.

需求4: 请各位同学看看,这里我们有一个问题,就是当你点击武侠,爱情,电器的时候,会找不到对应的页面,这是为什么呢?这个就是直接点击 更新栏目HTML

说明: 我们设计网站前台的时候,可以参考这样一个思路: 网站分三级目录    首页面->栏目页->内容页

思考题:1. 栏目(类别)是保存在哪个表中的. 2. 一篇文章,一个商品它们最终是存放在数据库中的哪些表中?

答: 栏目(类别)是保存在哪个表中的. dede_arctype

一篇文章,一个商品它们最终是存放在数据库中的哪些表中?

内容是分别放在两张表 ,一张是他的主表,该主表是通用 dede_archives , 附件表 dede_addonXXX.

u  在DEDE中增加内容的基本步骤是怎样?

(1)    找模型,如果有的话,你可以使用,但是你也可以自定义一些字段,你也全新的创建一个模型,比如: 我现在要搞一个电影网站.

增加一个模型的步骤是:

  1. 点击核心->内容模型管理->增加新模型 , 进入页面后,自己看看就知道怎样添加了

说明: 当你增加一个模型后,就会在数据库中增加一个对应的 附件表 dede_addonXXX

(2)    添加一个栏目,根据你的实际情况来定, 刷新一把才看到

(3)    增加内容 ,根据实际情况输入即可

u  说明一下DEDE 的目录结构

dedecms/a 目录 用于存放生成的静态页面

dedecms/data 目录 用于存放临时文件和缓存文件

dedecms/images 目录 用于存放dede自己的图片

dedecms/include 目录 核心类库(标签库,操作图像的类,操作数据库的类)

dedecms/install  目录,安装信息

dedecms/dede 目录,存放后台管理程序

dedecms/member 目录,存放会员管理程序

dedecms/plus  目录,存放插件程序,和将来你开发的程序模块

dedecms/templates 目录,存放dede前台的所有模板文件

dedecms/uploads 目录,存放你上传的图片、视频。。

u  如何去掉广告

思路: 因为dede 创建 静态页面的机制,通过模板文件,去创建对应的 静态页面,因此我们思路是,修改这个对应的模板文件.

dede的标签问题:

  1. 如何去查阅标签手册

后台->模板->默认模板管理->点一个修改

可以看到参考标签

u  如何去掉列表表的广告

知识点: 如何去找某个栏目的列表页

后台->网站栏目管理->找到对应的栏目->更新->高级选项->

到 dede/templates/default /下去找到 对应的模板文件,进行修改即可,然后重新更新栏目HTML

☞ 每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个,修改后,就同时收到影响.

u  dede标签的讲解

  1. dede 的标签是在 模板中使用
  2. 我们可以建立自己的模板文件,来学习各个标签的使用

u  具体的标签使用

  1. 单标签

用法

{dede:标签名 属性=“值” .../}

举例说明:

{dede:include filename=”head.htm”/}

2.       双标签

用法

{dede:标签名 属性=”值”....}内容{/dede:标签名}

{dede:标签名 属性=”值”....}内容{/dede}

举例说明:

channel标签的用法.

---chanel标签的用法---

<!--channel标签类似 select * from dede_arctype  where ishidden<>1 limit 0,8-->

{dede:channel  type='top'  row='8'}

[field:typename/]

{/dede:channel}

知识点: 如何去查看channel标签的源码. /dedecms/include/taglib/channel.lib.php

die();//在源码里面  打印变量

2.       双标签

用法

{dede:标签名 属性=”值”....}内容{/dede:标签名}

{dede:标签名 属性=”值”....}内容{/dede}

举例说明:

channel标签的用法.

---chanel标签的用法---

<!--channel标签类似 select * from dede_arctype  where ishidden<>1 limit 0,8-->

{dede:channel  type='top'  row='8'}

[field:typename/]

{/dede:channel}

知识点: 如何去查看channel标签的源码. /dedecms/include/taglib/channel.lib.php

die();

3.字段标签的用法

举例

<!--channel标签类似 SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, 8 -->

{dede:channel  type='top'  row='8'}

<!--field:typename就是说,把查询的字段typename信息放在这个位置  -->

[field:id/]=[field:typename/]

{/dede:channel}

需求: 如果,我们希望把取出的某个字段数据,进行处理,在输入,怎么办?

具体: 对取出typename值,进行md5加密

具体使用如下:

{dede:channel  type='top'  row='8'}

<!--field:typename就是说,把查询的字段typename信息放在这个位置  -->

[field:id/]=[field:typename/]==

<!--如何对取出的字段值,使用php函数 @me就是表示取出的值-->

[field:typename function='md5(@me)'/]

{/dede:channel}

4.怎样把取出的值进行PHP运行

[field:字段名 runphp=”yes”]

这里可以写一些简单的php码(这里的php码一般是比较简单,如果复杂则可以写一个自定义函数来处理.)

[/field:字段名]

5.如何自定义函数

首先在  /include/extend.fuc.php 中添加自己的函数

/*

我们自定义的函数

*/

function abc($val){

return $val."hello,world";

}

看看怎么使用

<!--如何在dede中自定义函数,把typename值拼接 hello,world并返回-->

-----------------------

[field:typename function="abc(@me)"/]

注意: dede的标签是不可以嵌套使用,否则出问题.

6.dede标签如何调用全局的变量值

用法是

{dede:global.全局变量名/}

思想: 很多的项目,为了开发的方便,把一些常用的变量,做成全局,然后使用使用比较方便. , dede的有一个非常重要的文件. include/common.inc.php文件,中有很多全局值.

举例:

---取出全局变量值

{dede:global.cfg_soft_lang/}

☞ 因为dede的标签是不可以嵌套,所以,如果你要在dede标签中,取出全局变量,则应当这样取

[field:global.全局变量名/]  等价于 [field:global name=’全局变量名’/]

举例

[field:global.cfg_soft_lang/]

u  实战阶段-a67手机电影网的开发.

前提: 网站的前台静态页面,已经开发好了.

1 把dede首页面换成 a67网站首页面.

步骤:

  1. 首先把 templates/defualt 备份一份
  2. 把templates/defualt 清空
  3. 把a67 的首页.html 和 images css js 整体拷贝到 templates/default下,
  4. 首页.html 换成 index.htm
  5. 打开 index.htm 进行网页编码,css,js引入,images图片路径修

<meta http-equiv="Content-Type" content="text/html; charset={dede:global.cfg_soft_lang/}" />

<link href="{dede:global.cfg_templets_skin/}/css/style.css" type="text/css"  rel="stylesheet"/>

<link href="{dede:global.cfg_templets_skin/}/css/index.css" type="text/css"  rel="stylesheet"/>

<script language="javascript" src="{dede:global.cfg_templets_skin/}/js/global.js"></script>

<SCRIPT src="{dede:global.cfg_templets_skin/}/js/jquery-1.4.2.min.js" type=text/javascript></SCRIPT>

<SCRIPT src="{dede:global.cfg_templets_skin/}/js/lanrentuku.js" type=text/javascript></SCRIPT>

把 “images/ 替换成 "{dede:global.cfg_templets_skin/}/images/

  6. 更新首页面,浏览即可看到最新的a67 首页.

2. 将dede首页面栏目换成a67电影网的首页面栏目

  1. 创建电影这个内容模型
  2. 创建我们的栏目(我的电影、我的电视剧)
  3. 使用dede 标签,在 index.htm 模板中,把我们需要的栏目内容取出

  {dede:channel}..{/dede:channel}   //获取栏目列表标签

具体的代码是

<ul>

<li><a href="http://www.a67.com/" target="_self">首页</a></li>

{dede:channel type="top" row="8"}

<li><a href="http://www.a67.com/movie/" title="手机电影" target="_self">

[field:typename /]

</a></li>

{/dede:channel}

<li><a href="http://www.a67.com/zhuanti/" target="_blank">专题</a></li>

</ul>

3.a67网的栏目列表页面

图示:

步骤:

  1. 请先把不必要的栏目先删除.
  2. 看看你的电影的模型对应的列表模板文件叫什么名字,然后在 templates/defualt 目录下创建一个空的  list_movie.htm 名字.(根据你创建的栏目后的高级选型里面,有个对应生产的栏目htm)
  3. 更新栏目HTML
  4. 更改首页面的栏目的超链接,让它指向直接的列表静态页

这里请大家在 首页面模板中 href 这样写

<!-- select 列表 from dede_arctype ...-->

{dede:channel type="top" row="8"}

<!--大家注意typelink并不是dede_arctype表的字段,他是在程序计算得到-->

<li><a href="[field:typelink/]" title="手机电影" target="_self">

[field:typename /]

</a></li>

{/dede:channel}

  5. 把a67的栏目列表模板文件拷贝到 templates/default 名字,是list_movie.htm

然后做 网站编码,资源引入(css/js), 图片的路径的替换,这个和首页面是一样.

  6. 把栏目的导航,的首页面改成我们的本地.

u  把首页面的今日更新的数据,从我们自己的dede取出,并显示  

步骤

  1. 首先自己在后台添加一些数据(电影、电视剧)
  2. 在首页面的模板文件中,使用标签{dede:arclist} 来取出文档
  3. 具体代码是在 index.htm中写的.
{dede:arclist limit='0,10' typeid='5' channelid='18' addfields='language,area,type'}
<dl class="w128">
<dt><a href="/movie/55733.html" title="[field:title/]">
<img alt="[field:title/]" src="[field:litpic/]" onerror="this.src='/views/images/nophoto.jpg'" class="loading">
<span class="bg">[field:area/]</span>
<span class="time">[field:type/]</span>
</a></dt>
<dd>
<p class="p1"><a href="/movie/55733.html" title="[field:title/]">[field:title/]</a></p>
<p class="p2"></p>
</dd>
</dl>
{/dede:arclist}

u  a67网的首页面的今天更新滚动内容的自定义

特殊的需求,就是,我们希望在取出栏目记录 或者是 内容记录(电影,电视剧), 是更加灵活.--->{dede:sql}

举例: 使用 {dede:sql语句来完成上述功能}

基本用法:

{dede:sql sql=''}
[field:title/]
{/dede}

            <!--分析:title是从主表取出的,litpic是从主表取出的,  arcrank是从主表取出的,area是从附加表取出的,type也是附加表-->{dede:sql sql="select t1.title,t1.litpic,t1.arcrank,t2.area,t2.type from dede_archives t1,dede_addonmovie t2 where t1.typeid =5 and t2.aid=t1.id and t1.arcrank=0 order by t1.click desc"}<dl class="w128"><dt><a href="/movie/55733.html"  title="[field:title/]"><img alt="[field:title/]" src="[field:litpic/]" onerror="this.src='/views/images/nophoto.jpg'" class="loading"><span class="bg">[field:area/]</span><span class="time">[field:type/]</span></a></dt><dd><p class="p1"><a href="/movie/55733.html"  title="[field:title/]">[field:title/]</a></p><p class="p2"></p></dd></dl>{/dede:sql}

u  a67网的首页的添加我的电视剧,并完成各个栏目对应的列表页

请大家完成,当我们点击我的电视剧时,就显示电视剧内容,点击电影就显示电影的内容.

步骤如下:

  1. 找到对应的栏目列表模板文件 list_movie.html .做修改

其它的问题

如何 安装自己希望的顺序来显示我们的栏目.

思路:

{dede:channel} 如果可以接受我们传递的某个数据,然后,我们再在 channel.lib.classs 文件中进行处理好?

{dede:channel orderby=”id”}

处理方法是,可以再channel.lib.class 中进行二次处理

die(var_dump($ctag));

目的是去取出id

object(DedeTag)#21 (8) { ["IsReplace"]=> bool(false) ["TagName"]=> string(7) "channel" ["InnerText"]=> string(211) " [field:typename/] " ["StartPos"]=> int(2845) ["EndPos"]=> int(3117) ["CAttribute"]=> object(DedeAttribute)#20 (2) { ["Count"]=> int(3) ["Items"]=> array(4) { ["tagname"]=> string(7) "channel" ["type"]=> string(3) "top" ["row"]=> string(1) "8" ["orderby"]=> string(2) "id" } } ["TagValue"]=> string(0) "" ["TagID"]=> int(6) }

die(var_dump($ctag -> CAttribute));

object(DedeAttribute)#20 (2) { ["Count"]=> int(2) ["Items"]=> array(3) { ["type"]=> string(3) "top" ["row"]=> string(1) "8" ["orderby"]=> string(2) "id" } }

相对于

  class DedeAttribute {var $Count; //intvar $Items; //array
  }$ctag->CAttribute 就是  DedeAttribute类的一个对象实例$ctag->CAttribute ->Items['orderby']

var_dump($ctag -> CAttribute -> Items["orderby"]);

string(2) "id"

在arclist 加一个 自定义属性

①我们在前台页面写入自定义属性  hspwhere=" addf.language='国语'"

②打印下sql语句,echo $query;

SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart, tp.moresite,tp.siteurl,tp.sitepath ,addf.language,addf.area FROM `#@__archives` arc left join `#@__arctype` tp on arc.typeid=tp.id LEFT JOIN `dede_addonmovie` addf ON addf.aid = arc.id WHERE arc.id in(10,8) ORDER BY arc.sortrank desc

我们不难发现,dede_addonmovie` addf ,给这个表起了个别名,

③仔细观察表的时候,我们又发现底层有一个能获取表参数的函数

$ctag->GetAtt('hspwhere')

输出打印一下   addf.language='国语'   输出了字段和值

④让拿到的内容加入到筛选的函数里面去

    $hspwhere=$ctag->GetAtt('hspwhere');// echo $hspwhere;if(!empty($hspwhere)){$orwheres[] = $hspwhere;}

u  a67网的主页面和栏目列表的今日更新,点击后进入内容页面

思路:

找到内容页的模板文件.

后台->核心->栏目列表->点击某个栏目->高级选项

发现 电影和电视剧用的文章模板是 article_movie.htm

步骤:

  1. 把 前端提供的 电影内容.htm  拷贝到 article_movie.htm
  2. 对模板做 网页编码,资源引入,图片的路径进行修改
  3. 重新生成内容页
  4. 修改了首页面模板文件 index.htm
  5. 对article_movie.htm进行处理,取出对应的数据.

这里有一个新的知识点,如何在内容页中取出对应记录(电影、电视剧)的字段信息.

方法是 {dede:field.字段名 /} 说明这个字段,可以是主表的字段,也可以是附加表字段

具体的代码如下  article_movies.htm

面包屑导航标签:

使用的方法:

{dede:field.position/}{dede:field.title/}

u  a67网的内容页面增加统计浏览量的功能

首先,我们看看dede自己怎么做的!!!

<li><em>浏览量:</em><script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script></li>

如何写自己的程序(插件),去操作dede 的后台数据库的表->

☞ isset和  empty的区别是什么

empty 判断一个变量是否为“空”,isset 判断一个变量是否已经设置。

$name=0;

$name='';

$name=null;

$name="0";

$name;

if(empty($name)){

       echo "ok"; //上面五种写法empty($name)都是 true

}

isset 函数是用于检测这个变量是否设置过,在下面两种情况下会认为

isset 为假

①$id; 没有给任何值

②或者就是根本没有定义.

因此我们建议在 判断某个表单是否提交有数据(可能是0 '' ),使用

isset来判断

if(isset($_GET/$_POST['变量']){

echo $_GET['变量']

}else{ echo '没有传递数据'}

转载于:https://www.cnblogs.com/laomi233/p/9664317.html

dedecms基础整理,相关推荐

  1. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法...

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  2. 量子计算基础整理(上)

    量子计算基础整理 目录 量子计算基础整理 写在前面 量子力学基础 量子的四个特性 量子态的描述 定义 状态演化 叠加态与测量 相态,纯态和混合态 混合态的表示 可观测量与量子观测 复合系统与联合测量 ...

  3. lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  4. 机器学习 —— 基础整理(一)贝叶斯决策论;二次判别函数;贝叶斯错误率;生成式模型的参数方法...

    本文简单整理了以下内容: (一)贝叶斯决策论:最小错误率决策.最小风险决策:经验风险与结构风险 (二)判别函数:生成式模型:多元高斯密度下的判别函数:线性判别函数LDF.二次判别函数QDF (三)贝叶 ...

  5. c语言中return的作用_C语言入门基础整理

    学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学. 结构化程 ...

  6. c语言3到7位水仙花数流程图_C语言入门基础整理

    学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学. 结构化程 ...

  7. Elasticsearch基础整理 脑图

    Elasticsearch知识整理,基于ES6.7.1 主要涉及ES集群各模块功能及使用说明,集群选举流程 读取/写入流程等等,不涉及dsl等具体操作,后面会持续更新! 需要完整文件 到我 公众号 ' ...

  8. 电子计算机应用地质地貌,岩土基础整理 一、高数24 1、空间解析几何与向量代数 两点间的距离,向量数量积,向量向量积,平面方程,两平面夹角,点到平面的距离,点... - 雪球...

    来源:雪球App,作者: 超级奶爸xujunhorse,(https://xueqiu.com/3442498082/131579485) 一.高数24 1.空间解析几何与向量代数 两点间的距离,向量 ...

  9. HTML5游戏开发技术基础整理

    随着HTML5标准最终敲定,HTML5将有望成为游戏开发领域的的热门平台.HTML5游戏能够运行于包括iPhone系列和iPad系列在内的计算机.智能手机以及平板电脑上,是目前跨平台应用开发的最佳实施 ...

最新文章

  1. P1444 [USACO1.3]虫洞 wormhole,新手向超详细讲解(搜索、判环、拆点、好题)
  2. VBA经典常用语句400句
  3. 关于Asp.net页面的刷新
  4. 共享文件夹的网络路径_Win10创建网络共享文件夹|设置局域网共享文件夹
  5. docker 镜像修改的配置文件自动还原_PVE部署LXC运行docker
  6. HDU 4279 - Number
  7. matlab V7.0 R14 安装教程
  8. JavaScript编程规范-有利于效率和可读性
  9. mathtype服务器不显示,出现MathType字体无效的情况怎么办
  10. 《云知声黄伟:未来谁能成为 AI 领域的 BAT ?》笔记
  11. unity关于警报灯光与警报声音的参考代码
  12. database link问题解决
  13. 多图详解:解决onenote英文输入自动切换字体为calibri
  14. matlab的稀疏表示分类,基于稀疏表示的分类方法
  15. 内网穿透工具---frp使用教程
  16. linux系统下的的nohup命令
  17. vue-element-admin 花裤衩 模板 ,中文版,运行报错解决方案
  18. 普通用户sftp 无法使用解决方法
  19. Warning[w6]
  20. DirectX 3D编程及其最简单例子

热门文章

  1. 腾讯云物联网平台实现MQTT双向通信(MQTT.fx测试)
  2. 办公娱乐一站式服务 威联通TS-251 NAS评测
  3. 计算机教育期刊多久通知录用,论文投稿后多久出录用通知,多久出刊?
  4. CFArrayRef和NSArray
  5. 竞赛经验分享 NUIST CEEE慕课计划【1】—— 全国大学生集成电路创新创业大赛
  6. huffman(赫夫曼编码)之C/C++实现
  7. Java 计蒜客——画 DNA
  8. 用gnome打造自己的ubuntu桌面
  9. 按颜色分类:橙色系(Yellow Red)
  10. 我国药品食品管理体系创新 国稻种芯:药食同源大健康产业