execute($sql); $time = time(); $fieldsArr = [ [ "source" => "diyform", "source_id" => $row['id'], "name" => "title", "type" => "string", "title" => "标题", "content" => "value1|title1\r\nvalue2|title2", "length" => 255, "iscontribute" => 1, "isfilter" => 0, "weigh" => 3, "defaultvalue" => '', "createtime" => $time, "updatetime" => $time, "status" => "normal" ], [ "source" => "diyform", "source_id" => $row['id'], "name" => "images", "type" => "images", "title" => "图片", "content" => "value1|title1\r\nvalue2|title2", "length" => 1500, "iscontribute" => 1, "isfilter" => 0, "weigh" => 2, "defaultvalue" => '', "createtime" => $time, "updatetime" => $time, "status" => "normal" ], [ "source" => "diyform", "source_id" => $row['id'], "name" => "content", "type" => "editor", "title" => "内容", "content" => "value1|title1\r\nvalue2|title2", "length" => 0, "iscontribute" => 1, "isfilter" => 0, "weigh" => 1, "defaultvalue" => '', "createtime" => $time, "updatetime" => $time, "status" => "normal" ], ]; Db::name("cms_fields")->insertAll($fieldsArr); }); } public function getUrlAttr($value, $data) { return $this->buildUrl($value, $data); } public function getFullurlAttr($value, $data) { return $this->buildUrl($value, $data, true); } private function buildUrl($value, $data, $domain = false) { $diyname = isset($data['diyname']) && $data['diyname'] ? $data['diyname'] : $data['id']; $time = $data['createtime'] ?? time(); $vars = [ ':id' => $data['id'], ':diyname' => $diyname, ':year' => date("Y", $time), ':month' => date("m", $time), ':day' => date("d", $time) ]; return addon_url('cms/diyform/index', $vars, static::$config['urlsuffix'], $domain); } public function getPosturlAttr($value, $data) { $diyname = isset($data['diyname']) && $data['diyname'] ? $data['diyname'] : $data['id']; $time = $data['createtime'] ?? time(); $vars = [ ':id' => $data['id'], ':diyname' => $diyname, ':year' => date("Y", $time), ':month' => date("m", $time), ':day' => date("d", $time) ]; return addon_url('cms/diyform/post', $vars, static::$config['urlsuffix']); } public function getFieldsAttr($value, $data) { return is_array($value) ? $value : ($value ? explode(',', $value) : []); } public function getSettingAttr($value, $data) { return is_array($value) ? $value : (array)json_decode($data['setting'], true); } public function setSettingAttr($value) { return is_array($value) ? json_encode($value) : $value; } public function getStatusList() { return ['normal' => __('Normal'), 'hidden' => __('Hidden')]; } public function getStatusTextAttr($value, $data) { $value = $value ? $value : $data['status']; $list = $this->getStatusList(); return isset($list[$value]) ? $list[$value] : ''; } }