<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * MaxSite CMS
 * (c) https://max-3000.com/
 */

$full_posts = mso_get_option('category_full_text', 'templates', true); // полные или короткие записи

// параметры для получения страниц
$par = [
	'limit' => mso_get_option('limit_post', 'templates', '7'),
	'cut' => mso_get_option('more', 'templates', 'Читать полностью »'),
	'cat_order' => 'category_id_parent',
	'cat_order_asc' => 'asc',
	'type' => false,
	'content' => $full_posts
];

// сортировка рубрик может быть задана в опции category_sort шаблона
// news = page_date_publish asc
// book = page_menu_order desc
if ($category_sort = mso_get_option('category_sort', getinfo('template'), '')) {
	if ($sort = mso_text_find_key($category_sort, mso_segment(2))) {
		$oa = mso_explode($sort, false);

		// order ставим как есть, не проверяя, поскольку их слишком много
		if (isset($oa[0])) $par['order'] = $oa[0];

		// asc проверяем на корректность
		if (isset($oa[1]) and ($oa[1] == 'asc' or $oa[1] == 'desc' or $oa[1] == 'random'))
			$par['order_asc'] = $oa[1];
	}
}

// подключаем кастомный вывод, где можно изменить массив параметров $par для своих задач
if ($fn = mso_page_foreach('def-mso-get-pages')) require $fn;
if ($fn = mso_page_foreach('category-mso-get-pages')) require $fn;

$pages = mso_get_pages($par, $pagination);

mso_set_val('mso_pages', $pages); // сохраняем массив для глобального доступа

if ($fn = mso_find_ts_file('type/category/units/category-head-meta.php')) require $fn;
elseif ($fn = mso_page_foreach('category-head-meta')) require $fn;
else {
	mso_head_meta('title', $pages, '%category_name%'); //  meta title страницы
	mso_head_meta('description', $pages, '%category_desc%'); // meta description страницы
	mso_head_meta('keywords', $pages, '%category_name%'); // meta keywords страницы
}

if (!$pages and mso_get_option('page_404_http_not_found', 'templates', 1))
	header('HTTP/1.0 404 Not Found');

// начальная часть шаблона
if ($fn = mso_find_ts_file('main/main-start.php')) require $fn;

echo '<div class="mso-type-category"><section>';

if ($fn = mso_page_foreach('category-do')) require $fn;

if ($pages) {
	// category_unit шаблон вывода для определенной рубрики
	// slug рубрики = юнит-файл
	// news = 2col.php
	// ford = 3col.php
	// если в этой опции рубрика не задана, то используется стандартный вариант вывода
	// юнит файл располагается в шаблоне в type/category/units/
	// дефолтный юнит: type/category/units/category-default.php

	$use_unit = false; // флаг использования юнита

	if ($category_unit = mso_get_option('category_unit', getinfo('template'), '')) {
		if ($u = mso_text_find_key($category_unit, mso_segment(2))) {
			if ($fn = mso_fe('type/category/units/' . $u)) {
				$use_unit = $fn; // выставляем путь к файлу
			}
		}
	}

	// если нет юнита, возможно указан дефолтный
	if (!$use_unit and ($category_unit_default = mso_get_option('category_unit_default', getinfo('template'), ''))) {
		if ($fn = mso_fe('type/category/units/' . $category_unit_default)) {
			$use_unit = $fn; // выставляем путь к файлу
		}
	}

	if ($use_unit)
		require $use_unit;
	else
		// стандартный вывод
		if ($fn = mso_find_ts_file('type/category/units/category-default.php')) require $fn;
} else {
	if ($fn = mso_page_foreach('pages-not-found')) {
		require $fn; // подключаем кастомный вывод
	} else {
		// стандартный вывод
		echo '<div class="mso-page-only"><div class="mso-page-content mso-type-page_404">';
		echo '<h1>' . tf('404. Ничего не найдено...') . '</h1>';
		echo '<p>' . tf('Извините, ничего не найдено') . '</p>';
		echo mso_hook('page_404');
		echo '</div></div>';
	}
}

if ($fn = mso_page_foreach('category-posle')) require $fn; // подключаем кастомный вывод

echo '</section></div><!-- /div.mso-type-category -->';

// конечная часть шаблона
if ($fn = mso_find_ts_file('main/main-end.php')) require $fn;

# end of file
