dede使用心得
Question one:
最近做了一些视频教程传到优酷网站上,但我想引入这些视频教程到我的网站,在发表时我发现织梦CMS自带的编辑器又不直接支持优酷等视频网站的引用。所以为了方便教程的发布,特意在网站搜索到本篇教程,详细讲解如何在织梦CMS系统中加入例如优酷网站的教程,一共分为一下几个步骤来完成:
- 模型自定义字段的添加
- 优酷swf地址的添加
- 优酷引用代码的加入
一、实现方法
我们刚才说到,要实现这个效果,自带的编辑器不支持。那么我们就可以利用织梦(织梦模板)内容模型来进行实现,这里我们以默认的文章模型为基础来进行制作(如果是您是其它新建的模型,方法也是一样的)
模型自定义字段的添加
进入后台,依次点击【核心】——【频道模型】——【内容模型管理】,点击【普通文章】后面 进行修改,打开之后,切换到[字段管理],然后点击 [添加新字段] 即可,然后在文章列表--->增加文章中就可以看得到
编辑器中添加视频不成功,是因为第一个选项打了对号
Question two:
首页中的友情链接不好使,解决方法
Include/taglib/flink.lib.php把81行的
$revalue=<<<EOT
<li><a href='http://ad.dedecms.com' target='_blank' title='DedeCMS广告'>DedeCMS广告</a></li><li><a href='http://service.dedecms.com' target='_blank' title='织梦客户服务中心'>
织梦客户服务中心</a></li><li><a href='http://ask.dedecms.com' target='_blank' title='织梦问答'>
织梦问答</a></li><li><a href='http://tools.dedecms.com' target='_blank' title='站长工具'>
站长工具</a></li><li><a href='http://site.desdev.cn' target='_blank' title='DedeCMS建站中心'>
DedeCMS建站中心</a></li><li><a href='http://help.dedecms.com' target='_blank' title='织梦CMS帮助中心'>
织梦CMS帮助中心</a></li><li><a href='http://' target='_blank' title=''>
</a></li>
EOT;
改为$revalue=“”
第二部分
Include/taglib/flinktype.lib.php中的代码注销掉:
$dedecms = false;
$dedecms->id = 999;
$dedecms->typename = '织梦链';
if($type == 'dedecms') $row[] = $dedecms;
然后把首页超链接代码改成这个样子:
横排的超链接:
{dede:flink row='24' linktype= 2/}
竖排的超链接
{dede:flinktype type="dedecms"}
<a href="#" _for="flink_[field:id/]">[field:typename/]</a>
{/dede:flinktype}
Question three:
做btc项目全部更新不好使是因为修改了后台控制器文件,重新复制覆盖就可以了
Question four:
底部版权信息的修改需要在
Include/taglib/flink.lib.php注销掉一段代码
$arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79);
$arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72,
0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20,
0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e);
然后修改中的内容footer.htm中的内容为
<!-- //底部模板 -->
<div class="footer w960 center mt1 clear">
<div class="footer_left"></div>
<div class="footer_body">
<div class="copyright">{dede:global.cfg_powerby/}</div>
</div>
<div class="footer_right"></div>
</div>
Question five:
一键更新慢,并且总是报500的错误可能为服务器权限配置有误
后台文件夹中的cache、session、tplcache需要清理,
控制器中的代码需要修改https://www.cnblogs.com/cnteam/p/4692712.html
Question six:
隐藏域名后面的index.html,先在服务器中将index.html放在最顶端,具体根据服务器的不同操作手法不一样,然后将index.php中的代码进行更换
<?php
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
require_once
(dirname(__FILE__) . "/include/common.inc.php");
require_once
DEDEINC."/arc.partview.class.php";
$GLOBALS['_arclistEnv']
= 'index';
$row
= $dsql->GetOne("Select * From `dede_homepageset`");
$row['templet']
= MfTemplet($row['templet']);
$pv
= new PartView();
$pv->SetTemplet($cfg_basedir
. $cfg_templets_dir . "/" . $row['templet']);
$pv->Display();
?>
Qustion seven:
dede数据库的编码格式是gbk
Question eight:
修改dede系统中的编辑器
https://blog.csdn.net/dedehtml/article/details/79502774
Question nine:
标签的教程
http://www.dedecms.com/archives/templethelp/help/taghelp.htm
dede标签分为单标签和双标签
标签如何使用
{dede:标签名 属性="值" ../}
但标签的使用如下:{dede:include filename="head.htm" /}
双标签的使用如下:{dede:channel type="top" row="8"}..{/dede:channel}
typelink=typeurl,但有时候是有差别,总之一个不好使,就使用另一个
二级导航
方法一:
<li
class="navitem">
{dede:channelartlist typeid='top'
row='6'}
<a class=''
href="{dede:field name='typeurl'/}"
target="_blank">{dede:field name='typename'/}</a>
<ul class="subnav">
{dede:channel type='son'
row='5' noself='yes'}
<li><a
href="[field:typelink/]"
target="_blank">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
</li>
方法2:
不循环直接使用下面标签
{dede:field name=typeid runphp=”yes”}(@me==’’) @me=’class=’active’’?@me==’’:{/dede:field}
{dede:type typeid=1}
[field:typelink/][field:typename]
{/dede:type}
Typeid=1下面的子类如何遍历
{dede:channelartlist typeid=1}
{dede:channel type=son noself=yes}
[field:typelink/][field:typename/]
{/dede:channel}
{/dede:channelartlist}
使用dede中的系统变量:{dede:global.cfg_indexurl/}
广告标签{dede:mda name=”}//默认模板中的广告标签
function='Html2Text(@me)是用来屏蔽过滤html代码的。
表示列表模板里的分页内容列表
{dede:list col='' titlelen='' “
infolen='' imgwidth='' imgheight='' orderby='' pagesize=''}{/dede:list}
韩顺平dedecms讲解上课记录
https://www.cnblogs.com/sengling/p/5222517.html
四张重要的数据表:
这四个表很重要,基本上所有的遍历都是在这3个表中
Dede-channeltype,模型表最原始的发源
Dede-arctype:每条记录是一个栏目是发源表
Dede- archives: 内容主表是:是发源表属于一个文章或者电影的主要内容信息
Dede- addonarticle: 这是附加表,就是每篇文章,或者电影都有自己特色信息在这里填写
织梦(dedecms)系统常用全局变量调用标签及路径
{dede:global.cfg_memberurl/} 指的是会员中心 对应/member/目录
{dede:global.cfg_cmsurl/} 对应的是网站根目录/
{dede:global.cfg_dataurl/} data目录对应 /data/
{dede:global.cfg_basehost/} 网站地址 比方:http://www.sina.com
{dede:global.cfg_webname/} 网站名称
{dede:global.cfg_soft_lang/} 网页编码 GBK2312 或者 UTF-8
{dede:global.cfg_description/} 网站描述(摘要)
{dede:global.cfg_keywords/} 网站关键词
{dede:field.title/} 列表页或者文章页标题
{dede:field
name=’keywords’/} 列表页或者文章页关键词
{dede:field
name=’description’ function=’html2text(@me)’/} 列表页或者文章页描述(摘要)
{dede:field.seotitle
/} 栏目SEO标题
{dede:field.content/} 栏目内容
{dede:prenext
get=’pre’/} 上一篇
{dede:prenext
get=’next’/} 下一篇
{dede:pagebreak/} 文章分页
{dede:pagelist
listitem=”info,index,end,pre,next,pageno,option” listsize=”5″/} 列表分页
{dede:field
name=’position’/} 当前位置
{dede:global.cfg_templets_skin/} 对应的是/templets/模板目录
{dede:global.cfg_templeturl/} 织梦模板目录所在路径 对应 /templets/
@me 用于表示当前标记的值
首页轮播图的遍历
思路,把一些杂项的放在一个叫做网站配置的栏目里面
杂乱的东西都放在网站配置里面即新建一个栏目,叫做网站配置,包括3个子栏目,分别为图片配置、文字配置和轮播图配置
深度刷新ctrl+f5
dedecms织梦首页调用指定id文章内容的教程
channelid模型id
{dede:arclist idlist='要调用文章的id' channelid='1' addfields='body'}
[field:body function='cn_substr(@me,330)'/]
{/dede:arclist}//我试过,不太好使,也可以用另外一种思路
当前位置标签:
{dede:field
name='position'/}
如何获取顶级栏目,其实有一种很简单的方法
1、在include/common.func.php的最下方加入:
2、//获取顶级栏目名
function GetTopTypename($id)
{
global $dsql;
$row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id=
$id");
if ($row['topid'] == '0')
{
return $row['typename'];
}
else
{
$row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id=
$row[topid]");
return $row1['typename'];
}
}
在文章页或者栏目列表页调用时,在所要调用 名称的位置加上下面这行代码即可实现。
{dede:field name='typeid'
function="GetTopTypename(@me)" /}
===================================
Dedecms获取顶级栏目名称、二级栏目名称实现方法:
需要在二级、三级,甚至更多级,获取顶级栏目或者二级栏目名称。
现在和大家分享下最简单的实现方法,找到include/common.func.php文件,在里面加入下面这段代码:
//获取二级栏目名
function GetTopTypename($id)
{
global $dsql;
$row = $dsql->GetOne("SELECT typename,reid FROM gsh_arctype WHERE id=
$id");
if ($row['reid'] == '0')
{
return $row['typename'];
}
else
{
$row2 = $dsql->GetOne("SELECT typename FROM gsh_arctype WHERE id=
$row[reid]");
return $row2['typename'];
}
}
然后在任意列表页、内容页需要调用名称的地方加入:
{dede:field.typeid
fuction="GetToypename(@me)"/}
如果在Dede标签里面,就用下面这句调用:
[field:typeid
fuction="GetToypename(@me)"/]
童攀所讲项目
下载按钮:
添加两个字段,一是文件上传,附件
二是文件下载地址,单行文本
登录注册页面
用自定义表单来写
验证码的使用二次开发
plus/diy.php; include/vdimgck.php;用到这两个方法,在前一个方法中的大概第61行,加入以下代码:
if(!empty($dede_fields))
{
$validate = empty($validate) ? '' : strtolower(trim($validate));
$svali = strtolower(GetCkVdValue());
if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){
ResetVdValue();
ShowMsg('验证码不正确!',$dede_add,0,1000);
echo '<script language="javascript">history.go(-1);</script>';
}
}
然后开始改模板中的代码:
<input name="validate" type="text" id="vdcode" style="text-transform:uppercase;" size="8"/>
<img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/>
<a href="javascript:vide(-1);" onClick="changeAuthCode();">看不清? </a>
<script type="text/javascript" language="javascript">
//验证码
function changeAuthCode() {
var num = new Date().getTime();
var rand = Math.round(Math.random() * 10000);
num = num + rand;
$('#ver_code').css('visibility','visible');
if ($("#vdimgck")[0]) {
$("#vdimgck")[0].src = "../include/vdimgck.php?tag=" + num;
}
return false;
}
</script>
验证码不显示的问题解决方法:
因为模板中的的路径问题,/include/vdimgck.php,去掉前面的两点
表单的字段验证js代码,是很舒服的一段代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单验证js</title>
<script>
function checkform(){
if (document.yanzheng.xingming.value=='') {
alert("姓名不能我空");
document.yanzheng.xingming.focus();
return false;
}
if (document.yanzheng.age.value=='') {
alert("年龄不能我空");
document.yanzheng.age.focus();
return false;
}
}
</script>
</head>
<body>
<h4>注册页面</h4>
<form action="" name="yanzheng" onsubmit="return checkform()">
<input type="text" name="xingming" vlaue=""><br>
<input type="text" name="age" value=""><br>
<input type="submit" value="注册">
</form>
</body>
</html>
添加栏目的时候,栏目的显示与隐藏,那边有很多的属性可供选择,但是不是很熟悉
搜索功能的实现,在搜索页面遍历栏目,是遍历不出来的,需要进行二次开发:
很多朋友在使用dedecms进行网站开发时都会存在这样的问题,那就是dedecms的搜索页(search.php)与我们网站页面的模板的头部、底部不一样,并且还不支持在搜索页调用其他某一栏目的文档。但是我们实际的网站建设中有时候必须保证我们的搜索页与我们的其他页面风格一样,所以我们要对搜索页进行一些改造:
下边我们来介绍一下如何在搜索页支持arclist和channelartlist这两个标签的调用:
打开include/arc.searchview.class.php
查找
require_once(DEDEINC."/taglib/hotwords.lib.php");
require_once(DEDEINC."/taglib/channel.lib.php");
下面插入
require_once(DEDEINC."/taglib/arclist.lib.php");
require_once(DEDEINC."/taglib/channelartlist.lib.php");
查找
else if($tagname=="hotwords")
{
$this->dtp->Assign($tagid,lib_hotwords($ctag,$this));
}
下面插入
else if($tagname=="arclist")
{
$this->dtp->Assign($tagid,lib_arclist($ctag,$this));
}
else if($tagname=="channelartlist")
{
$this->dtp->Assign($tagid,lib_channelartlist($ctag,$this));
}
方法二:
打开文件:include/arc.searchview.class.php
找到:
require_once(DEDEINC."/taglib/hotwords.lib.php");
在下面添加:
require_once(DEDEINC."/taglib/channel.lib.php");
require_once(DEDEINC."/taglib/arclist.lib.php");
require_once(DEDEINC."/taglib/channelartlist.lib.php");
require_once(DEDEINC."/taglib/myad.lib.php");
require_once(DEDEINC."/taglib/php.lib.php");
require_once(DEDEINC."/taglib/sql.lib.php");
然后找到:
else if($tagname=="hotwords")
{
$this->dtp->Assign($tagid,lib_hotwords($ctag,$this));
}
在下面添加:
else if($tagname=="arclist")
{
$this->dtp->Assign($tagid,lib_arclist($ctag,$this));
}
else if($tagname=="channelartlist")
{
$this->dtp->Assign($tagid,lib_channelartlist($ctag,$this));
}
else if($tagname=="myad")
{
$this->dtp->Assign($tagid,lib_myad($ctag,$this));
}
else if($tagname=="php")
{
$this->dtp->Assign($tagid,lib_php($ctag,$this));
}
else if($tagname=="sql")
{
$this->dtp->Assign($tagid,lib_sql($ctag,$this));
}
这样,搜索页面就支持多种标签了。
包括{dede:arclist} {/dede:arclist}、{dede: channelartlist } {/dede: channelartlist}、{dede: myad } {/dede: myad }、{dede: php } {/dede: php }、{dede: sql } {/dede: sql }
如果需要支持其他的标签,以此类推。
[field:click runphp=’yes’]if(@>100)@me=”输入hot图片”;else@me=””[/field:click]
评论插件:
友言、畅言、多说,
在线留言:百度商桥、qq推广
如何用织梦中的banner图呢,很简单,只要在添加文章的时候在自定义属性中选择幻灯即可,频道封面栏目下面不能发布文章。
默认模板中的banner代码如何改变
swf_width;swf_height;据此修改宽和高;
textarr[[field:global.autoindex/]] = "[field:title function='html2text(@me)'/]";把这一行代码注销掉
修改以前:
修改以后:
循环的时候,typeid=和nottypeid=,而不是说,typeid!=
用谷歌上传缩略图的时候有一个安全问题,需要修改一下,否则一直错,或者换一个浏览器。
添加栏目时候的注意事项:
核心网站栏目管理中的各个功能:
这一部分的各个属性要很熟悉才对
这一部分可以修改文章和列表的命名规则,一般是把中间的那个路径删掉,因为太长的路径不友善
栏目内容,是为了频道封面栏目添加内容,因为频道封面栏目下面是不能添加文章的
dede使用心得的更多相关文章
- Dede 列表文章 自增
在{dede:arclist/}这个标签中有个[field:global.autoindex/],是从0开始自增,如果我们想自定义一个数值,比如自定义从2开始.那么就可以写成下面代码: [field: ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(七) 查询
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- cut命令及参数企业案列讲解及awk对比
cat oldboy.txt I am oldboy myqq is 49000448 cut -d " " -f3,6 oldboy.txt oldboy 49000448 aw ...
- JavaScript 再谈闭包
之前有整理过一版关于闭包的概念,但感觉思路不是很清晰,是临时想起一些例子来讲的,今天再次来讲一下闭包. 闭包: 函数嵌套函数,内部函数可以引用外部函数的参数和变量 function aaa(a){ v ...
- JavaScript的基本使用
一.JavaScript的简单介绍 JavaScript是一种属于网络的脚本语言(简称JS),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常Ja ...
- 简简单单把event loop说清楚
event loop这东西,确实把我坑了一把,面试的时候被问到这个问题的时候,我是懵逼的,完全不知道怎么回答,而当我回来查到原来这个听起来如此玄乎又厉害的名字就是异步和单线程那块的知识的时候,我心情又 ...
- PHP7变量的内部实现
PHP7变量的内部实现 受篇幅限制,这篇文章将分为两个部分.本部分会讲解PHP5和PHP7在zval结构体的差异,同时也会讨论引用的实现.第二部分会深入探究一些数据类型如string和对象的实现. P ...
- 第一把机械键盘 ikbc C-87
终于入了机械键盘,ikbc C-87黑色红轴. 原本上周五晚上就到了,但是那个键盘有几个键弹起后弹簧会持续响,敲了一会,实在不能忍受,就申请换货了.新换的键盘今天终于到了,没有了之前的问题,但是几乎每 ...
- 为什么会有可恶的腾讯电脑管家&怎么干掉它-电脑开机出现腾讯电脑管家-无法卸载腾讯电脑管家
为什么会有可恶的腾讯电脑管家 怎么干掉它 电脑开机出现腾讯电脑管家 无法卸载腾讯电脑管家 某天,趁空闲,升级了一些常用软件,其中就升了新版电脑qq,晚上玩完电脑后关机睡觉,第二天早上开机.出现了图一: ...
- webpack-dev-server 设置反向代理解决跨域问题
一.设置代理的原因 现在对前端开发的要求越来越高,并且随着自动化以及模块化的 诞生,前后端开发模式越来越流行.后端只负责接口,前端负责数据展示.逻辑处理.但是前后端开发模式,有一个重要的问题,就是跨域 ...
- Know your weapons Ⅱ
本次内容主要讲述使用UWP相关技术可以实现的软件上的一些功能,这里以Netease-Cloud Music(下称Cloud Music)为例讲述,这款音乐软件我个人一直在用,毕竟人们生活离不开音乐,说 ...
- 记录一则ASM实例阻塞,rbal进程异常的案例
1.故障现象描述 2.确认故障现象 3.排查ASM层面 4.解决问题 1.故障现象描述 环境:AIX 7.1 + Standalone Oracle 11.2.0.4 现象:客户反映某11g版本的AD ...