form.inc.php 1.4 KB

12345678910111213141516171819202122232425262728
  1. function pos_id($field, $value, $fieldinfo) {
  2. $position = json_decode(Yii::$app->cache->get(CacheId::positionCacheId()),true);
  3. if(empty($position)) return '';
  4. $array = array();
  5. if(is_array($position))foreach($position as $_key=>$_value) {
  6. if($_value['content_model_id'] && (($_value['content_model_id'] != $this->model_id) || ($_value['cat_id'] && strpos(','.$this->categorys[$this->cat_id]['arr_parent_ids'].',',','.$_value['cat_id'].',')===false))) continue;
  7. $array[$_key] = $_value['name'];
  8. }
  9. $pos_ids = array();
  10. if(Yii::$app->controller->action->id=='edit') {
  11. $data_list = PositionData::find()->where("data_id=".$this->id." and content_model_id = ".$this->model_id."")->all();
  12. foreach($data_list as $key=>$value)
  13. {
  14. $pos_ids[]=$value['position_id'];
  15. }
  16. $pos_ids = implode(',',$pos_ids);
  17. } else
  18. {
  19. $pos_ids='';
  20. if(isset($fieldinfo['default_value']))$pos_ids = $fieldinfo['default_value'];
  21. }
  22. $string = '<div class="mb-3 row " >';
  23. $string .= '<label class="col-md-2 col-form-label">'.$fieldinfo['name'].'</label>';
  24. $string .= FormElements::checkbox($array,$pos_ids,"name='info[$field][]' class='form-check-input' ");
  25. $string .= '</div>';
  26. return $string;
  27. }