상속: extends Spatie\Blender\Model\Model, use trait Spatie\Blender\Model\Traits\HasSlug, use trait Spatie\Tags\HasTags, use trait App\Models\Presenters\NewsItemPresenter
예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
 /**
  * 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();
 }
예제 #4
0
 /**
  * @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;
 }
예제 #5
0
 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()]);
 }
예제 #6
0
파일: DemoData.php 프로젝트: vetoni/toko
 /**
  * @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');
     }
 }
예제 #7
0
 protected function make() : NewsItem
 {
     return NewsItem::create(['publish_date' => Carbon::now()]);
 }
예제 #8
0
파일: index.php 프로젝트: Makeyko/galaxysss
            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>
예제 #9
0
파일: GsssHtml.php 프로젝트: dram1008/gleb
 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']);
 }
예제 #10
0
파일: Shop.php 프로젝트: vetoni/toko
 /**
  * @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;
 }
예제 #11
0
 public static function paginate(int $perPage) : Paginator
 {
     return NewsItem::online()->paginate($perPage);
 }