Шаблонизация

Шаблоны в 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 - добро пожаловать!

Ссылки по теме:




Если вы хотите что-то узнать дополнительно - спрашивайте в комментариях. Документация будет дополняться по вашим вопросам.
© Arthur Grand, 2011–2018
Powered by SyDES