Шаблонизация
Шаблоны в SyDES представлены набором макетов, которые выбираются для каждой страницы. Это позволяет иметь уникальный дизайн, и менять его в любое время, для определенных страниц. В то же время при создании "типа страницы" указывается дефолтный макет, который будет автоматом выбираться при создании страницы этого типа. То есть не приходится каждый раз менять его для новостей или категорий.
Макет - это простая html разметка, к которй привязана обертка (файл), обычно содержащая шапку и подвал.
Данные в шаблоне и макетах выводятся через специальные метки в фигурных скобках, вида {some_token}
.
Основные метки для макета:
- {id} - id страницы
- {parent_id} - id родителя
- {alias} - псевдоним страницы
- {path} - путь до страницы
- {fullpath} - полный путь до страницы, включая локаль, если сайт мультиязычный
- {position} - позиция страницы
- {status} - статус страницы
- {type} - тип страницы
- {cdate} - Unix метка времени создания страницы
- {title} - заголовок страницы
- {preview} - текст страницы до тега
<hr id="cut" />
- {content} - текст страницы после него же
- {locale} - текущая локаль страницы
- {h1} - глобальная мета, по умолчанию равна title, может использоваться внутри тега h1 вне блока content
Основные метки для шаблона:
- {layout} - html, возвращаемый макетом
- {language} - текущий язык сайта
- {template} - путь до шаблона, вида template/default/
- {head} - мета-теги страницы, тайтл, динамические скрипты и стили
- {toolbar} - тулбар с полезными ссылками
- {alerts} - место для оповещений
- {year} - текущий год
Помимо основных данных возможно выводить и:
- {image} - прочие мета-данные, созданные самостоятельно
- {iblock:pages} - инфоблоки
- {t:home} - Переводы интерфейса для мультиязычных сайтов
- {config:shop_email} - переменные шаблона
Стуктура файлов шаблона
template/ папка для всех тем default/ тема по умолчанию iblock/ переопределенные шаблоны для инфоблоков myiblock/ new_template.php img/ папка с картинками module/ переопределенные шаблоны для модулей mymodule/ mymodule-form.php layout/ макеты темы page.html один макет manifest.ini информация о теме page.html файл-обертка script.jss style.css
Переопределение шаблонов
Как вы могли заметить, в структуре файлов есть папки для шаблонов инфоблоков и модулей. Каждый модуль и некоторые инфоблоки имеют свои шаблоны.
Если в папке iblock создать директорию с названием существующего инфоблока и туда загрузить файл default.php то дефолтный шаблон будет грузиться оттуда. Так же если создавать файлы с другими названиями, то их можно будет использовать указывая аргумент template
при вызове инфоблока. Например {iblock:pages?template=news}
С модулями все то же самое, только можно перезаписывать только уже существующие шаблоны из папок module_name/view.
Шаблоны страниц ошибок
По умолчанию страницы ошибок 404 Not Found, 403 Forbidden и 503 Maintenance Mode имеют макет page. Для того, что бы их оформить в другом стиле достаточно создать макеты с ключами 404, 403 и 503 соответственно и по желанию указать им файл-обертку.
Особенности
При всей своей универсальности и отсутствии ограничений, шаблоны все же имеют одно "ограничение", которое может некоторым не понравиться. А именно тот факт, что всегда подгружают jquery и bootstrap если указывать метку {head}
. Они необходимы для работы дефолтных инфоблоков и тулбаров, подгружаются с CDN и всегда последней версии.
Если вам нравится mootools и foundation - sydes не для вас. Если jquery и bootstrap - добро пожаловать!
Ссылки по теме: