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)"/]

童攀所讲项目

http://www.chrent.com

下载按钮:

添加两个字段,一是文件上传,附件

二是文件下载地址,单行文本

登录注册页面

用自定义表单来写

验证码的使用二次开发

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使用心得的更多相关文章

  1. Dede 列表文章 自增

    在{dede:arclist/}这个标签中有个[field:global.autoindex/],是从0开始自增,如果我们想自定义一个数值,比如自定义从2开始.那么就可以写成下面代码: [field: ...

  2. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  4. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  5. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  8. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  9. 我的MYSQL学习心得(七) 查询

    我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

随机推荐

  1. 华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [原创]

    电信宽带送的 IPTV 盒子,CPU 为 Hi3798M,1G 内存,8G 存储,支持 H.265 硬解码,系统为 Android 4.4.2,却只能看电视,岂不浪费?好在华为厚道,还是留了后门供 D ...

  2. js和jquery设置disabled属性为true使按钮失效

    设置disabled属性为true即为不可用状态. JS: document.getElementByIdx("btn").disabled=true;   Jquery: $(& ...

  3. CyQ.data MDataTable

    前言 以前一两个月才出一篇,这三天有点变态地连续1天1篇(其实都是上周末两天写好的存货). 短期应该没有新的和此框架相关的文章要写了,这应该是最后一篇,大伙且看且珍惜. 前两篇讲数据库读写分享和分布式 ...

  4. handsontable 事件汇总

    Hook插件 afterChange (changes: Array, source: String):1个或多个单元格的值被改变后调用 changes:是一个2维数组包含row,prop,oldVa ...

  5. APNS IOS 消息推送

    一.Apns简介: Apns是苹果推送通知服务. 二.原理: APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备):然后,将服务器的信息接收并且 ...

  6. 解决Win10下_findnext()异常

    在win10中,使用文件遍历函数_findnext会报0xC0000005错误 ,发生访问冲突错误 错误定位到ntdll.dll 原因: _findnext()第一个参数"路径句柄" ...

  7. python爬微信公众号前10篇历史文章(1)-思路概览

    作为程序员,要时刻保持一颗好奇心和想要学习的姿态. 练习怎样利用搜狗微信爬取某指定微信公众号的历史文章.爬取微信公众号本身难度非常大,感谢搜狗提供了一个可以爬取数据的平台. 代码部分参考于: http ...

  8. 简单的 Promise 实现 一

    const Promise = function(fn){ let state = { pending: "pending", fulfilled: "fulfilled ...

  9. bat脚本:Java一键编译(Javac java)

    bat脚本:Java一键编译(Javac java) D:    是指D盘 javat是要编译的.java文件所在的文件夹 也就是D:\javat bat代码: :start COLOR 0A cls ...

  10. 代码重构--switch的惊恐现身

    switch作为条件判断(分支结构)中的一种方式,以至于我们对于它使用的频率处于较高水平的水平线上,为此我们应该使用Extra method来对这类判断条件进行抽取,另外从我自身而言,我发现我以前常常 ...