ГлавнаяДокументацияМодули • Модуль catalog

Модуль catalog

Модуль каталога. Сожержит функционал каталогов (разделов), элементов каталога (товаров), корзины, заказа, системы управления заказами. Для вызова, нужно создать раздел с единственным файлом _section.php. Пример файла:

<?php
if (!defined('MC2_CORE') || MC2_CORE !== true) die();

// Информация о разделе
$mc_section = [
	'title'         => 'Каталог',
	'description'   => 'Каталог товаров',
	'img'           => URLROOT_EN.'/files/site/preview.jpg',
	'sitemap_changefreq'    => 'weekly',
	'sitemap_priority'      => 0.6,
	
	'module_name'   => 'catalog',
	'module_param'  => 'main',
	'uri_catalog_id'    => 1,
	'uri_element_id'    => 2,
];

Данный вызов означает, что загружается модуль catalog и используется шаблон из папки TMPL/catalog/main.

Модуль использует подход с множественными таблицами в файле init.php:

<?php
if (!defined('MC2_CORE') || MC2_CORE !== true) die();

// Настройки модуля
$module_info = [
	'tables'		=>	[ // не менять! внутренние id таблиц, НЕ названия. названия указываются в init_<id>.php
		'catalog',
		'element',
		'catalog_param',
		'element_param',
		'basket',
		'order',
		'order_items',
		'money',
	],
	'title'			=> 'Каталог',
	'uri'			=> 'catalog',	// корень раздела
	'folder'		=> 'catalog',	// папка по-умолчанию для файлов относительно /files
	'admin'			=> 'catalog',	// права админов через запятую ,
	'in_admin'      => true,  // показывать ли раздел в админке
	'notify_email'	=> [			// массив, на какие e-mail отправлять уведомления
		ADMIN_EMAIL,
	],
	'notify_tg'		=> [			// массив, на какие telegram id отправлять уведомления (только число, не @имя)
		//0,
	],
	'notify_vk'		=> [			// массив, на какие vk id отправлять уведомления (только число, не @имя)
		//0,
	],

];

Основные файлы модуля:

Чтобы создать раздел для доступа пользователя к корзине, нужно в разделе (например, /basket) создать index.php:

<?php
if (!defined('MC2_CORE') || MC2_CORE !== true) die();

module('catalog', 'catalog', ['action' => 'basket_list']);

То есть при вызове модуля каталога нужно добавить третий параметр настройки 'action' => 'basket_list'.