Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

type и type-foreach

Наиболее частые вопросы по MaxSite CMS.
Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

type и type-foreach

Сообщение Wave » 14 сен 2010, 18:13

Что это такое «на пальцах».

Что и как выводит система, определяет шаблон. В шаблоне определяются выводы разных типов данных, например, вывод главной страницы, вывод категории, вывод страницы, тега и так далее.
За это отвечают файлы в каталоге type.

В самых первых шаблонах системы у каждого шаблона был свой каталог type со своими файлами в нём. Но это не гибко, не совместимо, трудоёмко. Например, что-то изменилось в стандартных type-файлах — и нужно править свои файлы. Да и раз за разом их создавать — лишняя работа.
Поэтому с некоторых пор в системе появилась возможность задействовать эти же файлы, но из дефолтного шаблона. Т.е. при создании шаблона не нужно создавать type\*.php и следить за изменениями. Если что-то обновится в стандартном шаблоне, ваш шаблон автоматически подхватит изменения. Так система стала гибче. Но не намного.
Если вдруг вам нужно, чтобы отображение категории чуть-чуть отличалось от того, что в дефолтном шаблоне, то вам приходится создавать у себя каталог type, а в нём category.php, который почти полностью повторяет дефолтный. Не очень хорошо. Поэтому появился новый механизм: type-foreach.

Примеры type-foreach файлов лежат в дефолтном шаблоне в каталоге type-foreach. Чтобы задействовать их, нужно в своём шаблоне создать каталог type-foreach, скопировать нужный файл и убрать в имени файла прочерк _
Что даёт этот механизм.
Например, мы хотим, чтобы вывод категорий шёл ну почти как в дефолтном шаблоне, только перед заголовком категории выводилась какая-то картинка или подпись. Мы берём файл _category-do.php (видите, по названию понятна суть) и копируем в свой шаблон в type-foreach\category-do.php. После чего там правим заголовок как нам надо. И это вместо копирования полноценного type\category.php.
Гораздо проще получилось.

Какие есть type и type-foreach файлы, а также схема их работы в наглядном виде, можно посмотреть здесь. Конечно, впервые столкнувшись с шаблонами макссайта, одной этой заметки мало, чтобы делать свои шаблоны, но вполне достаточно для понимания механизма и простых советов поправить какой-то type-foreach файл.

jogurt
Сообщений: 670
Зарегистрирован: 28 окт 2009, 12:18

Re: type и type-foreach

Сообщение jogurt » 15 сен 2010, 11:04

Также стоит добавить, что у юзера есть возможность создать свои собственные type-файлы, которые могут отличаться от дефолтных. Достаточно поместить такой новый файл в папку type шаблона, чтобы его содержимое выводилось на сайте по адресу http://мой_сайт/мой_type
Простой пример. Создаем в каталоге type шаблона файл с названием test.php. В нем пишем:

Код: Выбрать все

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

mso_cur_dir_lang('templates');

   require(getinfo('template_dir') . 'main-start.php');

        echo '<h1>Тест</h1><p>Текст, который мне нужно вывести</p>';


   require(getinfo('template_dir') . 'main-end.php');

?>

После сохранения проверяем: открываем в браузере страницу http://мой_сайт/test
И видим что получилось.
Вместо echo можно использовать фактически любое php-код, допустим, вывести данные какого-то плагина или с помощью mso_get_pages вывести страницы особого типа.
Или задать свое оформление, обратившись к другим, специально для этого созданным файлам вместо main-start.php и main-end.php
Портал ужасов на Maxsite
Хотите получить недорогую консультацию по Максайт? Пишите в личку, чем смогу помогу.


Вернуться в «FAQ»

Кто сейчас на форуме

Пользователь просматривает форум: Bing [Bot]

cron