model('regions');
$package = kernel::single('eccommon_regions_mainland');
$package = $package->key;
if($params['required'] == 'true'){
$req = ' vtype="area"';
}else{
$req = ' vtype='.$params['vtype'];
}
// region select instance.
$objRegionsSelect = kernel::single('eccommon_regions_select');
if(!$params['value']){
return ''.$objRegionsSelect->get_area_select(null,$params).'';
}else{
list($package,$region_name,$region_id) = explode(':',$params['value']);
$arr_region_name = explode("/", $region_name);
$depth = count($arr_region_name);
if(!is_numeric($region_id)){
return ''.$objRegionsSelect->get_area_select(null,$params).'';
}else{
$arr_regions = array();
$ret = '';
while($region_id && ($region = $regions->dump($region_id,'region_id,local_name,p_region_id'))){
$params['depth'] = $depth--;
array_unshift($arr_regions,$region);
if($region_id = $region['p_region_id']){
$notice = "-";
$data = $objRegionsSelect->get_area_select($region['p_region_id'],$params,$region['region_id']);
if(!$data){
$notice = "";
}
$ret = ' '.$notice.' '.$objRegionsSelect->get_area_select($region['p_region_id'],$params,$region['region_id']).$ret.'';
}else{
$ret = ''.$objRegionsSelect->get_area_select(null,$params,$region['region_id']).$ret.'';
}
}
if(!$ret){
$ret = ''.$objRegionsSelect->get_area_select(null,$params,$region['region_id']).'';
}
return $ret;
}
}
}
}