vendor/contao-bootstrap/grid/src/Component/ContentElement/GridStartElementController.php line 37

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace ContaoBootstrap\Grid\Component\ContentElement;
  4. use Contao\ContentModel;
  5. use Contao\CoreBundle\ServiceAnnotation\ContentElement;
  6. use Contao\Model;
  7. use ContaoBootstrap\Grid\Exception\GridNotFound;
  8. use ContaoBootstrap\Grid\GridIterator;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use function assert;
  12. /** @ContentElement("bs_gridStart", category="bs_grid") */
  13. final class GridStartElementController extends AbstractGridElementController
  14. {
  15.     /** {@inheritDoc} */
  16.     protected function preGenerate(Request $requestModel $modelstring $section, ?array $classes null): ?Response
  17.     {
  18.         if (! $this->isBackendRequest($request)) {
  19.             return null;
  20.         }
  21.         assert($model instanceof ContentModel);
  22.         return $this->renderContentBackendView($model$this->getIterator($model));
  23.     }
  24.     /**
  25.      * {@inheritDoc}
  26.      *
  27.      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  28.      */
  29.     protected function prepareTemplateData(array $dataRequest $requestModel $model): array
  30.     {
  31.         assert($model instanceof ContentModel);
  32.         $iterator $this->getIterator($model);
  33.         if ($iterator) {
  34.             $data['rowClasses']    = $iterator->row();
  35.             $data['columnClasses'] = $iterator->current();
  36.         }
  37.         return $data;
  38.     }
  39.     protected function getIterator(ContentModel $model): ?GridIterator
  40.     {
  41.         try {
  42.             $provider $this->getGridProvider();
  43.             $iterator $provider->getIterator('ce:' $model->id, (int) $model->bs_grid);
  44.             $this->tagResponse('contao.db.tl_bs_grid.' $model->bs_grid);
  45.             return $iterator;
  46.         } catch (GridNotFound $e) {
  47.             // Do nothing. In backend view an error is shown anyway.
  48.             return null;
  49.         }
  50.     }
  51. }