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

// здесь определим $MAIN_FILE — ои используется в main-end.php
global $MAIN_FILE;

// если есть custom/main-template.php, то испольузм его
if ($fn = mso_fe('custom/main-template.php')) {
	$MAIN_FILE = $fn;
} else {
    // если main_file ещё не определён в файлах шаблона, то смотрим настройки их админки
    if (!mso_get_val('main_file')) {
        // main_template_slug main-шаблон по адресам — это самый высокий приоритет
        // category/news = no-sidebar
        // page/about = left-sidebar
        if ($main_template_slug = mso_get_option('main_template_slug', getinfo('template'), '')) {
            // ищем вхождение текущего адреса в списке опции
            // сразу убираем пагинацию из адреса 
            $current_url = str_replace('/next/' . mso_current_paged(), '', mso_current_url());

            if ($m = mso_text_find_key($main_template_slug, $current_url)) {
                if ($fn = mso_fe('main/' . $m . '/main.php')) {
                    mso_set_val('main_file', $fn); // выставляем путь к файлу
                }
            }
        } else {
            // проверим, может адрес указан в опции «Шаблоны вывода по типам данных»
            if ($main_template_type = mso_get_option('main_template_type', getinfo('template'), '')) {
                if ($m = mso_text_find_key($main_template_type, getinfo('type'))) {
                    if ($fn = mso_fe('main/' . $m . '/main.php')) {
                        mso_set_val('main_file', $fn); // выставляем путь к файлу
                    }
                }
            }
        }
    }

	// если main-файл не выставлен, то проверяем другие варианты 

	// main-шаблон вывода находится в meta-поле page_template
	// это определено в shared/meta/meta.ini
	// если метаполе не задано, то может использоваться main/type/page/main.php
	if (!mso_get_val('main_file')) {
		if (is_type('page') and isset($pages) and isset($pages[0])) {
			if ($page_template = mso_page_meta_value('page_template', $pages[0]['page_meta'])) {
				if ($fn = mso_fe('main/' . $page_template . '/main.php')) {
					mso_set_val('main_file', $fn); // выставляем путь к файлу
				}
			} elseif ($fn = mso_fe('main/type/page/main.php')) // предопределенный файл
			{
				mso_set_val('main_file', $fn); // выставляем путь к файлу
			} else {
				if ($page_template = mso_get_option('main_template_page', getinfo('template'), '')) {
					// опция
					if ($fn = mso_fe('main/' . $page_template . '/main.php')) {
						mso_set_val('main_file', $fn); // выставляем путь к файлу
					}
				}
			}
		} else {
			// если есть type/ТИП/main_set_val.php, то подключаем его
			// где и выставляется нужный файл через mso_set_val('main_file', 'ФАЙЛ');
			if ($fn = mso_fe('type/' . getinfo('type') . '/main_set_val.php')) require $fn;

			// если main-файл не выставлен, то проверяем другие варианты 
			if (!mso_get_val('main_file')) {
				// возможно есть main-файл по type
				// в main/type/home/main.php
				if ($fn = mso_fe('main/type/' . getinfo('type') . '/main.php')) {
					mso_set_val('main_file', $fn); // выставляем путь к файлу
				} else {
					// возможно указана опця
					// main_template_TYPE 
					// опции заданы в ini-файлах
					if ($page_template = mso_get_option('main_template_' . getinfo('type'), getinfo('template'), '')) {
						if ($fn = mso_fe('main/' . $page_template . '/main.php')) {
							mso_set_val('main_file', $fn); // выставляем путь к файлу
						}
					}
				}
			}
		}
	}
}

$fn_main = mso_get_val('main_file', '');

if ($fn_main and file_exists($fn_main)) {
	$MAIN_FILE = $fn_main;
} else {
	// main.php может находиться в каталоге main/ или в основном каталоге шаблона
	if ($fn = mso_fe('main/main.php'))
		$fn_main = $fn;
	else
		$fn_main = getinfo('template_dir') . 'main.php';

	// может быть задан main-файл по-умолчанию в опции main_template_default
	if ($page_template = mso_get_option('main_template_default', getinfo('template'), '')) {
		if ($fn = mso_fe('main/' . $page_template . '/main.php')) {
			$fn_main = $fn; // выставляем путь к файлу
		}
	}

	$MAIN_FILE = $fn_main;
}

// css-класс для main
$main_name = str_replace(getinfo('template_dir'), '', $MAIN_FILE);
$main_name = str_replace('/main.php', '', $main_name);
$main_name = str_replace('main/', '', $main_name);
$main_name = 'main-' . $main_name;

mso_set_val('main_class', $main_name);

// дополнительный файл там же — main-function.php если есть, то подключаем сразу
$main_file_function = str_replace('.php', '-function.php', $MAIN_FILE);

if (file_exists($main_file_function)) require $main_file_function;

ob_start();

# end of file
