Template váltása PHP-val


A php segítségével könnyen megoldható, hogy egy lapon váltogatni lehessen a stílusok és template-k között (attól is függ hogy a css-ben csak a formázásra vonatkozó részeket tartjuk, vagy mondjuk CSS segítségével építettük fel az egész lapszerkezetet), erre találsz az itt következő leírásban egy lehetséges megoldást.

Hozz létre egy setup.php fájlt, melynek a tartalma az alábbi legyen!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
session_start();
 
if ( ! session_is_registered("style") )
{
session_register("style");
$_SESSION['style'] = "style1"; // set default stylesheet to use
 
$user_style = $_SESSION['style'];
}
else
{
$user_style = $_SESSION['style'];
}
?>

Hozz létre egy új lapot style_setup.php néven, a tartalma pedig legyen

1
2
3
4
5
6
7
<?
session_start();
 
$_SESSION['style'] = $_GET['style'];
 
header("Location: ".$_SERVER['HTTP_REFERER'] );
?>

Hozz létre egy új lapot bármilyen néven (mondjuk legyen p.php)!

A doctype előtt pedig szúrd be az a részt:

1
<? require"./setup.php"; ?>

Még mindig a p.php fájlba illeszd be

1
<link href="<? echo $user_style ?>.css" rel="StyleSheet" type="text/css">

kódot a és tag-ek közé

1
2
3
<head>
<link href="<? echo $user_style ?>.css" rel="StyleSheet" type="text/css">
</head>

Az a kódrészlet a szokásos link rel Stylesheet részlet helyett van a kódban.

A lépések vége fele közeledve már csak annyit dolgod maradt, hogy a lap (p.php) body részébe tegyél be selectort, amire kattintva váltani lehet majd a template-t.

1
2
3
<a href="style_setup.php?style=style1">Style 1</a> |
<a href="style_setup.php?style=style2">Style 2</a> |
<a href="style_setup.php?style=style3">Style 3</a>

Utolsó lépésként pedig készítsd el a CSS-eket, amik a template-eket fogja tartalmazni.

Nevezd el őket így:

  1. style1.css
  2. style2.css
  3. style3.css

A script letöltése

A template cserén kívül a fenti megoldás felhasználható pl. a nyelvek cseréjéhez is

  • lang_en.php
  • lang_fr.php
  • lang_ge.php

A tutorialban lévő mintafájlokat tartalmazó csomag letöltése: cs.zip

Forrás: scriptsinclude.com

Szerző: Harder (http://blog.harder.hu)

 

4 hozzászólás
a Template váltása PHP-val c. bejegyzéshez

  1. Jani ()

    Helló,
    Régóta keresek valami tutoriált, ahol megtudhatom, hogy miként lehet úgy megcsinálni egy template-t, hogy a lapszerkezetet is CSS-sel csinálom meg… CSS-sel tudok formázni, sőt kell is, de hogy építem fel vele az oldalt?

    Vagy van már ilyen tutoriál, csak én nem találom?

    (olyat szeretnék csinálni mint a joomla-nak van, hogy a template fájlok átírásával tudom módosítani az oldal teljes elrendezését is, nem kell hozzá módosítanom mindent… )

  2. bubu001 (http://legjobbpalinka.hu)

    A fenti példa tökéletes erre. megcsinálod az alap html fájlt (php) és csinálsz hozzá a design tervből css-eket.
    De úgy érzem ennél több kérdésed van… Ha tudsz css alapú designt csinálni, akkor elvileg a fentiek már egyértelműek kellenek hogy legyenek, mégha a php-hoz nem is értesz.

  3. Jani ()

    Igen, de ez a fenti példa csak a css-t változtatja meg, nem… azaz, hogy melyiket töltse be az oldal, az pedig nem adja meg a modulok elhelyezkedését… ?

    És nekem az a gondom, hogy nem tudom megoldani azt, hogy ha “A” designben a baloldalon van egy menü, akkor “B” designben alul van a menü és ehhez csak a template fájlt keljen módosítani, ne pedig újraírni az egészet…

  4. Ben (http://bladesector.hu)

    a CSS-ben kell meghatároznod hogy az a modul hol legyen, és akkor CSS váltáskor a modul is annak megfelelően változik.

Szólj hozzá Te is
a Template váltása PHP-val c. bejegyzéshez

Connect with Facebook

- 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>