* @copyright (c), Thread */ class Article extends \thread\modules\news\models\Article implements BaseFrontModel, SeoFrontModel { /** * * @return array */ public function behaviors() { return []; } /** * * @return array */ public function scenarios() { return []; } /** * * @return array */ public function attributeLabels() { return []; } /** * * @return array */ public function rules() { return []; } /** * @return \yii\db\ActiveQuery */ public function getGroup() { return $this->hasOne(Group::class, ['id' => 'group_id']); } /** * @return \yii\db\ActiveQuery */ public function getLang() { return $this->hasOne(ArticleLang::class, ['rid' => 'id']); } /** * @return mixed */ public static function find() { //TODAY $today = new \DateTime('today'); $today->getTimestamp(); return parent::find()->enabled()->innerJoinWith(["lang"])->andWhere(['<=', 'time_start_of_published', $today->getTimestamp()])->orderBy([self::tableName() . '.published_time' => SORT_DESC]); } /** * @return mixed */ public static function findBase() { return self::find(); } /** * @return mixed */ public static function findSeo() { return self::find(); } /** * @return mixed */ public static function findSeoNews() { return self::find(); } /** * @return mixed */ public static function findSeoImage() { return self::find(); } /** * @param $id * @return mixed */ public static function findById($id) { return self::find()->byId($id); } /** * @param $alias * @return mixed */ public static function findByAlias($alias) { return self::find()->byAlias($alias); } /** * @param $id * @return mixed */ public static function getById($id) { return self::findById($id)->one(); } /** * @param $alias * @return mixed */ public static function getByAlias($alias) { return self::findByAlias($alias)->one(); } /** * @return mixed */ public static function getAllWithLabel() { return self::find()->all(); } /** * * @return string */ public function getUrl($scheme = false) { return Url::toRoute(['/news/article/index', 'alias' => $this->alias], $scheme); } }