CompZone.Org :: Artykuły :: PHP
Która technologia najbardziej Cię interesuje?
PHP
ASP
AJAX
SQL
JavaScript
Inna
Sonda Wyniki

Add to Google

System zmiany layoutów

Przedstawię tutaj, jak stworzyć wygodny system zarządzania skórkami (skinami, layoutami - jak kto woli na własnej stronie. Przyjmujemy, że każda ze skórek ma taka samą budowę, a zmieniają się jedynie grafiki i kolory różnych elementów.

Pliki graficzne każdego layoutu trzymamy w folderach gfx/LayZielony, gfx/LayNiebieski, itp. W każdym z tych folderów przechowujemy również plik config.php z nazwami kolorów, bądź innymi elementami, które mogą ulec zmianie.

Struktura strony

Kod przykładowego pliku config.php:

 <?
$kolor_tla="navy";
?>

Kolejna rzecz, którą się zajmiemy to napisanie kodu HTML strony z małymi wstawkami PHP, które będą powodowały zmianę grafik odpowiednio do wyboru użytkownika.

Poniżej kod przykładowego pliku index.php:

 <?
include "lay.php";
?>
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
</head>
<body bgcolor="
<? echo $kolor_tla; ?>">
<?
include "wybierz.php";
?>
<table border="0">
<tr>
<td background="gfx/
<? echo $lay_path; ?>/menu.gif">
<a href="index.php">index</a><br>
Tresc menu
</td>
<td background="gfx/
<? echo $lay_path; ?>/txt.gif">
Tresc strony
</td>
</tr>
</table>
</body>
</html>

Skrypt PHP

Teraz kod pliku wybierz.php, którego zadaniem jest wyświetlić formularz z polem SELECT, zawierającym wzystkie nazwy katalogów.

 <form action="index.php" method="post">
<select name="lay">
<?
// otwieramy katalog i wypisujemy z niego nazwy wszystkich folderów, ktore sie w nim znajdują
if ($handle = opendir("gfx")) {
while (false !== ($file = readdir($handle))) {
if($file!=".." and $file!="."){
echo "<option>$file</option>";
}
}
closedir($handle);
}

?>
</select>
<input type="submit" value="ok">
</form>

I najważniejsza część skryptu, która dostosuje wratość zmiennej $lay_path do wybranej przez użytkownika skórki i zaincluduje odpowiedni plik config.php. Plik lay.php:

 <?
if(isset($_POST['lay'])){
if(is_dir("gfx/$lay_path")){
$lay_path=$_POST['lay'];
setcookie("czlay",$lay_path,time()+100000); // ustawiamy ciasteczko z nazwa skinu
}
else{
$lay_path="aa"; //nazwa domyslnego skinu
}
}
else{
if(isset($_COOKIE['czlay'])){
$lay_path=$_COOKIE['czlay'];
}
else{
$lay_path="aa"; //nazwa domyslnego skinu
}
}
include "gfx/$lay_path/config.php";
?>

Odpalamy skrypt

Źródełko możecie pobrać stąd.

michalg @ 11-07-2006 23:49
Brak komentarzy...
Copyright © 2005-2006 Compzone.Org. Kopiowanie i wykorzystywanie materiałów zawartych na tej stronie bez zgody autora zabronione!