Doccms 1.0首页调用产品自定义字段bug的修复方法

Doccms X 1.0首页模板中,用标签无法调用产品的自定义字段和自定义选项卡内容,此bug现在已经解决,解决方法:

content\index\_sys.php sys_push_one函数整个替换为(69行---88行):

function sys_push_one($value='',$name='',$channelId=0,$tab=0,$coo='<|@|>')
{
global $db,$tag;
if($channelId){
$menu_model=get_model_type($channelId);
$tempId = $menu_model['type']=='product'?sys_menu_info('id',true,$channelId):$params['id'];
$tag['custom'] = $db->get_row('SELECT * FROM `'.TB_PREFIX.'models_set` WHERE channelId = '.$tempId,ARRAY_A);
}
$rs = $tag['custom'];
if($rs)
{
$fields = explode('@',$rs['field']);
$tabs = explode('@',$rs['field_tab']);
$data = explode($coo,$value);
if(!$tab)
{
$a = array_keys($fields,$name);
}
else
{
$a = array_keys($tabs,$name); 
}
return $data[$a[0]];
}
}

调用方法,首页写在skins\模板名index\product\product_0.php 样式文件里,内页直接写在product_view_0里:

单独调用产品自定义字段:

<?php echo sys_push_one($data['spec'],'自定义字段名',$data['channelId']);?>

单独调用产品自定义选项卡:

<?php echo sys_push_one($data['content'],'产品详情',0,1) ?>



<?php sys_push_one($data['content'],'产品详情',$data['channelId'],1) ?>

内页调用注意一个问题,因为程序改动,多传入一个值,当调用参数时,应该是<?php echo sys_push_one($data['spec'],'参数名',0,0);?>,后面两个零可省略,简写为<?php echo sys_push_one($data['spec'],'参数名');?>,与原来用法一致,但是当调用详情选项的时候,应该是<?php echo sys_push_one($data['spec'],'参数名',0,1);?>,中间要加一个零来占位。这个问题,是雅风测试出来的,在此强调一下用法。

<?php echo sys_push_one($data['content'],'产品详情',0,1) ?>这样调用可能是因为同时调用了参数,单独调用详情那个0,还是要换成$data['channelId']

感谢月下追魂提供此bug的解决方案。

0 个评论

要回复文章请先登录注册