Smarty sablonkezelő rendszer – IV.

Most, hogy elérkeztünk a 4. fejezethez (és leraktuk az alapokat), ideje praktikus dolgokat is csinálnunk végre. Első lépésben megoldjuk oldalunk központosított felületkezelését (legalábbis lerakjuk az alapjait). Ehhez felhasználjuk, az include nevű beépített függvényt, ennek segítségével képesek vagyunk (mint már láttuk) sablonunkhoz újabb sablonokat csatolni. Érdemes tudni, hogy a behúzott sablonokban is érvényes az összes sablonváltozónk, de új változókat is hozhatunk létre amelyek csak a behúzott sablonban elérhetőek. Php-részbe beleraktam a megjegyzéseket, remélem érthetőek, lássuk akkor a macit, először a php-s rész:

<?php

require(‘./libs/Smarty.class.php’);

/* konfig szakasz */

// ring Theme konfigja
$config[‘ring’][‘path’]="./Themes/ringNew";

/* smarty inicializalasa */
$smarty=new smarty;

/* valtozok hozzarendelése */
//oldal neve
$smarty->assign(‘title’,’Smarty Tesztoldal felület beállítás központi helyrol(példa8)’);
// konfig beillesztese egyenlöre manuálisan
$smarty->assign(‘config’,$config[‘ring’]);

/* megjelenítés */
$smarty->display(‘temp8.tpl’);

?>

létrehoztunk egy config nevű asszociatív tömböt, egyenlőre ebben egy útvonal adat árválkodik.

// ring Theme konfigja
$config[‘ring’][‘path’]="./Themes/ring";

amit átküldünk a sablonnak

$smarty->assign(‘config’,$config[‘ring’]);

itt kerül a tömb átadásra nevű (de csak a ring nevű), ezzel ki is végeztük a php-és részt jönnek a sablonok, először az alapsablon.

<html><head><title>{$title}</title></head>
<body style="margin:0px;background-color:black;">
{include file="`$config.path`/header.tpl" path="./templates/`$config.path`/"}

<div style="background-color:white" />

{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

</div>

{include file="`$config.path`/footer.tpl" path="./templates/`$config.path`/"}
</body>
</html>

Láthatjuk, hogy megváltozott az include. Most már a motorból nyeri a paramétereit, nincs bedrótozva a fej, ill. lábléc útvonala (a body-ban található attribokat legközelebb eltávolítjuk és alkotunk egy css fájlt nekik), nézzük közelebbről…

{include file="`$config.path`/footer.tpl" path="./templates/`$config.path`/"}

Ez a lábléc kódja, látható a becsatolt $config megjelenítése, figyeljünk a ` -jelre (bővebben). Itt lehet a miértekre választ kapni), majd létrehozunk a csak a becsatolt sablonban látható változót ez a path (oka amiért így kell eljárnunk, hogy a smarty a sablonokat a templates/-ből veszi de a végleges oldal útvonalai a smarty/ alapkönyvtárból értendőek a *.php oldak innen futnak le, tehát a becsatolt sablonokba be kell rakni a templates/-et külön, azaz /smarty/temp8.php -hez képest a behúzott sablonok csatolt része (a jpg-k) a templates/`$config.path`/-ban helyezkednek el) és akkor a fej ill lábléc

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="{$path}/1.jpg" width="372" height="146" /></td>
<td width="100%" background="{$path}/ring.jpg"></td>
<td><img src="{$path}/2.jpg" width="564" height="146" /></td>
</tr>
</table>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" height="140" align="center" valign="bottom"background="{$path}/3.jpg"><img src="{$path}/smarty.jpg" width="438" height="68" /></td>
</tr>
</table>

látható az átvitt {$path} sablonváltozó használata

példa: http://free.srv.hu/i/x/ixedik/smarty/temp8.php
forrás: http://ixedik.srv.hu/smarty/pelda8.rar

Ezzel megteremtettük az alapokat a felületcserés rendszerünkhöz, látható hogy minden felület adata egy helyen kerül rögzítésre, ill. egy helyen kell csak változtatni az új felület felvitelekor (következik a css-elkészítése meg a fokozódó izgalmak :) ).

Utoljára lássuk a végső html kódot is (most még kicsi lehet)

<html><head><title>Smarty Tesztoldal felület beállítás központi helyrol(példa8)</title></head>
<body style="margin:0px;background-color:black;">

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="./templates/./Themes/ringNew//1.jpg" width="372" height="146" /></td>
<td width="100%" background="./templates/./Themes/ringNew//ring.jpg"></td>
<td><img src="./templates/./Themes/ringNew//2.jpg" width="564" height="146" /></td>
</tr>
</table>

<div style="background-color:white" />

2004-10-27 14:05:36

</div>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" height="140" align="center" valign="bottom"background="./templates/./Themes/ringNew//3.jpg"><img src="./templates/./Themes/ringNew//smarty.jpg" width="438" height="68" /></td>
</tr>
</table>

</body>
</html>

Szépen látható, hogy minden beillesztésre került.

Szerző: toxin

Fórumunkba várjuk a cikkhez kapcsolódó kérdéseket és megjegyzéseket!

Hugyecz Görgy (Harder)
20+ éve munkám és hobbim is az online világhoz köt. Az utóbbi 10+ évben leginkább keresőopimalizálás (SEO) témában tevékenykedem, mellette pedig Google Ads és Facebook PPC fronton is segítem ügyfeleimet. Korábban 10+ évig webgrafika, sitebuild, weboldal készítés témakörben mozogtam.

6 HOZZÁSZÓLÁS

  1. Szia, sajnos tényleg nem, a sok év alatt elérhetetlenné váltak ezek a fájlok, sajnos anno nem mentettem le őket e honlap szerverére. :S

  2. tudna vki abban segiteni, hogyan tudok egy kulso, más domainon levo file tartalmat megjeleniteni adott oldalon smartyban? (pl van 3 oldalam es mindenhol ugyanaz a aszf van, de nem szeretnem 3 kulombozo helyen szerkeszteni ha megoldhato h 1 helyrol huzza be mind3 oldal)
    pl egy .html, .txt. vagy barmilyen egyéb kulso filet. az includos megoldások nem működnek és erre nem találtam konkrét példát sehol, pedig elég sokat googliztam.
    előre is köszi!

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét