Ecshop如何在模板dwt裡顯示php指定的變數
隨著O2O的盛行,更多的傳統行業開始選擇線上,電商這一行,最近有句流行的話—-“現在賣個香蕉都要請一個技術人員”。但是往往傳統行業的老闆並不是這樣的思維,他們以為花個少量的錢買個程式往那兒一放,一個類似淘寶的線上商城就出來了,公司就可以收錢了。於是乎,公司請了一個所謂的技術人員,或者壓根就不請,搞了一套ecshop,因為在不買授權之前它丫的是免費的,然後這些人員在各種群問不授權會怎樣啊這種問題,答案見《Ecshop十大基礎問題Q/A》,也是醉了。
言歸正傳,Ecshop的模板檔案怎麼接受PHP頁面傳過來的變數並顯示在前端的?技術黨直接切換至/include/cls_template.php檔案,其他的往下看。之所以寫這篇文章,也是因為tiandi見過不少人(寫程式碼入門級別的,和不會寫程式碼的)問類似同樣的一個問題,比如下面這段模板程式碼裡寫著,
<!-- {foreach from=$goodslist item=goods} 顯示商品--> 商品名稱:{goods.name} 商品貨號:{goods.goods_bn} 商品價格:{goods.price} 商品重量:{goods.weight} ...... <!-- {/foreach} -->
於是懂一點技術的人,通過英文判斷name,goods_bn,price,weight這些分別等於goods表裡的欄位,然後他們在goods資料表裡加了一個欄位goods_color,但是在這裡用下面程式碼卻發現沒有顯示出來。
{goods.goods_color}
至於為什麼沒有顯示出來呢?他們不去看程式碼,群裡一遍又一遍重複地有人問同樣的問題,解答解答著就累了,於是有人抽空花了時間寫了開發手冊放群裡,可這些人壓根就不會去看手冊,他們總想用最快的,最廉價的方式讓能幫助他們的人來付出,給他們答案,甚至內心巴不得最好是遠端幫他們把程式碼都寫上,網站直接生效。tiandi在這裡不禁要問,憑什麼呢?
抱怨一下,繼續往下說,上文裡模板的變數$goodslist是從php裡通過下面一行程式碼賦值過來的:
$smarty->assign('goodslist',$goodsarray)
比方說你有一個goods.php的檔案,其中
$goodsarray = array('name'=>'myname','goods_bn'=>'bn1234','price'=>'99','weight'=>'20'); $smarty->assign('goodslist',$goodsarray)//賦值到模板; $smarty->display('goods.dwt');//指定模板檔案
這樣你才能用之前的程式碼在指定的模板goods.dwt裡顯示相關的專案,因此你要顯示出goods_color的值,則必須在$goodsarray裡新增’goods_color’=>’red’才行,和資料表裡的欄位沒有半毛關係,不要自以為是地覺得模板裡的變數名稱和表字段相同就是呼叫表了。
以上程式碼純手打,可能有誤,請自行修正。
文章評分13次,平均分4.5:★★★★☆