<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MaxSite CMS
* (c) https://max-3000.com/
*/
echo '<div class="mso-type-home-cat-block">';
if ($fn = mso_page_foreach('home-cat-block-text-do')) require $fn;
// нужно считать каждую указанную рубрику и в цикле
// получить для неё все данные и сразу вывести
// параметры для получения страниц - общие для всех
$par = [
'limit' => mso_get_option('home_limit_post', 'templates', '7'),
'cut' => mso_get_option('more', 'templates', tf('Читать полностью »')),
'cat_order' => 'category_id_parent',
'cat_order_asc' => 'asc',
'pagination' => false,
'exclude_page_id' => mso_get_val('exclude_page_id', []),
];
$home_cat_block = mso_explode(mso_get_option('home_cat_id', 'templates', '0')); // в массив
// все блоки можно закэшировать на 15 минут
$key_home_cache = serialize($home_cat_block);
if ($k = mso_get_cache($key_home_cache)) {
echo $k; // да есть в кэше
} else {
ob_start();
if ($home_cat_block) {
// есть рубрики
// перебираем рубрики
foreach ($home_cat_block as $cat_id) {
if ($fn = mso_page_foreach('home-cat-block')) {
require $fn; // подключаем кастомный вывод
continue; // следующая итерация
}
$par['cat_id'] = $cat_id;
// подключаем кастомный вывод, где можно изменить массив параметров $par для своих задач
if ($fn = mso_page_foreach('home-cat-block-mso-get-pages')) require $fn;
$pages = mso_get_pages($par, $temp);
if ($pages) {
$cat_info = mso_get_cat_from_id($cat_id); // все данные рубрики
// название рубрики и ссылка
echo '<div class="mso-header-home-cat">'
. '<a href="' . getinfo('site_url') . 'category/'
. $cat_info['category_slug'] . '">'
. htmlspecialchars($cat_info['category_name']) . '</a>'
. '</div>';
// выводить описание рубрики
if (
mso_get_option('default_description_home_cat', 'templates', '0')
and $cat_info['category_desc']
) {
echo '<div class="mso-description-cat">'
. $cat_info['category_desc']
. '</div>';
}
if ($fn = mso_page_foreach('home-cat-block-out-pages-do')) require $fn;
mso_set_val('container_class', 'mso-type-home mso-type-home-cat-block mso-type-home-cat-block-full');
if ($fn = mso_find_ts_file('type/_def_out/full/full.php')) require $fn;
} // endif $pages
} // end foreach $home_cat_block
}
mso_add_cache($key_home_cache, ob_get_flush(), 900);
}
if ($fn = mso_page_foreach('home-cat-block-posle')) require $fn;
echo '</div><!-- class="mso-type-home-cat-block" -->';
# end of file