国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

dede新增欄目如何無限分類

2024-07-12 08:57:13
字體:
供稿:網(wǎng)友
用織夢做過比較大型的網(wǎng)站,或者建過多級欄目,并且對用戶進(jìn)行欄目授權(quán)的人可能遇到過,織夢默認(rèn)的是最高只能授權(quán)到二級欄目,再往下分就不可以了。這樣就將整個指定的二級欄目及其下級的所有欄目都授權(quán)給了這個用戶,但是有的時候,我們想要單獨(dú)的給其授權(quán)某一個三級欄目或者四級欄目。那么目前織夢的這個欄目設(shè)置就不合適了。所以今天因為工作的需要我做了一下改動。

不以解決問題的學(xué)習(xí)都是耍流氓,今天既然遇到了這個問題,就應(yīng)該想辦法解決。首先我看了一下這樣改動之后會產(chǎn)生的影響。第一,既然是這樣的欄目可能是給外部的人用,所以要讓之前所擁有的用戶欄目授權(quán)不受影響,這樣是最好了,因為我看了一下這個授權(quán)欄目的規(guī)則,其實就是通過一個admin表的typeid字段,只要指定一個或多個二級欄目的id,就可以在欄目管理,和發(fā)布文章,編輯文章的模塊檢索出這個id對應(yīng)的一級欄目id和其下所有的多級欄目id,進(jìn)行授權(quán),這樣他就可以管理這個整個的二級欄目了,那么我們要保證之前的所有用戶的這個規(guī)則不變,而又對新加的這用外部用戶定義一個新的規(guī)則。之前寫的url過濾,也是為了防止這些外部用戶的。第二,要同時修改文章發(fā)布和文章編輯的文章欄目選項。所以,我們就要對這些用戶加以區(qū)分了,區(qū)分內(nèi)部用戶和外部用戶,所以我們可以在admin加一個字段。具體做法如下:我只是簡單將一下,這里提供下載,將對應(yīng)的文件覆蓋一下就可以了。 

1、給admin表增加一個字段區(qū)分授權(quán)用戶。我加的是一個‘yesno’字段,1為授權(quán)用戶,默認(rèn)為0。如果你不能直接操作數(shù)據(jù)庫可用sql語句
PHPALTER TABLE  `dede_admin` ADD  `yesno` SMALLINT( 1 ) NOT NULL DEFAULT  '0' AFTER  `loginip`1 ALTER TABLE  `dede_admin` ADD  `yesno` SMALLINT( 1 ) NOT NULL DEFAULT  '0' AFTER  `loginip`

2、修改系統(tǒng)用戶管理的添加賬戶操作,
這個是我修改之后將所有的欄目讀出,默認(rèn)的是只讀到第二級欄目。做法是借鑒了文章發(fā)布時的欄目選擇。
a.找到sys_admin_user_add.php這個文件,在頭部加上這一句,require_once(DEDEADMIN.’/inc/inc_catalog_options.php’);進(jìn)而加載必要的函數(shù),
b.z找到$dsql->Execute(‘op’);將從他到include DedeInclude(‘templets/sys_admin_user_add.htm’);之間的部分不包括這兩個東東,換成$typeOptions .= GetOptionList(0,$cuserLogin->getUserChannel(),0)。這個你可以看一下,模板中通過$typeOptions得到的這些欄目列表,這個GetOptionList函數(shù)就能獲得所喲的欄目。這你訪問sys_admin_user_add.php這個文件時就出來所有的欄目了。 

3、第一步我們增加了一個yesno字段,那么我們這里就應(yīng)該在添加賬戶時用到了,找到sys_admin_user_add.htm模板,在安全驗證串的后面加這樣一個單選框
<tr>
<td height=”30″>是否為外部編輯人員:</td>
<td style=”text-align:left;”>
<input type=”radio” name=”yesno” checked value=”0″ />否&nbsp;&nbsp;
<input type=”radio” name=”yesno” value=”1″ />是
</td>
</tr>,然后在sys_admin_user_add.php文件的if($dopost==’add’)條件里面的$inquery改為這樣
PHP$inquery = "INSERT INTO `dedecp_admin`(id,usertype,userid,pwd,uname,typeid,tname,email,yesno)VALUES('$mid','$usertype','$userid','$pwd','$uname','$typeid','$tname','$email','$yesno'); ";1 $inquery = "INSERT INTO `dedecp_admin`(id,usertype,userid,pwd,uname,typeid,tname,email,yesno)VALUES('$mid','$usertype','$userid','$pwd','$uname','$typeid','$tname','$email','$yesno'); "; 

因為織夢已經(jīng)自動將提交的name獲取,所以這里$yesno可以直接用。這訪問,我們要添加授權(quán)用戶選是就可以了。這里要注意的是,如果你選一個三級欄目,必須要將其所有的上級欄目選中,這樣我們在下面的顯示的時候才能正常使用。

3、這樣就可以將欄目的id寫入admin表的typeid了。下面要改的就是后臺核心-網(wǎng)站欄目管理的顯示了。我們要讓其只顯示他授權(quán)的欄目。為了不影響以前的賬戶,那么我們可以做一下分流,通過這個yesno字段。欄目管理首先訪問的是catalog_main.php這個文件,我們就在這里做分流,讓以前的不變,新加的訪問新的模板和函數(shù),我是將這個文件整體改為這樣
PHPrequire_once(dirname(__FILE__)."/config.php");
//讀取用戶的新定義類型
global $dsql;
$id = $_SESSION['dede_admin_id'];
$dsql-&gt;SetQuery("select `yesno` from `dedecp_admin` where `id` = $id limit 0,1");
$dsql-&gt;Execute();
$row = $dsql-&gt;GetObject();
if(1==$row-&gt;yesno){
 require_once(DEDEINC."/typeunit.class.admin1.php");
 $userChannel = $cuserLogin-&gt;getUserChannel(); 
 include DedeInclude('templets/catalog_main1.htm');
}else{
 require_once(DEDEINC."/typeunit.class.admin.php");
 $userChannel = $cuserLogin-&gt;getUserChannel();
 include DedeInclude('templets/catalog_main.htm');
}12345678910111213141516 require_once(dirname(__FILE__)."/config.php");//讀取用戶的新定義類型global $dsql;$id = $_SESSION['dede_admin_id'];$dsql-&gt;SetQuery("select `yesno` from `dedecp_admin` where `id` = $id limit 0,1");$dsql-&gt;Execute();$row = $dsql-&gt;GetObject();if(1==$row-&gt;yesno){    require_once(DEDEINC."/typeunit.class.admin1.php");    $userChannel = $cuserLogin-&gt;getUserChannel();    include DedeInclude('templets/catalog_main1.htm');}else{    require_once(DEDEINC."/typeunit.class.admin.php");    $userChannel = $cuserLogin-&gt;getUserChannel();    include DedeInclude('templets/catalog_main.htm');} 

這樣通過yesno字段,讓授權(quán)用戶訪問新的catalog_main1.html模板,下面我們就看一下這個模板和這個typeunit.class.admin1.php怎么寫的需要用的文章我都打包好可以有需要和我聯(lián)系。只有照著里面說明上傳一下就可以。其實我的改動就是將一些敏感的東西去掉了一下等等。有興趣的可以看一下,改動比較多的是typeunit.class.admin1.php這個文件,從新定義了一下他的讀取規(guī)則。

5、然后就是文章添加和編輯的修改,在這里,我都是進(jìn)行了一下用戶類型的判斷,進(jìn)而調(diào)取不同的操作。以文章添加為例,找到article_add.php。在($dopost!=’save’)的操作中,最后的加上

PHPglobal $dsql;
 $id = $_SESSION['dede_admin_id'];
 $dsql-&gt;SetQuery("select `yesno` from `dedecp_admin` where `id` = $id limit 0,1");
 $dsql-&gt;Execute();
 $row = $dsql-&gt;GetObject();
 if(1==$row-&gt;yesno){
     include DedeInclude("templets/article_add1.htm");
 }else{
  include DedeInclude("templets/article_add.htm"); copyright dedecms 
 }12345678910 global $dsql;    $id = $_SESSION['dede_admin_id'];    $dsql-&gt;SetQuery("select `yesno` from `dedecp_admin` where `id` = $id limit 0,1");    $dsql-&gt;Execute();    $row = $dsql-&gt;GetObject();    if(1==$row-&gt;yesno){        include DedeInclude("templets/article_add1.htm");    }else{        include DedeInclude("templets/article_add.htm");    }

然后在article_add1.htm中只是將$typeOptions = GetOptionList($cid,$cuserLogin->getUserChannel(),$channelid);改為$typeOptions = GetOptionList2($cid,$cuserLogin->getUserChannel(),$channelid);,然后在inc_catalog_options.php新定義了兩個方法,這個大家可以下載看一下。同理編輯也是這樣。到這里基本就完了,我的是織夢5.7的,不知道有沒有版本問題,寫來就是交流一下,其實寫的真的很一般,大家多多交流。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蒙城县| 成都市| 洪湖市| 双桥区| 阜康市| 临夏市| 吴江市| 东莞市| 平江县| 康定县| 张掖市| 图片| 英超| 双柏县| 潜江市| 兴业县| 舞阳县| 襄汾县| 定远县| 麻江县| 瑞金市| 天峻县| 泰州市| 若尔盖县| 杭州市| 大余县| 乐山市| 班玛县| 开原市| 芜湖市| 泗阳县| 通道| 措美县| 八宿县| 耒阳市| 邳州市| 香格里拉县| 巴林左旗| 新建县| 花莲县| 祥云县|