dede使用心得
Question one:
最近做了一些視頻教程傳到優(yōu)酷網(wǎng)站上,但我想引入這些視頻教程到我的網(wǎng)站,在發(fā)表時(shí)我發(fā)現(xiàn)織夢(mèng)CMS自帶的編輯器又不直接支持優(yōu)酷等視頻網(wǎng)站的引用。所以為了方便教程的發(fā)布,特意在網(wǎng)站搜索到本篇教程,詳細(xì)講解如何在織夢(mèng)CMS系統(tǒng)中加入例如優(yōu)酷網(wǎng)站的教程,一共分為一下幾個(gè)步驟來(lái)完成:
- 模型自定義字段的添加
- 優(yōu)酷swf地址的添加
- 優(yōu)酷引用代碼的加入
一、實(shí)現(xiàn)方法
我們剛才說(shuō)到,要實(shí)現(xiàn)這個(gè)效果,自帶的編輯器不支持。那么我們就可以利用織夢(mèng)(織夢(mèng)模板)內(nèi)容模型來(lái)進(jìn)行實(shí)現(xiàn),這里我們以默認(rèn)的文章模型為基礎(chǔ)來(lái)進(jìn)行制作(如果是您是其它新建的模型,方法也是一樣的)
模型自定義字段的添加
進(jìn)入后臺(tái),依次點(diǎn)擊【核心】——【頻道模型】——【內(nèi)容模型管理】,點(diǎn)擊【普通文章】后面 ?進(jìn)行修改,打開(kāi)之后,切換到[字段管理],然后點(diǎn)擊 [添加新字段] 即可,然后在文章列表--->增加文章中就可以看得到
編輯器中添加視頻不成功,是因?yàn)榈谝粋€(gè)選項(xiàng)打了對(duì)號(hào)
Question two:
首頁(yè)中的友情鏈接不好使,解決方法
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='織夢(mèng)客戶服務(wù)中心'>
織夢(mèng)客戶服務(wù)中心</a></li><li><a href='http://ask.dedecms.com' target='_blank' title='織夢(mèng)問(wèn)答'>
織夢(mèng)問(wèn)答</a></li><li><a href='http://tools.dedecms.com' target='_blank' title='站長(zhǎng)工具'>
站長(zhǎng)工具</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='織夢(mèng)CMS幫助中心'>
織夢(mèng)CMS幫助中心</a></li><li><a href='http://' target='_blank' title=''>
</a></li>
EOT;
改為$revalue=“”
第二部分
Include/taglib/flinktype.lib.php中的代碼注銷(xiāo)掉:
$dedecms = false;
????? $dedecms->id = 999;
????? $dedecms->typename = '織夢(mèng)鏈';
????? if($type == 'dedecms') $row[] = $dedecms;
然后把首頁(yè)超鏈接代碼改成這個(gè)樣子:
橫排的超鏈接:
{dede:flink row='24' linktype= 2/}
豎排的超鏈接
????? {dede:flinktype type="dedecms"}
???????????????? <a href="#" _for="flink_[field:id/]">[field:typename/]</a>
????? {/dede:flinktype}
Question three:
做btc項(xiàng)目全部更新不好使是因?yàn)樾薷牧撕笈_(tái)控制器文件,重新復(fù)制覆蓋就可以了
Question four:
底部版權(quán)信息的修改需要在
Include/taglib/flink.lib.php注銷(xiāo)掉一段代碼
$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);
然后修改中的內(nèi)容footer.htm中的內(nèi)容為
<!-- //底部模板 -->
<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:
一鍵更新慢,并且總是報(bào)500的錯(cuò)誤可能為服務(wù)器權(quán)限配置有誤
后臺(tái)文件夾中的cache、session、tplcache需要清理,
控制器中的代碼需要修改https://www.cnblogs.com/cnteam/p/4692712.html
Question six:
隱藏域名后面的index.html,先在服務(wù)器中將index.html放在最頂端,具體根據(jù)服務(wù)器的不同操作手法不一樣,然后將index.php中的代碼進(jìn)行更換
<?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數(shù)據(jù)庫(kù)的編碼格式是gbk
Question eight:
修改dede系統(tǒng)中的編輯器
https://blog.csdn.net/dedehtml/article/details/79502774
Question nine:
標(biāo)簽的教程
http://www.dedecms.com/archives/templethelp/help/taghelp.htm
dede標(biāo)簽分為單標(biāo)簽和雙標(biāo)簽
標(biāo)簽如何使用
{dede:標(biāo)簽名 屬性="值" ../}
但標(biāo)簽的使用如下:{dede:include filename="head.htm" /}
雙標(biāo)簽的使用如下:{dede:channel type="top" row="8"}..{/dede:channel}
typelink=typeurl,但有時(shí)候是有差別,總之一個(gè)不好使,就使用另一個(gè)
二級(jí)導(dǎo)航
方法一:
<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:
不循環(huán)直接使用下面標(biāo)簽
{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下面的子類(lèi)如何遍歷
{dede:channelartlist typeid=1}
{dede:channel type=son noself=yes}
[field:typelink/][field:typename/]
{/dede:channel}
{/dede:channelartlist}
使用dede中的系統(tǒng)變量:{dede:global.cfg_indexurl/}
廣告標(biāo)簽{dede:mda name=”}//默認(rèn)模板中的廣告標(biāo)簽
function='Html2Text(@me)是用來(lái)屏蔽過(guò)濾html代碼的。
表示列表模板里的分頁(yè)內(nèi)容列表
{dede:list col='' titlelen=''?“ infolen='' imgwidth='' imgheight='' orderby='' pagesize=''}{/dede:list}?
韓順平dedecms講解上課記錄
https://www.cnblogs.com/sengling/p/5222517.html
四張重要的數(shù)據(jù)表:
這四個(gè)表很重要,基本上所有的遍歷都是在這3個(gè)表中
?Dede-channeltype,模型表最原始的發(fā)源
?
Dede-arctype:每條記錄是一個(gè)欄目是發(fā)源表
Dede- archives: 內(nèi)容主表是:是發(fā)源表屬于一個(gè)文章或者電影的主要內(nèi)容信息
Dede- addonarticle: 這是附加表,就是每篇文章,或者電影都有自己特色信息在這里填寫(xiě)
織夢(mèng)(dedecms)系統(tǒng)常用全局變量調(diào)用標(biāo)簽及路徑
{dede:global.cfg_memberurl/}?指的是會(huì)員中心 對(duì)應(yīng)/member/目錄
{dede:global.cfg_cmsurl/}?對(duì)應(yīng)的是網(wǎng)站根目錄/
{dede:global.cfg_dataurl/}?data目錄對(duì)應(yīng) ?/data/
{dede:global.cfg_basehost/}?網(wǎng)站地址?比方:http://www.sina.com
{dede:global.cfg_webname/}?網(wǎng)站名稱(chēng)
{dede:global.cfg_soft_lang/}?網(wǎng)頁(yè)編碼 ?GBK2312 或者 UTF-8
{dede:global.cfg_description/}?網(wǎng)站描述(摘要)
{dede:global.cfg_keywords/}?網(wǎng)站關(guān)鍵詞
{dede:field.title/}?列表頁(yè)或者文章頁(yè)標(biāo)題
{dede:field name=’keywords’/}?列表頁(yè)或者文章頁(yè)關(guān)鍵詞
{dede:field name=’description’ function=’html2text(@me)’/}?列表頁(yè)或者文章頁(yè)描述(摘要)
{dede:field.seotitle /}?欄目SEO標(biāo)題
{dede:field.content/}?欄目?jī)?nèi)容
{dede:prenext get=’pre’/}?上一篇
{dede:prenext get=’next’/}?下一篇
{dede:pagebreak/}?文章分頁(yè)
{dede:pagelist listitem=”info,index,end,pre,next,pageno,option” listsize=”5″/}?列表分頁(yè)
{dede:field name=’position’/}?當(dāng)前位置
{dede:global.cfg_templets_skin/}?對(duì)應(yīng)的是/templets/模板目錄
{dede:global.cfg_templeturl/}?織夢(mèng)模板目錄所在路徑 ?對(duì)應(yīng)?/templets/
@me 用于表示當(dāng)前標(biāo)記的值
首頁(yè)輪播圖的遍歷
思路,把一些雜項(xiàng)的放在一個(gè)叫做網(wǎng)站配置的欄目里面
雜亂的東西都放在網(wǎng)站配置里面即新建一個(gè)欄目,叫做網(wǎng)站配置,包括3個(gè)子欄目,分別為圖片配置、文字配置和輪播圖配置
深度刷新ctrl+f5
dedecms織夢(mèng)首頁(yè)調(diào)用指定id文章內(nèi)容的教程
channelid模型id
{dede:arclist idlist='要調(diào)用文章的id' channelid='1' addfields='body'}
[field:body function='cn_substr(@me,330)'/]
{/dede:arclist}//我試過(guò),不太好使,也可以用另外一種思路
當(dāng)前位置標(biāo)簽:
{dede:field name='position'/}
如何獲取頂級(jí)欄目,其實(shí)有一種很簡(jiǎn)單的方法
1、在include/common.func.php的最下方加入:
2、//獲取頂級(jí)欄目名
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'];
}
}
在文章頁(yè)或者欄目列表頁(yè)調(diào)用時(shí),在所要調(diào)用 名稱(chēng)的位置加上下面這行代碼即可實(shí)現(xiàn)。
{dede:field name='typeid' function="GetTopTypename(@me)" /}
?
===================================
Dedecms獲取頂級(jí)欄目名稱(chēng)、二級(jí)欄目名稱(chēng)實(shí)現(xiàn)方法:
需要在二級(jí)、三級(jí),甚至更多級(jí),獲取頂級(jí)欄目或者二級(jí)欄目名稱(chēng)。
現(xiàn)在和大家分享下最簡(jiǎn)單的實(shí)現(xiàn)方法,找到include/common.func.php文件,在里面加入下面這段代碼:
//獲取二級(jí)欄目名
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'];
}
}
然后在任意列表頁(yè)、內(nèi)容頁(yè)需要調(diào)用名稱(chēng)的地方加入:
{dede:field.typeid fuction="GetToypename(@me)"/}
如果在Dede標(biāo)簽里面,就用下面這句調(diào)用:
[field:typeid fuction="GetToypename(@me)"/]
童攀所講項(xiàng)目
http://www.chrent.com
下載按鈕:
添加兩個(gè)字段,一是文件上傳,附件
二是文件下載地址,單行文本
登錄注冊(cè)頁(yè)面
用自定義表單來(lái)寫(xiě)
驗(yàn)證碼的使用二次開(kāi)發(fā)
plus/diy.php; include/vdimgck.php;用到這兩個(gè)方法,在前一個(gè)方法中的大概第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('驗(yàn)證碼不正確!',$dede_add,0,1000); ????????????????????????? echo '<script language="javascript">history.go(-1);</script>'; ???????????????? } ???????? }然后開(kāi)始改模板中的代碼:
<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="看不清?點(diǎn)擊更換" src="../include/vdimgck.php"/> <a href="javascript:vide(-1);" onClick="changeAuthCode();">看不清? </a> <script type="text/javascript" language="javascript"> //驗(yàn)證碼 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> 驗(yàn)證碼不顯示的問(wèn)題解決方法: 因?yàn)槟0逯械牡穆窂絾?wèn)題,/include/vdimgck.php,去掉前面的兩點(diǎn) 表單的字段驗(yàn)證js代碼,是很舒服的一段代碼: <!doctype html> <html lang="en"> <head> ? <meta charset="UTF-8"> ? <title>表單驗(yàn)證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>注冊(cè)頁(yè)面</h4> ? <form action="" name="yanzheng" οnsubmit="return checkform()"> ??? <input type="text" name="xingming" vlaue=""><br> ??? <input type="text" name="age" value=""><br> ??? <input type="submit" value="注冊(cè)"> ? </form> </body> </html> 添加欄目的時(shí)候,欄目的顯示與隱藏,那邊有很多的屬性可供選擇,但是不是很熟悉 搜索功能的實(shí)現(xiàn),在搜索頁(yè)面遍歷欄目,是遍歷不出來(lái)的,需要進(jìn)行二次開(kāi)發(fā):很多朋友在使用dedecms進(jìn)行網(wǎng)站開(kāi)發(fā)時(shí)都會(huì)存在這樣的問(wèn)題,那就是dedecms的搜索頁(yè)(search.php)與我們網(wǎng)站頁(yè)面的模板的頭部、底部不一樣,并且還不支持在搜索頁(yè)調(diào)用其他某一欄目的文檔。但是我們實(shí)際的網(wǎng)站建設(shè)中有時(shí)候必須保證我們的搜索頁(yè)與我們的其他頁(yè)面風(fēng)格一樣,所以我們要對(duì)搜索頁(yè)進(jìn)行一些改造:
下邊我們來(lái)介紹一下如何在搜索頁(yè)支持arclist和channelartlist這兩個(gè)標(biāo)簽的調(diào)用:
打開(kāi)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));
}
方法二:
打開(kāi)文件: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));
}
?
這樣,搜索頁(yè)面就支持多種標(biāo)簽了。
包括{dede:arclist} {/dede:arclist}、{dede: channelartlist } {/dede: channelartlist}、{dede: myad } {/dede: myad }、{dede: php } {/dede: php }、{dede: sql } {/dede: sql }
如果需要支持其他的標(biāo)簽,以此類(lèi)推。
轉(zhuǎn)載于:https://www.cnblogs.com/laomaBlog/p/8727512.html
總結(jié)