src/Controller/Website/NewsController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Website;
  3. use App\Service\Api\NewsApiService;
  4. use DateTime;
  5. use Sulu\Bundle\WebsiteBundle\Controller\DefaultController;
  6. use Sulu\Component\Content\Compat\StructureInterface;
  7. class NewsController extends DefaultController
  8. {
  9.     private NewsApiService $newsApiService;
  10.     public function __construct(
  11.         NewsApiService $newsApiService
  12.     ) {
  13.         $this->newsApiService $newsApiService;
  14.     }
  15.     protected function getAttributes($attributesStructureInterface $structure null$preview false)
  16.     {
  17.         $attributes parent::getAttributes($attributes$structure$preview);
  18.         $attributes['newsFromApi'] = [];
  19.         $newsFromApi $this->newsApiService->getNews();
  20.         foreach ($newsFromApi as &$news) {
  21.             $news['source'] = 'api';
  22.             $news['created'] = new DateTime($news['date']);
  23.             $news['url'] = $news['previewUrl'];
  24.             $news['thumbnail'] = ["thumbnails" => ["568x400" => $news['img'], "1136x800" => $news['img']]];
  25.             unset($news['date'], $news['previewUrl'], $news['img']);
  26.         }
  27.         $attributes['newsFromApi'] = $newsFromApi;
  28.         return $attributes;
  29.     }
  30. }