Вопрос в том как создать свой вывод для альтеративного типа страницы не трогая файл шаблона, то-есть не редактируя type_foreach-файлы шаблона.
Тогда остается вносить изменения в default\type\page
Например так.
Код: Выбрать все
if ($pages) // есть страницы
{
foreach ($pages as $page) : // выводим в цикле
// вставим такое
// если тип страницы пользовательский ищем соответствующий ему файл в дефолтном и в установленном шаблонах
if (($page[$page_type_name] != ('blog' or 'static'))
if (file_exsists('template/page-type-' . $page[$page_type_name] . '.php'))
{
require('template/page-type-' . $page[$page_type_name] . '.php');
continue;
}
else if (file_exsists('default/page-type-' . $page[$page_type_name] . '.php'))
{
require('default/page-type-' . $page[$page_type_name] . '.php');
continue;
}
// если не нашли такой то дальше как обычно
else if ($f = mso_page_foreach('page'))
{
require($f); // подключаем кастомный вывод
// здесь комментарии
// page-comments.php может быть в type своего шаблона
$fn1 = getinfo('template_dir') . 'type/page-comments.php'; // путь в шаблоне
$fn2 = getinfo('templates_dir') . 'default/type/page-comments.php'; // путь в default
if ( file_exists($fn1) ) require($fn1); // если есть, подключаем шаблонный
elseif (file_exists($fn2)) require($fn2); // нет, значит дефолтный
continue; // следующая итерация
}
extract($page);
Или что-то такого рода.
Тогда разработчик плагина для осуществления вывода своих типов страниц предложит переместить файл page_mytype.php из архива плагина в default/type.
А разработчик шаблона сможет переопределить вывод таких типов страниц в плагине.
В идеале, чтобы вообще пользователь никак не напрягался с перемещениями.
Тогда можно чтобы требуемый плагину тип носил имя плагина, тогда система брала файл page.php из каталога плагина с именем, соответсвующим типу страницы.
И то, если разработчик шаблона не создал свой \type\page.