Приветствую! В общем пытаюсь написать свой велосипед... Хотелось бы узнать, как можно реализовать работу с HTML шаблонами? Я знаю два варианта:первый - это разбить страницу на блоки (например: хедер, контент, сайтбар, футер) и сохранить в формате php. Второй тоже самое, но только файлы в формате tpl. Теперь что мне нужно вообще?... Велосипед по принципу MVC, который будет легко заточить под любое приложение (Корпоративный сайт, лендинг, интернет магазин), с удобной админкой. Для этих целей выбрал модульную структуру (аналог плагинов wordpress). Установшик (может да, может нет) как в Wordpress (то есть установка в несколько кликов). У велосипеда есть фреймворк для некоторых часто используемых задач, работа с формами. Про HTML. Страницы в трёх шаблонах, одна с сайтбаром, вторая без него, третья в два сайтбара. (сайт в одну-три колонки). Просто хотелось чтобы можно было работать с разными типами HTLM шаблонов. И вот тут-то я понял, что что-то напортачил... В общем, если бы дело касалось одного шаблона, например в две колонки, тогда можно было бы разбить его на хедер, контент, сайтбар, футер, всё это перевести в php или tpl. А три шаблона как использовать? Приходит на ум вариант: создать три папки, в первой - одностраничник, во второй- 2 колонки, в третий -3. Но очень сильно мне сдаётся, что где-то я в корне не прав???? Помогите советом.
во первых, одного шаблона достаточно, чтобы в нём настраиваемо было количество колонок во вторых, блоки, выглядящие, как колонки, в html коде всё равно идут с верху вниз в третьих, по папкам делят не по такому принципу изучи какой-нить фреймворк и увидишь, как всё должно выглядеть. Например, скачай движок OpenCart (на всякий случай, это движок интернет магазина). У него полноценная (и в то же время простая и понятная) MVC архитектура. Правда, документации кот наплакал, но зато он сам полон примеров готовых реализаций. В данный момент актуальная стабильная версия - 2.3 тройка пока сырая.
для каждого "блока" используйте условие if , то есть если блок содержит какую то информацию... то блок отображается, если нет, то он скрыт как уже сказал TeslaFeo за основу можно взять и Опенкарт, дабы подсмотреть, к примеру конструкция такого вида Код (Text): <?php if ($modules) { ?> <aside id="column-left" class="col-sm-3 hidden-xs"> <?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php } ?> </aside> <?php } ?> (это код самого сайдбара) Говорит о том, что если в левом сайдбаре есть что то... то он отображается вывод в tpl сайдбаров таким образом Код (Text): <?php echo $column_left; ?> Код (Text): <?php echo $column_right; ?> ну и естественно прописывается условие для собственно контента Код (Text): <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>">... тут указано 2 условия, то есть если есть правый или левый сайтбар (или оба сразу)(а они, как я уже сказал отобразятся только при условии наличия информации в них), то ширина контента меняется в сторону увеличения или уменьшения. Вот примерно так. (Естественно тут используется привязка к Bootstrap, если Вы не станете использовать этот фреймворк... то просто задайте свои классы, которым потом пропишите определенные стили (в случае фиксированной или резиновой верстки) Таким образом Вы сможете добиться различной "шаблонизации" определенных страниц, не плодя их разновидности