Použité soubory:
theme/vzhled1/command.inc
theme/vzhled1/theme.inc
theme/vzhled1/menu.inc
theme/vzhled1/command.inc
<?php
function hltabop() {
echo "
<table cellpadding='0' cellspacing='0' class='hltab'>
<tr>
<td colspan='2' class='hltab-head'>
";}
function hltabhm() {
echo "
</td>
</tr><tr>
<td class='hltab-menu'>
";}
function hltabmo() {
echo "
</td>
<td class='hltab-obsah'>
";}
function hltabcl() {
echo "
</td>
</tr>
</table>
";}
function openhead() {
echo "
<table cellpadding=‘0’ cellspacing=‘0’ class=‘head-table’>
<tr>
<td class=‘head-box’>
";}
function closehead() {
echo "
</td>
</tr>
</table>
";}
function openmenu() {
echo "
<table cellpadding=‘0’ cellspacing=‘0’ class=‘menu-table’>
<tr>
<td class=‘menu-box’>
";}
function closemenu() {
echo "
</td>
</tr>
</table>
";}
function openobsah() {
echo "
<table cellpadding=‘0’ cellspacing=‘0’ class=‘obsah-table’>
<tr>
<td class=‘obsah-box’ rowspan=‘2’ valign=‘top’>
";}
function closeobsah() {
echo "
</td>
</tr>
</table>
";}
?>
Soubor theme/vzhled1/command.inc obsahuje jen hromadu funkcí které vždy funkcí echovloží část tabulky podle potřeby a my nemusíme stále vkládat tagy TD a TR ručně ale jen zadáme požadovanou funkci a příslušná část tabulky se vloží.
theme/vzhled1/theme.inc
<?php
include("theme/vzhled1/command.inc");
hltabop();
openhead();
include("theme/vzhled1/head.inc");
closehead();
hltabhm();
openmenu();
include("theme/vzhled1/menu.inc");
closemenu();
hltabmo();
openobsah();
echo obsah($page);
closeobsah();
hltabcl();
?>
Jako první pomocí funkce include vkládáme obsah souboru theme/vzhled1/command.inc ve kterém jsou výše uvedené funkce.
Postupně vkládáme potřebné funkce a mezi ně vkládáme soubory hlavičky, menu a samotného obsahu stránky tak abychom vytvořili potřebnou tabulku s rozmístěním.
theme/vzhled1/menu.inc
<?php
include ("config.php");
$menudb = mysql_query("Select * FROM menu ORDER BY pozice") or die ("Nelze se nacist data pro menu." . mysql_error());
echo "<center><br>";
while ($menu = mysql_fetch_array($menudb)) {
if ($menu['zobraz']=='1') {
echo "
<input value='".$menu['nazev']."' onclick=‘document.location.href='?page=".$menu['odkaz']."';’ type=button class=input_menu><br>
";
}
}
echo "<br><br></center>";
?>
V tomto souboru si nejdříve opět zažádáme příkazem include o obsah souboru config.php ve kterém máme spojení s databází.
Následujícím příkazem mysql_query si do proměnné menudb vložíme veškerý obsah z tabulky menu seřazený podle sloupce pozice. Pokud se tento příkaz z jakéhokoli důvodu neprovede nebo vrátí chybu, zobrazí se příslušný text a výpis chyby.
Funkce mysql_query provede dotaz na aktuálním spojení v aktivní databázi na serveru a vrátí identifikátor výsledku.
Dále je tu požitá funkce while. Jedná se o funkci cyklu která se stále opakuje dokud není splněná její podmínka. Obsahem funkce je nejdříve kontrola proměnné zobraz pokud je její hodnota 1 vypíše nám odkaz z menu. Tím můžeme mít v databázi více položek menu a zobrazí se jen ty kterým do hodnoty proměnné uvedeme 1.
Cykly while jsou nejjednodušším typem cyklů v PHP a zároveň i nejpoužívanějším. Cyklus je prováděn tak dlouho, dokud podmínka je splněna (TRUE), cyklus nemusí být proveden ani jednou. To vyplývá z předpokladu, že podmínka je testována ihned na začátku. Využití příkazu while je idealní pro zobrazování varovných hlášek při špatném odeslání formuláře nebo něčeho podobného.
Ale jelikož je databáze prázdná, budeme si muset nejdříve vytvořit požadovanou tabulku menu.
Provedeme to např. v phpmyadminu následujícím sql příkazem:
CREATE TABLE `menu` (
`id` int(3) NOT NULL auto_increment,
`nazev` varchar(60) NOT NULL default '',
`odkaz` varchar(60) NOT NULL default '',
`pozice` int(3) NOT NULL default '0',
`zobraz` int(1) NOT NULL default '0',
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
Do této tabulky budeme následně vkládat položky menu.
vložíme data:
INSERT INTO `menu` (`id`, `nazev`, `odkaz`, `pozice`, `zobraz`) VALUES
(1, 'Informace o nás', 'kontakt', 10, 1),
(2, 'e-mail', 'email', 20, 1),
(3, 'odkazy', 'odkazy', 30, 1);
Tímto příkazem jsme si vytvořili položky menu pro moduly kontakt, email a odkazy které si vytvoříme o pár dílu dále.
V dalším díle si vytvoříme „hlavičku“ stránky a hlavně css soubor.
Soubory k tomuto dílů. DOWNLOAD
K nahlédnutí na http://ukazky.owebu.cz/diviweb
Login: admin
Heslo: root
Autor: Václav Dressler