Atsakymas parašytas: 2010-03-07 21:44:19
[#898]
Ilgalaikė nuoroda į atsakymą #1
Nežinau, ar teisingai supratau, tačiau pabandysiu paaiškinti.
Tarkime, kad visi puslapiai turės tokią pat dizaino struktūrą, taigi bendrai turėsime tik vieną atvaizdinį failą. Jį šiuo atveju pavadinkime
layout.php.
<html>
<head>
<title></title>
</head>
<body>
<div id="header"></div>
<div id="menu">
<?php echo get_menu(); ?>
</div>
<div id="content">
<?php echo get_content(); ?>
</div>
</body>
</html>
Toliau būtų pravartu turėti atskirą php failą, kuriame saugomos sukurtos funkcijos. Pavadinkime šį failą
functions.php.
<?php
function get_menu()
{
$output = '<ul>';
// Tarkime, kad čia jau prisijungėme prie duomenų bazės arba nuskaitėme duomenų failą.
// Įsivaizduokime, kad turime tokį masyvą.
$menu_array = array(
array(
'id' => 1,
'title' => 'Pagrindinis',
'content' => 'Pagr. puslapio tekstas. <br /><br />'
),
array(
'id' => 2,
'title' => 'Apie mane',
'content' => '<img src="images/as.png" alt="Tai aš" /><br /><br />Puslapis apie mane'
));
// „Sulipdome“ masyvo duomenis į vieną kintamąjį.
foreach($menu_array as $item)
{
$output .= '<li><a href="index.php?id='. $item['id'] .'">'. $item['title'] .'</a></li>';
}
$output .= '</ul>';
// Baigę „lipdyti“ meniu struktūrą, išvedame kintamąjį (vėliau jį išspausdinsime su funkcija echo()).
return $output;
}
function get_content()
{
// Atitinkamo puslapio informaciją paimame pagal id (index.php?id=).
$page_id = $_GET['id'];
/* Vyksta duomenų paėmimas, pav.:
$query = mysql_query("SELECT * FROM `pages` WHERE `id` = '". $id ."' ORDER BY `id` ASC");
$page = mysql_fetch_array($query);
*/
// Išvedame puslapio informaciją, kurią vėliau išspausdinsime.
return $page['content'];
}
?>
Na, ir viską suvedame į
index.php failą.
<?php
/* Tai pagrindinis failas (index.php), kuriame vyksta visų reikalingų failų įkėlimas (include'inimas).
Čia taip pat galime prisijungti prie duomenų bazės, užkrauti konfigūracijos failus ir pan.
*/
// Užkrauname savo funkcijas, kurios bus reikalingos šablono faile (layout.php).
include('functions.php');
// Užkrauname šablono failą.
include('layout.php');
?>
Pavyzdys labai elementarus, turintis begalę saugumo spragų, tačiau visko detaliai parodyti negaliu. Čia svarbu pats principas.