addBehavior( new SoftDelete([ 'field' => 'deleted', 'value' => 1, ]) ); } public function beforeCreate() { $this->create_time = time(); if (empty($this->cover)) { $this->cover = kg_default_cover_path(); } elseif (Text::startsWith($this->cover, 'http')) { $this->cover = self::getCoverPath($this->cover); } if (is_array($this->style) && !empty($this->style)) { $this->style = kg_json_encode($this->style); } } public function beforeUpdate() { $this->update_time = time(); if ($this->deleted == 1) { $this->published = 0; } if (Text::startsWith($this->cover, 'http')) { $this->cover = self::getCoverPath($this->cover); } if (!empty($this->style)) { $this->style = kg_json_encode($this->style); } } public function afterFetch() { if (!Text::startsWith($this->cover, 'http')) { $this->cover = kg_ci_cover_img_url($this->cover); } if (!empty($this->style)) { $this->style = json_decode($this->style, true); } } public static function htmlStyle($style) { $result = []; if (isset($style['bg_color'])) { $result[] = "background-color:{$style['bg_color']}"; } return implode(';', $result); } public static function getCoverPath($url) { if (Text::startsWith($url, 'http')) { return parse_url($url, PHP_URL_PATH); } return $url; } public static function targetTypes() { return [ self::TARGET_COURSE => '课程', self::TARGET_PAGE => '单页', self::TARGET_LINK => '链接', ]; } }