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!

Kapcsolódó bejegyzések:
  • A devpapers.com -on találtam egy hasznos leírást, amiben egy olyan kódot mutattak be, mely segítségével egy adott könyvtárból véletlenszerűen lehet képet választ …

  • Biztos találkoztál már olyan oldallal, mely megmutatta a látogatók aktuális IP-jét és/vagy HOST-ját. A módszer nem túl bonyolult, mint az a leírásból is kider&uu …

  • Nyisd meg a képet, melyet módosítani szeretnél. 2. Készíts egy másolatot róla (duplicate)3. Tedd fekete-fehérré a képet (Desaturate) 4. A FF layer-ről …

  • Az alábbi "color dodge"effektet könnyű használni, látványos hatást érhetsz el vele, szóval érdemes e tutorialra pár perc figyelmet szentelni. :)1. …

  • A szerverről történő oldal-letöltéseket számolja. A működéshez PHP-t futtató szerverre lesz szükségünk. A scriptet be lehet illeszteni a …

A cikket beküldte: Harder (http://blog.harder.hu)

6 hozzászólás

  1. TD says:

    köszönöm szépen, sokat segitettél ezzel. :)

  2. csiber says:

    Nem müködnek a linkek.

  3. Harder says:

    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

  4. cyb says:

    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!

  5. cyb says:

    kozbe megtaláltam,
    akit érdekel: http://www.smarty.net/docsv2/en/language.function.fetch

  6. Harder says:

    Köszi hogy megosztottad és nem hagytad a kérdést megválaszolatlanul.

Szólj hozzá
a Smarty sablonkezelő rendszer – IV. c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>