Я делаю это все время. У меня есть пользовательский файл верхнего и нижнего колонтитула, который вызывается в начале и конце каждой страницы.
<?PHP
Require("includes/header.php");
...
Require("includes/footer.php");
?>
Заголовок содержит базы данных ручки, строку DATETIME и ручку входа в системе, специальных разрешения, протоколирование и т.д. просмотры страниц
Колонтитул обеспечивает стандартный HTML страницу, но включает в себя некоторые систематизированы переменных. Он также генерирует меню динамически из ведущей базы данных, затем закрывает соединение с базой данных.
Этот способ, когда я пишу код, не смешивается в HTML, и любые ошибки легко найти.
Я люблю переменные родственным:
$display_scripts - adds extra data in the head section.
$display_onload_scripts - adds onload scripts to body section.
$display_style_sheets - option to include link to additional stylesheets
$display_above_menu - will appear above the menubar. NOT recommended.
$display_below_menu - will appear immediately below the menubar.
$display_one_column - page contents when only one column is to be used
$display_left_column - page contents when two columns used. Left pane.
$display_right_column - page contents when two columns used. Right pane.
$display_footer - appears in footer division.
Мой главный код, то просто должен сгенерировать соответствующую переменную. По сути, вам нужно изучить источник хорошего возраста, который вы создали, а затем заменить материал, который хотите изменить, с помощью переменных.
Вот схематизированная версия файла, который я использую (псевдокод), чтобы дать вам представление о том, как я это делаю.
// Code here generates the menu from database
// Code here genereates popup alert messages from other users
//permanent links to external style sheets go here.
//You can also select skins here.
<?PHP
echo $display_style_sheets;
echo "<title>".$display_page_title."</title>";
?>
<script type="text/javascript" src="JAVASCRIPT GOES HERE.js"></script>
</head>
<body <?PHP echo $display_onload_scripts;?> >
<div id="page_area" >
<div id="banner">
</div>
<?php
echo $display_above_menu;
if(!$hide_menu){echo $display_menu;} //Insert the menu variable here.
echo $display_below_menu;
?>
<div id="content_area">
<div id="inner_content">
<?PHP
if($display_number_of_columns==1)
{
echo "<div id='onecolumn'>".$display_one_column."</div>"; //I only use this one
}
if($display_number_of_columns==2)
{
echo "<div id='leftcolumn'>".$display_left_column."</div>"; //these are left for legacy support from before I got better at CSS.
echo "<div id='rightcolumn'>".$display_right_column."</div>";
}
echo "<div id='footer'>".$display_footer."</div>"; //just in case - I hardly use it.
echo $display_pop_box; //for user alert messages to other users
?>
</div>
</div>
</div>
<div id="logbox"> Automatic Logout statement</div> //this is called by JS to activate timeouts.
</body>
</html>
<?PHP
$mysqlidb->close();
?>
К сожалению, это так много кода. Макет позволяет легко адаптироваться и упрощает поиск нарушающей переменной, если все идет не так, как ожидалось. Есть более элегантные решения, но это хорошо работает для меня и очень быстро.
Большая часть фреймворков поддерживает макеты. Поэтому вы можете поместить повторяющиеся вещи в макет и указать его в контроллере. –
Я создал свою собственную MVC-структуру, поэтому, я думаю, мне нужно узнать, как работают эти механизмы макета. – Matthew
Существует несколько способов сделать это: макеты, просмотр справки, составные представления и hmvc. YMMV. – Gordon