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

童攀所讲项目

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!=
用谷歌上传缩略图的时候有一个安全问题,需要修改一下,否则一直错,或者换一个浏览器。
添加栏目时候的注意事项:
 
 
 
 
 
 
 
核心网站栏目管理中的各个功能:
这一部分的各个属性要很熟悉才对

这一部分可以修改文章和列表的命名规则,一般是把中间的那个路径删掉,因为太长的路径不友善
 
 
 
 
栏目内容,是为了频道封面栏目添加内容,因为频道封面栏目下面是不能添加文章的
 

上一篇:69个经典Android面试题和答案详解,神操作!


下一篇:mysql和mysqli的区别