Как подключить tpl файлы
Обновлено: 06.07.2024
Проще всего делать шаблоны на основе уже сверстанных в HTML статических страниц. Рассмотрим создание и подключение шаблона на примере. Допустим, уже есть HTML-файл такого содержания:
Для того, чтобы добавить шаблон в CMS, нужно создать файл в директории tpls/content , например, test.tpl , и вставить туда ваш HTML-код. CSS-файл следует положить в папку css/cms и назвать style.css . Изображения желательно положить в папку images . Не забудьте поменять пути ко всем изображениям и CSS-файлам.
Замечание
В названии файла шаблона нельзя использовать русские буквы!
Чтобы подключить новый файл шаблона, заполните в самой нижней свободной строке поля « Название шаблона » (дайте ему какое-нибудь осмысленное название, например « Мой тестовый шаблон ») и « Имя файла » (в нашем случае, test.tpl ) и нажмите кнопку « Сохранить ».
Шаблоны будут видны в выпадающем списке при редактировании каждой страницы:
Таким образом, на одном сайте можно одновременно использовать много шаблонов, выбирая подходящий шаблон как для отдельной страницы, так и для группы страниц.
Попробуйте создать новую страницу (убедитесь, что в опции « Шаблон дизайна » выбран новый шаблон) и посмотрите, что получилось на сайте.
На сайте должен появиться ваш HTML-шаблон. Но сейчас он статический. Теперь вам надо сделать его динамическим.
Для начала надо определить, какие части HTML-кода будут изменяться. В нашем случае изменяться будут:
заголовок окна <title>;
мета-теги keywords и description;
заголовок текста <h1>;
Значит, предстоит немного поработать с HTML-шаблоном и вместо изменяющихся участков поставить соответствующие макросы.
Например, в начале HTML-файла заданы мета-теги и тайтл:
Заменяем их на соответствующие макросы (список макросов дан в приложении):
Теперь система при формировании страниц будет брать мета-теги и тайтл, прописанные для каждой страницы индивидуально, и подставлять их вместо соответствующих макросов. Названия макросов запомнить очень просто.
Аналогично поступим с заголовком текста. Было так:
А станет так. Заголовок текста выводится макросом %header%:
Основной текст страницы тоже изменяется:
Для вывода основного текста страницы есть макрос %content% :
Эта строчка подключает функцию быстрого редактирования и другие полезные возможности. При помощи нее вы сможете, нажав Shift + D , быстро перейти к правке текущей страницы сайта или каких-либо ее фрагментов.
В итоге должно получиться следующее:
Итак, мы сохраняем файл шаблона и смотрим на результат. Теперь страница практически полностью динамическая, за исключением меню. Предстоит « оживить » меню сайта. Посмотрим как сверстано меню:
Меню состоит из пунктов. Само меню как-то оформлено, и у пунктов тоже есть оформление. Например, у всего меню может быть некая рамка или фон, текущий пункт меню может быть выделен жирным и т.п. Также в одном меню могут быть разные уровни.
Выделим обрамление меню:
Пункт меню оформлен так:
Текущий пункт меню оформлен по-другому:
Исходный шаблон меню находится в файле /tpls/content/menu/default.tpl и выглядит так:
Вначале немного непонятно. На самом деле, все очень просто. Посмотрим на первую часть кода:
Это блок, который называется menu_block_level1 . Есть всего 3 типа таких блоков.
menu_block_level1 ― содержит HTML-обрамление меню;
menu_line_level1 ― содержит HTML-код пункта меню;
menu_line_level1_a ― то же самое, что и menu_line_level1, только используется для активного пункта меню.
Все, что расположено между <<<END и END; воспринимается, как html-шаблон (для всего меню или для отдельного пункта).
При генерации меню, система берет шаблоны пунктов (например, menu_line_level1), и ставит их друг за другом. Получается HTML-код, в котором содержатся все пункты меню. Этот код вставляется вместо макроса %lines% .
Итак, необходимо проставить код, который мы выделили выше (обрамление, пункты меню) в соответствующие блоки. Должно получиться примерно так:
Мы уже знаем, что вместо %lines% система подставляет пункты меню с их HTML-обрамлением. Нам встретились новые макросы. Вместо %link% вставляется URL пункта меню, а вместо %text% ― текст (определяется в поле « название страницы »).
Теперь меню можно вставить в шаблон страницы макросом %menu% ::
Шаблон готов.
Если вы хотите на каких-то страницах сайта выводить меню по другому шаблону, нужно создать еще один файл с шаблоном меню в той же папке. Например, menu2.tpl . Соответственно, при подключении меню к шаблону страницы вместо %menu% надо написать немного по-другому: %content menu('menu2')% .
Работа этого и других макросов подробно описана в текущей документации. Работа с ними строится точно по такому же принципу: вы разбиваете необходимый кусок HTML-шаблона на отдельные части, подставляете в соответствующие блоки нужных шаблонов, вставляете на место этого куска соответствующий макрос и он начинает работать.
Важно учитывать: не стоит размещать несколько макросов на одной строке. Вложенные макросы могут не сработать в качестве аргумента у других макросов.
Защита tpl файлов
Подскажите пожалуйста как защитить файлы шаблона от прямого вызова ?
Ошибки в файлах шаблонах header.tpl, footer.tpl
При установке нового шаблона появились косяки, а именно появились ошибки в файлах шаблонах.
Подключение заголовочных файлов и файлов реализации
Здравствуйте,при создании класса в visual studio руками не компилится проект,при создании через add.
Второй маин не подходит (2-ая главная страница) maxvel0007, честно как я не пытался понять так и не понял что вам нужно сделать. шаблон подключается так:
в нем вы можете прописывать любой нужный текст. либо создайте статическую страницу, напишите нужный текст, сделайте копию static.tpl и переименуйте ее например в example.tpl. При редактировании страницы выберите шаблон example.tpl maxvel0007, честно как я не пытался понять так и не понял что вам нужно сделать. шаблон подключается так:
в нем вы можете прописывать любой нужный текст. либо создайте статическую страницу, напишите нужный текст, сделайте копию static.tpl и переименуйте ее например в example.tpl. При редактировании страницы выберите шаблон example.tpl Давайй представим как выводится stats.tpl При его открытии выводит только то что в нём написанно и всё, мне нужено вывесть так же вывести ststs.tpl только уже не 2 вариант. Как бы 2 статистики но во второй не фифа не статистика ))
maxvel0007 , это не вы писали загадочный , полный загадок и неясностей сценарий сериала Лост ?
maxvel0007 , это не вы писали загадочный , полный загадок и неясностей сценарий сериала Лост ? Возможно, ну я уже не знаю как проще объяснить.Это подключение:
Подключение .c и .h файлов. Си
Собственно нужно подключить в .c файл .h файл. Создал .prj в котором прописал свои 2 файла. Что.
подключение файлов
Объясните для новичка пожалуйста :wall: Я хочу сделать верх сайта, низ (футер) и менюшку на все.
Подключение файлов
Здраствуйте! Проблема заключается в том, что при чтении файла формата .txt файл читает но вместо.
Подключение файлов .js
Ребята помогите пожалуйста стаким вопросом: Суть проблемы. есть 2 файла HTML и 2 файла .js Из.
Сразу скажу, что я уже писал об этой теме здесь: использование tpl-файлов. Однако, не все поняли данный материал, и я решил к нему вернуться и написать всё немного по-другому. Не секрет, что любой серьёзный движок никогда не будет смешивать в своём коде HTML и PHP. Однако, HTML и PHP коды очень тесно взаимосвязаны, поэтому для того, чтобы не нарушать правила "хорошего тона", были придуманы tpl-файлы. Данные файлы служат для хранения HTML-кода с элементами шаблонов, которые подставляются в PHP-коде. Давайте подробнее разберём использование tpl-файлов с примером.
Возьмём с Вами самый элементарный пример - это панель пользователя, где есть его аватарка и приветствие по имени. Первым делом, создадим tpl-файл, и пусть он называется userpanel.tpl. Напоминаю, что это всего лишь кусок HTML-кода с элементами шаблона:
Ничего сложного, это просто обычный HTML-код. Только вместо определённых значений стоят %элементы_шаблона%.
Теперь разберёмся с PHP-обработкой. Здесь всё будет более, чем абстрактно, но, к сожалению, по-другому никак. Главное - это понять принцип работы. И так PHP-код для обработки созданного tpl-файла:
<?php
/* Данная функция, хоть и использует буферы, но суть элементарна: вернуть содержимое файла */
function getTemplate($name) ob_start(); // Начинаем сохрание выходных данных в буфер
include ($name.".tpl"); // Отправляем в буфер содержимое файла
$text = ob_get_clean(); // Очищаем буфер и возвращаем содержимое
return $text; // Возвращение текста из файла
>
$name = "Николай"; // Извлекается из базы
$avatar = "avatars/user_15.jpg"; // Извлекается из базы
/* Начинается замена элементов шаблона на реальные данные */
$userpanel = str_replace(
array(
"%name%",
"%avatar%"
),
array (
$name,
$avatar
),
getTemplate("userpanel")
);
echo $userpanel; // Выводим окончательный результат
?>
Это простейший вариант. Всё прокомментировано, поэтому вопросов по этому примеру возникнуть не должно. И по сути любая страница состоит из таких вот блоков. Ваша задача взять нужные блоки (функция getTemplate()), заменить нужными данными (функция str_replace() и данные полученные, например, из базы), а потом просто соединить все блоки, как обычные строки, и вывести всё на страницу.
Безусловно, без ООП здесь очень проблемно будет. Вы такое количество условий наплодите (страниц же много), что быстро запутаетесь. Но принцип использования tpl-файлов, надеюсь, Вы осознали. Дальше уже самостоятельно подумайте, как всё это обернуть в ООП, чтобы всё было максимально простым с точки зрения понимания кода и его сопровождения в будущем.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 23 ):
А здесь можно было использовать file_get_contents($name.".tpl") вместо getTemplate($name)?
Да, если Вам так удобнее. Просто я привык к буферам, в своё время с ними много работал, но file_get_contents() вполне подходит. Но я настоятельно рекомендую использовать getTemplate(), просто внутри используйте file_get_contents(). Очень часто бывают всякие повторяющиеся элементы (по типу адреса сайта), которые постоянно заменяются и их можно автоматически всегда при вызове getTemplate() сразу заменять. Это резко сокращает количество кода.
Я сделал себе обработку через getTemplate, но тогда не получается сделать включение любого модуля (например опроса, формы авторизации, отдельных файлов)без PHP. Как делать include в TPL?
Это и не нужно делать, всё должно включаться через PHP.
а к чему именно tpl? я лично использую формат файла php - разницы не вижу
Принято так. Можете использовать хоть txt, хоть вообще без расширения, результат будет тот же.
Чтобы не выводить содержимое файла до замены элементов шаблона. Но, как я уже писал выше, это Ваше дело - можете использовать метод из статьи, которую привели.
Миша, подскажи как мне потсупить? У меня есть файлы в которых выводится из базы только текст, в нём я могу делать так и проблем не будет : $template = str_replace( array( "%text%" ), array ( $index['text'].$view ), getTemplate("open") ); И у меня есть файлы в которых мне приходиться именно в основном контенте делать большие скрипты с циклами и т.д. Как мне быть с такими файлами? Делать отдельные файлы tpl? или как? А можно ли работу всего скрипта занести в одну переменную? Просто тогда мне бы не надо было создавать идентичные друг другу файлы. Подскажи плиззз
Единственный выход - это создавать новые tpl-файлы, очень похожие на остальные. Это недостаток, но ничего не поделаешь.
Понятно, а почему если в файле с шаблоном стоит цикл после %text% то выдаёт ошибку?
В файле с шаблоном не должно быть циклов.
А как мне тогда выводить те же самые комментарии? Надо делать их блоками?
Надо блок выделить в отдельный tpl-файл, в PHP сделать цикл, который собирает много этих блоков воедино, а затем всю эту кучу вставляет в основной tpl-файл.
Пожалуйста напишите статью как всё это организовать по правильному и удобному. Очень прошу, я могу сделать но даю гарантию что код будет ужасный, напишите пожалуйста
Четыре простых способа открыть TPL Files
Сценарий: У вас есть файл с файлом расширения TPL на вашем компьютере, который вам нужно открыть. Вы дважды щелкните по нему, как обычно, ожидая, что программа загрузит его, но, к сожалению, ничего не происходит. Вы повторите попытку, но ничего не происходит. Что ты можешь сделать? Попробуйте эти четыре простых метода, чтобы открыть troublesome файл TPL.
Открывает все ваши файлы, как
МАГИЯ! 1
Установить необязательные продукты - File Magic (Solvusoft)
EULA | Privacy Policy | Terms | Uninstall
1 Типы файлов, которые не поддерживаются, могут быть открыты в двоичном формате.
Просмотр файлов
Установить необязательные продукты - File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall
1-й метод: Откройте его в другой программе.
Когда вы дважды щелкаете файлами TPL, ваш компьютер пытается открыть его в программе, связанной с файлами TPL. Если на вашем компьютере нет программы, связанной с файлами TPL, файл не открывается. Чтобы открыть файл, загрузите одну из самых популярных программ, связанных с файлами TPL, такими как ACT! Document Template, Access Workflow Designer или SignIQ Template.
Второй метод: Возьмите подсказку из типа файла.
Расширение файла TPL обычно указывает, что оно находится под зонтиком Misc Files. Однако, если это другой тип файла, он может не открыться с одной из программ, перечисленных выше. Чтобы найти тип файла, выполните следующие действия:
- Щелкните файл правой кнопкой мыши.
- Нажмите «Свойства» (Windows) или «Дополнительная информация» (Mac).
- Найдите тип файла в разделе «Тип файла» (Windows) или «Вид» (Mac).
3-й метод: Обратитесь к разработчику.
Итак, вы пытались использовать другую программу, вы подтвердили тип файла, и ваш файл TPL все еще не открывается. Даже если эти методы не увенчались успехом, вы все равно сможете обратиться за помощью к разработчику программного обеспечения. Используйте приведенную ниже таблицу, чтобы найти разработчика для каждой из упомянутых выше программ и связаться с ними напрямую для получения помощи.
Программного обеспечения | Разработано |
---|---|
ACT! Document Template | Best Software CRM Division |
Access Workflow Designer | Microsoft Corporation |
SignIQ Template | ImpulseLogic |
BestAddress HTML Editor Standard Template | Multimedia Australia Pty. Ltd. |
RapidForm Collection File | INUS Technology Inc. |
Arena Template Source Code | Rockwell Automation Inc. |
Cakewalk Audio Template File | Cakewalk |
MicroImages Text Template | MicroImages Inc. |
TextBridge Template | Unknown |
RadASM Template File | KetilO |
Nintendo Texture Pack Library | Nintendo |
PHP Development Template | Windows Programmer |
TeamSite Presentation Template | Interwoven Inc. |
Ulead iPhoto Express Template | Corel Corporation |
Turbo Pascal Resident Unit | Borland Software Corporation |
Timeslips TSImport Template | Peachtree Software |
Harvard Graphics Template | Harvard Graphics |
Photoshop Tool Preset File | Adobe Systems Incorporated |
fKey Template Designer Template File | Unknown |
DataCAD Template File | DATACAD LLC |
Page Express Template | Windows Programmer |
Canvas 7 Template | Unknown |
NoteTab Template | Microsoft Developer |
4-й метод: Откройте его в универсальном просмотрщике файлов.
Если разработчик не в состоянии помочь, возможно, универсальный просмотрщик файлов. File Magic (Download) и подобные программы предназначены для открытия широкого спектра форматов файлов, в том числе файлов TPL. Некоторые из них несовместимы и будут открываться только в двоичном формате. Загрузите File Magic сейчас, чтобы открыть вам TPL и сотни других типов файлов с помощью одной программы!
Рекомендуем
Установить необязательные продукты - File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall
Читайте также: