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!=
用谷歌上傳縮略圖的時候有一個安全問題,需要修改一下,否則一直錯,或者換一個瀏覽器。
添加欄目時候的注意事項:
 
 
 
 
 
 
 
核心網站欄目管理中的各個功能:
這一部分的各個屬性要很熟悉才對
 
        
這一部分可以修改文章和列表的命名規則,一般是把中間的那個路徑刪掉,因為太長的路徑不友善
 
 
 
 
欄目內容,是為了頻道封面欄目添加內容,因為頻道封面欄目下面是不能添加文章的
 
 
        
 
 

 
 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM