感谢韩顺平:

如何打开php的gd库,通过php设置-》php扩展--》phpdb库;打上勾就行;

dede存在四张十分重要的表,channeltype,模型表最原始的发源
arctype:每条记录是一个栏目是发源表2

archives:内容主表是:是发源表3属于一个文章或者电影的主要内容信息

addonarticle:这是附加表,就是每篇文章,或者电影都有自己特色信息在这里填写

模型的具体体现就是主表和附加表,主表是不能动的,所以在内容模型中增加一个字段
实际上是在附加表中增加一个字段,这里是调用aler更改表这个命令,其实arctype就是模型到主表和附加表的过度表

增加字段在底层实际上这样运行的:

<?php
$conn=mysql_connect("localhost","root","");
mysql_select_db("dedecmsv57utf8sp1");

$sql="alter table dede_addonshop add post_mode default ...";

增加一个模型,其实就是在最原始的模型表中增加一个记录
并且增加一张与之对应的附加表

a目录下面都是所有的静态页面:data:用于存放临时文件和缓存文件
images用于存放dede自己的图片
dedecms/include目录 核心类库(标签库,操作图像的库)
里面有一个taglib文件夹,里面有很多标签需要自己学习,这是公司自己定义
dedecms/install目录:存放安装信息,删除install_lock.txt删除就可以重新安装
dedecms/manage:就是后台的文件,每天啃一点
dedecms/members:会员管理程序,将来的重点,权限,级别,可读可写,
dedecms/plus:插件,或者自己写,模块
dedecms/templates:存放dede前台的所有模板文件
dedecms/uploads:存放上传的文件,按照时间存放

查找标签的用法:
后台-》模板-》默认模板管理-》点击修改

可以看到参考的标签
去掉广告的办法:在模板首页面中查找myad标签和head.htm中查找myad将所在div全部删掉然后生成首页的静态文件就行!

列表页是针对栏目而言的,而不是针对模型而言的。每个栏目对应一个列表页

{商品有自己的列表页面}这个在后台的栏目管理中可以查询得到
index_shop.htm:封面模板
list_shop.htm:列表模板不只是文章列表还是商品列表
article_shop.htm:文章模板不只是文章内容还是商品详情
所以单独的栏目的广告没有去掉需要在这里面删除!

每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个
这个可以后台栏目管理可以看出,然后看高级选项,里面可以看出
对应列表模板!

后台里面的生成中可以看主页的html模板是index.htm
所以我们将index.htm备份,然后自己设置一个test.htm来测试自己学习
标签!

怎么样将模板文件转化成静态,这是哪个程序控制的
我们可以通过抓包来确定那个文件来处理的,就是看
它是向哪个文件发出请求!
结果发现:manage/makehtml_homepage.php

我们在这个文件中可以通过这个命令进行调试:
else if($dopost=="make")
{
die("信息=".$templet);
这里就可以可以输出信息,花上半天的时间就可以调试的差不多了!
也可以通过这种方式进行调试
file_put_contents("d:/mylog.txt",$dopost);

用法:
{dede:标签名 属性="值" ../}
举例说明:
{dede:include filename="head.htm" /}
下面的双标签!:
{dede:channel type="top" row="8"}..{/dede:channel}
{dede:channel type="top" row="8"}..{/dede}有时候可以这样封闭!

channel标签实际上是取得栏目这个表中的记录!

可以查看dede源码就可以对dede进行二次开发了
知识点:如何查看channel标签的源码:/dedecms/include/taglib/channel.lib.php

#@_arctype表示#@表示dede系统的前缀!

这里就是调试php的标签的内部代码:

if($type=='top')
{
$sql = "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, $line ";
die("sql=".$sql);
}
下面的die是可以进行调试的
可以看出上面就是sql语句,那么我们可以通过拼接点sql语句进行有条件的查询
或者我们自定义属性,然后拼接到sql语句中进行查询!

安全性:需要把dede这个目录更改成manage,这样会更加安全,别人不知道我使用的开源是dedecms;

全局变量定义在include/common.inc.php文件中,而且都是现算出来的!

dede的标签是不能够嵌套的
但是如果需要在dede标签中取得全局变量该怎么办?
应该将原始的取法:{dede:global.cfg_soft_lang/}
更改成[field:global.cfg_soft_lang/]等价[field:global name='全局变量'/]

在更新栏目的时候生成栏目的html的时候需要将隐藏的文章都删除,以为之前将模板
都删除了,如果不删除没有模板的栏目就会报错的!

栏目管理中的--》增加栏目--》高级选项中可以看到模板!
在标签库中可以看到taglib/channel.lib.php中看到
typelink=typeurl是在程序中计算得到的!

<!-- flag参数表示是否设置头条,或者是否置顶-->
{dede:arclist flag='h,p'}
{/dede:arclist}
h和p可以以分号隔开!

channelid='18' addfields='language'

select t1.litpic,t2.language,t2.pfz,t1.title from dede_archives t1,dede_addonmovie t2 where t1.typeid=7 AND t1.id=t2.aid

<!--{dede:arclist flag='h' channelid='18' addfields='language,pfz' typeid='7' limit='0,5'}-->

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

select t1.litpic t2.language,t2.pfz,t1.title from dede_archives t1,dede_addonmovie t2 where t1.typeid=7 AND t1.id=t2.aid AND t1.arcrank=0

<!-- flag参数表示是否设置头条,或者是否置顶-->

{dede:sql sql='select t1.litpic,t2.language,t2.pfz,t1.title from dede_archives t1,dede_addonmovie t2 where t1.typeid=7 AND t1.id=t2.aid AND t1.arcrank=0 order by t1.click asc'}
<li class="c[field:global.autoindex/]"><a href="http://www.a67.com/movie/7989" target="_blank"><img src="[field:litpic/]" alt="爱情维修站 3GP MP4高清下载" /></a><p>
[field:language/]
</p><b><a href="http://www.a67.com/movie/7989" target="_blank">
[field:title/]
</a><img src="[field:global name='cfg_templets_skin'/]/images/1.jpg"><em>[field:pfz/]分</em></b></li>
{/dede:sql}
注意:查询字段之间需要用逗号隔开!

349 西北工业

下面的就是:
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.pfz FROM `#@__archives` arc
LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id LEFT JOIN `dede_addonmovie` addf ON addf.aid = arc.id WHERE
arc.typeid IN (7) And arc.channel = '18' And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,5

需要拼接where条件就想办法在orderby的前面进行拼接一点where条件!
addf.language='国语'

下面的可以拼接多个条件:

<div class="movie_list">
<!--dede:arclist对于这个标签,如果你不写typeid,在栏目模板文件中会自动根据点击的栏目就会带一个typeid-->
{dede:arclist hspwhere=" addf.language='国语' AND addf.area="channelid='18' addfields='language,pfz'limit='0,5'}
<li class="d[field:global.autoindex/]"><a href="http://www.a67.com/movie/7989" target="_blank"><img src="[field:litpic/]" alt="爱情维修站 3GP MP4高清下载" /></a><p>[field:language/]</p><b><a href="http://www.a67.com/movie/7989" target="_blank">[field:title/]</a><img src="[field:global name='cfg_templets_skin'/]/images/1.jpg"><em>[field:pfz/]分</em></b></li>
{/dede:arclist}
</div>
可以拼接多个条件按照大陆,等等条件进行排序!

面包屑:
<div class="weizhi">当前位置:{dede:field.position/}{dede:field.title/}</div>

<script src="{dede:field name='phpurl'/}/mysql.php?aid={dede:field name='id'/}&type=update&$num=10"type='text/javascript'
language="javascript"></script>

<?php
//这里我们require_once common.inc.php目的是为了使用该文件中定义好的全局变量
require_once(dirname(__FILE__)."/../include/common.inc.php");

$type=$_GET['type'];
$nums=$_GET['num'];
$aid=$_GET['aid'];

if($type=='update'){

$sql="UPDATE dede_archives SET click=click+50 WHERE id=7";
file_put_contents("d:\\aab.log",$sql);
$dsql->ExecuteNoneQuery($sql);
echo "document.write('hello');\r\n";

}

include\datalistcp.class.php里面有一个pageSize可以设置,而且这个文件对应的所有页面dede标签是可以嵌套的!

建立数据库的时候增加一个表,由于设置了存储引擎导致创建失败
解决办法是:去掉引擎设置和编码设置,建立成功后再在操作中设置引起和编码格式的设置就会成功:

create table comments(

id int unsigned primary key auto_increment,

userid mediumint(8) unsigned not null default 0,

title varchar(128) not null default '',

content longtext not null default '',

addtime int unsigned not null default 0,

movieid mediumint(8) unsigned not null default 0

)type=MyISAM default charset=utf8;

评论的网址:
http://dedecms.com/pinglun/index.php?c=pinglun&a=listpl&aid=13

如果是评分值就可以设置deciml,这样不会像float造成精度丢失,也不会像varchar一样一位位的比较,导致判断大小的失误!

SELECT * FROM dede_archives WHERE 1;
函数FROM_UNIXTIME(pubdate,'%Y-%m-%d')就是将时间戳转化成指定的格式;

select * from FROM_UNIXTIME(pubdate,'%Y-%m-%d') from dede_archives

下面集中解决昨日更新功能:
1.返回现在的年月日:
select curdate() from dede_archives;
2.当前日期减去一天的时间即返回前一天的年月日:
select date_sub(curdate(),interval 1 day) from dede_archives;
3.查询更新日期等于前一天的所有的记录就是跟第二条的时间相等就列出所有的记录:
select * from dede_archives where FROM_UNIXTIME(pubdate,'%Y-%m-%d')=date_sub(curdate(),interval 7 day);

1456488910
查询前一天的记录:
select date_sub(curdate(),interval 1 day) from dede_archives;
上面全部查的昨天的记录!

select * from dede_archives where FROM_UNITIME(pubdate,'%Y-%m-%d')=date_sub(curdate(),interval 3 day) from dede_archives

昨日更新的最终代码:
<li><span><a href="#" target="_blank">昨天更新</a> |</span>
{dede:arclist hspwhere="FROM_UNIXTIME(pubdate,'%Y-%m-%d')=date_sub(curdate(),interval 7 day)" limit='0,10'}
<a href="#" target="_blank">[field:title/]</a>
{/dede:arclist}

---------------
http://www.a67.com/movie/p.2
http://www.a67.com/movie/434548

{dede:trim replace=''}<a([^>]*)>{/dede:trim}
{dede:trim replace=''}</a>{/dede:trim}
就是将超链接的符号去掉:trim就是修剪的意思,将能够匹配的都去掉
其中[^>]*表示超链接非介绍标签所有匹配,dede标签{/dede:trim}就是去掉超链接

韩顺平dedecms讲解上课记录的更多相关文章

  1. 韩顺平Java(持续更新中)

    原创上课笔记,转载请注明出处 第一章 面向对象编程(中级部分) PDF为主 1.1 IDEA 删除当前行,ctrl+y 复制当前行,ctrl+d 补全代码,alt+/ 添加或者取消注释,ctrl+/ ...

  2. 韩顺平Oracle笔记

    韩顺平Oracle笔记 分类: DataBase2011-09-07 10:24 3009人阅读 评论(0) 收藏 举报 oracle数据库sqljdbcsystemstring   目录(?)[-] ...

  3. 韩顺平_JAVA_视频教程_下载(打开迅雷,直接复制链接地址即可下载)

    ed2k://|file|韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇.avi|37021064|f4fb2fb3db938a642146ccc8f0935fed|h=ao2k3ep7p ...

  4. 初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。

    我自己就是一个oracle和sql的初学者,前段时间看了韩顺平老师的oracle视频教程,觉得很深入浅出,收获了很多.同时自己也做了不少笔记,现在想将纸质笔记以自己的话总结出来.俗话说得好:教学总是相 ...

  5. PHP笔录(韩顺平)

    这里记录下韩顺平视频学习记录 http://www.php.cn/code/11753.html

  6. 尚硅谷韩顺平Linux教程学习笔记

    目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...

  7. Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录

    #urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...

  8. Linux学习笔记-韩顺平

    这是我学习哔哩哔哩UP主韩顺平的2021韩顺平图解Linux课程的学习笔记. 课程地址:2021韩顺平图解Linux课程 Linux基础篇-Linux目录结构 基本介绍 linux 的文件系统是采用级 ...

  9. IT讲师韩顺平:我为什么辞去百万年薪,自己创业?

    先自我介绍一下,我叫韩顺平,是一名IT讲师.国内很多自学PHP和Java的朋友都看过我的视频课程,算是有些知名度. 15年8月从传智辞职后,很多朋友非常关心我的去向,网上也流传各种说法,有的说我和某某 ...

随机推荐

  1. java 动态代理 , 多看看。 多用用。

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; import java.lang.reflect ...

  2. 三大家族,offset,scroll,client

    1.client 1.1主要成员 1.clientWidth 获取网页可视区域宽度(两种用法)    clientHeight 获取网页可视区域高度 (两张用法) 盒子调用: 指盒子本省 浏览器调用: ...

  3. 简单谈谈js中Promise的用法

    首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ...

  4. Java集合框架(二)

    原文  http://www.jianshu.com/p/2070cb32accb List接口 查阅API,看 List 的介绍.有序的 collection (也称为序列).此接口的用户可以对列表 ...

  5. 进入PE后不显示硬盘的解决办法

    其实我很早之前就知道这个方法了,我虽然不知道原因,不过我是一个一个试出来的,转过来备忘, 内容介绍:经常使用PE的朋友相信都遇到过这样的问题,一些新购买的电脑可以正常把PE系统安装到U盘中,也可以正常 ...

  6. tp框架的MVC模式

    一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...

  7. 【django之分页器】

    一.什么是分页功能 二.Django的分页器(paginator) 语法: paginator = Paginator(book_list, 8) #8条一页print("count:&qu ...

  8. Go实现海量日志收集系统(一)

    项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机器规模不大,一个系统通常 ...

  9. 网络通信 --> socket通信

    socket通信 socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口.工作原理如下: 具体过程:服务器端先初始化socket,然后与端口绑定(bind),对端口进行监听(list ...

  10. Lucene 4.4.0中常用的几个分词器

    一.WhitespaceAnalyzer 以空格作为切词标准,不对语汇单元进行其他规范化处理.很明显这个实用英文,单词之间用空格. 二.SimpleAnalyzer 以非字母符来分割文本信息,并将语汇 ...