dede使用心得(代码片段)

laomablog laomablog     2022-10-31     629

关键词:

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’’[email protected]==’’:/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图片”;[email protected]=””[/field:click]
评论插件:
友言、畅言、多说,
在线留言:百度商桥、qq推广
如何用织梦中的banner图呢,很简单,只要在添加文章的时候在自定义属性中选择幻灯即可,频道封面栏目下面不能发布文章。
默认模板中的banner代码如何改变
swf_width;swf_height;据此修改宽和高;
 textarr[[field:global.autoindex/]] = "[field:title function=‘html2text(@me)‘/]";把这一行代码注销掉
修改以前:

修改以后:

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

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

 
 

 
 

 
 

elementui使用心得(代码片段)

Elementui使用心得滑块:<template><divclass="block"><spanclass="demonstration">默认</span><el-sliderv-model="value1"></el-slider></div><divclass="block"><spanc 查看详情

dede中autoindex自动编号心得

dede中autoindex使用自动编号样例,可以根据要求从不同的数值开始:         dede:arclisttypeid='3'row='6'               <divclass='main4_0[field:globalname=autoindexrunphp="yes"]@me=@... 查看详情

jqgrid使用心得(代码片段)

1.导入插件<scriptsrc="~/Content/js/jqprint/jquery.jqprint-0.3.js"></script>2.设置容器<tablestyle="height:49%;"id="orderGridList"></table>//表格<divid="orderGridPager"></div>/ 查看详情

element使用心得(代码片段)

TableTable常用属性解释数据过滤,filter过滤器&lt;el-table-columnwidth="200"show-overflow-tooltiplabel="检测指标"&gt;&lt;templateslot-scope="scope"&gt;scope.row.projects|ge 查看详情

arcenginegp工具使用心得(代码片段)

<headerid="header"> <navclass="nav-containergroup"id="nav-mobile"> <divclass="nav-toggle"><iclass="fafa-bars">& 查看详情

k8s使用心得(代码片段)

查看当前所有namespaces[root@master~]#kubectlgetnamespaces-ANAMESTATUSAGEdefaultActive63dhkdActive31dkube-node-leaseActive57dkube-publicActive63dkube-systemActive63dnginx-ingressActive30dtestActive30d查看指定nam 查看详情

springboot使用技巧与心得(代码片段)

  1. 配置类有3次机会可以去覆盖配置,这对于框架封装是很有好处的1//2.在bean生成后,populateBean()时,在application.yml配置文件里面进行覆盖2@ConfigurationProperties(prefix="cas")3publicclassCasConfigurationimplementsInitializingBean4 查看详情

使用vuex心得(代码片段)

之前一直都是看别人写的vuex感觉还挺好理解的,今天自己根据需求写了下vuex,一下子不知道怎么写了,想要用好vuex还是先要知道原理:参考好博客写的非常到位:https://www.cnblogs.com/DM428/p/7293867.html基本组成:     注... 查看详情

flinkclient使用技巧和心得(flinkonzeppelin)(代码片段)

Flink链接Kafka先建立catalogCREATECATALOGflink_hiveWITH('type'='hive','default-database'='imods','hive-conf-dir'='/home/admin/flink/conf');建立kafka 查看详情

一些心得体会(代码片段)

...针,导致我开发第一个应用软件(约1万行C代码)时没有使用一个指针,全用数组来顶替指针,实在蠢笨得过分。躲避指针不是办法,后来我改写了这个软件,代码量缩小到原先的一半。我的经验教训是:(1)越是怕指针,就越... 查看详情

项目心得(代码片段)

...做这个项目中时产生的一些想法。知识点:1:项目前端使用bootstrap框架2:后台用jsp+servlet3:数据库采用mysql(会使用数据库连接池C3P0)4:项目结构使用MVC的开发模式,Mo 查看详情

opencv函数subtract()使用心得及需要注意的地方(代码片段)

OpenCV函数subtract()的原型如下:voidcv::subtract( InputArray src1, InputArray src2, OutputArraydst, InputArray mask=noArray(), int dtype=-1 ) 官方文档说明如下:看了以上文档并结合自己的使用&# 查看详情

使用hexo+github搭建个人博客的心得(含教程)(代码片段)

...客,就需要找个靠谱的平台,主要就是以下的两种方式:使用网站提供的博客平台,例如国内的CSDN、博客园;国外的Blogger、Wordpress自己建站,发布到自己的服务器上,或者发布到G 查看详情

boofuzz协议漏洞挖掘入门教程与使用心得(代码片段)

文章目录1.简介1.1.从Sulley说起1.2.Boofuzz2.Dev环境部署2.1.使用pip安装部署2.2.从源码部署boofuzz2.3.进程监控2.4.网络监控,network_monitor.py3.入门快速使用3.1.实例化`Session`对象3.2.定义消息(Request)3.3.构建协议树(Pr... 查看详情

迭代器的学习心得(代码片段)

...迭代器的学习心得首先我们要了解——泛型编程为什么要使用迭代器迭代器使用时的注意事项迭代器的分类迭代器的实现方式分析迭代器的左闭右开原则迭代器失效问题迭代器的学习心得这段时间学习STL实现自己的STL时第一次接... 查看详情

[转]form表单数据处理简单教程formidable使用心得(代码片段)

入门,高手见笑表单数据一种是get方式,另一种是post方式1.get方式对于get方式,node处理起来非常简单如以下代码:varurlParsed=url.parse(request.url);vargetData=querystring.parse(urlParsed.query);//getData为object类型同名表单为arrayget返回结果:name:"b... 查看详情

[ray.tune]使用心得(待完善)(代码片段)

首先,report中参数,是自行指定的,而参数对应的值需要在程序中有出现,这一点不需要赘述。同时在report中指定的参数,将会在Ray运行的过程中以表格的形式展现。比如,tune.report(loss=(mean_loss),accuracy&... 查看详情

织梦dede:arclist输出取消换行符(代码片段)

织梦在使用dede:arclist输出文档时,会自动有换行符,想要去掉的同学可以这样做打开/include/taglib/arclist.lib.php找到$artlist.=$liststr."";改成$artlist.=$liststr;有2处,记得都要改哦 查看详情