Tartalomjegyzék
PHP TPL fájlok
- Szerző: Sallai András
- Copyright © Sallai András, 2020
- Web: https://szit.hu
Bevezetés
A TPL fájlok egyszerű .tpl kiterjesztésű állományok. A HTML kódot szokás beleírni. Ezeknek az állományoknak a kiterjesztése, lehetne akár .html is, de logikátlan, mert nem teljes értékű HTML kódok, csak részletek.
A TPL fájlok használatának előnye, hogy segítségével szétválaszthatjuk a PHP és HTML kódokat. A .php kiterjesztésű állományokba szigorúan csak PHP kódot írunk, a .tpl kiterjesztésű fájlokba pedig csak HTML kódot. Ez jól jön a szintaktikai színezés során, a szerkesztők, általában ismerik a TPL fájlokat is, és HTML szintaxisnak megfelelően színezik.
Helló Világ
Könyvtárszerkezet:
projekt/ |--templates | |--foot.tpl | `--head.tpl | `--index.php
- head.tpl
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="utf-8"> <title>Kiírás</title> </head> <body>
- index.php
echo file_get_contents('templates/head.tpl'); echo "Helló Világ!"; echo file_get_contents('templates/foot.tpl');
Behelyettesítés a TPL fájlba
Ebben a részben a „Helló Világ!” szöveget szeretnénk h1 elemek között megjeleníteni. Az index.php számára készítünk egy index.tpl állományt. Ebbe kerül a <h1> elem. A „Helló Világ!” szöveget nem írjuk az index.tpl fájlba, azt majd az index.php fogja behelyettesíteni.
Könyvtárszerkezet:
projekt/ |--templates | |--foot.tpl | |--head.tpl | `--index.tpl | `--index.php
- head.tpl
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="utf-8"> <title>Kiírás</title> </head> <body>
- index.php
<?php echo file_get_contents('templates/head.tpl'); $page = file_get_contents('templates/index.tpl'); $page = str_replace('{{ szoveg }}', "Helló Világ!", $page); echo $page; echo file_get_contents('templates/foot.tpl');
Bekéréses feladat
A példában egy három alapját és magasságát kérjük be, amiből kiszámoljuk annak területét.
A feladat kezdeti megoldása
A célunk, a kód kisebb önálló részekbe szervezése, hogy növeljük az átláthatóságot.
projekt/ |--templates/ | |--foot.tpl | |--head.tpl | |--index.tpl | `--terulet.tpl | |--index.php `--terulet.php
- head.tpl
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="utf-8"> <title>Kiírás</title> </head> <body>
- index.tpl
<form action="terulet.php" method="get"> <label>Alap</label> <input type="text" name="alap"> <br> <label>Magasság</label> <input type="text" name="magassag"> <br> <button type="submit">Számít</button> </form>
- terulet.tpl
<p>Eredmény: {{ terulet }}</p>
- index.php
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/index.tpl'); echo file_get_contents('templates/foot.tpl');
- terulet.php
<?php $alap = $_GET['alap']; $magassag = $_GET['magassag']; $terulet = ($alap*$magassag)/2; echo file_get_contents('templates/head.tpl'); $page = file_get_contents('templates/terulet.tpl'); $page = str_replace('{{ terulet }}', $terulet, $page); echo $page; echo file_get_contents('templates/foot.tpl');
A feladat továbbfejlesztve
Ebben részben CSS-t rendelünk a weboldalainkhoz, és a területszámítást külön függvénybe és külön fájlba tesszük.
projekt/ |--css/ | `--style.css |--includes/ | `--haromszog.php |--templates/ | |--foot.tpl | |--head.tpl | |--index.tpl | `--terulet.tpl |--index.php `--terulet.php
- css/style.css
#content { background-color: orange; margin: 5%; padding: 20px; } label { display: inline-block; width: 70px; } #about { margin-top: 20px; }
- includes/haromszog.php
<?php function szamitTerulet($alap, $magassag) { return ($alap*$magassag)/2; }
- head.tpl
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="utf-8"> <title>Kiírás</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div id="content">
- index.tpl
<form action="terulet.php" method="get"> <label>Alap</label> <input type="text" name="alap"> <br> <label>Magasság</label> <input type="text" name="magassag"> <br> <button type="submit">Számít</button> </form>
- terulet.tpl
<p>Eredmény: {{ terulet }}</p>
- index.php
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/index.tpl'); echo file_get_contents('templates/foot.tpl');
- terulet.php
<?php include 'includes/haromszog.php'; $alap = $_GET['alap']; $magassag = $_GET['magassag']; $terulet = szamitTerulet($alap, $magassag); echo file_get_contents('templates/head.tpl'); $page = file_get_contents('templates/terulet.tpl'); $page = str_replace('{{ terulet }}', $terulet, $page); echo $page; echo file_get_contents('templates/foot.tpl');