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; } } } }