lenta.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. use app\models\front\News;
  3. $keyadd = News::keyFilter();
  4. ?>
  5. <a class="news-link" href="/news">Лента новостей</a>
  6. <?php if( Yii::$app->controller->action->id!="index") echo $this->render("@app/views/_etc/banners/desktopLentBannerVideo"); ?>
  7. <div class="lenta">
  8. <?= Yii::$app->cache->getOrSet("main_page_lenta_".(Yii::$app->deviceDetect->isMobile() ?"desktop":"mobile").Yii::$app->controller->action->id.$keyadd,function () {
  9. $lenta = "<div id='list-wrapper' class='list-wrapper'>";
  10. /*
  11. // Фиксированные новости или банера в верху ленты
  12. ## пример "День поля"
  13. */
  14. /* $lenta .= '<style>.lenta .list-wrapper .lenta_fix:hover{background:#60b740;}</style>
  15. <div class="lenta_fix"><h3>
  16. <a href="/story/den_sibirskogo_polya_2023" title="День Сибирского поля-2023"><img src="/img/day_pole.svg" width="275px" height="80px" alt="День Сибирского поля"></a><div class="published_at">28-29 июня</div>
  17. </h3>
  18. </div>
  19. ';
  20. */
  21. $index = 0;
  22. foreach (News::findFilter()->andWhere(["(flags & 1)"=>0])->limit(70)->all() as $model){
  23. $index++;
  24. $lenta.= \yii\helpers\Html::tag('div',$this->render('_item',["model"=>$model])) ;
  25. if($index==3) $lenta.=$this->render("@app/views/_etc/banners/mobileMainPageLentBanner");
  26. if($index==10 && Yii::$app->controller->action->id!="index") $lenta.=$this->render("@app/views/_etc/banners/desktopLentBanner");
  27. if($index==20 && Yii::$app->controller->action->id!="index") $lenta.=$this->render("@app/views/_etc/banners/desktopLent20Banner");
  28. if($index>20 && ($index % 10)==0 && Yii::$app->controller->action->id!="index" ) $lenta.=$this->render("@app/views/_etc/banners/desktopLent20Banner",["index"=>$index]);
  29. }
  30. $lenta.="</div>";
  31. return $lenta;
  32. },News::$keysCache['main_page_lenta']);
  33. ?>
  34. <div class="all-news">
  35. <a href="/news">Все новости</a>
  36. </div>
  37. </div>