<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MaxSite CMS
* (c) https://max-3000.com/
*/
mso_page_view_count_first(); // для подсчета количества прочтений страницы
$par = [
'cut' => false,
'cat_order' => 'category_id_parent',
'cat_order_asc' => 'asc',
'type' => false
];
if ($fn = mso_page_foreach('page-mso-get-pages')) require $fn;
$pages = mso_get_pages($par, $pagination); // получим все
mso_set_val('mso_pages', $pages); // сохраняем массив для глобального доступа
if ($fn = mso_page_foreach('page-head-meta')) {
require $fn;
} else {
mso_head_meta('title', $pages, '%page_title%'); // meta title страницы
mso_head_meta('description', $pages); // meta description страницы
mso_head_meta('keywords', $pages); // 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_page_foreach('page-main-start')) {
require $fn;
return;
} else {
if ($fn = mso_find_ts_file('main/main-start.php')) require $fn;
}
if (!mso_get_val('page_content_only', false)) echo '<div class="mso-type-page">';
if ($fn = mso_page_foreach('page-do')) require $fn;
if ($pages) {
// только контент в чистом виде
if (mso_get_val('page_content_only', false)) {
foreach ($pages as $page) {
if ($fn = mso_page_foreach('page-content-only')) {
require $fn;
continue;
}
echo $page['page_content'];
}
} else {
// полноценный вывод
$p = new Page_out();
$p->format('title', '<h1>', '</h1>', false);
$p->format('date', 'D, j F Y г.', '<span><time datetime="[page_date_publish_iso]">', '</time></span>');
$p->format('cat', ' -> ', '<br><span>' . tf('Рубрика') . ': ', '</span>');
$p->format('tag', ' | ', '<br><span>' . tf('Метки') . ': ', '</span>');
$p->format('edit', 'Edit', ' | <span>', '</span>');
$p->format('view_count', '<br><span>' . tf('Просмотров') . ': ', '</span>');
if ($fn = mso_page_foreach('format-page')) require $fn;
foreach ($pages as $page) {
if ($fn = mso_page_foreach('page')) {
require $fn;
// здесь комментарии
if ($fn = mso_find_ts_file('type/page/units/page-comments.php')) require $fn;
continue;
}
$p->load($page);
if ($fn = mso_page_foreach('page-do-page-only')) require $fn;
$p->div_start('mso-page-only', '<article>');
// у page в записи может быть метаполе info-top-custom
// где указываетеся свой файл вывода
// файл указывается в type_foreach/info-top/файл.php
// или info-top/page/файл.php
if (mso_get_val('show-info-top', true)) {
// если нужно отключить info-top
$info_top_custom = $p->meta_val('info-top-custom');
$f = false;
if ($info_top_custom) {
if ($f = mso_fe('type_foreach/info-top/page/' . $info_top_custom));
elseif ($f = mso_fe('type_foreach/info-top/' . $info_top_custom));
}
if ($f) {
require $f;
} else {
// нет метаполя - типовой вывод
// возможно есть дефолтная опция
if ($info = mso_get_option('info-top_page', getinfo('template'), '')) {
if ($f = mso_fe('type_foreach/info-top/page/' . $info));
elseif ($f = mso_fe('type_foreach/info-top/' . $info));
$info = $f ? $f : false;
}
// для разных page может быть свой info-top
if ($fn = mso_page_foreach('info-top-page-status-' . $p->val('page_status'))) {
require $fn;
} elseif ($fn = mso_page_foreach('info-top-page-type-' . $p->val('page_type_name'))) {
require $fn;
} elseif ($info) {
require $info;
} elseif ($fn = mso_page_foreach('info-top-page')) {
require $fn;
} elseif ($fn = mso_page_foreach('info-top')) {
require $fn;
} else {
$p->html('<header>');
$p->line('[title]');
$p->div_start('mso-info mso-info-top');
$p->line('[date][edit][cat][tag][view_count]');
$p->div_end('mso-info mso-info-top');
$p->html('</header>');
}
}
} // show-info-top-page
if ($fn = mso_page_foreach('page-content-' . getinfo('type'))) {
require $fn;
} else {
if ($fn = mso_page_foreach('page-content')) {
require $fn;
} else {
$add_class_page = '';
if ($add1 = $p->meta_val('mso-page-content-add-class', '', ''))
$add_class_page .= ' ' . $add1;
if ($add2 = mso_get_val('mso-page-content-add-class', ''))
$add_class_page .= ' ' . $add2;
if ($add_class_page) $add_class_page = ' ' . trim($add_class_page);
$p->div_start('mso-page-content mso-type-' . getinfo('type') . '-content' . $add_class_page);
if ($fn = mso_page_foreach('content')) {
require $fn;
} else {
// есть отметка выводить миниатюру
if ($p->meta_val('image_for_page_out') === '' or $p->meta_val('image_for_page_out') === 'page') {
// если show_thumb_type_ТИП вернул false, то картинку не ставим
// show_thumb - если нужно отключить для всех типов
if (
mso_get_val('show_thumb', true)
and mso_get_val('show_thumb_type_' . getinfo('type'), true)
) {
// вывод миниатюры перед записью
if ($image_for_page = thumb_generate(
$p->meta_val('image_for_page'),
mso_get_option('image_for_page_width', getinfo('template'), 280),
mso_get_option('image_for_page_height', getinfo('template'), 210),
false,
'resize_full_crop_center',
false,
'mini',
true,
mso_get_option('upload_resize_images_quality', 'general', 90)
)) {
echo $p->img($image_for_page, mso_get_option('image_for_page_css_class', getinfo('template'), 'image_for_page'), '', $p->val('page_title'));
}
}
}
if ($fn = mso_page_foreach('page-content-out-content')) {
require $fn;
} else {
$p->content('', '');
$p->clearfix();
}
}
// для page возможен свой info-bottom
if ($fn = mso_page_foreach('mso-info-bottom-page')) {
require $fn;
} elseif ($fn = mso_page_foreach('info-bottom')) {
require $fn;
}
$p->html('<aside>');
mso_page_content_end();
$p->clearfix();
if ($fn = mso_page_foreach('page-content-end')) require $fn;
// связанные страницы по родителям
if ($page_nav = mso_page_nav($p->val('page_id'), $p->val('page_id_parent')))
$p->div($page_nav, 'mso-page-parents');
// блок "Еще записи по теме"
if ($p->meta_val('show_page_other_pages', 1)) {
if ($fn = mso_page_foreach('page-other-pages'))
require $fn;
else
mso_page_other_pages($p->val('page_id'), $p->val('page_categories'));
}
$p->html('</aside>');
$p->div_end('mso-page-content mso-type-' . getinfo('type') . '-content');
}
}
$p->div_end('mso-page-only', '</article>');
if ($fn = mso_page_foreach('page-only-end')) require $fn;
// здесь комментарии
if ($fn = mso_page_foreach('page-comments-start')) require $fn;
if (mso_get_option('comment_other_system', 'general', false)) {
// внешнее комментирование
if ($fn = mso_find_ts_file('type/page/units/page-comments-other-system.php')) require $fn;
// + стандартное комментирование
if (mso_get_option('comment_other_system_standart', 'general', false)) {
if ($fn = mso_find_ts_file('type/page/units/page-comments.php')) require $fn;
}
} elseif (mso_hook_present('page-comment-unit-file') and $fn = mso_fe(mso_hook('page-comment-unit-file'), '')) {
require $fn;
} elseif ($fn = mso_find_ts_file('type/page/units/page-comments.php')) {
require $fn;
}
if ($fn = mso_page_foreach('page-comments-end')) require $fn;
} // end foreach
} // else page_content_only
} 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>';
}
} // endif $pages
if ($fn = mso_page_foreach('page-posle')) require $fn;
if (!mso_get_val('page_content_only', false)) echo '</div><!-- /div.mso-type-page -->';
if ($fn = mso_find_ts_file('main/main-end.php')) require $fn;
# end of file