V tomto článku vám ukážem ako veľmi jednoducho pomocou PHP načítať podľa potreby do rámov (frames) iný ako preddefinovaný dokument tak, že požadovaný dokument pridáme za url do premennej. Samozrejme, že keď premennú nezadáme, načíta sa predurčený dokument… Poviem vám tiež, ako má vyzerať stránka definujúca rámy.

Úvodom:

Ako vyzerá klasická stránka definujúca rámy…

<HTML>
<HEAD>
<TITLE>Titulok</TITLE>
<META content="text/html; charset=windows-1250" http-equiv=Content-Type>
</HEAD>
<FRAMESET border=0 frameBorder=0 frameSpacing=0 rows=150,*>
<FRAME name=left noResize scrolling=no
src="left.htm" target="main"><FRAME name=main
src="hlavna.htm" target="main">
<NOFRAMES>
This page use frames frames, but your browser doesn’t support them.
</NOFRAMES>
</FRAMESET>
</HTML>

Ako ďaľej?

My si túto stránku jednoducho upravíme… Prvý rámik, ktorý ako vidíte je vľavo a nemôže sa po ňom skrolovať, bude podľa všetkého menu. To znamená, že sa nebude meniť. Rámik s názvom main je hľadaný, ktorý mení svoj obsah, zobrazujúci dokumenty. Takže tento budeme chcieť meniť. Predurčený dokument je v tomto prípade stránka hlavna.htm. Tá sa načítava ako prvá, preddefinovaná. Pomocou PHP si urobíme podmienku, ktorá zabezpečí, aby sa nám v prípade že premenná nebude definovaná (ak sa bude index.php načítavať bez query string – premenné…), načítavať stránka hlavna.htm. Tá bude vyzerať asi takto:

<?
$kus = substr($include, -3, 3);
if(!isset($include) || $include=="" || $kus!="php" || $kus!="htm" || $kus!="tml" || $kus!="hp3") $file = "hlavna.htm";
else $file = $include;
?>

Teraz si to vysvetlíme. Ak nie je premenná $include definovaná, alebo obsahuje prázdny reťazec, alebo obsahuje nesprávny názov súboru, ako premenná $file sa načíta stránka hlavna.htm. Ak však premenná $include obsahuje názov súboru, do premennej $file uložime názov súboru z query string…

Premenná kus funkciou SubSTR odreže posledné 3 znaky z premennej include. Ak include obsahuje názov suboru s príponou php, htm, html, phtml, shtml, php3, povolí načítanie súboru. Túto „zbierku“ si môžete doplniť.

Ak užívateľ napíše do prehliadača adresu bez query string, zobrazí sa hlavná stránka hlavna.htm. Ak chceme však zavolať inú stránku, do prehliadača, alebo ako odkaz napíšeme www.xyz.cz/index.php?include=subor.htm, resp. www.xyz.cz/?include=subor.htm. Teraz si ukážeme konečný tvar stránky definujúcej rámy…

<?
$kus = substr($include, -3, 3);
if(!isset($include) || $include=="" || $kus!="php" || $kus!="htm" || $kus!="tml" || $kus!="hp3") $file = "hlavna.htm";
else $file = $include;
?>
<HTML>
<HEAD>
<TITLE>Názov – titulok</TITLE>
<META content="text/html; charset=windows-1250" http-equiv=Content-Type>
</HEAD>
<FRAMESET border=“0″ frameBorder=“0″ frameSpacing=“0″ rows=150,*>
<FRAME name=left noResize scrolling=no
src="left.htm" target="main"><FRAME name=“main“
src="<? echo $file ?>" target="main"><NOFRAMES>
<body bgcolor="#c0c0c0" text="#102030" link="#0000dd" vlink="#0000dd">
<p align="center">Táto stránka používa rámčeky, ale váš prehliadač ich nepodporuje</p>
<p align="center">&nbsp;</p>
<p align="center"><a href="http://www.xyz.sk/hlavna.htm">Tu je obsah</a></p>
<p align="center">&nbsp;</p>
<p align="center"><a href="http://www.microsoft.com">Stiahnite si MIE 5.5, aby ste mohli pozerať túto stránku korektne</a></p>
</body>
</NOFRAMES>
</FRAMESET>
</HTML>

Hore je kompletný index.php dokument tak, ako by mal vyzerať. Popíšeme si ho… Treba dať do zdrojového kódu aj popis a kľúčové slová, pre vyhľadávacie meta-vyhľadávače. V dnešnej dobe už nie je nutné, ale treba dať do tejto stránky aj definíciu NOFRAMES, teda ak užívateľov prehliadač nepodporuje rámy. Toto býva väčšinou napísané v angličtine, čo je pre užívateľa zväčša nezrozumiteľné… Preto sem treba dať odkaz na hlavú stránku, alebo menu a odkaz, kde si môžu stiahnuť Internet Explorer, alebo Netscape Navigator, ak chcú vidieť vašu stránku korektne. Do FRAME .SRC vložíme v PHP napísané : echo $file. Túto premennú file už máme definovanú a určite nezapíše prázdny reťazec.

Záverom

Celkom jednoduché a účinné riešenie pomocou úžasného nástroja PHP. Táto úprava postihne len jednu stránku a je časovo nenáročná. Takže nevidím dôvod prečo nepoužívať takýto tvar súboru index.php. A uvidíte, že ho využijete…

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět