Typo3 Bednarik.org

Template Setup

Config

Objekt config je objektem všeobecných nastavení. Jako i jinde má tento některé nastavení víceméně zbytečné, jiné užitečné. K těm užitečným patří:

config.doctype = xhtml_trans
Nastaví doctype dokumentu. Možné hodnoty jsou xhtml_trans, xhtml_strict, xhtml_frames, xhtml_11, xhtml_2, none

config.metaCharset = UTF-8
Nastaví kódování v meta tagu v hlavičce HTML stránky na danou hodnotu.

config.htmlTag_langKey = cs
Nastavnte, pokud si přejete uvést do tagu html i kód použitého jazyka. Jinak bude defultně en.

config.inlineStyle2TempFile = 1
Některé extensions vkládají do HTML své CSS. Defaultně se sem vkládá inline - přímo do zdrojového kódu stránky. Toto nastavení uloží toto CSS do souboru a ten nalinkuje ve zdrojáku.

config.removeDefaultJS = 1
Do zdrojáku se standardně také vkládají určité JavaScripty. Toto nastavení je odstraní, bohužel to ale nemá vliv na další objekty. Všechny menu automaticky odkazují na JavaScript, který je ale tímto nastavením vymazán. Na to je nutné dát pozor.

config.xhtml_cleaning = all
Vyčistí kód tak, aby byl xHTML transitional validní. Velmi užitečné.

config.language = cz
Nastaví jazyk stránky. Nutné pro správné rozlišení jazyku webu. Třeba kvůli automaticky vkládaným textům, které podle tohoto rozeznají v jakém jazyce se mají vložit.

config.index_enable = 1
Pokud používáte fulltextové vyhledávání, musíte zapnout. Jinak zbytečné.

Page

Hlavní objekt page tvoří vlastní www stránku. Jeho podobjekty jsou poté částmi stránky.

Nejprve si vytvoříme proměnnou typu page.
page = PAGE

Kvůli podpoře framů je nutné jí nastavit vlastnost typeNum. Pokud framy nepoužíváme, bude její hodnota 1.
page.typeNum = 0

Abychom měli jistotu, že tag body bude bez atributů, raději jej napevno zadáme.
page.bodyTag = <body>

Jestliže chceme připojit ke stránce stylesheet, lze použít toto nastavení.
page.stylesheet = style.css

Lepší je ale použít následující nastavení, pomocí něj můžeme do hlavičky stránky vložit libovolný obsah, my jej využijeme pro připojení stylsheetu.
page.headerData.1 = TEXT
page.headerData.1.value (
<style media="all" type="text/css">
@import "style.css";
</style>
)

Samozřejmě tímto způsobem může připojit k hlavičce stránky i další objekty, stačí nahradit číslici 1 jinou. Zde jsme místo přiřazení pomocí "=" použili uzavření textu do závorek. Výhoda je ta, že se takto zachová formátování, tzn. text bude opravdu na 3 řádcích a ne pouze na jednom jak by tomu bylo při použití "=".

Template

Prvním objektem stránky bude objekt TEMPLATE. Tento objekt je objektem šablony, kterou jsme si již dříve vytvořili.
page.10 = TEMPLATE

Další kód upřesní nastavení šablony
page.10 {
template = FILE
template.file = template1.html
workOnSubpart = DOCUMENT_BODY
}
S takvouto syntaxí jsme se ještě nestetkali. Přiblížit by se to dalo pascalovskou (delphi) ekvivalencí
with (page.10) do begin ... end;

Pomocí řádku template = FILE řekneme, že šablona je uložena v souboru.

Dále řekneme, kde soubor hledat template.file = template1.html

A v poslední řadě řekneme, že chceme pracovat s obsahem mezi markery DOCUMENT_BODY (workOnSubpart = DOCUMENT_BODY), které jsme si definovali v šabloně - jsou umístěny za otevírací značkou BODY a před koncovou značkou BODY.

Když si nyní zobrazíme stránky v prohlížeči, uvidíme, že naší šabloně zmizel všechen obsah mezi markery DOCUMENT_BODY a byl nahrazen obsahem generovaným Typem. Vše mezi těmito markery bylo naopak zachováno.

Nyní se pustíme do definování jednotlivých objektů, které tvoří stránku. Ukážu zde objekty, které tvoří právě tento web a uvedu možnosti jejich dalších nastavení.

Menu

Vytvoříme si menu 1. úrovně, které si umístíme do dočasné proměnné m.
m = HMENU
m.1 = TMENU
m.1.noBlur = 1
m.1.NO.allWrap = |
m.1.ACT = 1
m.1.ACT.ATagParams = class="act"

Proměnná m bude typu HMENU. HMENU je rodičem všech druhů menu (TMENU, GMENU, IMGMENU ...) a umožňuje pod sebou vytvořet libovolnou kombinaci těchto menu.

Naše menu bude mít pouze jednu úroveň a proto HMENU pod sebou bude obsahovat pouze jeden objekt - TMENU (textové menu)

Protože jsme na začátku v šabloně zrušili vložení defaultních JavaScriptů musíme zakázat přidávání kódu onclick="blur(this)" ke všem odkazům v menu - m.1.noBlur = 1

Základním podobjektem všech druhů menu je objekt NO. Značí položku menu v normálním stavu. Další podobjekty jsou ACT, RO, CUR, IFSUB a další. Tyto se musí ovšem inicializovat, jak je vidět v našm příkladu.

Vlastnost allWrap značí obalení všech odkazů menu. My je nechceme obalovat ničím, proto toto nastavení necháme prázdné. Chtělo by se namítnout, že to tu tedy ani nemusí být, ano nemusí, ale je potřeba inicializovat alespoň jednu vlastnost NO, stejně tak bychom mohli použít m.1.NO.ATagParams = Chceme použít jiné nastavení pouze pro aktivní odkaz a proto inicializujeme objekt ACT (active) m.1.ACT = 1 a aktivnímu linku chceme přidat atribut class - m.1.ACT.ATagParams = class="act"

Teď vložíme menu do stránky tak, že nahradíme markery MENU1.
page.10.subparts.MENU1 < m

Menu 2.úrovně bude kopií menu 1.úrovně pouze celé menu zabalíme do tagu div a nastavíme mu vstupní úroveň 1. To znamená, že menu nebude aktivní pro hlavní stránky bez podstránek a odkazy v něm budou až v 2.úrovni stránek webu.
mm < m
mm.1.wrap =


mm.entryLevel = 1

Opět vložíme menu do stránky místo markerů MENU2
page.10.subparts.MENU2 < mm

Na závěr si vytvoříme menu v patičce stránky. Stránky na které bude toto menu ukazovat jsme umístili do speciálního typu stránky - složky. Tu lze vidět pouze v BackEndu a obsahuje pod sebou objekty různých typů. V našem případě další stránky.

f = HMENU
f.special = directory
f.special.value = 157
f.1 = TMENU
f.1.noBlur = 1
f.1.NO.allWrap = |*|| │ |*||

Proměnná f bude opět typu HMENU, ale nyní bude toto menu speciální. Jeho obsahem budou stránky umístěné ve složce (directory), která má ID číslo 157. První úrovní tohto menu bude menu textové a jeho položky budou obalené něčím speciáním. Poslední položka nebude obalena ničím a ostatní položky budou obaleny znakem |. Tento znak sem nelze vložit přímo, protože by se bil se znakem, který nám rozlišuje co bude před a co po. Je zde proto vložen ve formě entity. Nakonec si opět nahradíme markery menu.
page.10.subparts.FOOMENU < f

Obsah

Protože jsme si již vložili statickou šablonu content(default) můžeme použít objekt styles, který nám vloží obsah do stránky. Obsahy můžou být 4 - levý, hlavní, pravý a okraj.
page.10.subparts.CLEFT < styles.content.getLeft
page.10.subparts.CRIGHT < styles.content.getRight
page.10.subparts.CCENTER < styles.content.get
Okraj bychom vložili pomocí styles.content.getBorder

 

Tímto máme šablonu defakto hotovou. Další obsah nastaví formátování výstupu tak, aby byl trochu hezčí. Jeho pochopení by bylo na delší seriál.

 

You can support development of CoolUri extension (or anything else) by donation.

 
XLINE hosting + Typo3 = ideální kombinace