dedecms_项目开发笔记

合集下载

织梦DedeCms站点应用程序开发基本步骤

织梦DedeCms站点应用程序开发基本步骤

一、栏目规划首先需要明确建站的栏目,或是频道,或是列表,可能会有单页,还有可能是单一模块功能组合,使用DedeCms建站之前首先需要确定建站栏目,包含栏目标题,栏目描述,栏目关键词,以及栏目创建需要起到的效果,无论用户还是开发者有了这个基本栏目结构后才能确定解析来的开发需求。

每个栏目都有他的内容模型,内容模型专门用于列取,展示站点,会员发布的各种信息,内容模型的交互功能不复杂,主要以数据展示为主,管理员可以对内容模型发布的内容进行审核,删除等操作,在明确栏目的同时需要通过对栏目结构的了解,确定是使用内容模型,还是需要进行模块开发,例如:房产频道,这样一个栏目,由于主要是展现房产信息,所以主要采用内容模型的方式就可以满足,问答(类似百度问吧),由于其中需要涉及到各种权限,等级,内容积分操作,互动性比较强,这类的则需要进行独立模块的二次开发,当然确定模型和模块也是需要同技术团队进行简单沟通,不同技术团队实现的方式有所不同。

二、确定内容模型字段在第一步中我们知道了需要单独创建的内容模型,接下来就需要对内容模型中的各个字段进行明确,一般内容模型字段由用户确定(大多数内容模型字段可参考同类站点),确定模型字段最好采用以下格式:字段说明字段名(英文单词) 类型备注—————————————————–上架时间uptime 日期产品简介description 单行文本产品图片propic 上传图片产品详细信息body HTML内容字段名(英文单词)可有程序开发者提供,但对应字段说明应当配合用户了解清楚。

模型字段最好是在项目之初就进行确认,尤其是发布形式比较复杂的情况下,一旦确认进行开发,再次修改难度会比较大。

三、确认模板栏目确认和模型确认完毕后,基本上可以列出站点的模板结构,模板主要按照模型来,分为:首页,频道页,列表页,内容页,单页面,不同的栏目类型可能内容组织形式不同,所以这里需要跟用户沟通,了解清楚每个模板的类型,便于接下来模板的设计和制作。

织梦实战经验回忆录

织梦实战经验回忆录

织梦--dede1.http://localhost/文件夹名/后台目录名(自定义办法如下)修改后台目录的办法进入安装目录以后,把dede后台控制目录文件夹,2.网站的三元素:标题、关键字、与keyword在系统参数中我们可以修改网站标题、站点关键字、和站点描述等关闭图片水印也在系统参数里面当我们想做一个单页调用网上已经做好的网页可以在文件保存目录这一栏目中,键入需要链接的网址这几个目录我们一定要记住,方便我们以后对织梦的两次开发这几个文件控制具体网页的各个部分当我们修改新的模板时我们需要把新建模板的名称在系统参数这一栏里面就行修改同时,在生成主页这一栏我们也要在选择主页模板这一栏,把这个名字改一下。

或则使用一个标签{style} 就可以不用理会给模板文件夹叫什么名字了系统会通过这个标签自动获取这是几个我们必须要记得标签以至于我们可以正常的调用列表与文章内容[field:标签名/] {dede:field.标签名}当我们想从新安装dedecms时我们只需要把已安装的程序文件中,找到www目录下的install文件夹下的index.php.bak 与install_lock.txt文件即可我们首先要做的是把index.php.bak进行从命名为index.php,把install_lock.txt文件删除,就可以从新进行安装了这是我们在二次开发时所用到的几个必须的工具完成了这几步就算是简单的入门啦Wamp环境是我们要懂得window+appserv+mysql+php输入要仿制的网站的网址,加载相应的图片。

1.首先2.网站标题的调用站点描述:可以70-80个字Css的正确调用织梦图片调用的路径~~~因为一些js代码,一些功能或则照片调不出来,我们可以把代码从,js文件中复制到显示的界面进行修改即可实战操作1.站点根网址的改变方法<a href=”#”></a>这是一个空连接的意思这是提取文章头部内容的方法,在参数列表中找到对应的标签即可这是文章列表调用的几种方法增加这个变量以后,我们就可以在其中加入文字,来实现公告与网页上方文字的自动更新这是修改网页链接常用到的地方的这是修改友情链接的地方调取头部与尾部以及一些相似内容的模块针对于一些导航具有特定的属性的 <li class=” ”></li>这是封面页经常用到的地方这是在文章列表页时用到的标签内容页标题调用的方法文章内容页正文调用的标签这是制作分页时常用到的代码Page.css是保证分页能正常显示的前提,需要把其中控制分页显示的代码调用到指定的页面当中针对我们在网站上传入的图片有水印,我们可以在这里设置来消除水印这是调取文章缩略图时常用到的标签target=”_blank”是控制页面在一个新的页面中打开,这样可以提供用户体验限制列表,按最新发布时间排序修改网页列表或则滚动文字中文字的颜色我要保证自己的网站不被别人挂黑链接保证网站的安全备份数数据库网站的成功与虚拟主机的选择有很大的关系我们在本地做好的网站,准备上传到数据库中时,我们需要这些信息,域名解析需要一段时间才可以生效使用ftp工具上传上的压缩文件不能直接解压缩,需要我们登陆后台以后使用文件解压缩功能,对上传到服务器空间上的文件进行解压缩在我们上传到服务器空间后需要对程序进行重新的安装,我们需要将文件index.php.bak 改名成index.php 同时把文件install.lock.text文件删除,即可对成寻进行重新安装这里面信息也要修改否则,也会出现错误哦操作修改模板风格以及选择主页模板这里的名称先更新一次然后再把名字换成原来的再次更新就可以了1首先是删除安装目录中一些没有用到或则用不到的文件夹2.修改这个文件这是数据库配置文件把它改成只读的权限、3.修改用户登陆密码的办法修改用户名的方法,需要我们在数据库中进行修改清除浏览器缓存的方法这是我们需要做的几个步骤如何取消服务器/主机空间目录脚本的执行权限如何取消服务器/主机空间目录脚本的执行权限网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录,本篇将针对不同服务器环境来介绍如何取消这两个目录的执行权限,当然我们也建议用户其他一些生成纯静态html的目录,拥有可写入权限的也统统去除执行权限,这样系统会更为安全。

织梦CMS标签-课堂笔记【首页篇】

织梦CMS标签-课堂笔记【首页篇】

注意点:1.dede的标签不可以嵌套(除了channelartlist里面可以嵌套指定的标签),那么当需要使用{dede:global.cfg_webname/}dede标签的时候我们需要转换成[field:global.cfg_webname/]2.使用范围我们讲的标签,如果不特殊说明那就是说这个标签可以在任何的模板页使用全局使用,所有的模板页面都可以使用!首页常用标签:1.{dede:global.cfg_soft_lang/}调用出网站的编码2.{dede:global.cfg_webname/}调用出网站的名称3.{dede:global.cfg_description/}调用出网站的描述信息4.{dede:global.cfg_keywords/}调用出网站的关键字5.{dede:global.cfg_templets_skin/}调用出默认模板文件的目录6.{dede:global.cfg_cmsurl/}调用出网站的目录,url地址7.{dede:global.cfg_cmspath/}调用出网站的所在路径8.{dede:global.cfg_dataurl/}调用出网站的data目录9.{dede:global.cfg_basehost/}调用出网站所在的域名10.{dede:myad name='sifangku'/}调用出对应的广告name后面的值表示广告位标识11.{dede:include filename='my_head.htm'/}引入另外一个模板文件,只要在filename后面写上模板文件的名字就可以了基本现象:双标签:写在双标签之间的内容会被循环的输出(重复的输出)写在双标签之间的字段标签,在被输出的时候转换成了对应的内容12.channel标签[field:typename/] 栏目名称[field:typelink/] 栏目的url地址(据对路径)type 表示需要取出的栏目的类型,顶级栏目(top),子栏目(son,需要配合typeid)row表示取出几条栏目13.arclist标签{dede:arclist}<a href='[field:arcurl/]'>[field:title/]</a>{/dede:arclist}[field:title/] 对应的是文档的标题[field:arcurl/] 对应的是文档的url地址flag属性指定文章自定义属性flag=“h”调用头条文章titlelen属性指定文章标题长度14.channelartlist标签用在首页:功能:调用出网站的顶级栏目,以及栏目下面的文章。

dede(织梦)二次开发手册之主要模板文件与功能说明篇.chm

dede(织梦)二次开发手册之主要模板文件与功能说明篇.chm

友情提供: 主要模板文件与功能说明DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS 支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用 {cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念1、板块(封面)模板:指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID.htm” 命名。

3、档案模板:表示文档查看页的模板,如文章模板,一般用 “article_识别ID.htm” 命名。

4、其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、 命名,DedeCMS模板默认命名规则如下1、模板保存位置:模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system 为系统底层模板,plus为插件使用的模板)/具体功能模板文件}2、 模板文件命名规范:(1)index_识别ID.htm: 表示板块(栏目封面)模板;(2)list_识别ID.htm: 表示栏目列表模板;(3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);(4)search.htm: 搜索结果列表模板;(5)index.htm: 主页模板;注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。

织梦dedeCMS二次开发文档手册

织梦dedeCMS二次开发文档手册

DedeCMS二次开发必备基础:•非常熟悉HTML•熟悉DIV+CSS的布局•扎实的PHP基础,熟悉结构化编程,了解OOP,并能看懂和使用•熟悉MYSQL,掌握SQL语言DedeCMS二次开发学习过程•理解CMS是什么•熟悉DedeCMS的功能(如:栏目的分类,文档管理,模型的使用,系统的设置等常用的功能)•掌握DedeCMS的模板标签使用及原理•DedeCMS目录结构分析熟悉每个文件夹里面主要装什么文件,这样在二次开发的时候知道在哪个文件夹下的什么文件修改目录结构摘要:./a 生成文件存放路径./data 缓存文件及数据中心/admin 管理后台数据/backupdata 备份数据/cache 缓存文件/enums 级别联动数据,JS,枚举类型的缓存文件/js 常用的JS/mark 水印相关文件/module 模块安装文件/rss Rss相关/sessions Session 存放路径/textdata 文本数据/tplcache 模板缓存/uploadtmp 上传文件缓存位置/ziptmp zip包解压缓存位置……•DedeCMS文件结构分析熟悉每个文件的基本功能,方便做修改,知道每个文件的大概作用之后,可以方便的对文件进行修改文件结构摘要:common.inc.php 数据库配置文件config.cache.bak.php 后台系统配置备份config.cache.inc.php 后台系统配置文件缓存downmix.data.php 采集混淆缓存文件mysql_error_track.inc MYSQL错误��志safequestions.php 安全问题sitemap.html 站点地图sys_pay.cache.php 支付网关配置template.rand.php 随机模板设置……•DedeCMS数据库结构分析,至少要熟悉每个表的作用熟悉每个表的作用,了解几个核心表的设计及字段的含义,方便拿到新的需求之后,能快速的判断是否加字段,还是新建表来处理。

dedecms开发笔记

dedecms开发笔记

dedecms开发笔记dedecms是一种简单易用的CMS(内容管理系统)平台,主要应用于网站建设和应用开发。

它具有灵活、可扩展、安全等诸多优点,能够快速地建立一个完善的数字出版系统,提供各种类型的内容发布和管理功能。

本文将介绍一些dedecms开发笔记,帮助更好地了解和应用该平台。

模板是dedecms中最为重要的一环,是指网站的布局与样式,能使网站更具有个性和设计感。

dedecms提供了丰富的模板功能和模板标签,可以灵活地调用各种模板语法来完成网站的内容展示。

模板文件通常保存在dedecms的template目录下,每一个模板都包含了三个主要的文件:index.htm: 是模板的入口文件。

在该文件中调用了 header.htm 和 footer.htm 文件来分别显示网站的头部和尾部。

header.htm: 是网站的头部文件。

通常包含了网站的logo、导航栏、搜索框等常用的元素。

函数是dedecms中实现各种功能的重要组成部分。

在开发dedecms函数时,我们需要先了解dedecms提供的API和相关函数库。

例如:dede_array2string(array): 将数组转换为字符串。

GetCurUrl():获取当前网址。

GetList():获取指定栏目下的文章列表。

$cfg_ xxxx: 获取dedecms系统的配置信息。

组件是dedecms中对原有功能进行扩展或增加的一种方式。

类似于插件或模块的概念,在dedecms中,组件可以提供自定义的功能和特性,帮助网站更加强大高效。

组件的开发需要具备一定的技巧和经验,主要包括以下几点:确定组件的功能和类型。

设计组件的数据结构和逻辑处理。

编写组件的代码和脚本。

测试组件的运行效果和兼容性。

将组件发布到社区或自己的网站上。

模块是dedecms中的主要开发内容,是指对网站的各项功能进行细化、扩充和优化,从而实现更高效和更灵活的网站管理。

模块的开发需要具备一定的技能和工具,在这里提出几点需要注意的问题:编写模块的代码和脚本,包括后台、前台和配置文件等。

CMS学习笔记

CMS学习笔记
1.适用于在文档列表底层模板中使用
[field:pubdate function="Mydate('m-d',@me)"/] 或者m月d日
m:%Y:年 %m:月 %d:日 %H:小时 %m:分钟 %s:秒数
可以去掉%
小写y只取年份的后两位 分 秒 大写的则为英文
别的页面(列表页,封面页,内容页):typeid不可以少,要整站调用typeid应包括所有的频道ID
{dede:arclist row=10 typeid='1,2,3,4'}
.<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
[field:pubdate function="GetDateTimeMK(@me)"/]
列表分页标记调用方式:
{dede:pagelist listitem="index,pre,pageno,next,end" listsize='5' /}
listsize 表示 [1][2][3] 这些项的长度 x 2
config.cahe.inc.php:系统基本参数
config.cache.bak.php:系统基本参数的备份,可以用于恢复系统
dede:后台管理页面
a:静态文件目录,我们自己添加的文章之类的东西存放的地方,可以删除,通过在后台修改
images:图片目录
调用方法同上
3.引入”顶一下“这些插件
把所要添加的插件所在的默认模板中的相关JavaScript及HTML代码进入自定义模板中

EDECMS织梦制作手册超详细

EDECMS织梦制作手册超详细

DEDECMS模板制作教程1.Arclist 标记的应用,使用率很高,相当实用,所以我们使用都必须熟练掌握。

2.Field标记在封面模板、列表模板、文档模板的使用频率很高,实用。

主要用来获得到系统变量的值或者路径,用法很灵活。

可以直接展示数据,如调用position,得到栏目一> 栏目二”这样形式的链接;或者,调用templeturl 得到/templets这样路径。

3.Channel 标记主要用于获取栏目列表,用法非常简单,主要是区分“type = top,sun/son,self ”的所调用的对象就行了。

4.Type标记表示指定的单个栏目的链接,用法非常简单。

5.Autochannel标记使用实例6.Mytag标记使用实例板中多次出现的相同元素用一个自定义标记表示出来,从而达到,一次更改,全局更换的效果。

辅助插件的广告管理也有相似的效果。

7.Type标记用于获取一组投票表单。

其使用范围限于:封面模板。

8.Flink 标记使用实例用于获取友情链接。

调用该标记后可以得到四种友情链接的形式。

9.Mynew标记使用实例用于获取站内新闻。

站内新闻有利于站长及时与会员沟通。

10.ChannelArtlist标记使用实例用于获取当前频道的下级栏目的内容列表。

该标记在封面模板(包括主页)中的经常被用到11.List 标记使用实例12.Pagelist 标记使用实例13.Pagebreak标记使用实例14.Prennext标记使用实例15.Pagetitle标记使用实例模板教程【Arclist 标记使用实例】(一)Arclist标记的使用思路、步骤:一、明确使用范围我们在使用任何标记的过程中,都必须明确其使用的范围,否则可能无法正常调用该标签,【Arclist 标记】的使用范围是:封面模板、列表模板、文档模板。

即对应templets\default\文件夹下的index_识别ID.htm模板、list_识别ID.htm模板、article_识别ID.htm模板)二、通过调试了解其使用方法我调试的方法是:将templets\default\文件夹下的index.html文件代码,全部掏空。

dedecms开发笔记

dedecms开发笔记

dedecms二次开发总结1.后台所有目录在upload/dede2.后台大标题修改在upload/dede/inc/inc_menu.php3控制器有三个,例如ad_add.php ad_main.php ad_edit.php4.模板放在templets下面,名字跟模块名字相同,格式为htm5.在数据库中增加数据,直接写sql语句$query = "INSERT INTO #@__ad(ad_code,ap_code,ad_name,weight,ck_flg,lang_id,show_flg, position,dis_id,ad_info,ad_pic,bg_colour,font_colour,width,hei ght,ps_id,link_url)VALUES('$ad_code','$ap_code','$ad_name','$weight','$ck_flg','$ lang_id','$show_flg','$position','$dis_id','$ad_info','$ad_pic',' $bg_colour','$font_colour','$width','$height','$ps_id','$link_url ');";$dsql->ExecuteNoneQuery($query);ShowMsg("成功增加一个广告!","ad_main.php");exit();6.也可以放入一个数组中,然后处理$dsql->Execute('dd','SELECT * FROM `#@__myadtype` ORDER BY id DESC');$option = '';while($arr = $dsql->GetArray('dd')){$option .= "<option value='{$arr['id']}'>{$arr['typename']}</option>\n\r";}7.模板分配$dlist = new DataListCP();$dlist->SetTemplet(DEDEADMIN."/templets/ad_main.htm");$dlist->SetSource($sql);$dlist->display();8.模板输出{dede:datalist}<td>{dede:field.weight /}</td><td>{dede:ng_id function='lang(@me)'/}</td>{/dede:datalist}9.模板输出可以使用函数改变输出值,function='lang(@me)'.函数在模块中定义.10.用旧数据插入随即排练插入多条数据INSERT INTO t_device(`DV_CODE`,`LANG_ID`,`PT_ID`)SELECTDV_CODE, LANG_ID, PT_IDFROM t_adver_ap11.添加全选按钮,进行删除等操作,删除只能是删除本页全选的数据<a href="javascript:selAll()"class="coolbg">全选</a><a href="javascript:noSelAll()"class="coolbg">取消</a><a href="javascript:checkArc(0)"class="coolbg">&nbsp;审核&nbsp;</a><a href="javascript:showArc(0)"class="coolbg">&nbsp;显示&nbsp;</a><a href="javascript:delArc(0)"class="coolbg">&nbsp;删除&nbsp;</a>js代码function selAll(){for(i=0;i<document.form2.arcID.length;i++){if(!document.form2.arcID[i].checked){document.form2.arcID[i].checked=true;}}}function noSelAll(){for(i=0;i<document.form2.arcID.length;i++){if(document.form2.arcID[i].checked){document.form2.arcID[i].checked=false;}}}//获得选中文件的文件名function getCheckboxItem(){var allSel="";if(document.form2.arcID.value) return document.form2.arcID.value;for(i=0;i<document.form2.arcID.length;i++){if(document.form2.arcID[i].checked){if(allSel=="")allSel=document.form2.arcID[i].value;elseallSel=allSel+"`"+document.form2.arcID[i].value;}}return allSel;}//获得选中其中一个的idfunction getOneItem(){var allSel="";if(document.form2.arcID.value) return document.form2.arcID.value;for(i=0;i<document.form2.arcID.length;i++){if(document.form2.arcID[i].checked){allSel = document.form2.arcID[i].value;break;}}return allSel;}function checkArc(ad_id){var qstr=getCheckboxItem();//if(aid==0) aid = getOneItem();location="ad_edit.php?qstr="+qstr+"&dopost=check";}function showArc(ad_id){var qstr=getCheckboxItem();//if(aid==0) aid = getOneItem();location="ad_edit.php?qstr="+qstr+"&dopost=show";}function delArc(ad_id){var qstr=getCheckboxItem();//if(ad_id==0) ad_id = getOneItem();location="ad_edit.php?qstr="+qstr+"&dopost=delete";}编辑模块代码if($dopost=='delete'){$qstrs = explode("`",$qstr);//print_r($qstrs);if( !empty($ad_id) && empty($qstr) ){$dsql->ExecuteNoneQuery("DELETE FROM `#@__ad` WHERE ad_id='$ad_id' ");ShowMsg("成功删除一则广告代码!",$ENV_GOBACK_URL);exit();}if($qstr==''){ShowMsg("请至少选择一个!",$ENV_GOBACK_URL);exit();}foreach($qstrs as $ad_id){$dsql->ExecuteNoneQuery("DELETE FROM `#@__ad` WHERE ad_id = '$ad_id' ");};ShowMsg("成功删除广告!",$ENV_GOBACK_URL);exit;}总结:写一个函数,获取全选的id值,然后各种按钮对应的操作以及传过去的值,这也写在一个js中,例如本例中delarc();然后在模块中根据各种情况进行操作,例如判断是从单个点击过来的,还是通过全选过来的.12.对于让select 选择后保持状态的问题最恨的招数就是把参数定死,然后在页面的对应选择框中加入如下代码<?php if ($_GET['ck_flg']==0) echo 'selected'; ?>这种情况用于进行搜索时候,默认值在数据库中没有值,但是你在一开始需要把所有结果都显示出来,(如果不加参数,会出现默认值为未审核,未审核的值为0)13.用以前模块改写时.容易出现问题,(我把广告管理改为应用管理),在插入数据库中时,始终改变不了类别,纠结了一晚上,原来是sql语句在修改时带上逗号或是丢了逗号,每回都那么巧,都有错,一定要细心.灵异事件发生,就要细心,细心,再细心!!!!14.如何在预览图片然后返回,一个办法是写链接时候target="_blank";另外一种办法就是先写个div,加载时候隐藏,然后用js控制,当点击原图片的时候,显示div,把这个div层的图片换掉,当再次点击,div又隐藏.控制层(定义一个函数)function MediaType($nurl){return "图片<a href=\"javascript:;\" onClick=\"ChangeImage('$nurl');\"><imgsrc='../include/dialog/img/picviewnone.gif' name='picview' border='0' alt='预览'></a>";}view层<style>.napisdiv{right:100px;top:200px;width:150px;height:100px;position:absolute ;z-index:3}</style><script>function ChangeImage(surl){document.getElementById("floater").style.display="block";document.getElementById('picview').src = surl; }function ChangeImages(surl){document.getElementById("floater").style.display="none";document.getElementById('picview').src = surl; }window.onload=hidediv;function hidediv(){document.getElementById("floater").style.display="none";}</script><div id="floater"class="napisdiv"><a href="javascript:;" onClick="ChangeImages('../include/dialog/img/picviewnone.gif');"> <img src='../include/dialog/img/picviewnone.gif'id='picview' name='picview'border='0'alt='单击关闭预览'style='z-index:10000'> </a></div><td>{dede:field.mediatype function="MediaType(@me)"/}</td>15.当数据库插不入数据的时候,检查两个方面,一个是sql语句是否错误,另一个是字段是否为非空.。

织梦初级上部笔记

织梦初级上部笔记

目录1课 php环境搭建APMServ5.2操作: dedeCms安装 (2)3课标签介绍之首页标签 (2)4课标签介绍之列表页标签 (3)5课标签介绍之内容页标签 (4)6课标签介绍之head区域标签 (5)8课页面图片链接修改方法: (5)9课首页仿制图片和文字链接修改 (6)10课首页仿制—点击率排序目录 (6)12课列表页仿制翻页序号的仿制: (7)13课内容页仿制 (8)14课内容页仿制2 (9)15课搜索页仿制 (9)16课高手之路 (10)17课仿站美化之广告添加 (10)18课水印制作 (11)19课学习心态之细节决定成败 (11)20课后期运营之网站采集 (11)联系方式:QQ:2759381711课 php环境搭建APMServ5.2操作: dedeCms安装1.建立一个web文件夹,然后解压缩APMServ5.2,然后双击运行,在浏览器中输入127.0.0.1,如果看到php页面,则说明php搭建成功.2.把dedeCms压缩包复制到web\www\htdocs下,把里面的uploads文件解压缩到该目录下.并把该目录下面的※ phpinfom文件删除.把uploads里面的文件全部剪切复制到外边的目录里面.◎然后输入127.0.0.1就可以进入dedeCms的安装页面.◎点”安装测试体验数据”(在页面的下面)3课标签介绍之首页标签1.新模版的建立默认模版在D:\web\www\htdocs\templets\default目录下,可以在D:\web\www\htdocs\templets下建立其他模版文件夹,例如monkey,在monkey文件夹里面再建立其他文件夹,例如images和stale文件夹(这个放css)在dw建立网页的时候,要把网页默认的GBK编码改gb2312,即gb8的编码.网页文件(例如index.htm)可以直接保存在monkey文件夹里面.进入”系统”-“系统基本参数”-”模版默认风格”改成刚才的monkey.在”生成”-“更新主页HTML”中”选择主页模版”改成”monkey/index.htm”就可以浏览.2.文档标签的调用学习目标:会调用所有文档会调用耽搁栏目的文档标签:{dede:arclist} {/dede:arclist}案例:{dede:arclist row=’4’ titlelen=’24’ typeid=’2’}<a href=”[field:arcurl/]”>[field:title/]</a></br>{/dede:arclist}属性:row 调用多少条文章typeid 要调用的栏目的idtitlelen 标题显示的长度3.导航条的调用{dede:ch annel type=’top’ row=’10’currentstyle=”<li class=’hover’><a href=’~typelink~’~rel~><span>~typename~</span></a></li>”}<li><a href=’[field:typeurl/]’><span>[field:typename]</span></a></li>{/dede:channel}4.友情链接标签学习目标:会调用网站文字友情链接标签{dede:flink} {/dede:flink}案例:{dede:flink row=’24’}[field:link/]{/dede:flink}4课标签介绍之列表页标签1.列表页的建立在dw建立网页的时候,要把网页默认的GBK编码改gb2312,即gb8的编码.列表页文件(根据命名规则列表页网页名称为list_article.htm)可以直接保存在monkey文件夹里面.2.列表页的编辑(注意:列表页是所有列表页的模版,课程中可以随意生成列表页栏目,而不是特指课程中的html列表页)<table width="600" border="1"><tr><td>当前位置:{dede:field name='position'/}</td></tr>{dede:list pagesize='10'}<tr><td><p>[[field:typelink/]]<a href="[field:arcurl/]">[field:title/]</a></p><p><!--发布时间:[field:pubdate function="GetDateTimeMK(@me)"/] -->发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]点击数: [field:click/]好评数:[field:scores/]</p><p>内容简介:[field:description function="cn_substr(@me,60)"/]...</p></td></tr>{/dede:list}<tr><td>{dede:pagelist listitem="info,index,end,pre,next,pageno,option" listsize="5"/}</td></tr></table>5课标签介绍之内容页标签<body><table width="736" border="1"><tr><td width="726">当前位置:{dede:field name='position'/}</td></tr><tr><!--文章的标题 --><td>{dede:field.title/}<br />发布时间:{dede:field.pubdate function="MyDate('Y-m-d h:i',@me)"/} 作者:{dede:field.writer/} 来源:{dede:field.source/} 点击:<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>次数<br /><!-- 内容页的文章内容-->{dede:field.body/}</td></tr><tr><td>{dede:prenext get='pre'/} {dede:prenext get='next'/}</td></tr></table><br /><table width="736" border="1"><tr><td>网站名称:{dede:global.cfg_webname/}</td></tr><tr><td>网站关键字:{dede:global.cfg_keywords/}</td></tr><tr><td>网站描述:{dede:global.cfg_description/}</td></tr><tr><td>网站版权:{dede:global.cfg_powerby/}</td></tr><tr><td>备案信息:{dede:global.cfg_beian/}</td></tr></table><p>&nbsp;</p></body>6课标签介绍之head区域标签首页head区域标签调用:index.htm页面title:{dede:global.cfg_webname/}关键字:{dede:global.cfg_keywords/}描述:{dede:global.cfg_description/}列表页关键字及描述设置:”核心”-“网站栏目管理”-“点那个铅笔”-“最上端的链接”“高级选项-” -“关键字及栏目描述”列表页调用方法:title:{dede:field.title/}_{dede:global.cfg_webname/}关键字:{dede:field name=’keywords’/}列表页描述:{dede:field name=’description’ function=’html2text(@me)’/}<!--后面的function=’html2text(@me)’是把内容描述里面有html语言转换成文本-->内容页调用方法:title:{dede:field.title/}_{dede:global.cfg_webname/}关键字:{dede:field.keywords/} <!—文章内容页的关键字-->描述:{dede:field.description function=’html2text(@me)’/}8课页面图片链接修改方法:{dede:global.cfg_templets_skin/}/images/ <!--这个是图片路径-->用上述内容代替“ ”中的内容新建导航栏目的时候”文件保存目录”后面的”拼音”勾选,就可以把文件保存在相应的拼音文件夹里面.然后把所有导航栏建立好.导航栏的替换.<a class="Channel2" href="http://127.0.0.1">网站首页</a>&nbsp;|{dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"}<a class="Channel" href='[field:typeurl/]' [field:rel/] target="_blank" title="">[f ield:typename/]</a>&nbsp;|{/dede:channel}9课首页仿制图片和文字链接修改一种显示图片的方式:{dede:global.cfg_templets_skin/}/images/ <!--这个是图片路径-->用上述内容代替“ ”中的内容另外一种显示图片的方式:把{dede:global.cfg_templets_skin/}/images/中的改成images/,然后把默认模版文件夹中的imag es文件夹中的那个图片剪切到网站程序根目录(例如d:\web\www\htdocs)中的images中.栏目文字链接修改方式:在修改文字链接的时候,首先把相应的栏目的链接修改(例如把/fuqixiaohua/改成/a/fuqixiaohua/),然后把原来的主页的链接改成{dede:global.cfg_basehost/},即最终的结果是<A href=”{dede:global.cfg_basehost}/a/fuqixiaohua/” target=_blank >夫妻笑话大全</A>栏目内文档调用方法:{dede:arclist row='10' typeid='15' titlelen='18'}<img src="images/article_common4.gif" alt="普通实践教学">&nbsp;<a class="" href="[field:arcurl/]" title="[field:title titlelen='100'/]" target= "_self"><font color="#000000">[field:title/]...</font></a>&nbsp;(2013-06-27)<br>{/dede:arclist}<!—上面标红的表示鼠标悬浮的时候显示的文字描述及文字长度-->但是由于外部已经限定titlelen的长度为18,内部就不能显示那么长了10课首页仿制—点击率排序目录根据点击率排序的方法:{dede:arclist row=’16’ titlelen=’32’orderby=’click’}<img src="images/article_common4.gif" alt="普通实践教学">&nbsp;<a class="" href="[field:arcurl/]" title="[field:title titlelen='100'/]" target=" _self"><font color="#000000">[field:title/]...</font></a>&nbsp;(2013-06-27)<br>{/dede:arclist}图片调用的方法:{dede:arclist row=’5’ typeid=’14’ imgwidth=’150’ imgheight=’100’}<TD width=180><div align=center><a href=”[field:arcurl/]” target=_blank>[field:image/]</a></div></TD>{/dede:arclist}友情链接调用方法:{dede:flink linktype=’2’ row=’24’}[field:link/]{/dede:flink}<!--其中linktype=’2’表示文字链接-->12课列表页仿制翻页序号的仿制:首先在Dreamweaver中打开仿制的列表页,选中翻页序号,选中”<DIV align=right><SPAN class=STYLE13>……..</SPAN></DIV>”之间的内容,删除.用UE打开默认模版的列表页,复制之间的<div class=”dede_pages”><ul class=”pagelist”>{dede:pagelist listitem=”info,index,end,pre,next,pageno,option”listsize=”5”/}</ul></div>,粘贴到刚才的<DIV align=right><SPAN class=STYLE13>……..</SPAN></DIV>之间,要把引用css文件的语句从默认模版的head区域复制过来,内容如下:<link href="{dede:global.cfg_templets_skin/}/style/dedecms.css"rel="stylesheet" media="screen" type="text/css" />其中定义这个div和ul的css文件没有复制过来,所以要找到这个css文件,文件在默认模版的styl e文件中的page.css,复制放到仿制文件夹的style文件夹中,并修改仿制文件夹中的网页代码中的<link href=”{dede:global.cfg_templets_skin/}/style/dedecms.css”rel=”stylesheet”media=”screen”type=”text/css”/>改为<link href=”{dede:global.cfg_te mplets_skin/}/style/page.css”rel=”stylesheet”media=”screen”type=”text/css”/>其中上边的变成了双行,这时候要修改css文件,css文件中大部分都是无用的,我们只需要保留dede _pages和pagelist两个定义的css,在.dede_pages ul li{……}中把border:1px solid#E9E9E9;删除,这样就可以去掉翻页数字外边的边框.首页头部的修改:首先使用dreamweaver打开首页,然后选中网页头部的边框,转入的代码页,剪切<TABLE border=0 cellSpacing=0 cellPadding=0 width=1003 align=center>……</TABLE>新建一个文件夹head.htm,用记事本打开,粘贴进去.头部标签引用:进入默认模版复制{dede:include filename=”head.htm”/},粘贴到刚才剪切的位置.在导航标签的上部会多出来一个刚点击的链接,修改的方式是:打开head.htm文件,把{dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~ ' ~rel~><span>~typename~</span></a></li>"}中的currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a>< /li>"删除即可.首页底部的修改:首先使用dreamweaver打开首页,然后选中网页底部的边框,转入的代码页,剪切<TABLE border=0 cellSpacing=0 cellPadding=0 width=”96%” align=center>……</TABLE>新建一个文件夹footer.htm,用记事本打开,粘贴进去.底部标签引用:进入默认模版复制{dede:include filename=”footer.htm”/},粘贴到刚才剪切的位置.13课内容页仿制替换网页图片打开下载的内容页,把原来的图片链接neirong_list/替换成{dede:global.cfg_templets_skin/}/i mages/,把网页保存到网站默认文件夹中,并以article_article.htm命名. 完成图片链接的替换.替换列表链接把原来的链接替换成{dede:arclist row=’12’ typeid=’15’ titlelen=’24’}<IMG border=0 align=absMiddle src=”/images/logoo.gif”><A href=”[field:arcurl/]”target=blank>[field:title/]</A><BR>{/dede:arclist}更换头部的链接把原来的链接换成<a class="Channel2" href="http://127.0.0.1">网站首页</a>&nbsp;|{dede:channel type='top' row='10' }<a class="Channel" href='[field:typeurl/]' [field:rel/] target="_blank" title="">[f ield:typename/]</a>&nbsp;|{/dede:channel}根据默认模版的内容页修改仿制网页内容页的正文部分的方法:标题修改:把原来的标题替换成为{dede:field.title/}时间: {dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/}点击数: <script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field nam e='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></s cript>作者: {dede:field.writer/}信息来源: {dede:field.source/}主体内容: {dede:field.body/}上一页下一页修改:{dede:prenext get=’pre’/}{dede:prenext get=’next’/}这种是文字性的上一页下一页.14课内容页仿制2上一页下一页修改:1.上下翻页用图片代替文字,其中上翻页的css如下用到的 CSS.up {height: 33px;width: 84px;background-image:url({dede:field name='templeturl'/}/jijidi/images/shang.jpg);background-repeat: no-repeat;}.up p {font-size: 0px;display: inline;height: 53px;width: 84px;text-indent: -9999px;}.up p a{display: block;height: 33px;width: 84px;text-indent:-9999px;}把上一页的div之间的内容替换为:<div class=”up”><p>{dede:prenext get=’pre’/}</p></div>下一页需要把上面的css中的.up改成.down,并修改图片链接xia.jpg.把下一页的div之间的内容替换为:<div class=”down”><p>{dede:prenext get=’next’/}</p></div>2.分享代码的添加/15课搜索页仿制HEAD区域修改:1.改<title> </title>之间为<title> 搜索页_{dede:global.cfg_webname/} </title>2.在系统的搜索页search.htm中找到引用搜索页css的语句:{dede:global.cfg_templets_skin/}/style/,把该语句复制到type=text/css href=” {dede:global.cfg_templets_skin/}/style/search.css”1.搜索页标签介绍搜索关键字调用: {dede:global name='keyword' function='RemoveXSS(@me)'/}列表调用: {dede:list perpage='20'} {/dede:list}日期调用: [field:stime/]分页调用: {dede:pagelist listsize='4'/}2. 360 浏览器网页图片保存功能介绍使用方法:360 浏览器打开目标网站,按住键盘上的 Alt 键,鼠标左键单击要下载的图片,即可完成图片的下载。

DEDECMS织梦二次开发详解

DEDECMS织梦二次开发详解

DEDECMS 织梦二次开发详解一、城市根据省市(IP)判断当地区域来显示当地内容,后台可以选择城市和修改区域,归类与合并。

可以手动选择城市地区,防止IP错误而导致城市区域不正确,可以根据方维O2O,或者团购城市判断来作为参考。

后台可以开启默认省市为默认值。

二、广告后台广告自定义功能的选择和修改,根据地区可以方便添加各类广告,如幻灯广告、悬浮广告、横幅广告,豆腐块广告,增加广告显示开始时间与结束时间,支持Flash、JPG、HTML以及JS其他页面调用。

明确前台广告标签方便添加和修改,可以根据目前DEDECMS 的后台广告功能进行修改和参考。

三、注解二次开发要明确开发注解,并已帮助文本说明模式表述清楚,防止以后进行再次开发后无法理解和操作。

具体可以参考方维网站的功能模式来开发。

关于城市布局:①可采用GET接口模式进行参数传递可设置按天气路径读取或采用手工输出显示模式加载天气网的参数接口②使用自定义城市模式,判断IP来源属性加载当地区域天气情况。

上述关于城市选项,可通过操作后台,进行插件功能定义操作。

广告布局模块:①可设置自定义广告模块大小,广告显示开始结束时间、广告格式类别(如flash 图文或js代码格式)②广告显示先后顺序,包括广告位置,设置调用为自定义参数,自定义操作广告布局顺序等广告显示操作。

关于程序安全问题:通过加载插件运行模式,对调dedecms后台,只通过后台验证管理,广告的修改添加删除均采用自定义参数模式代码编写添加模式,后台插件模块同时添加广告后台预览功能用于对调显示合理方案。

根据ip显示广告,后台可以添加广告后选择城市,当用户浏览网站的是时候根据自己的城市区域显示该地方广告。

dedecms织梦建站初级教程笔记

dedecms织梦建站初级教程笔记

代码: <script language="javascript" type="text/javascript"src= "{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> 如果要加上一个"顶一下,踩一下",必须要加上这个脚本文件,因为它是织梦默认处理A+4间的一个记事文件,这个是必须要引入的。
<div class="digg_percent_num">{dede:field.badper/}%</div>
</div>
</div>
</div>
<script language="javascript" type="text/javascript">getDigg({dede:field.id/});</script>
<div class="digg_percent_num">{dede:field.goodper/}%</div>
</div>
</div>
<div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition='right bottom';" onmouseout="this.style.backgroundPosition='right top';" onclick="javascript:postDigg('bad',{dede:field.id/})">

织梦DedeCms应用&开发调试手册 v1.0.0

织梦DedeCms应用&开发调试手册 v1.0.0
动态模板解析通常使用的地方是织梦的互动模块部分,例如:织梦问答模块,织梦会员中心,圈子小说等地方,这类的动态模板,所用的标签也是有限的,主要的标签可以查看/include/tpllib,里面的标签基本文件名格式为plus_{tagname}.php,例如:plus_channel.php,则说明在使用动态模板解析中可以使用channel标记。这类的标记使用和开发需要另外参考相关文档,这里就不做具体说明。
其中{n}为标签在模板文件中的位置,{tagname}为错误的标签。
解决办法:修改标签,将其闭合
(4)模板标签调试
现象:放置模板的标签没有任何的作用,或者放置的标签解析后出现报错(PHP类或者DedeCMS数据库提示)。
解决办法:
如果标签放置没有作用,则需要先判断模板标签的作用域,织梦的每个标签都是有作用域的,主要分为两大类,动态模板解析(dedetemplate.class.php),和静态模板解析(dedetag.class.php)。
(2)页面布局&样式调试
主要涉及Html/css的调试,在这个下面做处理推荐使用火狐浏览器下的Firebug组件(工具->附加组件,中搜索firebug进行安装)。
或者使用IE7+下面的开发者工具,这个也类似于Firebug,可以对页面进行调整。
如果需要对Firebug进行更深入的一个了解,可以查看:/4ehubdn
1.2.2.织梦模板文件调试
每个页面功能都有其对应设定的模板文件,我们可以通过官方的《主要模板文件与功能说明》查看对应模板的对应文件,一般在模板文件调试时候会出现以下情况:
(1)模板不存在
现象:报错提示出现“D:/***/templets/default/index.htm Not Found! ”

织梦开发手册

织梦开发手册

织梦5.7开发手册基本标签文章Tag调用标签:{dede:tag row='10' getall='1' sort='month'/}<li><a href='[field:link/]'>[field:tag/]</a></li>{/dede:tag}row:调用条数sort='new':排序方式month,rand,week getall='0'获取类型0 为当前内容页TAG标记,1为获取全部TAG标记,底层模板字段,link和tag文章内容调用标签:{dede:field name='body'/} (写在标签里:[field:body/])文章分页调用标签:{dede:pagebreak/}[<a href="{dede:field name='phpurl'/}/stow.php?arcID={dede:field name=ID/}">收藏</a>] [<a href="{dede:field name='phpurl'/}/recommend.php?arcID={dede:field name=ID/}">推荐</a>][<a href="{dede:field name='phpurl'/}/feedback.php?arcID={dede:field name=ID/}">评论</a>][<a href="#" onClick="window.print();">打印</a>][<a href="#" onClick="window.close();">关闭</a>]文章顶客次数标签:<script language="javascript"type="text/javascript">getDigg({dede:field.id/});</script>顶一下:{dede:field.goodpost/} {dede:field.goodper/}% 踩一下:{dede:field.badpost/} {dede:field.badper/}%分享:{dede:bshare/}上一篇下一篇标签: {dede:prenext get='pre'/} {dede:prenext get='next'/}头条推荐调用标签:{dede:arclist row=1 flag=h titlelen=24 orderby=pubdate }<dt> [field:textlink/] (textlink = <a href='arcurl'>title</a>)(typelink = <a href='typeurl'>typename</a>)<span>[field:description/]...</span></dt>{/dede:arclist}flag = 'h' 自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b] noflag = '' 同flag,但这里是表示不包含这些属性infolen='160' 表示内容简介长度等同于infolengthtitlelen='' 表示标题长度;orderway='desc' 值为desc 或asc 指定排序方式是降序还是顺向排序,默认为降序subday='天数' 表示在多少天以内的文档,通常用于获取指定天数的热门文档、推荐文档、热门评论文档等limit='' 起始,结束表示限定的记录范围(如:limit='1,2')channelid='' 频道IDorderby='' 表示排序方式,默认值是senddate 按发布时间排列。

dedecms学习笔记

dedecms学习笔记

1.wamp的安装,简略2.dedecms的安装,注意uploads文件往www文件的拷贝,注意修改dede文件夹的名字为manage,注意在php extensions中打开php gd2,注意数据库名字的修改以及,连接用户名,密码的更改3. dede_channeltype内容模型表头含义4.dede的栏目信息存储于dede_arctype表中channeltype表示此栏目对应哪个模型,其中的数字代表dede_channeltype表中的id号topid表示为上一级栏目的id,等于0表示为顶级栏目typedir表示栏目所在的文件目录当我们手动创建一个栏目的时候,dede会自动在根目录下的a文件夹中创建一个对应名字的文件夹a目录存放我们所有自动生成的静态页面5.dede_archives栏目中记录的主表头含义typeid表示此记录对应于哪个栏目,其中的数字对应于dede_arctype表中的id号channel表示此记录对应于哪个模型,其中的数字对应于dede_channeltype表中的id号6. dede_addonarticle栏目中记录的从表头含义typeid表示此记录对应于哪个栏目,其中的数字对应于dede_arctype表中的id号aid表示此记录对应于哪个记录主表,其中的数字对应于dede_archives表中的id号7.在一个栏目下创建一个记录的时候,dede会自动在dede_archives和其对应从表中添加相关记录,同时会在a目录下的对应栏目文件夹中生成对应静态页面8.dede认为无论是什么样的信息,比如新闻,文章,电影,音乐等等,他们都有相同的字段信息,把这些相同的字段信息放入dede_archives主表中,同时把那些不同的字段信息,放入相对应的从表当中,例如如果是文章会放入到dede_addonarticle表中9.一个内容模型可以对应很多个栏目,例如文章模型中可以对应武侠小说,音乐小说等等10.每个栏目必须对应一个模型11.每一个内容模型都对应一个栏目中的记录从表,例如文章模型,对应于dede_addonarticle表,图片模型,对应于dede_addonimages表12.dede认为每一个栏目下的具体记录都有自己的共性和异性,比如电影,文章,图片,他们都有名称日期,dede会把这些记录的共性放入到dede_archives表中,把每一个模型的异性内容放入到其对应的从表中,比如文章对应的从表为dede_addonarticle,因为模型可以自定义,所以当用户创建一个自定义的模型,dede就会自动为用户创建一个相对应的dede_addonXXX从表13.数据库四张表的对应关系14.dede规定,如果自定义添加一个内容模型,但是内容模型下没有一个栏目的话,那就不能添加相关内容和记录15.dede规定,网站首页面和栏目页面都需要在后台手动点击生成静态页面,否则直接访问的是php页面16.dede页面的静态化,其实质是在调取模板文件后,运用manage目录下的makehtml_XX.php 文件来实现的,生成静态页面后存放于a目录下17.dede后台允许用户自定义内容字段,即修改内容管理下的任意内容中的添加信息表单项例如给商品内容的添加信息表单增加一个付费类型,就只需要在频道模型中点击内容模型管理,同时在商品下点击更改进入如下页面再点击字段管理,即可给任意内容模型添加字段18.dede提供了许多常用的联动类型,例如陕西省西安市未央区的下拉框选择19.在使用dede提供的联动类型时,新建的联动类型缓存组名称,也就是这个必须与dede提供的联动类别管理中的这个相同,这样dede才能自动使用联动类别字段20.当我们在手动更新栏目页面的时候,会自动在a/栏目文件夹/目录下更新两个html文件,一个是index.html,一个是XX_list.html文件,其中生成原理如图21.每个栏目对应的模板文件在这里寻找22.创建一个自己的内容模型,在内容模型管理下的新增模型中增加频道ID不改动,名字标识为英文或数字,chXXX,频道名称为汉字,附加表为dede_addonXXX,在点击保存后产生了如下变化,在dede_channeltype表中增加了一个对应的内容模型,在整个数据库中增加了一个dede_addonXXX表,同时在添加完内容模型后还需要在内容模型管理中的对应内容模型下,添加字段,这点以前有记录。

dedecms教程从入门到精通

dedecms教程从入门到精通

4、我用dedecms感受
先说优点:
1)开源
国内号称开源的cms不少,但是真正有诚意的并不多;开源是我最看重的,我不能忍受这个系统中有我不能修改的部分。好像phpcms说是开源,其实某些部分依旧是加密的。再例如动易,必须注册它的组件。在我看来,不开源的,始终是别人给的工具,而不是自己的工具。
估计作者没有什么美术功底,dede的系统模板不美。
5)会员部分太粗糙
我一般建议不用这部分功能,嘿嘿,希望it柏拉图不要在这里哦。
6)技术支持和服务较差
很多收费用户投诉得不到及时的技术支持,也难怪,一个人嘛。
7)没有官方的UTF-8版本及BIG5版本
这个问题我自己解决了,UTF-8肥龙版本下载地址:
7)外部系统整合
DedeCms提供了整合外部会员系统的接口,对于有特殊需求的用户,可以随心所欲的让DedeCms内置的会员系统与你网站的其它系统任意通行。这个也是常见功能。目前已经编写好的API接口文件的程序在下面列表中
PW 4.3.2 / 5.3
DZ 5.0/5.5
list_spec.htm 专题列表模板
/img 模板图片目录(含样式表)
/plus 辅助插件模板目录
download_links_templet.htm 下载链接模板
index_article_webart.htm 备用模板
index_default.htm 一般文档封面模板
index_flash.htm flash频道封面模板
index_image.htm 图集频道封面模板
index_soft.htm 软件频道封面模板
DedeCms内置的文章系统模型更注重全文索引、搜索引擎优化等方面,支持将远程媒体本地化,支持自动获取关键字,并生成索引,支持从Word里粘贴内容,此外对文章关键字、置顶、高亮这些细节的地方也作了处理。dedecms作者自己开发了分词算法,让dede在系统本身就具备某些seo的天性。

dedecms代码详解很全面

dedecms代码详解很全面

dedecms代码详解很全面dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统。

而模板系统也是其他cms系统比较难模仿的的东西,这个东西还是需要一点开发功力和技巧的。

本系列文章就研究一下dedecms的这套系统,挖掘一下看看里面有什么好东西。

建议大家先了解一下dedecms的功能。

自己先动手用一下,对系统功能有个大概了解。

本文先带领大家了解一下dedecms的代码和功能架构。

其实,dedecms在架构上没什么应用架构模式可言,就是最简单的PHP 应用而已。

访问不同的PHP 文件,管理不同的系统功能。

看目录大家都能猜出来各个目录干什么用的。

include目录放系统的一些公用函数和类,plus目录放插件,templates目录放模板,dede 目录是管理后台目录。

我们打开include 目录,看看里面都有什么好东西。

calendar 一个选时间的jscaptcha 一个验证码,还是开源组件code 没啥意思,翻页的文字data 里面是一些系统用到的资源,比如声音,分词库,字体,图片等dialog 里面估计是一些AJAX弹出窗口的内容部分。

以后碰到了再说inc 里面一些单独的功能类函数,以后研究一下为什么要单独放payment 支付接口taglib 好东西,是dedecms的标签存放的地方,打开看看,里面一堆文件,貌似就是dedecms的模板标签啦tpllib 模板库?暂时搞不明白,希望随着研究深入,能弄明白其他include 目录下的文件估计都是一些最基本的功能文件啦,比如常用函数,模板系统之类的东西了。

用到再说吧打开dede目录(就是dedecms的管理目录)看看,哟嗬,里面的东西还挺多,看名字就知道了,都是各种功能管理文件,一个功能一个文件。

最原始的网站开发模式做出来的。

DEDECMS 心得

DEDECMS 心得

新手记得先复习一下参数的意思,这里的typeid='栏目ID,1'的1为固定值,‚栏目‛为要调用的栏目ID,一定不要掉了东西。 <!-- begin:加入首页调用栏目---> <dl class="tbox"> {dede:channelartlist typeid=‘2,1’} <dt> <strong>{dede:field.typename/}</strong> <span class="more"><a href="{dede:field.typeurl/}">更多...</a> </span> </dt> <dd> <ul class="d1 ico3“> {dede:arclist titlelen='60' row='8' orderby='pubdate' idlist='‘} <li>[field:textlink/]([field:pubdate function=MyDate('m-d',@me) /])</li> {/dede:arclist} </ul> </dd> {/dede:channelartlist} </dl> <!-- over:加入首页调用栏目--->
网站栏目管理
模块 网站栏目管理
说明 更新栏目缓存: \power\catalog_do.php 更新栏目html: \power\makehtml_list.php 预览:\plus\list.php 调用include\arc.listview.class.php 和arc.sglistview.class.php 显示的模板:templets/plus/view_msg_catalog.htm 首页模板: -templets/default/index_default.htm -templets/default/index_article.htm
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

要求:1.同一开发环境. W AMP2.最终完成a67 手机电影网的70%功能.(相当于静态页面已经提供.)3.学习过程中,我们会分析源码和dede数据库的设计思想-> phpcms 或者cmstop4.参加工作有a. 全新开发b. 加入一个团队,一起开发. c 数据的设计.学习DEDE的二次开发◆cms的基本概念cms(content management system) 内容管理系统,主要是管理内容变化不大的数据(新闻,软件,商品,文章, 电影,视频....),◆主流的cmsdedecms [中小型网站,使用在企业级的网站不少见.]phpcms [中型网站,对大型网站也很好.]cmstop [据说对大型网站支持最好]◆dede的特点1.简单、实用,开源(源码.)2.专门用于个人,中小型门户网站., 企业也可以支持3.架构PHP+mysql4.前台是静态页面(访问速度开) ->页面静态化技术.◆dede的安装1.先卸载apache和mysql, 成功卸载.2.安装Wamp (该软件包括apche+mysql+php+phpmyadminj),如果安装后,小的半圆式白色,说明成功!3.把uploads 文件夹拷贝到www目录4.把uploads 改成dedecms名字5.浏览器中输入http://localhost/dedecms/index.php6.进入安装界面,记住吧gd库打开,否则后面登录管理员界面不能成功!7.指定admin的密码,然后看到如下界面8.登录到dedecms的后台管理先把dedecms/dede改成manage,然后http://localhost/dedecms/manage9 .当进入到管理页面后,需要做一个安全修改强烈建议data/common.inc.php文件属性设置为644(Linux/Unix)或只读(NT);DEDE的快速入门需求1: 现在老板要求你做一个文章管理系统,栏目(类别)包括(武侠、爱情、音乐...) ,每个栏目(类别)有对应的文章,文章已经给你准备好了,请你在30分钟搞定该网站,怎么样?1.先看看dede默认的前台首页面是怎http://localhost/dedecms/index.php2.说一个dede 原理3.我们做栏目1.先进入后台管理->网站栏目管理说明: 当我们增加一个栏目时,实际上在dede数据库中有一张表dede_arctype表中增加了一个记录.2. 给每个栏目增加文章后台->核心->普通文章(+)->添加文章☞当你添加一篇文章后,①其实就在在dede_archives表中添加了记录,同时在另外一张附加表dede_addonarticle 中记录额外信息.②生成了静态页面., 并连接3. 生成栏目的静态页后台->生成->更新栏目HTML先在请大家完成如上功能.这里dede设计使用垂直分割的技巧.注意: 如果希望在首页面看到最新的文章,请更新首页面的HTML后台->生成->更新主页面HTML刚才我们说:dede的首页面包括前台是可以是静态页面,dede 支持前台页面静态化,步骤后台->生成->更新主页面HTML在dede开发过程中,目前有四类表关系一览图◆思考题2: 如果现在我们要做的是电子商务网站,卖我们的商品,这时用文章这样的形式来管理还合适吗?—> 每个栏目都可以指定一个内容模型什么是内容模型呢?步骤1:先看看dede是否已经提供了商品的模型,如果提供了,你直接使用,否则自己创建. 后台->核心->内容模型管理看看是否有!有就使用,步骤上面一样.思考: 如果默认给的某个模型字段信息不够,怎么办?->自定义模型.◆需求3: 在添加某个商品的时候,我们希望多一个信息,就是付费方式,还希望多一个邮资信息,我们又该怎样处理?- 引出修改内容模型的问题步骤:1.点击核心->内容模型管理->商品修改->字段管理->添加新字段.说明: 当你操作完毕后,就会在对应的附件表中增加了一个对应的字段.◆需求4: 请各位同学看看,这里我们有一个问题,就是当你点击武侠,爱情,电器的时候,会找不到对应的页面,这是为什么呢?这个就是直接点击更新栏目HTML说明: 我们设计网站前台的时候,可以参考这样一个思路: 网站分三级目录首页面->栏目页->内容页◆思考题:1. 栏目(类别)是保存在哪个表中的. 2. 一篇文章,一个商品它们最终是存放在数据库中的哪些表中?◆答: 栏目(类别)是保存在哪个表中的. dede_arctype◆一篇文章,一个商品它们最终是存放在数据库中的哪些表中?内容是分别放在两张表,一张是他的主表,该主表是通用dede_archives , 附件表dede_addonXXX.◆在DEDE中增加内容的基本步骤是怎样?(1)找模型,如果有的话,你可以使用,但是你也可以自定义一些字段,你也全新的创建一个模型,比如: 我现在要搞一个电影网站.增加一个模型的步骤是:a.点击核心->内容模型管理->增加新模型, 进入页面后,自己看看就知道怎样添加了说明: 当你增加一个模型后,就会在数据库中增加一个对应的附件表dede_addonXXX(2)添加一个栏目,根据你的实际情况来定, 刷新一把才看到(3)增加内容,根据实际情况输入即可◆说明一下DEDE 的目录结构dedecms/a 目录用于存放生成的静态页面dedecms/data 目录用于存放临时文件和缓存文件dedecms/images 目录用于存放dede自己的图片dedecms/include 目录核心类库(标签库,操作图像的类,操作数据库的类)dedecms/install 目录,安装信息dedecms/manage 目录,存放后台管理程序dedecms/member 目录,存放会员管理程序dedecms/plus 目录,存放插件程序,和将来你开发的程序模块dedecms/templates 目录,存放dede前台的所有模板文件dedecms/uploads 目录,存放你上传的图片、视频。

◆如何去掉广告思路: 因为dede 创建静态页面的机制,通过模板文件,去创建对应的静态页面,因此我们思路是,修改这个对应的模板文件.dede的标签问题:1.如何去查阅标签手册后台->模板->默认模板管理->点一个修改可以看到参考标签◆如何去掉列表表的广告知识点: 如何去找某个栏目的列表页后台->网站栏目管理->找到对应的栏目->更新->高级选项->到dede/templates/default /下去找到对应的模板文件,进行修改即可,然后重新更新栏目HTML☞每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个,修改后,就同时收到影响.上机练习:⏹去掉讨厌的广告(首页面的)⏹如何添加自己的广告图片在首页⏹去掉讨厌的广告(某个栏目对应列表页)⏹去掉讨厌的广告(文章页)文章页: 就是点击某个具体文章/商品/软件,所看到的具体内容..◆dede标签的讲解1.dede 的标签是在模板中使用2.我们可以建立自己的模板文件,来学习各个标签的使用◆具体的标签使用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.php3.字段标签的用法举例<!--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/]实战阶段-a67手机电影网的开发.前提: 网站的前台静态页面,已经开发好了.1 把dede首页面换成a67网站首页面.步骤:a.首先把templates/defualt 备份一份b.把templates/defualt 清空c.把a67 的首页.html 和images css js 整体拷贝到templates/default下,d.首页.html 换成index.htme.打开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/g. 更新首页面,浏览即可看到最新的a67 首页.2. 将dede首页面栏目换成a67电影网的首页面栏目a.创建电影这个内容模型b.创建我们的栏目(我的电影、我的电视剧)c.使用dede 标签,在index.htm 模板中,把我们需要的栏目内容取出{dede:channel}..{/dede:channel}具体的代码是<ul><li><a href="/" target="_self">首页</a></li>{dede:channel type="top" row="8"}<li><a href="/movie/" title="手机电影" target="_self">[field:typename /]</a></li>{/dede:channel}<li><a href="/zhuanti/" target="_blank">专题</a></li> </ul>3.a67网的栏目列表页面图示:点击对应的栏目,可以看到对应的栏目列表页面!!步骤:a.请先把不必要的栏目先删除.b.看看你的电影的模型对应的列表模板文件叫什么名字,然后在templates/defualt 目录下创建一个空的list_movie.htm 名字.c.更新栏目HTMLd.更改首页面的栏目的超链接,让它指向直接的列表静态页这里请大家在首页面模板中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}e.把a67的栏目列表模板文件拷贝到templates/default 名字,是list_movie.htm然后做网站编码,资源引入(css/js), 图片的路径的替换,这个和首页面是一样.f.把栏目的导航,的首页面改成我们的本地.练习.◆把首页面的今日更新的数据,从我们自己的dede取出,并显示步骤1.首先自己在后台添加一些数据(电影、电视剧)2.在首页面的模板文件中,使用标签{dede:arclist} 来取出文档3.具体代码是在index.htm中写的.上机作出.◆a67网的首页面的今天更新滚动内容的自定义特殊的需求,就是,我们希望在取出栏目记录或者是内容记录(电影,电视剧), 是更加灵活.--->{dede:sql}举例: 使用{dede:sql语句来完成上述功能}基本用法:{dede:sql sql=''}[field:title/]{/dede}具体的代码:a67网的首页的添加我的电视剧,并完成各个栏目对应的列表页请大家完成,当我们点击我的电视剧时,就显示电视剧内容,点击电影就显示电影的内容.步骤如下:1.找到对应的栏目列表模板文件list_movie.html .做修改学生的问题:如何安装自己希望的顺序来显示我们的栏目.思路:{dede:channel} 如果可以接受我们传递的某个数据,然后,我们再在channel.lib.classs 文件中进行处理好?{dede:channel orderby=”id”}处理方法是,可以再channel.lib.class 中进行二次处理//使用调式继续这个问题: 比如我点击我的电影,只取出国语电影,怎么办?)思考: 因为电影列表是通过{dede:arclist} 取出,因此,我们必须考虑{dede:arclist}进行二次开发?步骤:1. 找到栏目列表模板文件list_movie.htm2. 我们在{dede:arclist } 标签中自定义一个属性hspwhere前台调用方法是: list_movie.htm后台的标签库的添加码是:a67网的主页面和栏目列表的今日更新,点击后进入内容页面思路:找到内容页的模板文件.后台->核心->栏目列表->点击某个栏目->高级选项发现电影和电视剧用的文章模板是article_movie.htm步骤:1.把美工提供的电影内容.htm 拷贝到article_movie.htm2.对模板做网页编码,资源引入,图片的路径进行修改3.重新生成内容页4.修改了首页面模板文件index.htm5.对article_movie.htm进行处理,取出对应的数据.这里有一个新的知识点,如何在内容页中取出对应记录(电影、电视剧)的字段信息.方法是{dede:field.字段名/} 说明这个字段,可以是主表的字段,也可以是附加表字段具体的代码如下article_movies.htm上机练习到这里!面包屑导航标签:使用的方法:{dede:field.position/}{dede:field.title/}a67网的内容页面增加统计浏览量的功能首先,我们看看dede自己怎么做的!!!<li>浏览量: <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 的后台数据库的表->现在我们自己写一个函数,使用Dede 的DedeSql 类的一个全局变量$dsql这里我们学习一招技术,如果在一个静态页面中,有部分数据是动态,可以自己写一个PHP 文件,该文件,一般是放在/puls/目录下,比如mysql.php然后在你的某个模板文件中这样取调用:练习题:练习2练习3需求,当小手移动到星星的时候,星星根据实际情况变化思路1.通过jquery技术来实现,看上图步骤:1.article_movie.htm 引入jquery 文件.2.编写js 代码,来响应鼠标移动到星星上这个事件. 代码:◆需求:取出热门电影思路: 先找到代码,然后修改.list_movie.htm代码:◆需求: 如何取出下载地址(动态改变,当后台变化,下载链接也变化)思路:想: 因为下载地址是有多个,而且是变化,因此没有办法给每个下载地址存放一个字段,我们可以这样想, 我们把所以的下载地址(信息),放入到一个字段中varchar(1024), 然后使用处理函数来灵活的处理下载地址(信息)存放到数据库的附加表增加一个字段download, 存放下载地址(信息)下面的格式是我自定义的,在开发中根据项目经理定3gp|魔侠传之唐吉可德01|176x144|/01.3gp3gp|魔侠传之唐吉可德02|176x144|/02.3gp3gp|魔侠传之唐吉可德03|176x144|/03.3gpmp4|魔侠传之唐吉可德01|176x400|/01.mp4mp4|魔侠传之唐吉可德02|176x400|/02.mp4步骤:1.首先在附件表中增加一个download 字段2.把下载的整个网页格式,放在一个函数去处理函数plus/extend.func.php3.我们把各个格式的电影的下载地址取出,并显示.在我们的函数format中增加了代码:需求是: 当某个用户评分后,在内容页实时的显示评分值思路: 首先,需要给每颗星星绑定click事件,然后在article_movie.htm 添加代码.后台在plus/pinfen.php代码如下:这里有一个思考题:当我们刷新页面的时候,评分值有回到原来的值,怎么办?原因是因为分值,我们使用的是换成一段js码,动态的请求数据即可.<script src="{dede:field name='phpurl'/}/pinfen.php?type=getfen&id={dede:field name='id'/}" type='text/javascript' language="javascript"></script>对应的pinfen.php 文件的内容是:<?phprequire_once (dirname(__FILE__)."/../include/common.inc.php");// extract($_GET);//$type=$_GET[]//这里去完成评分任务//$pfz=$_GET['pfz'];//$aid=$_GET['id'];if($type=="getfen"){$sql="SELECT pfz from dede_addonmovie where aid=$id ";//file_put_contents("d:/mylog.txt",$sql);$row=$dsql->GetOne($sql);if(is_array($row)){echo "document.write('".$row['pfz']."');\r\n";}}else if($type=="pinfen"){$sql="UPDATE dede_addonmovie set pfz=$pfz where aid=$id";$dsql->ExecuteNoneQuery($sql);//更新成功后,我们需要计算这个评分值.我简化为以最后一个评分为准$sql="SELECT pfz from dede_addonmovie where aid=$id ";//取出数据库中的值,这里在工作时,需要看源码或者看手册.$row=$dsql->GetOne($sql);//这里通过$row[0]//返回结果.echo $pfz;}//echo "hello";//file_put_contents("d:/hsp.log",$sql);需求:如何自定义搜索和分页步骤:1.使用DEDE自带的一个工具,生成一个表单,通过该表单,可以提交你按照什么条件来检索内容.2.后台->核心->内容模板管理->自定义搜索, 这里你可以选择自己需要的条件,然后就可以创建一个表单了, 该表单提交后,会把结果通过自定义搜索结果页模板显示内容,默认的模板文件叫advancedsearch.htm3.先测试下,把dede自带的模板文件advancedsearch.htm拷贝到templets/default / 下即可.4.使用即可课后练习题:需求:把检索结果页面,换成a67 提供的检索结果页面. 通用列表页.html,并完成分页效果.步骤:1. 把通用列表页.html 的内容复制拷贝到advancesearch.htm2. 修改advancesearch.htm 的相关设置,网页编码,引入资源,图片的路径. 可以参考index.htm 模板内容4.把默认的模板文件和检索的响应文件,做成自己.把默认提交的页面advancedsearch.php 换成mysearch.php ,先在plus/ 创建mysearch.php把默认的检索的模板文件advancesearch.htm,换成mysearch.htm现在我们编写自己的mysearch.php ,了解一下dede 是怎样把结果给你查询并显示. mysearch.php 核心代码:5. 现在我们要在mysearch.htm 文件中取出mysearch.php 查询的内容.核心代码是:☞针对{dede:datalist} 标签特殊说明1.可以再{dede:datalist} 中嵌入某些{dede}标签2.{dede:global.autoindex/} 无效需求做出我们自己的分页导航这里,我们需要使用另外一个标签,该标签专门用于分页导航{dede:pagelist/} 在mysearch.htm 加入该标签在适当的位置加入该标签需求,在实际开发中,我们往往需要对分页导航条,进行自定义。

相关文档
最新文档