問題:
我在行業分類中增加了英文名enname的字段,在后臺管理已經可以顯示、添加、和修改該字段的內容
但在前臺行業頁面調用顯示卻是空白的。
在行業首頁調用的代碼如下(就是將原先首頁的'catname'字段替換成'enname'):
{loop $lettercat $cid $cat}
<div id="catlist_{$cid}" name="catlist" style="padding:10px 0px;margin:0px;display:none; position:absolute; z-index:999; background-color:#FFF7E6">
<h4>
{if count($lettercat[$cid])}
{loop $lettercat[$cid] $scid $scat}
{if $scid} | {/if}<a href="{list_url('company',$scat['catid'])}">{$scat['enname']}</a>
{/loop}
{else}
Not the first letter as“{$cid}”classification
{/if}
</h4>
</div>
{/loop}
{loop $C $cid $cat}
<div class="cat_list">
<h4><a href="{list_url('product',$cat['catid'])}">{$cat['enname']}</a></h4>
<p>
{php $data = subcat('yp', $cid);}
{loop $data $n $r}
{if $r[ismenu]}<a href="{list_url('product',$r['catid'])}"><span class="{$r[style]}">{$r[enname]}</span></a> | {/if}
{/loop} <a href="{list_url('product',$cat['catid'])}"><span class="more">More</span></a>
</p>
</div>
{/loop}
顯示出來是空白的。請問要怎么改才行?
回答:
通過一步步查看,可以看出這個是循環的欄目緩存
請查詢data/cache/category.php
里面模型module=yp的欄目數組,是否有你增加的這個字段enname(估計是沒有)
找到include/cache.func.php
里面有這樣的代碼
$CACHE['MODEL'] = $data;
$data = array();
$result = $db->query("SELECT `catid`,`module`,`type`,`modelid`,`catname`,`style`,`image`,`catdir`,`url`,`parentid`,`arrparentid`,`parentdir`,`child`,`arrchildid`,`items`,`citems`,`pitems`,`ismenu`,`letter` FROM `".DB_PRE."category` WHERE 1 ORDER BY `listorder`,`catid`");
while($r = $db->fetch_array($result))
{
$r['url'] = url($r['url']);
$data[$r['catid']] = $r;
}
$db->free_result($result);
這就是寫入緩存的程序,查詢這里面,沒有你那個enname,所以讀緩存出來的時候就沒有
要么你這里加上,要么在調用那里GET
加的方法不用說了吧,修改后去更新一下緩存