用php有效的減少網頁設計的頁面

各位在設計動態網頁時常常遇到的狀況是一個功能要設計出好幾頁的頁面來滿足功能需求,有沒有必要設計成這樣?常常被 程式設計搞的灰頭土臉的戰友們臉上都是一圈圈的黑眼圈,動態網頁的好處是同一個相同的功能可以套上不同的美編,再交給下一個客戶使用,通常,只要開發一 次,美編的事就變的簡單許多。

而有時,為了怕麻煩,還是懶做,通常接到新的案子都會對客戶說同一套的說辭,然後再將程式原封不動的交出,只要美編改一改就好,客戶只要看到版面不同於其它網站,功能完全符合他們的需求,酬勞就輕鬆入袋。

程式就是能有這種好處,一次次的回收再利用,程式碼一字不變,沒人會感覺到你的程式碼是否有更動。難怪在公司一個人當十個人用的單打獨鬥的程式設計師會跳出來自己接案子,利潤與勞動方面都是一等一了。

回過頭來說一下這件事,一開始的新手程設師,在設計動態網頁時常常一個功能就設計出十個頁面,若兩個功能就乘上雙倍的頁面。現在這樣設計沒問題,往後修改程式就有的改了!

不只程式,連美編都要做這相同的事。

所以,我通常都指導新手們不要這樣子做,請將網頁「模組化」。

例如連結資料庫的程式碼是這樣子做的:

mysql_connect(“localhost“,”root“,”XXXXX“);
mysql_select_db(“my_data_base“);

$sources=mysql_query(‘SELECT * FROM table’);
while($my=mysql_fetch_object($sources)){
echo $my->data
}

而這藍字mark起來的部分是在php程式要連結資料庫前必需要下指令的程式碼,你的第一件案子這樣做看起來是沒問題的,當要用相同的模式再交付第 二個案子時,這串的紅字部分你總不能都要相同吧,你也會為第二個案子設個不同的密碼,即使你的MySQL server是你自己在matian的,那麼要select db也要複製一個不同名字的資料庫吧!

php的生命周期是在該網頁上的第一行開始,結束於該頁的最後一行,你以為要下一個網頁就可以省了嗎?

不!下一個頁面一樣要下這樣的指命。所以,你有十頁要連結資料庫,這個程式碼就要連續下個十頁在裡面,然後,第二個案子就要修改十次的密碼,修改美編就要做十次的動作。

此時為你的動態網頁做一個「主程式」就可以解決上述的問題了。

如下圖,主程式的架構一般來說可設計成這樣:

這是對於大部分的網站來說,一般使用者所熟悉的導覽功能,最主要的項目放在頁面上端,次要選項在右邊,中間這大遍的空白處是給程式執行完後的結果。

將內容拆開此主程式包含三個php的頁面。而主頁面怎麼設計美編?

很簡單,美編請設計成有條列,簡潔,色調分明,並用精緻的圖示美化項目列,只要美化主程式頁面就好,若想要將top.php的主導覽列加以美化,只要修改top.php即可。

將內容以程式碼檢視,主程式很簡單的只有幾行程式碼,其它的程式碼都分佈在其它的頁面了。

最上端包含著function.php ,內容可以將資料庫連結、session()、header等等的需要安排在前頭的的程式碼寫在這裡。

top.php 最主要是共享著主要導覽項目,您所寫的超連結必需寫成:
項目1 http://localhost/index.php?mod=program_1
項目2 http://localhost/index.php?mod=program_2
項目3 http://localhost/index.php?mod=program_3

left.php是連結著隨主導覽列所安排的mod字串來顯示次功能列,則超連結可寫成:
功能1 http://localhost/index.php?mod=program_1&act=fun1
功能2 http://localhost/index.php?mod=program_1&act=fun2
功能3 http://localhost/index.php?mod=program_1&act=fun3

因left.php是跟隨主導覽顯示該功能的超連結,如果是按下「項目2」,也就是執行了:
http://localhost.com/index.php?mod=program_2
這個超連結,你的項目列的超連結就要隨著更改:
項目2的功能1 http://localhost/index.php?mod=program_2&act=fun1
項目2的功能2 http://localhost/index.php?mod=program_2&act=fun2
項目2的功能3 http://localhost/index.php?mod=program_2&act=fun3

程式的寫法可寫成:


if($mod=='program_1'){
echo '<a href=.....mod='.$mod.'&act=fun1>項目1功能2</a>'
echo '<a href=.....mod='.$mod.'&act=fun2>項目1功能3</a>'
echo '<a href=.....mod='.$mod.'&act=fun3>項目1功能4</a>'
}

if($mod==’program_2′){
echo ‘<a href=…..mod=’.$mod.’&act=fun11>項目2功能1</a>’
echo ‘<a href=…..mod=’.$mod.’&act=fun12>項目2功能2</a>’
echo ‘<a href=…..mod=’.$mod.’&act=fun13>項目2功能3</a>’
}

if($mod==’program_3′){
echo …….’相同做法’…………….
}

此時這樣子的寫法可以在新增功能時,並且超連結字串給予程式做出判斷以列出該功能,呈現出簡單明瞭的顯示排列,因您只分享此一頁面,改一次則一勞永逸。

則result.php是您寫程式時最主要的部分,所有功能的執行的顯示都在此,寫作方式可寫成:

$act=$_request(‘act’);

if($act==’fun1′){
執行$act是fun1的字串做此行程式。
}

if($act==’fun2′){
執行$act是fun2的字串做此行程式。
}
如同上方的寫法,left.php所列的功能有多少,你所判斷出的判斷式就要寫多少。另外也可以用SELECT CASE這一類的判斷式來寫,不過我是幾乎不寫這種判斷式的,這只要是你所習慣的寫法,方法都一樣可成立。

設計一個功能完全,且程式碼分佈有規劃的網站,通常都要靠自己的設計經驗將工作予以簡化省時。這是程式設計師應該要有的好習慣與態度,依照這模式下,未來的程式設計之路會很有幫助的喔!

Related Posts Plugin for WordPress, Blogger...

Leave a Reply