dede使用心得

Question one:javascript

最近作了一些視頻教程傳到優酷網站上,但我想引入這些視頻教程到個人網站,在發表時我發現織夢CMS自帶的編輯器又不直接支持優酷等視頻網站的引用。因此爲了方便教程的發佈,特地在網站搜索到本篇教程,詳細講解如何在織夢CMS系統中加入例如優酷網站的教程,一共分爲一下幾個步驟來完成:php

  • 模型自定義字段的添加
  • 優酷swf地址的添加
  • 優酷引用代碼的加入

1、實現方法css

咱們剛纔說到,要實現這個效果,自帶的編輯器不支持。那麼咱們就能夠利用織夢(織夢模板)內容模型來進行實現,這裏咱們以默認的文章模型爲基礎來進行製做(若是是您是其它新建的模型,方法也是同樣的)html

模型自定義字段的添加java

進入後臺,依次點擊【核心】——【頻道模型】——【內容模型管理】,點擊【普通文章】後面  進行修改,打開以後,切換到[字段管理],而後點擊 [添加新字段] 便可,而後在文章列表--->增長文章中就能夠看獲得web

編輯器中添加視頻不成功,是由於第一個選項打了對號sql

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講解上課記錄

http://www.javashuo.com/article/p-rwvhpryo-d.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'/}

如何獲取頂級欄目,其實有一種很簡單的方法

一、在include/common.func.php的最下方加入:

二、//獲取頂級欄目名
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!=
用谷歌上傳縮略圖的時候有一個安全問題,須要修改一下,不然一直錯,或者換一個瀏覽器。
添加欄目時候的注意事項:
 
 
 
 
 
 
 
核心網站欄目管理中的各個功能:
這一部分的各個屬性要很熟悉纔對
 
這一部分能夠修改文章和列表的命名規則,通常是把中間的那個路徑刪掉,由於太長的路徑不友善
 
 
 
 
欄目內容,是爲了頻道封面欄目添加內容,由於頻道封面欄目下面是不能添加文章的
相關文章
相關標籤/搜索