setTemplate('index', 'site'); $this->setKey('index'); $this->withSeoSettings('index', 'site'); $this->setTitle(_t('@site', 'Home Page')); $this->useBlocksRotation(); $this->initFilterViewOptions('listings'); } public function blocks() { $this->addBlock('welcomeBlock', IndexWelcomeBlock::class, function (IndexWelcomeBlock $block) { $block->title = &$this->titleh1; }); $this->rotateBlock('welcomeBlock', false); $this->addBlock('categoriesBlock', CategoriesBlock::class); if (Listings::geoFilterEnabled()) { $this->addBlock('mapBlock', MapBlock::class); } $this->addBlock('premiumItemsBlock', PremiumItemsBlock::class); $this->addBlock('quickItemsBlock', QuickItemsBlock::class); $this->addBlock('latestItemsBlock', LatestItemsBlock::class); $this->addBlock('promoBlock', IndexPromoBlock::class); $this->banners(); } public function banners() { $list = [ 'site_index_1', 'site_index_2', 'site_index_3', 'site_index_4', 'site_index_5', ]; $i = 1; foreach ($list as $position) { $this->addBanner('banner_' . $position, $position, function (Banner $banner) use ($i) { $banner->setTitle(_t('@site', 'Banner [num]', ['num' => $i])); $banner->setTemplate('index/banner', 'site'); $banner->setKey('banner' . $i); }); $i++; } } public function data() { $data = parent::data(); $this->buildFilterView(); return $data; } public function seoSettings() { $this->seo ->titleH1(true, _t('@site', 'H1 Title')) ->seotext() ->social(); } public function seo() { $this->seo->canonicalUrl( Site::url('index', [], true) ); $this->seoApply(); } public function settingsForm($form) { $this->initFilterViewSettings($form); } }