WebToDate/Extenze/Extenze pro vkládání obsahu polí jiných objektů
Funkcionalita
Extenze je určena pro zprávy, obecně řečeno nahrazuje ve stránce značku obsahující ID objektu (zprávy či fragmentu) zvoleným polem z této zprávy či fragmentu. Ve stránce s celým textem dané zprávy tak lze jednoduše zobrazit obsah nějakého pole struktury jiné zprávy, kde tato vkládaná část jiné zprávy se identifikuje podle ID.
Instalace
Do souboru config/_modules_inc.php vložte následující kód:
// - extenze pro vkladani obsahu poli jinych objektu
$arrModules[] = 'nobjects/_insertfield_inc.php';
Ujistěte se, že v instalaci WebToDate existuje soubor /scripts/modules/nobjects/_insertfield_inc.php.
Reference
Extenze vyhledává v kódu zprávy či stránky značky typu
<!--WTD_INSERTFIELD(ID_objektu, název pole)-->
Prvním parametrem je ID zprávy či fragmentu, druhý parametr je název pole tak jak se používá v klíčových slovech pro styly pro zprávy. Například
<!--WTD_INSERTFIELD(1234, TITLE)-->
vloží nadpis zprávy či fragmentu s ID=1234.
Pro toto vkládání dále platí:
- Název pole v druhém parametru se nejprve vyhledává ve standardní množině polí databáze zpráv, pak v rozšiřující struktuře databáze zpráv, lze takto tedy vkládat i pole rozšiřující struktury.
- Pokud má pole příznak automatického řádkování (tělo zprávy nebo pole rozšiřující struktury, které tento příznak používají) a automatické řádkování je zapnuto, je obsah pole před vložením zformátován dle hodnoty tohoto příznaku.
Pro ladící účely je chování extenze vzhledem k nahrazování značky kódem následující:
- Pokud je ID zprávy či fragmentu v pořádku, objekt je ve stavu Publikováno nebo Archivováno a pole v druhém parametru je dle názvu identifikováno, je značka nahrazena příslušným kódem.
- Pokud je první parametr nula nebo prázdný řetězec a pole v druhém parametru je dle názvu identifikováno, je značka nahrazena prázdným řetězcem.
- Ve všech ostatních případech (ID neexistující nebo nepublikované zprávy či fragmentu, název neexistujícího pole v druhém parametru apod.) je značka v HTML kódu stránky ponechána – administrátor tak může prověřit, proč se očekávaný obsah nezobrazuje.
Kromě ID lze použít i zkratku, použitá značka má pak tvar
<!--WTD_INSERTFIELD(ID_objektu, název pole, zkratka_objektu)-->
tedy např.
<!--WTD_INSERTFIELD(0, TITLE, 'mojezprava')-->
kde mojezprava je řetězec zadaný do pole Zkratka zprávy.
Objekt se v takovém případě vyhledává tak, že nejprve se hledá podle zkratky, pokud není objekt nalezen, hledá se podle zadaného ID.
Příklad využití
Uvažujme např. požadavek zobrazování různých zpráv, např. informací o produktech, kde u každé zprávy se má vedle popisného textu zobrazit blok s vysvětlivkami či popisky použitých ikon. Přitom je požadavek zobrazovat zprávy s využitím jedné stejné předlohy a používá se několik typů bloků s vysvětlivkami. Pro každou zprávu má smysl zobrazit právě jeden z bloků vysvětlivek, typ tohoto bloku má vybrat uživatel vkládající zprávu.
Založíme nové pole rozšiřující struktury databáze zpráv, např. VYSVETLIVKY. Vytvoříme několik WebToDate fragmentů, každý fragment obsahuje v těle kompletní HTML kód jednoho bloku s vysvětlivkami. Pro pole VYSVETLIVKY nadefinujeme číselník, kde systémový název odpovídá názvu typu bloku s vysvětlivkami, hodnota odpovídá ID příslušného fragmentu.
Uživatel vkládající zprávu pak ve formuláři pro zprávu pouze pomocí rozevírací nabídky zvolí příslušný typ vysvětlivek. Tím v podstatě volí, který fragment se do stránky vloží.
V předloze pro zprávu použijeme kód
<!--WTD_INSERTFIELD(<!--WTD_D(VYSVETLIVKY)-->,BODY)-->
Tento kód vloží do stránky se zprávou tělo fragmentu vybraného redaktorem výše uvedeným postupem.