@ms2345

Как сформировать архитектуру в фреймворке?

Здравствуйте. Допустим, что я решил сделать сайт на фреймворке вида M-V-C.
Есть контроллер: posts, вид: posts_view, модуль: posts_model
Есть контроллер: users, вид: users_view, модуль: users_model
Весь html код я пишу в файлах: posts_view и users_view.

Вопрос: как бы можно было бы реализовать загрузку одинакового контейнера <head> и вообще грамотно поместить всё это в тег <html>, а содержимое видов в <body>.

Т. е.
<html>
   <head>
      //Тут подключаются все нужные мне front-end файлы и выводятся заголовок, мета-теги
   </head>
   <body>
      //Тут я могу подключать виды posts_view или users_view
   </body>
</html>


Если я не совсем понятно объяснил - тогда хотя-бы подскажите, пожалуйста, где бы можно скачать или просмотреть простенький сайт реализованный на фреймворке (M-V-C).
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 2
DJZT
@DJZT
Laravel - code for you
ms2345: на CI делал так. <?php $this->view->load('header');?> Если не ошибаюсь. А туда можете ничего не передавать. Но Главное в основной вид, в котором вы вызываете это строку передайте необходимые данные для вывода
Ответ написан
Комментировать
@AlexanderWalker
И лучше этот код вынести в отдельную библиотеку и вызывать функцию передавая ей параметры
$headData['title'] = "";
$headData['keywords'] = "";
$headData['seo_description'] = "";
$headData['scripts'] = array(); // Массив скриптов. Потом во фронте циклом их выгрузить
$headData['styles'] = array(); // Массив стилей. Аналогично выгружать

$data['header'] =  $this->CI->load->view('template/header' , $headData , true); //Шапка
$data['footer'] =  $this->CI->load->view('template/footer' , array() , true); //Футер
$pageData['pageContent'] = array(); // Какой-то контент для страницы
$data['content'] = $this->CI->load->view('front/*your-page*' , $pageData , true); //Страницу которую грузить в шаблон
$this->load->view('template/'.$template , $data  ); //В какой шаблон грузить страницу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы