form.inc.php 958 B

12345678910111213141516171819
  1. function posid($field, $value, $fieldinfo) {
  2. $setting = string2array($fieldinfo['setting']);
  3. $position = getcache('position','commons');
  4. if(empty($position)) return '';
  5. $array = array();
  6. foreach($position as $_key=>$_value) {
  7. if($_value['modelid'] && ($_value['modelid'] != $this->modelid) || ($_value['catid'] && strpos(','.$this->categorys[$_value['catid']]['arrchildid'].',',','.$this->catid.',')===false)) continue;
  8. $array[$_key] = $_value['name'];
  9. }
  10. $posids = array();
  11. if(ROUTE_A=='edit') {
  12. $this->position_data_db = pc_base::load_model('position_data_model');
  13. $result = $this->position_data_db->select(array('id'=>$this->id,'modelid'=>$this->modelid),'*','','','','posid');
  14. $posids = implode(',', array_keys($result));
  15. } else {
  16. $posids = $setting['defaultvalue'];
  17. }
  18. return "<input type='hidden' name='info[$field][]' value='-1'>".form::checkbox($array,$posids,"name='info[$field][]'",'',$setting['width']);
  19. }