日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

菜鳥初學設計,希望大家多多指點,并幫助完成。謝謝

菜鳥初學設計,希望大家多多指點,并幫助完成。謝謝

更新時間:2022-05-06 文章作者:未知 信息來源:網絡 閱讀次數:

書寫的比較規范,思路清晰。希望大家各述己見 --- 嘮叨
================================================


分類管理(不完整設計-概述)(1)
qzhl 發表于 2002-3-13 17:57 PHP編程 ←返回版面 

class.id //分類號 唯一
class.classStr //分類字符串 = 父分類字符串+","+父id 用于 選出所有子分類
class.parentId//父Id 可以用上面的字段得到 不一定能實現


功能模塊說明:

addClass//添加分類
入口:
[parentId]//父分類號
<name>//類名
[其他字段]//非必須字段
出口:<errNo>
listClass//根據模版樣式輸出分類
入口:
<$rootId>//要顯示分類的根節點的 id即顯示所有 rootId 的子節點
[$tree]//是否全部展開
//默認的模版變量用來確定模版
modiClass//修改單獨分類的信息
入口:
<id>
<必要的字段>
[可選的字段]
modiClassForm
 入口
[$id]//分類號
出口
各字段值發送給 modiClass
delClass//刪除分類 如果包含子分類 則不允許刪除
入口:
<$id>



分類管理(不完整設計-數據結構)(2)

分類表

CREATE TABLE class (
classStr varchar(10) NOT NULL default '0',分類字符串*
parentId int(11) default '0',父分類號
id int(11) NOT NULL default '0',分類號*//自動增長
logo varchar(50) default NULL,圖標
name varchar(20) NOT NULL default '',類名*
description varchar(50) default 'Welcome',描述
dispOrder int(11) default NULL,顯示順序
masterId int(11) default NULL,管理員號
masterName varchar(20) default NULL,管理員名
[此處可再擴充發言表管理員的名字 用于在發言管理中]
childNum int(11) default NULL,子節點數量
modiTime datetime default NULL,最后修改時間
UNIQUE KEY id (id)分類號 唯一
) TYPE=MyISAM;

發言表

CREATE TABLE msg (
bid int(11) NOT NULL default '0',分類號
id int(11) NOT NULL default '0',分類內序號
topic varchar(100) NOT NULL default '',主題
context text,內容
author varchar(20) NOT NULL default '',作者
email varchar(40) default '',郵箱
wdate datetime NOT NULL default '0000-00-00 00:00:00',
發言時間
levelnum tinyint(3) unsigned NOT NULL default '0',
回復層次
orderid float NOT NULL default '0'排序號
) TYPE=MyISAM;


分類管理(不完整設計-添加分類)(3)

功能:

添加分類(addClass)
0.功能簡述:


1 接口參數

1.1 入口

[parentId]//父分類號

<name>//類名
[其他字段]//非必須字段

1.2 出口

[errNo]//錯誤碼用 include 發送給 錯誤 顯示功能(區分語言)

2 變量聲明

var parentId;
var classStr;

3 功能實現

if(empty($name)){
errNo = N;
include_once(錯誤功能頁面);//錯誤頁面根據語言輸出錯誤并返回(見 func.txt)
}
//if(empty($parentId)):

$parentId = 0;//默認就是 0 此句不用寫
// id 設置為自動增長
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(0,0,$name,[其他字段]);

//if(!empty($parentId)):
SELECT @classStr:=CONCAT(classStr,',',id) FROM class WHERE id=$parentId; //CONCAT 連接字符串
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(@classStr, $parentId, $name, [其他字段]);


分類管理(不完整設計-權限管理)(4)

權限管理
chkPower 功能
0 功能簡述
根據 管理模式 判斷當前用戶 是否可以通過本模塊。
1 接口參數
1.1 入口
session(user['id'])
<$id>//需要判斷權限的分類的 id
session(user['power'])//user['power'] = 'id,id,id'
1.2 出口
errNo//沒有權限
user['power'] .= ',id'//認證通過
2 實現

判斷 id 是否在 session(user['power']) 中
是:通過
否:管理模式 0:
SELECT @classStr:=classStr FROM class WHERE id = $id
 //判斷當前類的 分類字符串 是否包含 user[id] 所管理的任何一個分類 是 則通過 說明當前分類是子分類
 SELECT <任何字段> FROM class WHERE @classStr LIKE CONCAT('%',id,'%') AND masterId = session(user[id])
 如果返回的記錄集不為空 則通過。
并 user['power'] .= $id;
管理模式 1:
//判斷 當前用戶是否在 當前類管理員列表中 是 則通過。
SELECT <任何字段> FROM class WHERE masterId LIKE CONCAT('%',user['id'],'%') AND id = $id
如果沒有通過:
errNo = n;
include(error.php)


分類管理(不完整設計-顯示分類)(5)

顯示分類(listClass)

0 功能描述

1 接口參數

1.1 入口

$rootId要顯示分類的根節點的 id即顯示所有 rootId 的子節點
$tree是否全部展開
//默認的模版變量
1.2 出口
errNo

2 變量聲明

var $result;//記錄集
var $nodeNum;//節點數量
var $allNodeArray;//所有節點數組
var $html;//模板變量

3 函數聲明

function getResult(rootId,tree)
//得到一個需要的記錄集
function pAllNode1(level,rootNodeId,nodeArray[][])
//遍歷函數 level 表示輸出層次 nodeArray 記錄集數組
function buildTree(black,currentNode)
//輸出函數 調用 模板類 調用模板 賦值模板變量 追加塊 得到樹形結構

4 功能實現
//連接數據庫
$result = getResult($rootId,$tree);
$nodeNum = mysql_num_rows($result);
$allNodeArray = array(nodeNum);
$html = new Template();
//將記錄集放入二維數組。將父id放入數組第一個元素
for(i=0;i<nodeNum;i++){
$allNodeArray[i] = mysql_fetch_array($result);
}
//關閉數據庫
$html->set_file('listClass','listClass.tpl');
$html->set_block('listClass','node','nodes');

pAllNode1(0,n,$allNodeArray);

$html->pparse('out','listClass');

/*********** function **********************************************/

//得到一個需要的記錄集
function getResult(rootId,tree){
//參數說明:
//rootId 要顯示分類的根節點的 id即顯示所有 rootId 的子節點
//tree 是否全部展開

if(empty($rootId)) $rootId = 0;

if(tree=false){ // 只列出一層
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%') AND classStr NOT LIKE CONCAT(@classStr, ',', '%,%');
}
if(tree=true){//列出整棵樹
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%')
}
return mysql_quary(strSQL);
}

//遍歷函數 level 表示輸出層次 nodeArray 記錄集數組

function pAllNode(level,rootNodeId,nodeArray){
//如果當前節點的父id等于跟節點id
while(current(nodeArray)[0]==rootNodeId){
//輸出當前節點
//遞歸調用,current(nodeArray)[1] 表示: 當前節點id, 數組不變
pAllNode(level+1,current(nodeArray)[1],nodeArray);
next(nodeArray);
}
}

//遍歷函數1
function pAllNode1(level,rootNodeId,nodeArray[][]){
i=0;
//用于存放本層的元素
tmpArr = array();
//從數組中搜索所有元素 生成第一層元素
while(list($k,$v)=each(nodeArray)){
//如果元素的 父id 即nodeArray[][0] 或者 $v[0]==rootNodeId
if($v[0]==rootNodeId){
//生成新的數組只包含第一層的元素 即 父節點為 rootNodeId
tmpArr[i]=$v[0];
//刪除原數組中已選出的元素
unset(nodeArray[$k]);
//新數組的下標加一
i++;
}
}
while(list($k,$v)=each(tmpArr)){
//生成縮進
for(i=0;i<level;i++) $str .= " ";
//建立當前節點
buildTree($str,$v[2]);
//此時數組 nodeArray 已經去除了第一層的元素
pAllNode1(level+1,$v[1],nodeArray);
}
}

//輸出函數 調用 模板類 調用模板 賦值模板變量 追加塊 得到樹形結構
//對所有需要的變量進行替換 模板不同 則生成兩種類型的頁面(只有類名的樹形結構,有詳細信息的列表)
//black 生成的縮進空格
function buildTree(black,currentNode){
set_var('鏈接',currentNode[1]);
set_var('name',currentNode[2]);
set_var('black',black):
parse('nodes','row',ture);
}
//塊結構
<!-- node BEGIN -->
{black縮進空格}<a href={鏈接?classid=n}>{name}</a>[其他需要輸出的內容]
<!-- node END -->

/*******************************************************************/



分類管理(不完整設計-修改分類)(6)

修改分類信息(modiClass)
0.實現簡述:


1 接口參數

1.1 入口
<id>
<必要的字段>
[可選的字段]

1.2 出口

[errNo]

2 變量聲明


3 功能實現
if (<必要字段> 不存在) errNo = n include(錯誤處理功能)

update 數據 where id = $id;



分類管理(不完整設計-修改表單)(7)

修改表單(modiClassForm)
0.實現簡述:


1 接口參數

1.1 入口

[$id]//分類號

1.2 出口
各字段值發送給 modiClass

2 變量聲明


3 功能實現

//根據 $id 查詢數據庫得到相應的信息
//調用 修改類表單模板用查到的數據替換相應的表單元素值。
//輸出給用戶。
//用戶修改后提交給 modiClass 功能。


分類管理(不完整設計-遍歷函數)(8)

<?
function pAllNode($level,$rootNodeId,$nodeArray){
reset($nodeArray);
$i=0;
//用于存放本層的元素
$tmpArr = array();
//從數組中搜索所有元素 生成第一層元素
while(list($k,$v)=each($nodeArray)){
//如果元素的 父id 即nodeArray[][0] 或者 $v[0]==rootNodeId
if($v[0]==$rootNodeId){
//生成新的數組只包含第一層的元素 即 父節點為 rootNodeId
$tmpArr[$i]=$v;
//刪除原數組中已選出的元素
//unset($nodeArray[$k]);
//新數組的下標加一
$i++;
}
}
reset($tmpArr);
//生成縮進
for($j=0;$j<$level;$j++) $str .= " ";
while(list($k,$v)=each($tmpArr)){
//輸出當前節點
print($str.$v[1].$v[2]."<br>");
//此時數組 nodeArray 已經去除了第一層的元素
pAllNode($level+1,$v[1],$nodeArray);
}
}

$tt = array(
array(0,1,"b"),
array(0,2,"b"),
array(1,3,"b"),
array(1,4,"b"),
array(0,5,"b"),
array(2,6,"b"),
array(6,7,"b")
);
pAllNode(0,0,$tt);

?>


分類管理(不完整設計-配置文件)(9)

配置文件說明:
<?
/*安裝時需要初始化的本地信息內容*************************************/
//分類管理的目錄信息
global $PATH_INFO;
$PATH_INFO = array ();
//數據庫配置信息
global $DB_INFO;
$DB_INFO = array ();
/********************************************************************/
/*可用的模板設置添加*************************************************/
//模板樣式添加
global $TPL_TYPE;
$TPL_TYPE = array (
'管理'=> '',
'用戶'=> ''
);
//語言添加
global $LANGUAGE;
$LANGUAGE = array ();
/********************************************************************/
//定義程序運行時消息包括兩種語言
global $RUNTIME_MSG;
$RUNTIME_MSG = array(
'cannot_is_null'=> array('不能為空','e不能為空'),
'submit_success'=> array('提交成功','e提交成功')
);
//界面默認配置
global $MSGBD_CONF;
$MSGBD_CONF = array (
'tpltype'=> $TPL_TYPE[0],//默認模板樣式設置
'language'=> $LANGUAGE[0] //默認語言設置
);
//默認管理模式
global $MANAGE_MODEL;// 0,繼承樹形管理,1,管理員判斷管理
?>

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 中文字幕亚洲精品卡通动漫 | 国产手机在线αⅴ片无码观看 | 98精品国产高清在线xxxx | 青青青青在线成人视99 | 国产乳摇福利视频在线观看 | 日韩欧免费一区二区三区 | 99久久精品视香蕉蕉er热资源 | 国产亚洲精品成人久久网站 | 天天干夜干 | 国产精品成人免费福利 | 久久99精品国产一区二区三区 | 99在线精品视频在线观看 | 国产露脸3p普通话 | 久久综合久色欧美婷婷 | 亚洲精品国产一区二区三区在 | 久久久精品免费热线观看 | 午夜手机视频 | 天天爽天天狼久久久综合 | 天天做天天躁天天躁 | 日韩不卡视频在线观看 | 国产精品福利久久 | 91久久夜色精品国产九色 | 欧美一区二区三区高清视频 | 国产手机在线αⅴ片无码观看 | 天天草天天操 | 国产成人宗合 | 久久99这里只有精品国产 | 99精品wwxx在线观看 | 久久草视频在线 | 欧美成人二区 | 国产麻豆精品在线 | 欧美视频第二页 | 激情视频免费网站 | 日韩一级片在线播放 | 日韩18视频在线观看 | 狠狠色丁香久久婷婷综 | 天天噜日日噜 | 久草新在线观看 | 99久久免费精品国产免费 | 永久黄网站色视频免费观看99 | 国产欧美日产激情视频 |