< index >

Jak změnit a upravit vzhled (layout) u phpRS systému

Níže popsaný princip výměny a úpravy layoutů platí pouze pro layouty určené pro phpRS verze 2.5.0 a vyšší! - phpRS v2.3.5 a nižší verze používají jiný způsob konfigurace a úpravy vzhledu.

Co znamená pojem "phpRS layout"

Pojem "phpRS layout" nebo také "phpRS layout engine" označuje skupinu souborů (obrázků, css souborů a php skriptů), která v rámci redakčního a informačního systému phpRS zajišťuje vytvoření celkového vzhledu generovaného webu. Tento přístupu ke generování vzhledu výsledného webu se objevil již v phpRS verze 1.1.0 a od začátku byl a je postaven na myšlence oddělení samotných dat od vzhledu.

V současné době je "phpRS layout engine verze 2.7" (phpRS layout engine má své vlastní číslování verzí; tudíž nemusí být shodné s číslem verze samotného redakčního systému phpRS) založen na šablonovém systému (globální a článkové šablony), mezi kterými lze jednoduše přepínat a měnit tak okamžitě vzhled webu.

V rámci jedné "phpRS layout engine" verze jsou jednotlivé vzhledy kompatibilní (bezproblémově zaměnitelné). V praxi to tedy znamená, že si můžete pro svou verzi phpRS systému stáhnout předem vytvořené odpovídající "phpRS layouty" (viz. tabulka Tabulka důležitých změn) a použít je v rámci své instalace.

Jak již bylo výše naznačeno, každá verze redakčního a informačního systému phpRS využívá ke generování vzhledu tzv. "phpRS layout engine" (zkráceně též označováno jako: "phpRS layout" nebo "phpRS vzhled"). Vzhledem ke skutečnosti, že vývoj samotného redakčního systému probíhá jinou rychlostí, než vývoj "phpRS layout enginu", bylo rozhodnuto o odděleném číslování verzí phpRS systému a phpRS layoutu. Tento přístup umožňuje rozlišit, pro kterou verzi phpRS systému je příslušný phpRS layout určen. Přehled platných kombinací "phpRS systém + phpRS layout" naleznete v tabulce Tabulka důležitých změn v kapitole Základní informace o jednotlivých verzích phpRS.

Funkčnost jakýchkoliv jiných kombinací "phpRS systém + phpRS layout", než jaké jsou uvedeny v tabulce důležitých změn, není zaručena (respektive je téměř vyloučena)!

Jak vyměnit současný "phpRS layout" za jiný

Od "phpRS layout enginu verze 2.3" (nebo-li od phpRS systému verze 2.5.0) se tento konfigurační úkon přesouvá do webového administračního rozhraní - konkrétně do sekce "Konfigurace".

Celý proces výměny layoutu lze rozdělit do dvou fázi: a) instalace nového layoutu, b) aktivace nového layoutu. Obě fáze jsou popsány v kapitole První spuštění phpRS systému - Instalace layoutu.

Kde mohu získat nějaké hotové "phpRS layouty"?

Všechny oficiální předpřipravené "phpRS layouty" si můžete stáhnout v databance phRS layoutů na phpRS: community web.

Veškeré dostupné "phpRS layouty" jsou distribuovány prostřednictvím souborových balíčků, které jsou vždy zvlášť dostupné pro každou verzi "phpRS layout enginu".

Základní principy tvorby vlastního layoutu

Umístění layoutu:

Každý layout by měl být vždy umístěn ve vlastním adresáři v adresáři "image"; přičemž jeho, pokud možno, jedinečný název by měl být využit při pojmenování adresáře daného layoutu.

Relativní cesta k takto umístěnému layoutu pak vypadá následovně: "image/jmeno_layoutu/".

Pro bezproblémovou instalaci nových layoutů do phpRS systému je velmi důležité zachovat adresář "image" jako domovský adresář pro jednotlivé layouty.

Pravidla pro tvorbu vlastního layoutu:

Vytváříme vlastní nový layout

Typy souborů v layoutu:

lengine.php

$layoutversion="Layout Engine: FreeStyle verze 2.3.0 (verze b)";

Proměnná $layoutversion obsahuje informace o jménu, typu a verzi příslušného layoutu.

$layoutcss="<link rel=\"stylesheet\" href=\"image/freestyle/freestyle.css\" type=\"text/css\">";

Proměnná $layoutcss obsahuje HTML tag "link" připojující externí CSS styl příslušného layoutu k vygenerované stránce.

$vzhledwebu = new CLayout(); // inic. vzhledove tridy

switch ($rs_main_sablona):
   case "base": // zakladni sablona
     $vzhledwebu->NactiFileSablonu("image/freestyle/fs_base.sab");
     $vzhledwebu->UlozPro("title",$wwwname);
     $vzhledwebu->UlozPro("datum",Date("d. m. Y"));
     $vzhledwebu->UlozPro("banner1",Banners_str(1));
     $vzhledwebu->UlozPro("banner2",Banners_str(2));
     break;
... další kód ...
endswitch;

$vzhledwebu->Inic();

Rutina určená k identifikaci a zpracování vybrané globální šablony. Zvolená globální šablona je identifikována na základě hodnoty proměnné $rs_main_sablona, která při správně vytvořeném layoutu odpovídá jedné z předpřipravených možností.

Samotné zpracování globální šablony zajišťuje vzhledová třída "CLayout()", která po načtení globální šablony (funkce NactiFileSablonu(cesta_ke_globalni_sablone);) a všech definic proměnných hodnot použitých v globální šabloně (funkce UlozPro(nazev_promenne,hodnota_promenne);) provede kompilaci šablony a zobrazí výsledek. Proměnné použité v šabloně mohou nabývat jakoukoliv hodnotu (řetězec nebo číslo). Více informací o šablonových proměnných najdete v části "Globální šablony".

function Blok3($bnadpis,$bdata)
{
echo "<!-- Blok -->
<table cellSpacing=\"0\" cellPadding=\"3\" width=\"100%\" bgColor=\"#FFFFFF\" border=\"0\">
<tr><td class=\"z\">\n";
echo $bdata; // data
echo "</td></tr>
</table>
<br />\n";
}

Funkce "Blok1(...), Blok2(...), atd." jsou určeny k definici vzhledu bloků, které jsou v designerské části administrace phpRS systému (sekce "Úprava bloků") přiřazovány jednotlivým sloupců a vytváří tak finální podobu webu. Více informací o blocích najdete v kapitole: "Co je to "blok" a k čemu slouží?"

function ObrTabulka()
{
echo "<div class=\"modryram\">
<div align=\"center\" class=\"z\">\n";
}

function KonecObrTabulka()
{
echo "</div>
</div>
<p></p>\n";
}

Funkce "ObrTabulka() a KonecObrTabulka()" určují podobu ohraničení základní obsahové části.

install.php

Soubor "install.php" zabezpečuje funkci instalačního souboru příslušného layoutu a bez jeho existence a správného nastavení nelze provést korektní instalaci příslušného layoutu do phpRS systému. Soubor je rozdělen na dvě části: a) definice globálních šablon, b) definice článkových šablon.

// ---[globalni sablony]---------------------------------------------------------------
// 1. sablona
$rs_gsab_nazev[0]="FreeStyle";    // jmeno layoutu
$rs_gsab_typ[0]="Base - 3 sloupcový";    // jmeno, typ sablony
$rs_gsab_ident[0]="base";    // indetifikacni retezec (aplikace v souboru lengine.php)
$rs_gsab_soubor[0]="image/freestyle/lengine.php";    // cesta k souboru se sablonou
$rs_gsab_adresar[0]="image/freestyle/";    // cesta k layout adresari
... další kód ...
// ---[konec - globalni sablony]-------------------------------------------------------

Nedílnou součástí tohoto souboru jsou také komentáře, které vám pomohou určit význam jednotlivých proměnných.

// ---[clankove sablony]---------------------------------------------------------------
// 1. sablona
$rs_csab_nazev[0]="FreeStyle standard";    // jmeno sablony
$rs_csab_soubor[0]="image/freestyle/cla_std.php";    // cesta k souboru se sablonou
... další kód ...
// ---[konec - clankove sablony]-------------------------------------------------------

Při definici jednotlivých šablon (globálních i článkových) nezapomeňte na skutečnost, že jednotlivé proměnné jsou uloženy v proměnných typu pole. V praxi tzn., že při definice každé nové šablony musíte hodnotu uvedenou v hranatých závorkách navýšit o hodnotu rovnající se číslu jedna. Toto pravidlo platí pro každou jedinečnou proměnnou zvlášť.

Například jméno 1. článkové šablony je uloženo v proměnné "$rs_csab_nazev[0]". Jméno 2. článkové šablony je již uloženo v proměnné "$rs_csab_nazev[1]", atd.

Článkové šablony

Každá jednotlivá článková šablona je uložena zvlášť v jedinečném PHP souboru, který vždy obsahuje čtyři možné varianty zobrazení článku (odpovídá nejnovější verzi phpRS systému číslo 2.8.0). Volba mezi těmito variantami probíhá prostřednictvím hodnoty speciální proměnné $rs_typ_clanku, kterou určuje sám phpRS systém dle nastavení zobrazovaného článku.

Poznámka autora: U phpRS verze 2.6.5 byly k dispozici pouze tři varinaty; konkréně: "kratky", "nahled" a "cely".

switch ($rs_typ_clanku):
   case "kratky":
// ------------------------------------- [kratky clanek] -------------------------------------
... kód definující vzhled krátkého článku ...
// --------------------------------- [konec - kratky clanek] ---------------------------------
   break;
   case "nahled":
// ----------------------------------- [dl. clanek nahled] -----------------------------------
... kód definující vzhled náhledu na dl. článek ...
// ------------------------------- [konec - dl. clanek nahled] -------------------------------
   break;
   case "cely":
// ------------------------------------ [dl. clanek telo] ------------------------------------
... kód definující vzhled celého dl. článku ...
// -------------------------------- [konec - dl. clanek telo] --------------------------------
   break;
   case "zakazany":
// ------------------------------------ [zakazany clanek] ------------------------------------
... kód definující vzhled celého dl. článku ...
// -------------------------------- [konec - zakazany clanek] --------------------------------
   break;
endswitch;

Čtyři varianty zobrazení článku:

Velmi důležitou součástí každé článkové šablony je práce s článkovou třídou "CClanek()", která zprostředkovává přístup k datům spojených s aktuálně zpracovávaným (zobrazovaným) článkem (více informací se dozvíte v kapitole: "Článkové šablony: Nastavení a práce se třídou pro výpis článků"). - Zobrazení konkrétní informace lze pak docílit dotazem na funkci "$GLOBALS["clanek"]->Ukaz(X)", kde hodnota parametru X jednoznačně identifikuje požadovanou informaci. Například volání funkce "Ukaz(...)" s parametrem "titulek" - Ukaz("titulek") - vrátí řetězech obsahující název článků.

Poznámka autora: Níže uvedený příklad obsahuje i ukázku možného okolního HTML a PHP kódu včetně způsobu aplikace.

<h1 class="cla-nadpis"><? echo $GLOBALS["clanek"]->Ukaz("titulek"); ?></h1>

Pokud chcete některou ze zobrazovaných informací odstranit z článkové šablony, tak ji stačí jednoduše vymazat. Tedy jinak řečeno, stačí vymazat konkrétní volání funkce "Ukaz(...)" a případný, s danou informací související, okolní HTML (případně PHP) kód.

Globální šablony

Globální šablona je obyčejný textový soubor, který má standardně příponu "sab". Hlavním úkolem globální šablony je vytvořit základní vzhled generovaného webu (včetně HTML hlavičky, patičky, atd.).

Poznámka autora: Volba aktuálně používané šablony se provádí v administračním rozhraní v sekci "Konfigurace". Toto jednotné nastavení globální šablony pro celý phpRS systém lze velmi jednoduše "manuálně přenastavit" zásahem do PHP kódu (= změna hodnoty proměnné "$rs_main_sablona") u souboru, jehož výsledek chcete prezentovat prostřednictvím jiné globální šablony. Tuto změnu musíte provést ještě před řádkem: "include($adrlayoutu);" (v případě phpRS verze 2.8.0 tzn. před řádkem "include_once("myweb.php");").

Každá globální šablona může obsahovat speciální "proměnné", které umožňují do šablony vložit dynamicky generované části stránky - např. aktuální datum, kdo má dnes svátek, atd. Tyto speciální proměnné se do šablony vkládají ve tvaru: <*promenna*>, přičemž "promenna" představuje název proměnné (= souvislý řetězec bez české diakritiky, mezer, čárek a jiných nevhodných interpunkčních znamének).

Proměnné se dělí na dvě skupiny:

Další informace

Články týkající se tvorby a nastavení aktuální verze "phpRS layout enginu":

Jak upravit vzhled phpRS systému
Jak na dobrý informační web
Jak změnit barevné spektrum odpovědí u anketního systému

Články týkající se tvorby a nastavení starších verzí "phpRS layout enginu":

Popis nového "layout enginu" verze 1.3
Vytvořte si svůj vlastní layout aneb soubor "lengine.php" pod lupou!
Vyberte si svůj layout aneb navštivte naši phpRS databanku layoutů!

< nahoru | index >