Лучшие каталоги в шаблоне Demomarket

Материал из Umicms
Версия от 15:31, 22 мая 2018; Vitaliks (обсуждение | вклад) (¯\\_(ツ)_/¯)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

1. Добавить или изменить языковые константы в /templates/demomarket/php/i18n/i18n.ru.php например такую:

'best_catalog' => 'Лучшие каталоги',

2. В файле /templates/demomarket/php/content/home/catalog.phtml внести изменения соответствующие языковым константам в строке 24, чтобы получилось во так:

<?= $this->translate('best_catalog') ?>

3. В 32 строке этого же файла заменяем best_items на best_catalog чтоб получилось вот так:

<?= $this->render($variables, 'content/home/catalog/best_catalog') ?>

4. В директории /templates/demomarket/php/content/home/catalog создаем новый файл best_catalog.phtml в который помещаем следующий код:

<?php
/**
 * Каталог лучших категорий.
 *
 * @var umiTemplaterPHP|ViewPhpExtension|DemomarketPhpExtension $this
 * @var array $variables
 */
?>

<div id="bestItems" class="tab-pane fade in">
	<div class="row subsection_container">
		<div class="subsection">
			<?php foreach ($this->getBestCategory() as $category): ?>
				<?= $this->render($category, 'catalog/category/preview') ?>
			<?php endforeach; ?>
		</div>
	</div>
</div>

5. В файл /templates/demomarket/php/library/DemomarketPhpExtension.php добавить метод:

	
	/**
	* Возвращает категории для вкладки "Лучшие каталоги"
	* @return iUmiHierarchyElement[]
	*/
	public function getBestCategory() {
		$category = new selector('pages');
		$category->types('hierarchy-type')->name('catalog', 'category');
		$category->where('best_catalog')->equals(true);
		$category->limit(0, self::MAX_BEST_OFFERS_COUNT);
		$category->order('id')->rand();
		$category->group('obj_id');
		$category->option('load-all-props')->value(true);
		$category->option('no-length', true);
		return $category->result();
	}

6. В тип данных Раздел каталога добавляем поле "Лучший каталог" с идендификатором best_catalog с типом "Кнопка флажок", видимое.

7. Устанавливаем для выбранных разделов красивые картинки и получаем следующий результат:

Best catalog.png