当前位置: 首页 > news >正文

dedecms

一、Introduction

CMS,Content  Management  System,内容管理系统。适合静态内容展示的网站,比如,新闻、电影、音乐、企业网站等网站。php常用的cms系统,phpcms,dedecms(织梦),帝国cms等等。

使用cms的优点是开发速度快,只需在后台稍微动作以下就可;门槛低。

二、安装和使用dedecms

到官网下载软件包。将解压后复制uploads的代码复制到站点目录下,将uploads改为网站的名字,然后直接在浏览器运行,第一次浏览时会提示安装。一步一步点下去,注意在目录权限检测时,如果是linux系统需要分配权限。

使用的基本思路是,到后台配置称为xx管理系统;然后,将前台模版套到dedecms,并使用模版标签从数据库取出数据。

模版标签的形式两种:

第一种,双标签,{dede:标签名}….{/dede:标签名},比如,{dede:arclist  limit=”10”}名字:[field:title/]{/dede:arclist}

第二种,单标签,{dede:标签名 /},比如,{dede:global.cms_path  /}

cms前台优化特点,所有前台的页面都是生成的静态页面。

dedecms后台的简单使用

1.        创建栏目

栏目就是分类,比如将电影分为欧美、日韩、国内等。有分类才能加内容。

2.        添加内容

向栏目下添加内容,比如文章等。添加或修改时,自定义属性,可以选择推荐到首页,幻灯等功能。添加好后可以到前台查看效果。

顶级栏目就是前台的导航条按钮。

dede的前台都是静态页面,有的在添加内容时后自动生成,有的需要在后台生成按钮处点击需要生成,比如栏目html等可以点击生成。

三、使用dedecms制作电影网站

(一)  后台

1.        创建电影模型

在后台的频道模型,内容模型管理,点击添加新模型。模型名为电影。

2.        为电影模型添加字段

为电影模型添加字段。有些公共字段,不用自己添加,比如标题、logo图片、添加时间、所在分类等。只需添加模型特有的字段。模型有一个id,原理是创建一张表。添加字段就是给这个表加字段。

3.        添加栏目

就是添加网站的内容的类型,比如,动作、喜剧、悲剧、戏剧、文艺等。可以批量添加。注意选择模型为电影模型。

4.        刷新后台,添加电影

选择内容管理>电影,添加文档。

(二)  前台

1.        替换前台模版

模版中使用标签获取数据。后台根据模版生成页面。用户访问的生成的页面。

模版在项目的templets目录下的default目录下。将default改名为default_bak。然后新建一个default目录,放新的模板。将模板中的html等的名字改为英文名。

dede必要的模板,index.htm。

2.        修改模板名字

栏目模板,需要几个栏目有几个栏目模版,也可以共用。在网站栏目管理,选择要修改的栏目,比如电影。根据栏目属性,需要的模板数不同。最终列表栏目需要2个模版,列表模板和内容也模版;频道封面只要一个模版,封面模版;外部连接不需要模板。比如选择列表模板,在高级选项中,看到列表模版和文章模版的名字。根据这个名字改名。

3.        修改模板

修改首页模板。

修改css和js。仿照dede提供的原模板,修改。

dedecms中前台页面有两种访问模式,动态和静态的。在生成中可以设置,更新主页html可以修改首页模式。开发时采用动态模式。

4.        取出首页的最新的几部电影

使用arclist文档列表标签。注意,dede的标签不能嵌套使用。如果{}里面需要使用{},可以用[]代替。

<divclass="movie_re">

                   <ul>

                   {dede:arclisttypeid="5" channelid="17" addfields="language,pingfen"limit="4" orderby="id" orderway="desc"}

                            <liclass="c[field:global.autoindex/]">

                                     <ahref="[field:arcurl/]" target="_blank">

                                               <imgsrc="[field:litpic/]" />

                                     </a>

                                     <p>[field:language/]</p>

                                     <b>

                                               <ahref="[field:arcurl/]"target="_blank">[field:title/]</a>

                                               <imgsrc="[field:global.cfg_templets_skin/]/images/1.jpg" />

                                               <em>[field:pingfen/]分</em>

                                     </b>

                            </li>

                   {/dede:arclist}

                   </ul>

</div>

修改模版调用不同的标签取不同的数据。

需要使用php实现功能,可以在include/extend.func.php中定义函数。

functiongetSmallStars($pingfen)

{

    global $cfg_templets_skin;

    //计算星星数量

    $starCount = floor($pingfen/2);

    $img = '';

    for($i=0; $i<$starCount; $i++)

    {

        $img .= "<imgsrc='$cfg_templets_skin/images/star.jpg' />";

    }

    for($i=0; $i<5-$starCount; $i++)

    {

        $img .= "<imgsrc='$cfg_templets_skin/images/star_grid.jpg' />";

    }

    return $img; 

}

可以在模板中使用标签调用函数。

[field:pingfenfunction="getSmallStars(@me)"/]

5.        修改内容页模板

dede为内容生成的html,放在a目录下。在生成中,生成内容可以生成内容。

内容模板中使用的获取字段信息的标签,{dede:field.字段名/}

6.        使用评论插件

常用的评论插件,畅言,多说。

dedecms自带畅言插件。

在后台模块管理,安装畅言模块。安装好后就多了畅言评论模块。

四、数据采集

采集网络上的数据。采集对象需要是有规律的。

dede自带采集功能。后台采集,采集节点,新建采集节点。修改源码,将采集模型加入模型下拉框。修改templets/co_add_step0.htm中的$dsql->SetQuery("Select id,typename From `#@__channeltype`where id in(1,2,17) order by id asc ");,in()中加上电影模型的id或者把where限制删掉。然后,选择新增节点的模型,然后填写采集规则。

修改dede源码,修改采集规范。

也可以使用专门采集的软件,比如,火车采集器。

采集后,选择采集的节点,导出数据,选择导出栏目。然后,生成就可以了。

五、使用channel和include标签制作导航条

1.        提取导航头

制作一个单独的head.htm文件。使用{dede:include  file=”head.htm”/}导入到首页和内容页对应位置。

2.        制作导航头

导航条上的数据是后台的顶级栏目,使用channel标签。

<!-- {dede:channeltype="top"} -->

<li>

         <ahref="[field:typelink/]" title="[field:typename/]"target="_self">[field:typename/]</a>

</li>

<!-- {dede:channel/}  -->

3.        根据地区取电影

使用arclist标签。由于这个标签不能根据地区取。所以,要修改源码二次开发。

    //二次开发修改where条件的变量

    //判断如果标签上有一个where属性,就把这个where加到数组

    $mwhere = $ctag->GetAtt('where');



    if($mywhere)

    {

        $orwheres[] = &$mwhere;

    }

 

相关文章:

  • [one_demo_3]漩涡递增矩阵
  • CI
  • YII
  • php实现邮箱验证
  • php微信公众号开发
  • [one_demo_4]不使用第3个变量交换两个变量的值
  • [one_demo_5]命令行输入输出
  • [one_demo_6]逆置整数
  • [one_demo_7]求走到第50个台阶的走法多少种
  • [one_demo_8]十进制转二进制
  • [one_demo_9]判断数组是否递增
  • [one_demo_10]递归解决汉诺塔问题
  • [one_demo_11]二分查找法
  • [one_demo_12]递归打印*\n*.*.\n*..*..\n图形
  • c
  • Apache的80端口被占用以及访问时报错403
  • ES6简单总结(搭配简单的讲解和小案例)
  • javascript从右向左截取指定位数字符的3种方法
  • JS实现简单的MVC模式开发小游戏
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mysql 数据库四种事务隔离级别
  • Python - 闭包Closure
  • python大佬养成计划----difflib模块
  • React 快速上手 - 07 前端路由 react-router
  • Ruby 2.x 源代码分析:扩展 概述
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 当SetTimeout遇到了字符串
  • 给github项目添加CI badge
  • 官方解决所有 npm 全局安装权限问题
  • 区块链分支循环
  • 如何合理的规划jvm性能调优
  • 线上 python http server profile 实践
  • - 转 Ext2.0 form使用实例
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • (007)XHTML文档之标题——h1~h6
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (BFS)hdoj2377-Bus Pass
  • (C语言)球球大作战
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (poj1.3.2)1791(构造法模拟)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (一)UDP基本编程步骤
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)ObjectiveC 深浅拷贝学习
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)从 Java 代码到 Java 堆
  • *1 计算机基础和操作系统基础及几大协议
  • ./和../以及/和~之间的区别
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查