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

// блок "Еще записи этой рубрики"
function mso_page_other_pages($page_id = 0, $page_categories = [])
{
	if ($bl_title = mso_get_option('page_other_pages', 'templates', tf('Еще записи по теме'))) {
		// алгоритм получения записей
		$algoritm = mso_get_option('page_other_pages_algoritm', 'templates', 'all');

		$type_page = mso_get_option('page_other_pages_type_page', 'templates', '');

		if (!$type_page) $type_page = false;

		$custom_type = 'category';

		if ($algoritm == 'lowlewel') {
			// только из подрубрик
			$all_cat = mso_cat_array_single(); // все рубрики

			$bl_page_categories = []; // обработаный массив id-level

			foreach ($page_categories as $cat_id) {
				$bl_page_categories[$cat_id] = $all_cat[$cat_id]['level'];
			}

			arsort($bl_page_categories); // сортируем в обратном порядке

			$bl_page_categories = array_keys($bl_page_categories); // оставляем только ключи (id)

			// если что-то есть, то оставляем только первую рубрику, иначе $page_categories
			if (isset($bl_page_categories[0]))
				$bl_page_categories = array($bl_page_categories[0]);
			else
				$bl_page_categories = $page_categories;
		} elseif ($algoritm == 'no-cat') {
			// не учитывать рубрики
			$bl_page_categories = [];
			$custom_type = 'home';
		} else {
			// обычный вывод по всем рубрикам 
			$bl_page_categories = $page_categories;
		}

		// своя функция sql-запроса для function_add_custom_sql
		// задается через mso_set_val()
		$fasc = mso_get_val('page_other_pages_function_add_custom_sql', false);
		
		// если отмечена опция Только с изображениями записи и нет своей sql-функции
		// подключаем функцию для поиска изображений записи
		if (!$fasc and mso_get_option('page_other_pages_is_image', 'templates', ''))
			$fasc = '_mso_page_other_pages_is_image';
		
		$bl_pages = mso_get_pages(
			[
				'type' => $type_page,
				'content' => false,
				'pagination' => false,
				'custom_type' => $custom_type,
				'categories' => $bl_page_categories,
				'exclude_page_id' => array($page_id),
				'limit' => mso_get_option('page_other_pages_limit', 'templates', 7),
				'order' => mso_get_option('page_other_pages_order', 'templates', 'page_date_publish'),
				'order_asc' => mso_get_option('page_other_pages_order_asc', 'templates', 'random'),
				'function_add_custom_sql' => $fasc,
			],
			$_temp
		);

		if ($bl_pages) {
			if ($f = mso_page_foreach('page-other-pages-out')) {
				// свой вывод
				require $f;
			} else {
				echo '<div class="mso-page-other-pages">' . mso_get_val('page_other_pages_start', '<h4>') . $bl_title . mso_get_val('page_other_pages_end', '</h4>') . '<ul>';

				foreach ($bl_pages as $bl_page) {
					mso_page_title($bl_page['page_slug'], $bl_page['page_title'], '<li>', '</li>', true);
				}

				echo '</ul></div>';
			}
		}
	}
}

function _mso_page_other_pages_is_image()
{
	// добавляем выборку по метаплю превьюшки
	$CI = &get_instance();
	$CI->db->where('meta.meta_table', 'page');
	$CI->db->where('meta.meta_key', 'image_for_page');
	$CI->db->join('meta', 'meta.meta_id_obj = page.page_id', 'left');
}

# end of file
