问题:
我在行业分类中增加了英文名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
加的方法不用说了吧,修改后去更新一下缓存