/** * Return a fresh instance of the model (called on `create()`). * * @return \Illuminate\Database\Eloquent\Model */ protected function make() { $model = new NewsItem(); $model->publish_date = new Carbon(); $model->save(); return $model; }
public function insert($fieldsCols = null) { $row = parent::insert(['beforeInsert' => function ($fields) { $fields['date_insert'] = time(); $fields['id_string'] = Str::rus2translit($fields['header']); $fields['date'] = gmdate('Y-m-d'); return $fields; }]); $item = new \app\models\Praktice($row); $fields = ['content' => Html::tag('p', Html::img(\cs\Widget\FileUpload2\FileUpload::getOriginal($item->getField('image')), ['class' => 'thumbnail', 'style' => 'width:100%;'])) . $item->getField('content')]; if ($row['description'] == '') { $item = new NewsItem($row); $fields['description'] = GsssHtml::getMiniText($row['content']); } $item->update($fields); return $item; }
/** * AJAX * Добавляет site_update * Делает рассылку * * @param integer $id - идентификатор новости * * @return string */ public function actionNews_subscribe($id) { $item = NewsItem::find($id); if (is_null($item)) { return self::jsonError(101, 'Не найдена новость'); } Subscribe::add($item); SiteUpdate::add($item); $item->update(['is_added_site_update' => 1]); return self::jsonSuccess(); }
/** * @param $params * @return ActiveDataProvider */ public function search($params) { $query = NewsItem::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_ASC], 'attributes' => ['id', 'name', 'slug', 'status', 'author_id']]]); $this->load($params); if (!$this->validate()) { $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['status' => $this->status, 'author_id' => $this->author_id]); $query->andFilterWhere(['like', 'name', $this->name]); $query->andFilterWhere(['like', 'slug', $this->slug]); return $dataProvider; }
public function actionNews_item($year, $month, $day, $id) { $date = $year . $month . $day; $newsItem = NewsItem::find(['date' => $date, 'id_string' => $id]); if (is_null($newsItem)) { throw new Exception('Нет такой новости'); } $newsItem->incViewCounter(); $row = $newsItem->getFields(); return $this->render(['newsItem' => $newsItem->getFields(), 'lastList' => NewsItem::query()->where(['not in', 'id', $row['id']])->orderBy(['date_insert' => SORT_DESC])->limit(3)->all()]); }
/** * @param $list */ protected static function saveNews($list) { foreach ($list as $item) { $newsItem = new NewsItem($item); $newsItem->save(); $newsItem->attachImage(__DIR__ . '/images/news/' . $newsItem->id . '.jpg'); } }
protected function make() : NewsItem { return NewsItem::create(['publish_date' => Carbon::now()]); }
class="featurette-image img-responsive center-block" src="/images/index/x_83bd0a57.jpg" alt="Generic placeholder image" > </div> </div> <!-- Новости --> <div> <hr class="featurette-divider"> <div class="col-lg-12"> <h1 class="page-header">Последние новости Планеты Земля</h1> </div> <?php foreach (\app\models\NewsItem::query()->orderBy(['date_insert' => SORT_DESC])->limit(3)->all() as $row) { echo \app\services\GsssHtml::newsItem($row); } ?> <div class="col-lg-12"> <a class="btn btn-default" style="width:100%" href="<?php echo Url::to(['page/news']); ?> " >Все новости</a> </div> </div>
public static function newsItem($row) { if (!is_array($row)) { $id = $row; $item = \app\models\NewsItem::find($id); if (is_null($item)) { return ''; } $row = $item->getFields(); } // Заголовок $html[] = Html::tag('div', Html::tag('h4', $row['header']), ['class' => 'header']); // Дата $html[] = Html::tag('p', self::dateString($row['date']), Html::css(['font-size' => '70%', 'color' => '#808080'])); // картинка с ссылкой $html[] = Html::tag('p', Html::a(Html::img($row['img'], ['width' => '100%', 'class' => 'thumbnail']), self::getNewsUrl($row))); // Описание $content = $row['description']; if ($content . '' == '') { $content = \cs\services\Str::sub(strip_tags($row['content']), 0, 200) . ' ...'; } $html[] = Html::tag('p', $content); return Html::tag('div', join('', $html), ['class' => 'col-lg-4 newsItem']); }
/** * @param $id_slug * @return NewsItemObject */ protected function findNewsItem($id_slug) { $result = NewsItem::find()->where(['AND', ['OR', ['id' => $id_slug], ['slug' => $id_slug]], ['status' => 1]])->one(); return isset($result) ? new NewsItemObject($result) : null; }
public static function paginate(int $perPage) : Paginator { return NewsItem::online()->paginate($perPage); }