Şu anda, ben bir taban HTML şablon dosyası var. Ben yeni bir sayfa yapmak istiyorum şimdiye kadar, ben şablonu kopyalayıp belirli etiketler arasında bazı require_once ifadeleri yerleştirdiğinizde. Şablonu her zaman kopyalamak için gereksiz kılacak daha iyi bir yolu olup olmadığını merak ediyordum. İşte tipik bir örnek:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/second.css" />
<script language="JavaScript" type="text/javascript"
src="js/validation_functions.js"></script>
<title>Order a Ticket for the ball</title>
</head>
<body>
<div id="banner">St. Tom's Ambulance Ball</div>
<!-- START[container] -->
<!-- "body" -->
<div id="container">
<!-- START[header] -->
<div id="header">
<!-- header -->
<div id="header_text">introduction</div>
<div id="header_cell2">the process</div>
<div id="header_cell3">start</div>
</div>
<!-- END[header -->
<!-- START[content] -->
<!-- "other container" -->
<div id="content">
<!-- START[form] -->
<div id="form">
<?php
require_once(realpath($config["directories"]["views"]."/index.form.view.php"));
?>
</div>
<!-- END[form] -->
<!-- START[data] -->
<!-- "main content" -->
<div id="data">
<?php
require_once(realpath($config["directories"]["views"]."/index.data.view.php"));
?>
</div>
<!-- END[data] -->
<!-- START[side] -->
<div id="side">
<?php
require_once(realpath($config["directories"]["views"]."/index.side.view.php"));
?>
</div>
<!-- END[side] -->
</div>
<!-- END[content] -->
<!-- START[footer] -->
<div id="footer">
<!-- footer -->
<div id="footer_text">
<ul>
<li><a href="index.php">home</a></li>
<li><a href="">partners</a></li>
<li><a href="">projects</a></li>
<li><a href="">contact us</a></li>
</ul>
</div>
<div id="footer_cell2"> </div>
<div id="footer_cell3"> </div>
</div>
<!-- END[footer] -->
</div>
<!-- END[container] -->
</body>
</html>
EDIT: I GET kullanmak için önerilerin not almış. Yeni fikir, her isteği url index.php? Page = PAGE_NAME olarak meydana sahip olmaktır. Bu istek daha sonra $ _GET ['sayfa'] değerine dayalı şablon değişkenlerini ayarlar bir ana kontrolör tarafından ele olacaktır. Bunun için, şablon şimdi olacak:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/second.css" />
<script language="JavaScript" type="text/javascript"
src="js/validation_functions.js"></script>
<title><?php h($title) ?></title>
</head>
<body>
<div id="banner">St. Tom's Ambulance Ball</div>
<!-- START[container] -->
<!-- "body" -->
<div id="container">
<!-- START[header] -->
<div id="header">
<!-- header -->
<div id="header_text"><?php h($header_1) ?></div>
<div id="header_cell2"><?php h($header_2) ?></div>
<div id="header_cell3"><?php h($header_3) ?></div>
</div>
<!-- END[header -->
<!-- START[content] -->
<!-- "other container" -->
<div id="content">
<!-- START[form] -->
<div id="form">
<?php
require_once(realpath($view_1));
?>
</div>
<!-- END[form] -->
<!-- START[data] -->
<!-- "main content" -->
<div id="data">
<?php
require_once(realpath($view_2));
?>
</div>
<!-- END[data] -->
<!-- START[side] -->
<div id="side">
<?php
require_once(realpath($view_3));
?>
</div>
<!-- END[side] -->
</div>
<!-- END[content] -->
<!-- START[footer] -->
<div id="footer">
<!-- footer -->
<div id="footer_text">
<ul>
<li><a href="index.php">home</a></li>
<li><a href="">partners</a></li>
<li><a href="">projects</a></li>
<li><a href="">contact us</a></li>
</ul>
</div>
<div id="footer_cell2"> </div>
<div id="footer_cell3"> </div>
</div>
<!-- END[footer] -->
</div>
<!-- END[container] -->
</body>
</html>
Not: h () her şeyden önce bir dize yankılanan önce tüm istenmeyen varlık etiketleri kaldırır bir fonksiyonudur.
İlgili bir not olarak, her sayfanın üst kısmında ben Require_oncenin dahil bazı denetleyici dosyaları var. Sadece bu şekilde belirli bir giriş dizesi (işlevsellik / sayfa adı) yani "index" dayalı dosyaları içeren bir fonksiyonu uygulamak mümkün olacağını merak ediyordum:
function include_controller($page){
switch($page){
case "index":
require_once(realpath($config["directories"]["controllers"]."/index_.php"));
break;
case "checkout":
require_once(realpath($config["directories"]["controllers"]."/checkout_.php"));
break;
default:
break;
}
}