ホームページ >php教程 >php手册 >私はデザインを学ぶ初心者です。アドバイスをいただき、実装を手伝っていただければ幸いです。ありがとう

私はデザインを学ぶ初心者です。アドバイスをいただき、実装を手伝っていただければ幸いです。ありがとう

WBOY
WBOYオリジナル
2016-06-21 09:12:091003ブラウズ

初心者|デザイン

文章は比較的標準的で、考え方は明確です。みなさんも意見を述べていただければ幸いです --- 小言
====================================== ==== =========


カテゴリー管理 (未完成の設計-概要) (1)
qzhl 公開日時 2002-3-13 17:57 PHP プログラミング←レイアウト

クラスに戻ります。 id //分類番号class.classstrは、上記のフィールドを使用して - 〜– – – – functionモジュール説明:

ddclass//テンプレートに従って出力分類style
入口:
& lt; $ rootid & gt; // 分類のルート ノードの ID を表示する、つまりすべての rootid サブノードを表示する
[$ time] // テンプレートを決定するために変数が使用されます
modiClass
入り口
段階終了
各フィールドの値が Modiclass
delclass に送信されます // 分類を削除サブカテゴリが含まれている場合は、エントリを削除します:
Category table

CREATE TABLE class (
classStr varchar(10) NOT NULL デフォルト '0', 分類文字列*
parentId int(11) デフォルト '0', ' 親分類番号
'id int(11) NOT NULL デフォルト ' 0 ', 分類番号*// 自動拡張
LOGO VARCHAR (50) デフォルト null、アイコン
name varchar (20) not null デフォルト ' '、クラス名*
demrption varchar (50) デフォルト 'welcome '、記述
d isPorder INT (11) デフォルトNULL、 表示順
MasterId Int (11) デフォルト null、管理者番号
MasterName varchar (20) デフォルト null、管理者名
[ここでは、音声管理で話者の名前の音声フォームの名前を展開できます]
childnum int (11) デフォルトNULL、サブノードの数
ModiTime Datetime デフォルト null、最終的に時刻を変更
一意のキー ID (ID) カテゴリ番号一意
) Type = Myisam; eFault' 0'、カテゴリ番号
ID int(11) NOT NULL デフォルト '0 '、カテゴリ番号
トピック varchar(100) NOT NULL デフォルト ''、トピック
コンテキスト テキスト、コンテンツ
著者 varchar(20) NOT NULL デフォルト '' 、作成者
電子メール varchar(40) デフォルト ''、電子メール
wdate datetime NOT NULL デフォルト '0000-00-00 00:00:00',
Levelnum tinyint(3) unsigned NOT N ULL デフォルト '0',
応答レベル
orderid float NOT NULL デフォルト '0' 注文番号
) TYPE=MyISAM;


カテゴリ管理 (不完全なデザイン - カテゴリの追加) (3)

関数:

カテゴリの追加 (addClass)
0. 関数の簡単な説明:


1 インターフェースパラメータ

1.1 エントリ

[parentId] //必須ではないフィールド

1.2 Export

[ errNo] // include

2 変数宣言を使用してエラーコードがエラー表示関数に送信されます

varparentId;
var classStr;
include_once (error function page); //エラーページは言語に従ってエラーを出力します (func.txt を参照)
}
//if(empty($parentId)):

$parentId = 0;//デフォルトはこれですは0です。この文は書く必要はありません/// IDを自動拡張に設定
Insert Into class(classstr,paintid,name,[other field]) Values(0,0, $ name, [other field]) ;

// 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 Function
0 機能の簡単な説明
現在のユーザーが管理モードに基づいてこのモジュールを通過できるかどうかを判断します。
1 インターフェースパラメータ
1.1 エントリ
session(user['id'])
<$id> errNo user['power'] .= ',id' //

を達成するために認証が通過しました
IDがセッション中かどうかを判断します(user['power'])
使用する 使用する 使用する オフ ‐ off ‐ ‐ ‐‐‐ , :=classStr FROM class WHERE id = $id
using using using ‐ off off off ‐ ‐ ‐ ‐ back's ‐ ‐ d , Class where @classstr like confat ('%', id, '% ') および masterid = session (user [id])
返されたレコードセットが空でない場合は、合格します。 ️ $id;
選択 < include(error.php)


カテゴリ管理(不完全デザイン-表示カテゴリ) (5)

表示カテゴリ(listClass)

0 関数説明

1 インターフェースパラメータ

1.1 Entry

$rootId表示するカテゴリのルートノードID、ROOTIDのルートノードをすべて表示
$ TREE を全て展開
// デフォルトのテンプレート変数
1.2 終了
Errno

2 変数宣言

var $ result; // レコードセット
var $ nodenum; // ノードの数
var $allNodeArray; // すべてのノード配列
var $html; // テンプレート変数

function getResult(rootId,tree) d, nodeArray[][])
//出力レベルを表すために関数レベルをトラバースします。nodeArray レコード セット配列
function buildTree(black,currentNode)
//出力関数はテンプレート クラスを呼び出し、テンプレート割り当てテンプレート変数の追加ブロックを呼び出してツリー構造を取得します

4関数を実装します
//データベースに接続します
$result = getResult($rootId,$tree);
$nodeNum = mysql_num_rows($result);
$allNodeArray = array(nodeNum);
$html = new Template();
// レコードセットを 2 次元配列に入れます。親 ID を配列の最初の要素に入れます
for(i=0;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 getResult(rootId,tree){
//パラメータの説明:
//rootId 分類のルートノードのIDを表示する、つまりrootIdの子ノードをすべて表示する
// ツリーがすべて展開されているかどうか

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

if(tree=false){ // 1 つのレベルのみをリストします
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name、classstr、[その他のフィールド] concat(@classstr、 '、'、 '%')およびconcat(@classstr、 '、'、 '、'%、% ')のようなクラスのようなクラスからツリー全体
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[その他のフィールド] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '% ')
}
return mysql_quary(strSQL);
}

//Traverse関数のlevelは出力レベルを表しますnodeArrayレコードセット配列

function pAllNode(level,rootNodeId,nodeArray){
//現在のノードの親IDが等しい場合ノード ID
, , 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){
//第 1 レベルの要素のみを含む新しい配列を生成します。つまり、親ノードは rootNodeId;
}
}

//出力関数はテンプレート クラスを呼び出し、テンプレート割り当てテンプレート変数の追加ブロックを呼び出してツリー構造を取得します
//必要な変数をすべて置き換えます。異なるテンプレートでは 2 種類のページが生成されます (クラス名構造のみのツリー、詳細情報のリスト)
//黒でインデントスペースが生成されます
function buildTree(black,currentNode){
set_var('link ',currentNode[1]);
set_var('name',currentNode[2] );
set_var('black',black):
parse('nodes','row',ture);
}
//ブロック構造

{黒インデント スペース}{name}[その他出力が必要な内容]


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



カテゴリ管理(不完全設計-分類変更) (6)

分類情報変更(modiClass)
0。実装ブリーフ:
1インターフェイスパラメーター

1.1入り口&lt; id&gt;[errNo]

2 変数宣言


3 関数実装
if ( が存在しない) errNo = n include (エラー処理関数)

id = $id;



分類のデータを更新管理 (不完全なデザイン - フォームの変更) (7)

フォームの変更 (modiClassForm)
0。 .2 エクスポート
各フィールドの値は、 modiClass

2 変数宣言


3 関数実装

// $id に従ってデータベースにクエリを実行し、対応する情報を取得します
// 変更されたフォーム テンプレートを呼び出して、対応するフォーム要素の値を見つかったデータに置き換えます。
//ユーザーへの出力。
//ユーザーによる変更後、modiClass 関数に送信します。


カテゴリ管理(不完全な設計 - トラバーサル関数) (8)

function pAllNode($level,$rootNodeId,$nodeArray){
reset($nodeArray);
$i=0;
/ /この層の要素を保存するために使用されます
$tmpArr = array();
// 配列からすべての要素を検索して、第 1 レベルの要素を生成します
while(list($k,$v)=each($nodeArray)){
//要素の親IDがnodeArray[][0]または$v[0]==rootNodeIdの場合
if($v[0]==$rootNodeId){
//のみを含む新しい配列を生成します最初の層 この要素は rootNodeid の親ノードです
​​ $ tmparr [$ i] = $ V を追加します
$i++;
list ($ k, $ v) = EACH ($ tMParr)) {
// を出力します現在のノード
print ($ Str. $ v [1]. $ v [2]. "& lt; br & gt;"
/// /この時点で、配列 nodeArray は最初のノードの要素を削除しています。レベル
pAllNode($level+1,$v[1],$nodeArray);
}
}

$tt = array(
array(0,1," b"),
array(0,2," b")、
配列(1,3,"b")、
配列(1,4,"b")、
配列(0,5,"b" )、
配列(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 ();
/************************************************* ******************/
//2つの言語を含むプログラム実行時メッセージを定義
global $RUNTIME_MSG ;
$RUNTIME_MSG = array(
'cannot_is_null' => array('空にすることはできません', '空にすることはできません'),
'submit_success' => array('送信に成功しました ','送信に成功しました')
);
//インターフェースのデフォルト構成
global $MSGBD_CONF;
$MSGBD_CONF = array (
スタイル設定
' language '= & Gt; $ Language [0] // デフォルトの言語設定
// デフォルトの管理モード
グローバル $MANAGE_MODEL;


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。