Visual PHP Developer Guide
Verze jádra: 1.7.6.762
© 2009 E-VISION International, s.r.o.
Visual PHP Developer Guide © 2009 E-VISION International, s.r.o. Děkujeme Vám, že jste si zakoupili náš produkt Visual PHP ™. Pevně věříme, že s ním budete spokojeni natolik, že si pozdější tvorbu prezentací bez něj už nedokážete představit. Dostává se Vám do rukou naprosto unikátní software, který nenaleznete nikde na světě v takovéto ucelené podobě. Jedná se o spojení částí všeho potřebného ke tvorbě internetových prezentací. Je to výsledek mnohaleté práce, kdy postupným nabalováním funkcí vycházejících z vlastních potřeb jsme se dostali do této fáze, kterou máte právě k dispozici. Tato fáze ovšem není konečná ... máme v hlavách plno dalších možných vylepšení, které budeme postupně zveřejňovat a vy jakožto plátci licence, máte jedinečné právo přístupu k update produktu. Dnes nedokážeme říci, jak velký obsah bude Visual PHP ™ nabízet, protože ty možnosti jsou nekonečné, víme ovšem, že se budeme snažit maximálně přiblížit potřebám trhu a všem trendům, které bedlivě sledujeme. Tato uživatelská příručka je věnována jak začínajícím Developerům, tak profesionálům a všem těm, kteří se právě rozhodli pracovat v našem produktu Visual PHP ™. V této verzi příručky se dočtete vše potřebné od prvních kroků tvorby Vaší internetové prezentace a základním seznámením s naším produktem, až po součásti, které naplno využívají náš produkt Visual PHP ™. Budou zde zjednodušeně vysvětleno vše důležité a je to takový první krok nováčků k tomu, stát se profesionálním developerem se vším všudy. Na konci této příručky je opět velmi zjednodušeně popsán příklad tvorby jednoduché prezentace, kde je vysvětleno krok po kroku, jak vlastně prezentaci vytvořit. Podle tohoto vzoru se naučíte základu. Dále už potom zvládnete sami pracovat a vytvářet Vaše prezentace, které budou naprosto podle Vaší fantazie. Vytvořeno : červenec 2009
E-VISION International s.r.o. Příkop 843/4 602 00, Brno Speciální poděkování : e-mail:
[email protected] web: www.e-vision.cz www.visual-php.com Obchodní oddělení : Petr Kočí j ednatel společnosti
Chtěl bych touto cestou poděkovat mé přítelkyni Michalce, která byla po celou dobu přípravy mou velkou oporou, která s obrovskou trpělivostí musela přečkat nespočetně hodin mé práce na tomto proj ektu. Která díky tomu zažila spoustu odříkání a ani přes všechny těžkosti, které j sem j í tímto připravoval, mě nepřestala zahrnovat láskou a pochopením. Moc ti za to vše děkuj i a slibuj i, že ti vše vynahradím.
tel: 602 115 986 e-mail:
[email protected] Technické oddělení : Bc. Tomáš Kočí j ednatel společnosti tel.: 606 579 615 e-mail:
[email protected]
Master Developer Dále chceme poděkovat všem těm, kteří nám zasílaj í svoj e připomínky a náměty na vylepšení Vašeho produktu, protože vše co děláme, děláme pro Vás. Team E-VISION International
Obsah
3
Obsah : Předmluva
Kapitola : I Instalace USB klíče
0
10
1 Instalace ................................................................................................................................... ovladačů 10 2 Změna ................................................................................................................................... hesla USB klíče 10 3 Instalace ................................................................................................................................... certifikátů 11
Kapitola : II Instalace Visual PHP™
18
1 Instalace ................................................................................................................................... nového projektu na server 18 Instalační skript .......................................................................................................................................................... 18 Spuštění instalace .......................................................................................................................................................... 18
2 Aktualizace ................................................................................................................................... jádra 32 3 Přenesení ................................................................................................................................... projektu na jiný server 48 Vygenerování.......................................................................................................................................................... instalačního souboru 48 Instalace projektu .......................................................................................................................................................... na jiný server 49
4 Odemknutí ................................................................................................................................... instalátoru pro další použití 67 5 Ruční................................................................................................................................... přenesení projektu na jiný server 68 6 Instalace ................................................................................................................................... velkých SQL souborů 71 7 Rekurzivní ................................................................................................................................... změna práv (chmod) souborů 79
Kapitola : III Administrace
89
1 Přihlášení ................................................................................................................................... pomocí USB klíče 89 2 Přihlášení ................................................................................................................................... pomocí jména a hesla 90 3 Popis................................................................................................................................... okna administrace 90
Kapitola : IV Základy tvorby prezentací
93
1 Vytvoření ................................................................................................................................... global layoutu 93 2 Vložení ................................................................................................................................... obsahu z databáze 95 3 Vkládání ................................................................................................................................... dalších layoutů 96
Kapitola : V Nastavení prezentace
101
Kapitola : VI Styly
105
1 Parametry ................................................................................................................................... stylů 105 2 Zpracování ................................................................................................................................... stylů 105 3 Přepínání ................................................................................................................................... stylů 106
Kapitola : VII Layouty
108
1 Parametry ................................................................................................................................... layoutů 108 2 Zpracování ................................................................................................................................... layoutů 109 © 2009 E-VISION International, s.r.o.
3
4
Visual PHP Developer Guide 3 Vložení ................................................................................................................................... vnitřního layoutu (Include Layout) 109
Kapitola : VIII Dynamický obsah
112
1 Vložení ................................................................................................................................... layoutu 112 2 Obsah ................................................................................................................................... tabulky databáze (Table Content) 112 3 Procházení ................................................................................................................................... stránek (Browse Pages) 116 4 Informace ................................................................................................................................... o čísle stránky (Page of Pages) 117 5 Výběr ................................................................................................................................... počtu položek na stránce (Items per Page) 117 6 Filtrace ................................................................................................................................... záznamů 118 7 Navigace ................................................................................................................................... 119 8 Menu ................................................................................................................................... 120
Kapitola : IX Šablony
127
1 Parametry ................................................................................................................................... šabon 129 2 Zpracování ................................................................................................................................... šablon 130 3 Podmínky ................................................................................................................................... v šablonách 130
Kapitola : X Tabulky
133
1 Přehled ................................................................................................................................... tabulek 133 2 Parametry ................................................................................................................................... tabulek 133 3 Master-Detail ................................................................................................................................... Tabulky 138 4 Multi-Detail ................................................................................................................................... tabulky 139 5 Tree................................................................................................................................... tabulky 140 6 Property ................................................................................................................................... tabulky 141
Kapitola : XI Pole tabulek
143
1 Přehled ................................................................................................................................... polí tabulky 143 2 Parametry ................................................................................................................................... polí tabulek 143 3 Virtuální ................................................................................................................................... pole 146
Kapitola : XII Komponenty
148
1 COMPONENT ................................................................................................................................... 148 2 HIDDEN ................................................................................................................................... 149 3 READONLY ................................................................................................................................... 149 4 UUID................................................................................................................................... 149 5 AUTOINCREMENT ................................................................................................................................... 150 6 TEXT................................................................................................................................... 150 7 TEXTAREA ................................................................................................................................... 151 8 CHECKBOX ................................................................................................................................... 153 9 CHECKGROUP ................................................................................................................................... 154 10 COMBOBOX ................................................................................................................................... 155 © 2009 E-VISION International, s.r.o.
Obsah
5
11 DATETIME ................................................................................................................................... 156 12 AUTOCALC ................................................................................................................................... 158 13 BROWSERS ................................................................................................................................... 159 14 CODE ................................................................................................................................... 160 15 COLOR ................................................................................................................................... 161 16 COMPONENTPROPERTIES ................................................................................................................................... 161 17 DETAILTABLE ................................................................................................................................... 162 18 DISPLAYTYPE ................................................................................................................................... 163 19 EDITGRID ................................................................................................................................... 164 20 EDITLIST ................................................................................................................................... 164 21 FILE................................................................................................................................... 165 22 GOOGLEMAP ................................................................................................................................... 167 23 HISTORY ................................................................................................................................... 169 24 HTMLAREA ................................................................................................................................... 169 25 LANGUAGE ................................................................................................................................... 170 26 IMAGE ................................................................................................................................... 171 27 LOOKUP ................................................................................................................................... 174 28 LOOKUPCHECKGROUP ................................................................................................................................... 176 29 LOOKUPTREE ................................................................................................................................... 177 30 PAGECONTROL ................................................................................................................................... 179 31 PERMISSIONS ................................................................................................................................... 179 32 PROGRESS ................................................................................................................................... 179 33 PROPERTIES ................................................................................................................................... 179 34 REMOTECOMPONENT ................................................................................................................................... 179 35 REMOTECOMPONENTGROUP ................................................................................................................................... 180 36 RSSPROPERTIES ................................................................................................................................... 180 37 TABLES ................................................................................................................................... 180 38 TABSHEET ................................................................................................................................... 180 39 URL ................................................................................................................................... 181 40 USERS ................................................................................................................................... 181 41 USERGROUPS ................................................................................................................................... 181 42 ADMINUSERS ................................................................................................................................... 181 43 ADMINUSERGROUPS ................................................................................................................................... 182
Kapitola : XIII Menu v administraci
184
1 Parametry ................................................................................................................................... položek menu v administraci 184
Kapitola : XIV Skripty
186
1 Parametry ................................................................................................................................... skriptů 186 2 Spouštění ................................................................................................................................... skriptů 186 © 2009 E-VISION International, s.r.o.
5
6
Visual PHP Developer Guide
Kapitola : XV Časové skripty
188
1 Parametry ................................................................................................................................... časových skriptů 188 2 Ruční ................................................................................................................................... aktivace časového skriptu 189
Kapitola : XVI Skripty na pozadí
191
Kapitola : XVII Vkládání komponent třetích stran
193
1 Vkládání ................................................................................................................................... JavaScript komponent 193
Kapitola : XVIII Sdílené objekty
195
1 Ukládání ................................................................................................................................... objektů 195
Kapitola : XIX Automatické parametry
197
Kapitola : XX Frontend dokumenty
199
Kapitola : XXI Databázová připojení
201
Kapitola : XXII Jazyky
203
1 Automatická ................................................................................................................................... detekce jazyka 203 2 Přepínání ................................................................................................................................... jazyků 203
Kapitola : XXIII Překlady
205
Kapitola : XXIV Správce procesů
207
Kapitola : XXV Terminál
209
Kapitola : XXVI SEO
211
1 SEO................................................................................................................................... mapování 211 2 Zamezení ................................................................................................................................... duplicitního obsahu 212 3 Hromadné ................................................................................................................................... generování SEO mapování 213 4 SEO................................................................................................................................... prohlížeč 213
Kapitola : XXVII Firewall
215
Kapitola : XXVIII Obrázky
217
1 Template ................................................................................................................................... Image 217 2 Změna ................................................................................................................................... velikosti 220 3 Vodoznak ................................................................................................................................... 222
Kapitola : XXIX Ladění (debug)
227
1 Layouty ................................................................................................................................... 227 © 2009 E-VISION International, s.r.o.
Obsah
Kapitola : XXX Moduly
7
229
1 E-shop ................................................................................................................................... 229 Tabulky .......................................................................................................................................................... 229 Frontend dokumenty .......................................................................................................................................................... 235 Skripty .......................................................................................................................................................... 236 Nastavení .......................................................................................................................................................... 236 Katalog zboží.......................................................................................................................................................... 236 Košík .......................................................................................................................................................... 238 Registrace .......................................................................................................................................................... 243 Přihlášení .......................................................................................................................................................... 243 Odhlášení .......................................................................................................................................................... 245 Výrobci .......................................................................................................................................................... 245 Objednávky .......................................................................................................................................................... 245 Způsoby doručení .......................................................................................................................................................... 246 Způsoby platby .......................................................................................................................................................... 246 Export XML pro .......................................................................................................................................................... w w w .zbozi.cz 247
2 Fotogalerie ................................................................................................................................... 247 Tabulky .......................................................................................................................................................... 247 Šablony .......................................................................................................................................................... 248 Zobrazení .......................................................................................................................................................... 249 Změna velikosti .......................................................................................................................................................... obrázků 250 Hromadný import .......................................................................................................................................................... obrázků 250
3 Související ................................................................................................................................... dokumenty 250 4 Počasí ................................................................................................................................... 251 Komponenta.......................................................................................................................................................... Weather 252 Virtuální tabulky .......................................................................................................................................................... 253 Šablony .......................................................................................................................................................... 255
Kapitola : XXXI Tvorba vlastních modulů
257
1 Vlastní ................................................................................................................................... tabulky databáze 257 2 Vlastní ................................................................................................................................... pole tabulky 257
Kapitola : XXXII Fulltextové vyhledávání
260
Kapitola : XXXIII Objekty
263
1 Mail................................................................................................................................... 263
Kapitola : XXXIV Funkce
267
1 getMicroTime ................................................................................................................................... 267 2 getMemoryUsage ................................................................................................................................... 267 3 isWindows ................................................................................................................................... 267 4 isDebugIP ................................................................................................................................... 267 5 str_dump ................................................................................................................................... 267 6 getFunctionCall ................................................................................................................................... 267 7 dumpFunctionCall ................................................................................................................................... 267 8 dump ................................................................................................................................... 268 © 2009 E-VISION International, s.r.o.
7
8
Visual PHP Developer Guide 9 showMessage ................................................................................................................................... 268 10 deleteObject ................................................................................................................................... 268 11 createObject ................................................................................................................................... 268 12 getObject ................................................................................................................................... 268 13 objectExists ................................................................................................................................... 268 14 getmod ................................................................................................................................... 269 15 replaceAccentChars ................................................................................................................................... 269 16 runInBackground ................................................................................................................................... 269 17 encrypt ................................................................................................................................... 269 18 decrypt ................................................................................................................................... 269 19 formatNumber ................................................................................................................................... 269 20 isSqlDateFormat ................................................................................................................................... 269 21 execCommand ................................................................................................................................... 269 isRFC822DateFormat .......................................................................................................................................................... 270
22 _rmdir ................................................................................................................................... 270 23 fileExists ................................................................................................................................... 270 24 createUUID ................................................................................................................................... 270 25 url_exists ................................................................................................................................... 270 26 setTimeout ................................................................................................................................... 270 27 setMemoryLimit ................................................................................................................................... 270 28 file_append_contents ................................................................................................................................... 271 29 isUUID ................................................................................................................................... 271 30 array_to_php ................................................................................................................................... 271 31 php_to_array ................................................................................................................................... 271 32 strposr ................................................................................................................................... 271 33 strposc ................................................................................................................................... 271
Kapitola : XXXV Návody a často kladené dotazy
273
1 Bannery ................................................................................................................................... v závislosti na hlavním menu 273 2 Fotogalerie ................................................................................................................................... zobrazená s FrogJS 275
Rejstřík
0
© 2009 E-VISION International, s.r.o.
Instalace USB klíče Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
I
10
1
Visual PHP Developer Guide
Instalace USB klíče Pro práci v produktu Visual PHP™ je nutné vlastnit USB klíč. Tento klíč obdržíte při zakoupení produktu. V následujících krocích Vás provedeme instalací ovladačů a certifikátů tak, abyste mohli začít pracovat s produktem Visual PHP™.
1.1
Instalace ovladačů Pro správnou funkci je potřeba nainstalovat ovladače PKI Klienta. Ovladače rozšíří možnosti prohlížečů FireFox a Internet Explorer pro práci s tímto eTokenem. Pokud používáte operační systém starší než Windows Vista a používáte prohlížeč Internet Explorer, je nutné ještě nainstalovat pomocné knihovny pro tento prohlížeč. Příslušné ovladače si můžete stáhnout z následující adresy: http://www.visual-php.com/cs/instalace-usb-klice/
1.2
Změna hesla USB klíče Klíč je dodáván s předdefinovaným heslem 1234567890. Toto heslo doporučujeme co nejdříve změnit. V pravém dolním rohu se po instalaci ovladačů USB klíče zobrazí ikonka tlačítkem myši a vyberte z nabídky Change eToken Password.
. Klikněte na ni pravým
Zobrazí se okno, do kterého zadejte staré heslo a 2x stejně heslo nové.
Pro dokončení klikněte na tlačítko OK.
© 2009 E-VISION International, s.r.o.
Instalace USB klíče
1.3
11
Instalace certifikátů Pro oba podporované prohlížeče (Mozilla Firefox a Internet Explorer) je odlišný způsob instalace certifikátů.
Mozilla Firefox Pokud pracujete s prohlížečem Mozilla Firefox, stačí při prvním přihlášení potvrdit uložení certifikátu do důvěryhodných. Při prvním přihlášení se zobrazí následující dialogové okno:
Označte volbu Přijmout tento certifikát natrvalo a stiskněte tlačítko OK.
Internet Explorer Pro prohlížeč Microsoft Internet Explorer je instalace složitější. Zadejte do prohlížeče adresu http://www. visual-php.com/certificates/CA/certificate.crt pro stažení certifikátu. Zobrazí se následující dialogové okno:
© 2009 E-VISION International, s.r.o.
12
Visual PHP Developer Guide
Klikněte na tlačítko Otevřít. Pro operační systémy Windows Vista se zobrazí další dialogové okno (pro starší operační systémy je tento krok vynechán):
Klikněte na tlačítko Povolit. Prohlížeč stáhne certifikát a nabídne toto dialogové okno:
© 2009 E-VISION International, s.r.o.
Instalace USB klíče
13
Stiskněte tlačítko Nainstalovat certifikát... V následující dialogovém okně se spustí průvodce, ve kterém pokračujte stisknutím tlačítka Další >.
© 2009 E-VISION International, s.r.o.
14
Visual PHP Developer Guide
Zobrazí se toto dialogové okno:
© 2009 E-VISION International, s.r.o.
Instalace USB klíče
15
Označte volbu Všechny certifikáty umístit v následujícím úložišti, klikněte na tlačítko Procházet... a vyberte Důvěryhodné kořenové certifikační úřady. Pokračujte tlačítkem Další > a import potvrďte tlačítkem Dokončit. Před dokončením se Vás průvodce zeptá na potvrzení následujícího dialogu:
© 2009 E-VISION International, s.r.o.
16
Visual PHP Developer Guide
Potvrďte dialog tlačítkem Ano. Certifikát je nyní považován za důvěryhodný a lze se autorizovat pomocí USB klíče.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™ Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
II
18
2
Visual PHP Developer Guide
Instalace Visual PHP™ Instalátor Visual PHP™ vznikl z potřeby přenosu velkých objemů dat (ať již souborů, nebo databází). Stávající FTP protokol, případně webová rozhraní pro import SQL dat, jsou u velkého množství souborů a dat pro databázi pomalá, padá FTP spojení, případně není umožněné importovat velké SQL soubory vůbec (např. z důvodu malého limitu pro upload SQL souboru). V následujících kapitolách si ukážeme, co vše lze s instalátorem provádět a jak Vám usnadní čas a práci zejména u velkých projektů obsahujících několik 100 MB až GB dat.
2.1
Instalace nového projektu na server Produkt Visual PHP™ lze instalovat na server i přímo do Vašeho počítače (za předpokladu, že máte v počítači webový server, PHP 5 a databázi mySQL). Instalace je velice jednoduchá a rychlá. Stačí zadat potřebné hodnoty a instalátor provede vše za Vás.
2.1.1
Instalační skript Pro snadnou instalaci je k dispozici instalační skript, se kterým provedete instalaci během několika minut. Není nutné rychlé připojení k internetu, skript si všechny potřebné soubory stáhne sám z internetu přímo na serveru. Přihlašte se na stránkách www.visual-php.com pomocí USB klíče a stáhněte si instalační skript install. php. Nahrejte ho pomocí FTP nebo jiného podporovaného připojení na server. Přístupové údaje k serveru získáte od svého poskytovatele hostingu, nebo si je vytvořte v případě, že server, na který instalujete, patří Vám.
2.1.2
Spuštění instalace Do pole pro zadání adresy v prohlížeči zadejte vaši doménu a install.php uvedeným za touto doménou (např. http://www.domena.cz/install.php). Otevře se Vám uvítací stránka.
Krok 1 - Vítejte Vyberte jazykovou mutaci a pokračujte tlačítkem Spustit instalaci.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
19
Krok 2 - Kontrola systému Instalátor zkontroluje, zda server splňuje minimální požadavky pro instalaci produktu Visual PHP™. Pokud jsou zjištěny závažné nedostatky, zobrazí se červeně. V případě, že existuje novější verze instalátoru, zobrazí se v prvním řádku tabulky odkaz pro stažení nejnovější verze instalátoru. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
20
Visual PHP Developer Guide
Krok 3 - Autorizace Aby bylo zabezpečeno, že instalaci provádí oprávněná osoba, je nutné se přihlásit pomocí USB klíče (případně pomocí trial certifikátu). Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
21
Krok 4 - Získávání informací Vyberte volbu nainstalovat prázdnou prezentaci a zvolte si jeden ze způsobů instalace souborů. · Instalace pomocí FTP připojení (doporučené pro servery UNIX/Linux): Pokud běží server pod operačním systémem UNIX/Linux a máte k dispozici FTP přístup, vyberte tuto možnost. Zadejte tedy přístupové údaje a cestu k adresáři, kde bude uložena prezentace. Tuto cestu můžete automaticky zjistit stisknutím tlačítka Najít.... Pokud se automatické zjištění nepodaří, připojte se pomocí FTP klienta, zjistěte cestu a zadejte ji ručně. Typická cesta je / pokud je prezentace přímo v hlavním adresáři. Další typické cesty jsou /www/ a /www_root/. Pozn.: důvodem tohoto způsobu instalace je to, že při klasickém kopírování souborů je vlastníkem nově vytvořených souborů UID webserveru, ale při nahrávání přes FTP je vlastníkem UID FTP. Tím je možné soubory ručně modifikovat, mazat, atd. · Instalace pomocí SFTP připojení: Tato varianta je stejná jako předchozí, s tím rozdílem, že se připojí přes zabezpečené FTP. · Přímé extrahování souborů na server (doporučené pro servery Windows): Tato varianta je k dispozici, pokud nelze použít předchozí možnosti instalace. Doporučená je pro operační systémy Windows, protože tam nejsou omezení přístupu jako u UNIXových serverů. Lze ji použít i pro UNIX/Linux servery, ale po instalaci je nutné přes konzoli změnit vlastníka souborů.
© 2009 E-VISION International, s.r.o.
22
Visual PHP Developer Guide
Krok 5 - Verze instalace Zde si vyberete instalační soubor. Pokud je nabídka prázdná, můžete si instalační soubor stáhnout ze serveru www.visual-php.com a přes FTP nahrát do stejného adresáře, kde je uložený install.php, nebo můžete využít možnost automatického stáhnutí přímo na server pomocí tlačítka Stáhnout instalaci z visual-php.com. Automatické stahování Vám ušetří spoustu času, protože to není závislé na rychlosti Vašeho připojení k internetu, ale komunikace probíhá přímo mezi servery. Tímto dosáhnete rychlosti v několika MB za sekundu.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
© 2009 E-VISION International, s.r.o.
23
24
Visual PHP Developer Guide
Krok 5 a - stažení instalace
Vyberte si verzi instalace, kterou má instalátor automaticky stáhnout a klikněte na tlačítko Pokračovat. Pokud potřebujete stáhnout starší verzi, zaškrtněte volbu Zobrazit starší verze. Instalátor začne stahovat soubor a průběh zobrazí na ukazateli.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po dokončení stahování klikněte na tlačítko Pokračovat a vyberte požadovanou verzi k instalaci.
© 2009 E-VISION International, s.r.o.
25
26
Visual PHP Developer Guide
Krok 5b - Výběr instalačního souboru
Klikněte na tlačítko Pokračovat. Instalátor zobrazí průběh instalace souborů na server.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po dokončení klikněte na tlačítko Pokračovat
Krok 7 - Instalace databáze
© 2009 E-VISION International, s.r.o.
27
28
Visual PHP Developer Guide
Nyní je třeba zadat přístupové údaje k databázi. Je možné oddělit databázi jádra Visual PHP™ od databáze samotné prezentace. Pro oddělenou instalaci jádra do samostatné databáze zrušte volbu Stejné jako pro prezentaci a vyplňte přístupové údaje pro jinou databázi. Klikněte na tlačítko Pokračovat. Instalátor se připojí k databázi a nainstaluje do ní potřebné tabulky.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
29
Krok 8 - Zápis konfiguračních souborů Pro další ulehčení práce instalátor sám uloží informace o připojení k databázi a FTP do konfiguračních souborů Visual PHP™
© 2009 E-VISION International, s.r.o.
30
Visual PHP Developer Guide
Krok 9 - Správa uživatelů Pro správu prezentace je nutný alespoň jeden účet skupiny Vývojáři. Vyplňte přihlašovací jméno a heslo, které bude sloužit k přístupu k prezentaci pod omezeným administrátorským účtem pro případ absence USB klíče. Pro tento účet bude automaticky aktivován vstup pod USB klíčem. Dále je možné zadat další administrátory a vývojáře. Všichni ostatní vývojáři si musí aktivovat přístup přes USB klíč po přihlášení do administrace pomocí přihlašovacího jména a hesla. Aktivace se provádí ve správci licencí (nabídka Nástroje -> Správce licencí v administraci prezentace).
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po kliknutí na tlačítko Pokračovat dojte k uložení přístupů zadaných uživatelů.
Krok 10 - Dokončení
© 2009 E-VISION International, s.r.o.
31
32
Visual PHP Developer Guide
Instalace se zdárně podařila. Můžete přejít do administrace prezentace a začít s tvorbou.
2.2
Aktualizace jádra K aktualizaci jádra slouží stejný instalační skript install.php. Do pole pro zadání adresy v prohlížeči zadejte vaši doménu a install.php uvedeným za touto doménou (např. http://www.domena.cz/install.php). Otevře se Vám uvítací stránka.
Krok 1 - Vítejte Pokračujte tlačítkem Spustit instalaci.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
33
Krok 2 - Kontrola systému Instalátor zkontroluje, zda server splňuje minimální požadavky pro instalaci produktu Visual PHP™. Pokud jsou zjištěny nedostatky, zobrazí se červeně. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
34
Visual PHP Developer Guide
Krok 3 - Autorizace Aby bylo zabezpečeno, že instalaci provádí oprávněná osoba, je nutné se přihlásit pomocí USB klíče. Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
35
Krok 4 - Získávání informací Vyberte volbu aktualizovat jádro u této prezentace a zvolte stejný způsob instalace souborů, jaký byl použit pro instalaci prázdné prezentace. Veškeré přístupové údaje jsou načteny z konfigurace aktuálního produktu..
© 2009 E-VISION International, s.r.o.
36
Visual PHP Developer Guide
Krok 5 - Verze instalace Zde si vyberete instalační soubor. Nabídka může obsahovat předchozí stáhnuté instalační soubory. Novější instalační soubory můžete stáhnout ze serveru www.visual-php.com a přes FTP nahrát do stejného adresáře, kde je uložený install.php, nebo můžete využít možnost automatického stáhnutí přímo na server pomocí tlačítka Stáhnout instalaci z visual-php.com. Automatické stahování Vám ušetří spoustu času, protože to není závislé na rychlosti Vašeho připojení k internetu, ale komunikace probíhá přímo mezi servery. Tímto dosáhnete rychlosti v několika MB za sekundu
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
37
Krok 5 a - stažení instalace
Vyberte si verzi instalace, kterou má instalátor automaticky stáhnout a klikněte na tlačítko Pokračovat. Instalátor začne stahovat soubor a průběh zobrazí na ukazateli.
© 2009 E-VISION International, s.r.o.
38
Visual PHP Developer Guide
Po dokončení stahování klikněte na tlačítko pokračovat a vyberte požadovanou verzi k instalaci.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Krok 5b - Výběr instalačního souboru
Vyberte požadovanou verzi instalačního souboru a klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
39
40
Visual PHP Developer Guide
Po dokončení klikněte na tlačítko Pokračovat
Krok 7 - Instalace databáze
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
41
Instalátor opět zjistí automaticky přístupové údaje k databázi jádra prezentace. Doporučujeme před aktualizací provést zálohu databáze zaškrtnutím volby zálohovat databázi pro případ, kdy byste se potřebovali vrátit k původní verzi databáze prezentace. Pokračujte tlačítkem Pokračovat.
Krok 7a - Záloha databáze Pokud jste zvolili zálohu databáze, začne instalátor zálohovat databázi ve formě SQL dump výpisu do souboru uloženého ve stejném adresáři, jako je install.php. Soubor má název backup. nazev_databaze_prezentace.datum.sql. V případě potíží lze tento SQL soubor použít k obnově původní databáze.
© 2009 E-VISION International, s.r.o.
42
Visual PHP Developer Guide
Po dokončení zálohy databáze klikněte na tlačítko Pokračovat.
Krok 7b - Potvrzení přepsání tabulek jádra Instalátor zobrazí původní tabulky jádra, které mají být přepsány.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
43
Pokud jsou zobrazeny pouze tabulky s prefixem _, je vše v pořádku a můžete pokračovat tlačítkem Pokračovat.
© 2009 E-VISION International, s.r.o.
44
Visual PHP Developer Guide
Instalátor přepíše tabulky ze starého jádra tabulkami nového jádra. Tabulky s obsahem prezentace zůstanou nedotčeny - přepisují se pouze tabulky s prefixem _, tedy tabulky samotného jádra Visual PHP™. Po dokončení instalace klikněte na tlačítko Pokračovat.
Krok 8 - Zápis konfiguračních souborů Pro další ulehčení práce instalátor sám uloží informace o připojení k databázi a FTP do konfiguračních souborů jádra Visual PHP™
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
45
Pro aktualizaci samotné prezentace je potřeba změnit cestu k novému jádru v konfiguračních souborech prezentace. Pro tuto akci klikněte na tlačítko Aktualizovat prezentaci na novou verzi jádra.
© 2009 E-VISION International, s.r.o.
46
Visual PHP Developer Guide
Po aktualizaci konfiguračních souborů klikněte na tlačítko Pokračovat.
Krok 9 - Správa uživatelů V aktualizaci jádra je tento krok vynechán. Uživatelé byli vytvořeni při instalaci prázdné prezentace, případně v administraci.
Krok 10 - Dokončení
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
47
Aktualizace se zdárně podařila a můžete přejít do administrace prezentace a pokračovat v tvorbě. Na serveru zůstávají starší verze jádra a je možnost je odstranit zaškrtnutím nalezených verzí a stisknutím tlačítka Odstranit. Tento způsob čištění je opět rychlejší, než mazání pomocí FTP klienta.
Krok 10a - Odstranění starších verzí jádra
© 2009 E-VISION International, s.r.o.
48
Visual PHP Developer Guide
Po dokončení odstranění můžete instalátor ukončit.
2.3
Přenesení projektu na jiný server Přenášení projektů mezi servery je stejně jednoduché a rychlé, jako instalace prázdné prezentace. Visual PHP™ vygeneruje instalační soubor, ve kterém je uložena databáze i soubory prezentace a postará se při instalaci o nastavení uživatelských práv souborů.
2.3.1
Vygenerování instalačního souboru Pro vygenerování souboru pro instalaci prezentace přejděte do nabídky Prezentace -> Vygenerovat instalaci projektu.
Omezení obsahu instalačního souboru Zobrazí se seznam tabulek v databázi a seznam souborů. Pomocí těchto předvoleb můžete vyjmout některé tabulky databáze (např. statistiky, koš, atd.) a případně i soubory nebo celé adresáře z výsledného instalačního souboru, který bude vygenerován. Tím lze docílit menší velikosti instalačního souboru.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
49
Pro zahájení generování instalačního souboru klikněte na tlačítko Generovat.
Stav generování instalačního souboru Ukazatel postupně zobrazuje procentuelně stav generování. Po dokončení můžete kliknutím na odkaz stáhnout výsledný .install soubor k sobě do počítače a poté jej nahrát na server například pomocí FTP.
2.3.2
Instalace projektu na jiný server K instalaci vygenerovaného projektu slouží opět stejný instalační skript install.php. Nahrejte tento soubor pomocí FTP na server. Do pole pro zadání adresy v prohlížeči zadejte vaši doménu a install.php uvedeným za touto doménou (např. http://www.domena.cz/install.php). Otevře se Vám uvítací stránka.
© 2009 E-VISION International, s.r.o.
50
Visual PHP Developer Guide
Krok 1 - Vítejte Pokračujte tlačítkem Spustit instalaci.
Krok 2 - Kontrola systému Instalátor zkontroluje, zda server splňuje minimální požadavky pro instalaci produktu Visual PHP™. Pokud jsou zjištěny nedostatky, zobrazí se červeně. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
51
Krok 3 - Autorizace Aby bylo zabezpečeno, že instalaci provádí oprávněná osoba, je nutné se přihlásit pomocí USB klíče. Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2009 E-VISION International, s.r.o.
52
Visual PHP Developer Guide
Krok 4 - Získávání informací Vyberte volbu přenést prezentaci na tento server (pomocí vygenerovaného .install souboru) a způsob instalace souborů (podobně jako při instalaci nového projektu).
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
53
Krok 5 - Verze instalace Zde si vyberete instalační soubor. Nejprve je potřeba nainstalovat jádro Visual PHP™. Je nutné použít verzi jádra stejnou nebo vyšší, než v jaké verzi byla instalovaná prezentace vytvořena. Novější instalační soubory můžete stáhnout ze serveru www.visual-php.com a přes FTP nahrát do stejného adresáře, kde je uložený install.php, nebo můžete využít možnost automatického stáhnutí přímo na server pomocí tlačítka Stáhnout instalaci z visual-php.com. Automatické stahování Vám ušetří spoustu času, protože to není závislé na rychlosti Vašeho připojení k internetu, ale komunikace probíhá přímo mezi servery. Tímto dosáhnete rychlosti v několika MB za sekundu
© 2009 E-VISION International, s.r.o.
54
Visual PHP Developer Guide
Krok 5 a - stažení instalace
Vyberte si verzi instalace, kterou má instalátor automaticky stáhnout a klikněte na tlačítko Pokračovat. Instalátor začne stahovat soubor a průběh zobrazí na ukazateli.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po dokončení stahování klikněte na tlačítko pokračovat a vyberte požadovanou verzi k instalaci.
© 2009 E-VISION International, s.r.o.
55
56
Visual PHP Developer Guide
Krok 5b - Výběr instalačního souboru
Vyberte požadovanou verzi instalačního souboru a klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po dokončení klikněte na tlačítko Pokračovat
Krok 7 - Instalace databáze
© 2009 E-VISION International, s.r.o.
57
58
Visual PHP Developer Guide
Nyní je třeba zadat přístupové údaje k databázi. Je možné oddělit databázi jádra Visual PHP™ od databáze samotné prezentace. Pro oddělenou instalaci jádra do samostatné databáze zrušte volbu Stejné jako pro prezentaci a vyplňte přístupové údaje pro jinou databázi. Klikněte na tlačítko Pokračovat. Instalátor se připojí k databázi a nainstaluje do ní potřebné tabulky.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
59
Krok 8 - Zápis konfiguračních souborů Pro další ulehčení práce instalátor sám uloží informace o připojení k databázi a FTP do konfiguračních souborů Visual PHP™
© 2009 E-VISION International, s.r.o.
60
Visual PHP Developer Guide
Krok 9 - Správa uživatelů V aktualizaci jádra je tento krok vynechán. Uživatelé byli vytvořeni při instalaci prázdné prezentace, případně v administraci.
Krok 10 - Dokončení instalace jádra
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Instalace jádra je dokončena, nyní lze již začít instalovat samotný projekt. Klikněte na tlačítko Pokračovat v instalaci prezentace.
© 2009 E-VISION International, s.r.o.
61
62
Visual PHP Developer Guide
Krok 11 - Výběr instalačního souboru prezentace
Vyberte požadovanou verzi instalačního souboru a klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Po dokončení klikněte na tlačítko Pokračovat
Krok 12 - Instalace databáze
© 2009 E-VISION International, s.r.o.
63
64
Visual PHP Developer Guide
Nyní je třeba zadat přístupové údaje k databázi. Je možné oddělit databázi jádra Visual PHP™ od databáze samotné prezentace. Pro oddělenou instalaci jádra do samostatné databáze zrušte volbu Stejné jako pro prezentaci a vyplňte přístupové údaje pro jinou databázi. Klikněte na tlačítko Pokračovat. Instalátor se připojí k databázi a nainstaluje do ní potřebné tabulky.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
65
Krok 13 - Zápis konfiguračních souborů Pro další ulehčení práce instalátor sám uloží informace o připojení k databázi a FTP do konfiguračních souborů Visual PHP™
© 2009 E-VISION International, s.r.o.
66
Visual PHP Developer Guide
Krok 14 - Správa uživatelů V aktualizaci jádra je tento krok vynechán. Uživatelé byli vytvořeni při instalaci prázdné prezentace, případně v administraci.
Krok 15 - Dokončení instalace jádra
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
67
Instalace projektu je dokončena.
2.4
Odemknutí instalátoru pro další použití Instalátor se automaticky zamkne po dokončení instalace, aby zabránil neoprávněné instalaci a s tím spojeným poškozením dat. Zamknutí je provedeno vytvořením souboru install.lock ve stejném adresáři, kde se nachází soubor install.php. Pro odemknutí instalátoru odstraňte soubor install.lock pomocí FTP, nebo jiným způsobem a klikněte na tlačítko Obnovit.
© 2009 E-VISION International, s.r.o.
68
2.5
Visual PHP Developer Guide
Ruční přenesení projektu na jiný server V některých případech může nastat situace, že nelze použít instalátor pro přesun projektu mezi servery. Následující návod Vás navede krok za krokem, jakým způsobem lze tuto operaci provést. Je nutno podotknout, že ruční přesun se může v závislosti na rychlosti internerového připojení, případně dle množství dat na serveru, protáhnout na desítky minut až několik hodin. Doporučujeme použivat takový FTP program, který sám dokáže navázat spojení a pokračovat ve stahování (nebo nahrávání) v případě ztráty spojení. Odpadne Vám práce s hledáním, které soubory jsou již stažené (nahrané) a které nikoli. Dále doporučujeme, aby program uměl rekurzivní nastavení práv zápisu (chmod) adresářů a podadresářů a jejich souborů. Pokud vlastníte svůj vlastní server, doporučujeme nahrávat soubory a databáze přímo z tohoto serveru na cílový server (komunikace mezi těmito servery je výrazně rychlejší).
Krok 1 - Stažení souborů Připojte se pomocí FTP k serveru. Přejděte do hlavního adresáře, ve kterém je uložena prezentace (typicky /, /www/, /www_root/, atd...). Označte všechny soubory a stáhněte si je na lokální disk. Není potřeba stahovat soubory z adresáře /cache/ (systém si je automaticky vytvoří při prvním spuštění prezentace na novém serveru).
Krok 2 - Stažení databáze V administraci přejděte do nabídky Nástroje -> MySQL Administrator, nebo se připojte k © 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
69
phpMyAdmin, ke kterému jste dostali přístup od svého poskytovatele webhostingu. V levém panelu vyberte databázi, která obsahuje data Vaší prezentace. V hlavním okně klikněte na Export
Klikněte na Vybrat vše, zaškrtněte volbu Přidat DROP TABLE / DROP VIEW a zaškrtněte volbu Do souboru. Klikněte na tlačítko Proveď a stáhněte si vygenerovaný SQL soubor.
Krok 3 - Nahrátí souborů Připojte se k FTP serveru, na který chcete přenést prezentaci a nahrejte na něj soubory a adresáře ve stejné struktuře, v jaké jste je stáhli z původního serveru. Věnujte pozornost, zda nedochází při nahrávání ke změně velkých a malých písmen (Linux servery narozdíl od Windows rozlišují soubory s malými a velkými písmeny jako samostatné soubory).
Krok 4 - Nahrátí databáze Připojte k phpMyAdmin na novém serveru (opět byste mělo dostat přístup od nového poskytovatele webhostingu). V levém panelu vyberte databázi, která má obsahovat data Vaší prezentace. V hlavním okně klikněte na Import.
© 2009 E-VISION International, s.r.o.
70
Visual PHP Developer Guide
Klikněte na tlačítko Procházet..., vyberete dříve vygenerovaný SQL soubor z lokálního disku a klikněte na tlačítko Proveď. Poznámka: Na některých serverech může být omezení maximální velikosti SQL souboru k importu. V tomto případě můžete použít rozšířené funkce instalátoru install.php k instalaci velkých SQL souborů (viz kapitola Instalace velkých SQL souborů).
Krok 5 - Změna práv zápisu (chmod) Je potřeba ručně nastavit práva zápisu (chmod 777) těmto souborům, složkám, jejich podsložkám a souborům v nich obsažených · /cache/ · /config/version.ini · /install/ · /repository/ Pokud používáte v projektu jiné vlastní adresáře, které vyžadují práva zápisu, je potřeba nastavit tyto práva i těmto adresářům. Poznámka: V adresáři /repository/ je typicky velké množství adresářů a souborů. Pokud Váš FTP program neumí rekurzivní nastavení práv zápisu, je možné použít rozšířené funkce instalátoru install.php, které umožňují tyto změny pohodlně provést (v případě, že server umožňuje připojení PHP skriptů na své vlastní FTP).
Krok 6 - Nastavení konfiguračního souboru Posledním krokem je nastavení konfiguračního souboru. Tento soubor config.ini.php naleznete v adresáři /config/. Soubor musí obsahovat tyto nastavení:
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
71
true; "localhost"; "my_database"; "mylogin"; "mypassword"; "_";
// Core Settings $corePath = $coreUrl =
"/var/www/domain.com/www/visual-php-core/enterprise.1.7.7.85 "/visual-php-core/enterprise.1.7.7.850/";
// FTP Settings $ftpHost = $ftpLogin = $ftpPassword = $ftpPath =
"localhost"; "mylogin"; "mypassword"; "/path_to_root/";
?>
V případě, že je jádro uložené ve stejné databázi jako prezentace, vyplňte SQL údaje pro prezentaci i jádro shodně (musí být obě vyplněny). Plnou cestu k adresáři jádra zjistíte tak, že si vytvoříte a nahrajete na server soubor phpinfo.php obsahující kód , který si v prohlížeči zavoláte (http://www.domena.cz/phpinfo.php). Tento soubor vygeneruje informace o serveru. Vyhledejte frázi SCRIPT_FILENAME, která zobrazuje plnou cestu k souboru phpinfo.php.
Plnou cestu k adresáři jádra získáte tak, že název souboru phpinfo.php nahradíte cestou /visual-phpcore/verze_jadra/ (tedy např. z /var/www/visual-php.com/demo/phpinfo.php získáte /var/www/ visual-php.com/demo/visual-php-core/enterprise.1.7.7.850/ ) V případě, že je na serveru zapnutý SAFE_MODE, je nutné zadat i FTP přístupové údaje, aby systém mohl sám vytvářet adresáře.
2.6
Instalace velkých SQL souborů K instalaci vygenerovaného projektu slouží opět stejný instalační skript install.php. Nahrejte tento soubor pomocí FTP na server. Do pole pro zadání adresy v prohlížeči zadejte vaši doménu a install.php uvedeným za touto doménou (např. http://www.domena.cz/install.php). Otevře se Vám uvítací stránka.
© 2009 E-VISION International, s.r.o.
72
Visual PHP Developer Guide
Krok 1 - Vítejte Pokračujte tlačítkem Spustit instalaci.
Krok 2 - Kontrola systému Instalátor zkontroluje, zda server splňuje minimální požadavky pro instalaci produktu Visual PHP™. Pokud jsou zjištěny nedostatky, zobrazí se červeně. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
73
Krok 3 - Autorizace Aby bylo zabezpečeno, že instalaci provádí oprávněná osoba, je nutné se přihlásit pomocí USB klíče. Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2009 E-VISION International, s.r.o.
74
Visual PHP Developer Guide
Krok 4 - Získávání informací Vyberte volbu Import SQL souboru.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
75
Krok 5 - Instalační soubor Vyberte požadovaný SQL soubor a klikněte na tlačítko Pokračovat. V případě, že nevidíte soubor v nabídce, je potřeba tento soubor přenést pomocí FTP do stejného adresáře, ve kterém je soubor install. php.
© 2009 E-VISION International, s.r.o.
76
Visual PHP Developer Guide
Krok 6 - Instalace databáze
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
77
Nyní je třeba zadat přístupové údaje k databázi. Klikněte na tlačítko Pokračovat. Instalátor se připojí k databázi a nainstaluje do ní potřebné tabulky.
© 2009 E-VISION International, s.r.o.
78
Visual PHP Developer Guide
Krok 10 - Dokončení instalace
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
79
Instalace SQL souboru je dokončena.
2.7
Rekurzivní změna práv (chmod) souborů Instalátor se sám stará o změnu práv zápisu v adresáři /repository/ u všech souborů a podsložkách rekurzivně. V případě, že přenášíte projekt, který obsahuje jiný adresář než /repository/, kterému potřebujete nastavit práva přístupu a Váš FTP klient neumožňuje rekurzivní nastavení přístupových práv, je vhodná právě tato utilita. Tuto utilitu lze samozřejmě použít i samostatně, bez nutnosti instalovat projekt vytvořený pod Visual PHP™.
Krok 1 - Vítejte Pokračujte tlačítkem Spustit instalaci.
© 2009 E-VISION International, s.r.o.
80
Visual PHP Developer Guide
Krok 2 - Kontrola systému Instalátor zkontroluje, zda server splňuje minimální požadavky pro instalaci produktu Visual PHP™. Pokud jsou zjištěny nedostatky, zobrazí se červeně. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
81
Krok 3 - Autorizace Aby bylo zabezpečeno, že instalaci provádí oprávněná osoba, je nutné se přihlásit pomocí USB klíče. Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2009 E-VISION International, s.r.o.
82
Visual PHP Developer Guide
Krok 4 - Získávání informací Vyberte volbu Rekurzivní CHMOD adresářů a způsob instalace souborů (podobně jako při instalaci nového projektu).
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
83
Krok 5 - Výběr adresáře pro operaci CHMOD Z nabídky vyberte adresář, kterému budete chtít změnit přístupová práva. Přístupová práva budou rovněž změněna všech souborů, podadresářům a jejich souborům rekurzivně.
© 2009 E-VISION International, s.r.o.
84
Visual PHP Developer Guide
Dále vyberte práva, která chcete nastavit. V největším počtu případů je potřeba nastavit právo zápisu, tedy se doporučuje ponechat hodnotu 777. Hodnotu můžete nastavit přímo zadáním čísla v osmičkové číselné soustavě, případně zaškrtnutím požadovaných polí (způsoby zadávání hodnot jsou vzájemně provázány, zadání čísla tedy zaškrtne odpovídající pole, naopak zaškrtnutí polí vygeneruje odpovídající číslo).
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Kliknutím na tlačítko Pokračovat zahájíte operaci rekurzivního CHMOD.
© 2009 E-VISION International, s.r.o.
85
86
Visual PHP Developer Guide
Krok 10 - Dokončení instalace
© 2009 E-VISION International, s.r.o.
Instalace Visual PHP™
Změna práv adresářů a souborů je dokončena.
© 2009 E-VISION International, s.r.o.
87
Administrace Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
III
Administrace
3
89
Administrace Do administrace projektu se dostanete zadáním URL adresy projektu a adresáře /admin/ (např. http:// www.mojedomena.cz/admin/ ). Zobrazí se následující okno:
3.1
Přihlášení pomocí USB klíče Pro úpravu a implementaci prezentace pomocí developerského účtu je nutné přihlásit se pomocí USB klíče. Pro přihlášení klikněte na ikonku klíče, která se nachází napravo od polí pro zadání jména a hesla.
Zadejte heslo pro odblokování klíče. Pokud jste se již přihlašoval, heslo není nutné zadat. V prohlížeči Mozilla Firefox je potřeba vybrat z kterého úložiště má systém číst, proto vyberte eToken.
© 2009 E-VISION International, s.r.o.
90
3.2
Visual PHP Developer Guide
Přihlášení pomocí jména a hesla Ostatní uživatelé se přihlašují pomocí přihlašovacího jména a hesla.
I developer má možnost přihlásit se pomocí těchto přihlašovacích údajů za těchto situací: · Nemá k dispozici USB klíč a potřebuje provést admnistrativní úpravu (při přihlášení bez klíče má developer pouze práva administrátora) · Má k dospozici USB klíč a potřebuje provést aktivaci tohoto klíče pro prezentaci.
3.3
Popis okna administrace Po úspěšném přihlášení se zobrazí administrace Vašeho projektu. Okno je rozděleno na následující sekce:
1. Název projektu 2. Informace o přihlášeném uživateli 3. Menu dostupné pro administraci obsahu koncovým zákazníkem 4. Menu dostupné pro implementaci prezentace developerem 5. Informace o přihlášených uživatelích, odhlášení a otevření nového okna (záložky) s administrací © 2009 E-VISION International, s.r.o.
Administrace
6. Název sekce, kde se nacházíte 7. Akce, které je možné v dané sekci nebo nad daným záznamem provést 8. Filtrace a jiné funkce 9. Hlavní obsah 10.Příkazová řádka pro urychlení některých akcí 11.Verze jádra produktu
© 2009 E-VISION International, s.r.o.
91
Základy tvorby prezentací Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
IV
Základy tvorby prezentací
4
93
Základy tvorby prezentací V produktu Visual PHP™ se tvoří prezentace poněkud odlišným způsobem, než jak jste byli doposud zvyklí. Prvním krokem tvorby prezentace je vytvoření layoutu s názvem global. Tento layout obsahuje vzhled prezentace, do kterého se umísťují další dynamické prvky na Vámi určená místa. Layouty lze do sebe vzájemně vnořovat za použítí podmínek. Samozřejmostí je i tvorba CSS stylů pro čistší XHTML kód. Layout s názvem global definujete obsah uvnitř XHTML elementů . Více informací se dočtete v následujících kapitolách.
4.1
Vytvoření global layoutu Přejděte do nabídky Prezentace -> Layouty. V seznamu najděte layout s názvem global a klikněte na Změnit výchozí. Zobrazí se Vám výchozí global layout, který si přizpůsobíte požadavkům Vaší prezentace. Výchozí layout vypadá následovně:
Stačí obsah tohoto layoutu nahradit Váším vlastním layoutem. Lze toho pohodlně dosáhnout vizuálně pomocí funkcí XHTML editoru, ale zůstává Vám možnost i psát zdrojový kód ručně. XHTML editor obsahuje například funkce pro vkládání divů, tabulek, odstavců, nadpisů, obrázků, odkazů a mnoho dalších funkcí. Prezentace se ve Visual PHP™ tvoří poněkud odlišným způsobem a to tak, že si připravíte základní prázdný design, do kterého budete poté postupně vkládat dynamické prvky na odpovídající místa. Tvorba prezentací ve Visual PHP™ nevyžaduje profesionální znalosti XHTML, CSS a PHP, takže i amatér si může vytvořit svou vlastní prezentaci. Ve Visual PHP™ lze ale především tvořit složité profesionální prezentace, kde už jsou nutné tyto znalosti z oboru tvorby internetových prezentací. Typický global layout může vypadat například následovně:
© 2009 E-VISION International, s.r.o.
94
Visual PHP Developer Guide
Docílíte toho postupným vkládáním divů (nebo i po staru pomocí tabulek) a obrázků. Na ukázkovém layoutu jsou vidět prázdná místa připravená pro vkládání dynamického obsahu. Při tvorbě layoutu doporučujeme ukládat obrázky do složky /layout/. Ve složce /layout/all/ jsou k dispozici často používané obrázky, jako například transparentní gif nebo šipky pro rozbalovací menu. Samozřejmostí je i možnost úpravy CSS stylů pro danou prezentaci o které se dočtete více v dalších kapitolách. V tomto ukázkovém designu je prostor pro záhlaví, menu, levý panel, obsahový hlavní panel, pravý panel a zápatí. Do jednotlivých panelů (a vlastně i do libovolného místa prezentace) můžete vkládat dynamický obsah, což Vám umožňuje neomezené možnosti tvorby. Slouží k tomu komponenta Table Content. Tato komponenta se stará o to, že načte z tabulky databáze data a tyto data zobrazí pomocí šablony na místo, kde je komponenta vložena. Podobně fungují i další komponenty, jako například komponenta pro menu, stránkování, výběr počtu položek na stránce, zobrazení aktuálního čísla stránky, navigace, filtrace atd.
© 2009 E-VISION International, s.r.o.
Základy tvorby prezentací
4.2
95
Vložení obsahu z databáze Pro ukázku můžeme chtít například zobrazit v prvním panelu seznam posledních tří aktualit. Stačí na dané místo umístit komponentu může vypadat následovně:
Table Content a tuto komponentu nakonfigurovat. Konfigurace
Zadali jsme název tabulky news, ze které chceme číst data, omezili jsme výstup na 3 záznamy a záznamy jsme seřadili podle pole date sestupně. Komponenta Table Content při zobrazení prezentace načte data z databáze (pomocí SQL dotazu SELECT * FROM news ORDER BY date DESC LIMIT 3) a tyto data zobrazí s pomocí šablony. O šablonách se dozvíte více informací v samostatné kapitole. Výsledný panel v global layoutu bude vypadat takto:
© 2009 E-VISION International, s.r.o.
96
Visual PHP Developer Guide
Jak je vidět, na místo komponenty bude vložený dynamický obsah podle její konfigurace. Takto lze vkládat do prezentace obsah z dalších tabulek databáze a samozřejmostí je, že tento obsah si bude moci Váš zákazník sám měnit. Jelikož je ale název tabulky databáze nastaven přímo, lze toto řešení aplikovat pouze na ten typ obsahu, který bude zobrazen na stránce stále na stejném místě, to znamená, že se nebude měnit podle toho, ve které sekci se návštěvník prezentace nachází.
4.3
Vkládání dalších layoutů V typických prezentacích jsou v každých sekcích panely, záhlaví i zápatí neměnné, pouze prostřední obsahový panel se mění v závislosti na tom, ve které sekci se uživatel nachází. Pro zobrazení informací v hlavním obsahovém panelu je potřeba vložit komponentu Include Layout, která se postará o vložení dalšího layoutu. Konfigurace komponenty Include Layout vypadá následovně.
U jakýchkoli vlastností můžeme vložit hodnotu PHP proměnné pomocí direktivy {php: }. Tímto získáme dynamickou možnost vložit layout s názvem té tabulky, ve které sekci se právě nacházíme. Pokud zadáte v prohlížeči například URL http://www.domena.com/news.php , bude mít tato proměnná hodnotu $tableName = "news"; (na úvodní stránce má proměnná hodnotu index, atd...). Direktiva {php: $tableName} se v tomto případě vyhodnotí jako news a komponeta Include Layout se pokusí vložit layout s názvem news. Abyste nemuseli tvořit spoustu stejných layoutů, funguje komponenta Include Layout tak, že pokud nenalezne odpovídající layout s tímto názvem, bude hledat layout s názvem
© 2009 E-VISION International, s.r.o.
Základy tvorby prezentací
97
default. Po vložení této komponenty vypadá část global layoutu takto:
Ve většině případů je nutné rozlišit, zda se jedná o přehled záznamů (například výpis aktualit), nebo jde o zobrazení konkrétního záznamu. K zobrazení těchto dvou typů zobrazení slouží ostatní layouty. Každý layout má svůj název (typicky podle názvu tabulky databáze nebo jejich společný layout s názvem default), typ zobrazení (přehled nebo plné zobrazení) a další možnosti nastavení. Právě to, že nezadáváme Table Content v hlavním panelu napevno, nám umožní měnit strukturu obsahového hlavního panelu v závislosti na akcích provedených návštěvníkem prezentace. Přehled (vtList): Typicky je čtení z databáze omezeno pouze na několik položek, jsou zobrazeny čísla stránek a možnost výběru čísla stránky nebo počtu zobrazených položek na stránce. Plné (vtFull): Zde se čte již konkrétní záznam z tabulky databáze. Ovládací prvky z přehledu (jako například stránkování) zde již nejsou potřeba. Komponenta Include Layout tedy hledá nejen podle názvu, ale rozlišuje i typy zobrazení. Typ zobrazení pozná Visual PHP™ automaticky tak, že pokud je předán v URL parametr id nebo tid, jde o plné zobrazení. V opačném případě jde o přehled. URL http://www.domena.com/news.php zobrazí layout s nastavením Přehled (vtList) a URL http://www.domena.com/news.php?id=6b337a0f-134a-4a13-b921c36205c3a3fe zobrazí layout s nastavením Plné (vtFull). Pokud si představíme konkrétní situaci, tak při zadání URL http://www.domena.com/news.php bude vyhodnocení komponenty Include Layout vypadat následovně:
© 2009 E-VISION International, s.r.o.
98
Visual PHP Developer Guide
Tedy komponenta Include Layout hledá layout s názvem news a typem zobrazení Přehled (vtList). Ten nenalezla, tak vložila layout s názvem default a typem zobrazení Přehled (vtList). Po vložení layoutu pokračuje tím, že začne vyhodnocovat ostatní komponenty, které jsou v tomto layoutu obsažené. Jak je vidět, jsou v tomto layoutu vložené komponenty pro zobrazení čísla stránky, výběru počtu položek na stránce, výběru stránky a zobrazení samotného obsahu pomocí komponenty Table Content. Podobně funguje i zadání URL http://www.domena.com/news.php?id=6b337a0f-134a-4a13-b921c36205c3a3fe, kde bude vyhodnocení komponenty Include Layout vypadat následovně:
© 2009 E-VISION International, s.r.o.
Základy tvorby prezentací
99
Opět hledá layout s názvem news, který neexistuje, vloží tedy layout s názvem default a typem zobrazení Plné (vtFull). Zde je vidět, že již nejsou přítomny další jiné komponenty kromě komponenty Table Content.
© 2009 E-VISION International, s.r.o.
Nastavení prezentace Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
V
Nastavení prezentace
5
101
Nastavení prezentace Všechny základní nastavení jsou přístupné přes nabídku Nástroje -> Nastavení. Jednotlivá nastavení jsou strukturovaná v záložkách. K dispozici jsou následující možnosti:
Název prezentace Tento titulek se zobrazí v názvu okna prohlížeče na každé stránce. Vyhledávače kladou na titulek velký důraz. Za titulkem se automaticky objeví titulky konkrétních sekcí.
Klíčová slova (pro vyhledávače) Tyto slova používají některé vyhledávače ke stanovení obsahu stránek. V dnešní době už vyhledávače tyto informace ignorují (např. Google nebo Seznam). Tyto klíčová slova ze zobrazí na každé stránce této prezentace. Klíčová slova oddělujte čárkou, bez mezer.
Popis prezentace Je používán některými vyhledávači ke stanovení stručného popisu obsahu stránek. V dnešní době už vyhledávače tyto informace ignorují (např. Google nebo Seznam).
Autor Nastaví autora stránky v meta tagu zdrojové stránky Copyright Nastaví copyright v meta tagu zdrojové stránky
Jazyk Nastaví jazyk ve kterém bude zobrazována administrace.
Automatická detekce jazyka Pokusí se detekovat jazyk prohlížeče a zobrazí tento jazyk jako výchozí
E-maily pro zasílání upozornění Na tyto e-maily budou zasílány upozornění (např. při přidání příspěvku do diskuze)
SMTP (server) Vyplňte název SMTP serveru, který používáte k odesílání e-mailů. Toto nastavení je potřeba v případě, že na serveru není nakonfigurována funkce mail(). Tato nastavení můžete zjistit z Vašeho e-mailového programu.
SMTP (přihlašovací jméno) Přihlašovací jméno, které používáte k odesílání e-mailů.
© 2009 E-VISION International, s.r.o.
102
Visual PHP Developer Guide
SMTP (heslo) Heslo, které používáte k odesílání e-mailů.
SMTP (e-mail odesílatele) U některých SMTP serverů je nutné zadat skutečný e-mail. E-maily s cizím nebo smyšleným odesílatelem některé SMTP servery odmítají odeslat.
Zobrazení chyb a varování Pro větší bezpečnost proti útokům je vhodné skrýt chybové hlášky. Zobrazení se doporučuje pouze po dobu implementace prezentace.
Cron (časované spouštění skriptů) Slouží pro spouštění skriptů v časovém intervalu.
Cache objektů Vyrovnávací paměť pro rychlejší načítání objektů
Rozšířené funkce pro datum Umožňuje zpracování datumu před rokem 1970 a po roce 2038.
Licenční klíč pro Google Maps Pro použití komponenty Google Map je nutné vlastnit licenční klíč. Tento klíč můžete jednoduše získat na stránkách www.visual-php.com.
IP adresy vývojářů Zadejte IP adresy, ze kterých přistupují vývojáři této prezentace. Pro tyto IP adresy se budou vypisovat speciální dump() výpisy.
Počet záznamů na stránce Definuje počet záznamů v zobrazení přehledu. Vyšší počet potřebuje více paměti.
Šířka HTML editoru Nastaví výchozí šířku obsahu editoru. Nastavte šířku panelu obsahu. Tato vlastnost pomáhá přehlednější úpravě dokumentů, aktualit a podobně.
SEO odkazy (pomocí mod_rewrite) Pokud má server podporu modulu mod_rewrite pro Apache, budou generovány odkazy formou adresářů namísto předávání parametrů za .php souborem. Texty pro SEO odkazy jsou generovány z názvů záznamů jednotlivých sekcí.
© 2009 E-VISION International, s.r.o.
Nastavení prezentace
103
Hlavní doména Pokud směruje více domén na stejnou prezentaci a jednu z těchto domén chcete upřednostnit pro vyhledávače, zadejte název této domény. Přístupy z ostatních domén budou přesměrovány pomocí hlavičky 'HTTP/1.1 301 Moved Permanently' na zadanou doménu.
Domény 3. řádu Tyto domény nebudou směrovány na hlavní doménu. Zadejte, pokud má prezentace samostatné layouty pro více domén třetího řádu pracujícími pod stejnou databází společně s hlavní doménou.
Registrace zákazníků Nastavení nutnosti registrace zákazníků před objednávkou
Plátce DPH Zobrazení DPH v objednávkách.
Dodací adresa Možnost zadat dodací adresu
© 2009 E-VISION International, s.r.o.
Styly Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VI
Styly
6
105
Styly Každá moderní prezentace používá kaskádové styly (Cascading Style Sheets). CSS umožňuje definovat vlastnosti určitých elementů např. barvy textu, pozadí, zarovnání, velikost písma a mnoho dalších vlastností, které nelze nahradit ničím v html. Visual PHP™ samozřejmě použití CSS podporuje. Pro zobrazení a úpravu stylů přejděte do nabídky Prezentace -> Styly. Zobrazí se Vám přehled výchozích stylů pro různé situace. Visual PHP™ ve výchozím stavu používá styl s názvem default. Pro úpravu stylu pro Vaši prezentaci klikněte na Změnit výchozí u stylu default. K dispozici je velké množství parametrů, které lze u stylu nastavit a navíc i propracovaný editor se zvýrazněním syntaxe. Každá prezentace má jeden hlavní styl. Stylů můžeme mít i více a díky tomu docílíme například možnost přepínání různých vzhledů prezentace, pracující nad stejnou databází. Více o přepínání stylů se dočtete v jiné kapitole. Každý styl je uložen automaticky do souboru ve složce /repository/styles/. Tyto soubory neupravujte, protože budou přepsány po každé změně.
6.1
Parametry stylů U stylů je možné nastavit tyto parametry:
Identifikátor (tid) Textový název stylu. Výchozí styl má název default. Pro přepínání stylů vytvořte styl s vlastním názvem.
DTD Typ standardu Document Type Definition.
Podmínka Zde je možné specifikovat podmínku, za jaké bude tento styl použit. Podmínkou je PHP kód (např. $mojePromenna == "mojehodnota"). Systém zkontroluje všechny styly s daným identifikátorem tid, které mají definovanou podmínku a pokud není podmínka splněna u žádného z nich, použije styl bez podmínky.
Prohlížeče Ve specifických případech, kdy nechcete nebo nemůžete použít tzv. CSS hacků pro určitý prohlížeč lze nastavit pro daný styl skupinu prohlížečů. Systém použije ten styl, ve kterém je prohlížeč definován. Pokud nenalezne, použije styl bez definice prohlížečů.
Ikona (favicon) Pro zobrazení ikonky v adresním řádku prohlížeče a v záložkách
CSS Definice CSS stylů pomocí editoru se zvýrazněním syntaxe.
6.2
Zpracování stylů Visual PHP™ ve výchozím stavu používá styl s identifikátorem default. Hledá všechny styly, které splňují nastavené podmínky a odpovídají nastaveným prohlížečům. V systému jsou i výchozí styly pro e-maily a tisk. Všechny tyto styly můžete libovolně upravovat a přidávat své vlastní.
© 2009 E-VISION International, s.r.o.
106
6.3
Visual PHP Developer Guide
Přepínání stylů Ve Visual PHP™ si můžete vytvořit neomezené množství stylů, které můžete přepínat.
Přepínání pomocí předávání parametru Pokud chcete zobrazit stránku s jiným stylem, než je výchozí styl default, stačí vytvořit odkaz, který bude předávat parametr s názvem style a hodnotou identifikátoru tid daného stylu. http://www.mojedomena.cz/index.php?style=mujstyl
Parametr style je automaticky předáván dalším podstránkám. Systém tedy automaticky upraví všechny generované odkazy tak, aby vždy obsahovaly tento parametr. Typickým použitím může být zobrazení obsahu pro tisk, stačí tedy vytvořit odkaz tak, aby obsahoval parametr style=print.
Přepínání pomocí událostí Pokud nechcete nebo nemůžete použít předchozí způsob, lze nastavit styly pomocí události onInit(). Přejděte do nabídky Prezentace -> Události a založte novou událost s názvem onInit. Tato událost je spouštěna po každém načtení stránky. Do kódu přidejte nastavení proměnné $style tak, jako by byla předávána pomocí parametru v URL adrese. $style = "mujstyl";
Pomocí tohoto způsobu můžete nastavit zobrazování různých stylů podle datumu (letní, zimní vzhled), podle domény či libovolných jiných kritérií.
Společný styl global V případě použití více stylů je vhodné uložit společné deklarace do samostatného stylu s identifikátorem global. Tento styl (pokud existuje) je použit pokaždé před zpracováním všech ostatních stylů. Není tedy nutné neustále dokola zapisovat stejné CSS společné všem ostatním.
© 2009 E-VISION International, s.r.o.
Layouty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VII
108
7
Visual PHP Developer Guide
Layouty Layouty tvoří základní stavební prvek prezentací. Definují jak bude prezentace vypadat a jak se bude chovat při zobrazení jednotlivých sekcí. Díky unikátnímu systému vizuální tvorby layoutů nejste nijak omezování při implementaci libovolného designu. Do layoutů lze umístit libovolné dynamické prvky na libovolné místo. Layouty lze do sebe vnořovat, nastavovat zobrazení pomocí podmínek, typů prohlížečů, stylů a jiných parametrů, takže máte absolutní volnost pro tvorbu. Pro zobrazení a úpravu stylů přejděte do nabídky Prezentace -> Layouty.
7.1
Parametry layoutů U layoutů lze nastavit následující možnosti
Jméno Název layoutu (kromě speciálních případů jsou layouty pojmenovány podle názvu tabulky, která se má zobrazit)
Způsob zobrazení Definuje, v jakém zobrazení bude layout použit. Existují 2 typy zobrazení: · Plné (vtFull) - zobrazení konkrétního záznamu tabulky databáze · Přehled (vtList) - zobrazení několika záznamů tabulky databáze s možností výběru konkrétního včetně možnosti stránkování, filtrace a jiných funkcí · Všechny (vtAll) - zobrazení společné jak pro přehled tak pro plný záznam
Jazyk U vícejazyčných prezentací můžete mít vlastní layout pro libovolný jazyk
Styl Layout lze přiřadit ke stylu. Bude použit pouze pokud je styl nastaven (pomocí parametru style, nebo proměnné $style)
Podmínka Zde je možné specifikovat podmínku, za jaké bude tento layout použit. Podmínkou je PHP kód (např. $mojePromenna == "mojehodnota"). Systém zkontroluje všechny layouty s daným jménem, které mají definovanou podmínku a pokud není podmínka splněna u žádného z nich, použije layout bez podmínky.
Prohlížeče Layout lze nastavit i pro konkrétní typ prohlížeče. Systém použije ten layout, ve kterém je prohlížeč definován. Pokud nenalezne, použije layout bez definice prohlížečů. Typickým použitím prohlížečů u layoutů je možnost zobrazit obsah bez zbytečné grafiky pro prohlížeče v mobilních zařízeních.
HTML Vizuální editor pro samotnou implementaci HTML kódu layoutu.
© 2009 E-VISION International, s.r.o.
Layouty
7.2
109
Zpracování layoutů Visual PHP™ ve výchozím stavu načítá layout s názvem global. Do toho layoutu se implementuje celkový vzhled prezentace. Zobrazení obsahu se provádí vkládáním příslušných dynamických komponent. Globální layout může vypadat například následovně:
Je vidět, že základní nastavení designu je implementováno vizuálně pomocí HTML editoru a obsah, který má možnost upravovat koncový zákazník je zobrazen pomocí různých komponent, které představují ikonky.
7.3
Vložení vnitřního layoutu (Include Layout) Layouty lze vzájemně vnořovat. Pro umístění jiného layoutu vložte v HTML editoru na požadované místo komponentu Include Layout. Pomocí Property Editoru nastavte název layoutu, který se má vložit. Systém poté hledá layout s tímto názvem. Pokud jej nenalezne, použije layout s názvem default.
© 2009 E-VISION International, s.r.o.
110
Visual PHP Developer Guide
Abychom dosáhli zobrazení různého obsahu podle sekce, ve které se návštěvník nachází, je potřeba místo jména layoutu použít speciální direktivu {php: $tableName}. Systém před vložením layoutu provede vyhodnocení této proměnné a dosadí název tabulky databáze, ve které se návštěvník nachází. Pokud ho odkážeme na soubor news.php, bude mít tato proměnná hodnotu news a dojde vložení layoutu s názvem news. Obdobně to funguje pro všechny ostatní tabulky databáze. Obecně platí, že pro zobrazení určité sekce používáme odkaz na soubor, jehož název tvoří název tabulky a přípona .php.
Pokud potřebujeme na stejném místě globálního layoutu zobrazit zcela jiné informace pro různé situace, je možné vytvořit 2 layouty se stejným názvem, tyto layouty poté odlišit podmínkou a do global layoutu vložit komponentu Include Layout s nastaveným názvem takovým, jaký mají ony 2 nové layouty. Typickým příkladem je zobrazení přihlašovacího formuláře pro nepřihlášené a dalších informací pro přihlášené. Jinou možností více layoutů je zobrazení panelů uprostřed (přilepených přímo k levému a pravému panelu) na úvodní stránce a dalšího obsahu s odsazením (padding) na jiných stránkách. Vnořené layouty mohou obsahovat další dynamické komponenty, případně další vnoření jiných layoutů.
© 2009 E-VISION International, s.r.o.
Dynamický obsah Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VIII
112
Visual PHP Developer Guide
8
Dynamický obsah
8.1
Vložení layoutu Komponenta
Include Layout slouží ke vložení jiného layoutu s daným názvem.
Komponenta má k dispozici tyto nastavení:
Name Název layoutu, který se má vložit. Pro automatické vložení layoutu podle sekce, ve které se návštěvník nachází, zadejte {php: $tableName}.
Required Pokud neexistuje layout se zadaným názvem, bude použit layout s názvem default.
Parse Order V některých případech je potřeba vložit layout až po provedení všech akcí, definovaných v jiných komponentách nebo vlastních obslužných PHP kódech. Typicky mužeme mít 2 layouty pro zobrazení informací přihlášenému uživateli a přihlašovací formulář pro nepřihlášeného uživatele. Pokud obsluhujeme přihlášení v nějakém skriptu, který je např. vnořený do jiného layoutu a komponenta Include Layout tento layout se nachází až za touto komponentou, bylo by přihlášení realizováno až po zobrazení tohoto layoutu a tedy podmínka, zda je uživatel přihlášen by byla vždy nesplněna. Proto je možné nastavit u komponenty Include Layout pořadí zpracování. · poFirst - komponenta bude zpracována jako první · poLast - komponenta bude zpracována jako poslední
8.2
Obsah tabulky databáze (Table Content) Unikátní systém vizuálních šablon produktu Visual PHP™ umožňuje zobrazit obsah databázových tabulek s použitím libovolného grafického designu. Systém vloží obsah tabulky na místo dynamické komponenty Table Content. U této komponenty lze nastavit velké množství vlastností od SQL fitrací až po zobrazení ve více sloupcích. Pro základní zobrazení obsahu podle sekce ve které se návštěvník nachází jsou tyto komponenty vloženy do výchozích layoutů s názvy příslušných tabulek databáze.
Komponenta má k dispozici tyto nastavení:
Table Name Název tabulky databáze, ze které se má vložit obsah. Pro automatické vložení názvu podle sekce, ve které se návštěvník nachází, zadejte {php: $tableName}. Pro takovéto typy dochází k zobrazení titulku stránky a další navigace, protože je tato tabulka databáze považována za hlavní.
Main Content Pokud použijete přímý název tabulky databáze a nastavíte na hodnotu true, znamená to, že v titulku stránky se zobrazí informace tak, jako by šlo o hlavní tabulku podle sekce, ve které se nacházíte.
© 2009 E-VISION International, s.r.o.
Dynamický obsah
113
id Zadejte, pokud potřebujete zobrazit konkrétní záznam podle id. Typicky je zobrazení určitého dokumentu na místě některého levého nebo pravého panelu. Administrátor si poté může v dokumentu upravovat obsah, aniž by zasahoval do layoutu.
tid Zadejte, pokud potřebujete zobrazit konkrétní záznam podle tid. Je to přehlednější způsob vkladání obsahu, protože je jednoduší si zapamatovat např. textový identifikátor footer, než klasický UUID identifikátor.
parent Používá se pro zobrazení více záznamů detail tabulky (ve vztahu master-detail mají pole parent u detail tabulky hodnotu pole id master tabulky)
mid Slouží pro zobrazení kontrétního záznamu, navázaného na konkrétní položku menu
isCategory Slouží pro zobrazení přehledu záznamů, navázaného na konkrétní položku menu specifikované v mid
Items Per Page Nastavuje maximální počet záznamů zobrazených na stránce
Column Count Definuje počet sloupců, ve kterých se budou záznamy zobrazovat
Column Order Nastaví způsob, jak budou záznamy ve více sloupcích řazeny. K dispozici je řazení pod sebe (po sloupcích - vhodné u řazení podle abecedy) nebo vedle sebe (po řádcích).
Column Spacing Odsazení jednotlivých záznamů v pixelech
View Type Zde lze přímo nastavit o jaké zobrazení půjde (tedy jakou šablony použije systém pro zobrazení záznamů)
© 2009 E-VISION International, s.r.o.
114
Visual PHP Developer Guide
Filter SQL fitrace záznamů
Order By SQL seřazení záznamů
Group By SQL seskupení záznamů
Begin Ignoruje daný počet záznamů na začátku specifikovaný v Items Per Page a zobrazí záznamy začínající tímto pořadovým číslem. Indexování začíná od nuly.
Limit Používá se v kombinaci s Begin a nastavuje počet záznamů (podobně jako Items per Page).
Fields Seznam polí, které se mají číst z databáze. Pokud není zadáno, čtou se všechny.
Additional Fields Definuje další pole, které se přiřadí ke čteným záznamům. (např. LENGTH(name) AS name_length)
Random Order Záznamy jsou vybírány náhodně. Typicky v kombinaci Items Per Page s hodnotou 1 zobrazí např. jeden náhodný obrázek.
Ignored parameters Parametry s URL adresy ovlivňují načítání záznamů z databáze pro hlavní tabulky - tj ty s {php: $tableName} případně s nastaveným Main Content. Pokud potřebujete eliminovat ovlivnění zobrazení záznamů parametry z URL adresy, zadejte názvy těchto parametrů.
Active Povolí nebo zakáže zpracování této komponenty. Toho můžete využít k dočasnému vypnutí, aniž byste museli komponentu odstranit.
Animation Zobrazí záznamy jako animaci. Dispozici jsou 2 efekty fade - aktivní záznam po určitém intervalu vybledne a místo něj se zobrazí následující scroll - následující záznam po určitém intervalu vytlačí zobrazený záznam směrem nahoru
© 2009 E-VISION International, s.r.o.
Dynamický obsah
115
Animation Timeout Interval v sekundách mezi výměnou obsahu animace
Template Název vlastní šablony. Typicky chceme zobrazit např. kratší informace a jiný design pro novinky v panelu oproti zobrazení v hlavním panelu obsahu.
Margin Top Odsazení záznamu v pixelech
Margin Bottom Odsazení záznamu v pixelech
Margin Left Odsazení záznamu v pixelech
Margin Right Odsazení záznamu v pixelech
Height Pro přehled lze nastavit výšku u vygenerované tabulky
Condition Komponenta zobrazí obsah pouze při splnění PHP podmínky
Ukázka nastavení komponenty Table Content, která vloží obsah prvních 3 záznamů tabulky news seřazených podle datumu sestupně:
© 2009 E-VISION International, s.r.o.
116
Visual PHP Developer Guide
Komponentou Table Content nastavujete, co se má na daném místě zobrazit. Jak se to má zobrazit definujete následně v šablonách. O šablonách se dočtete více v samostatné kapitole. Pokud jde o Table Content pro hlavní tabulku - tedy s nastavením {php: $tableName}, jsou automaticky použity parametry z ostatních komponent (např. page, itemsPerPage, filtrace atd...)
8.3
Procházení stránek (Browse Pages) Aby mohli návštěvníci pohodlně procházet jednotlivé skupiny záznamů, je k dispozici komponenta pro stránkování. Na místo v layoutu vložte komponentu
Browse Pages.
Tato komponenta automaticky předává parametr page, která je použita pro stránkování dané tabulky (např. news.php?page=1).
K dispozici jsou tyto nastavení:
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte stejné nastavení jako u Table Content. Zadejte tedy přímý název tabulky nebo {php: $tableName}, tedy naprosto shodně s kompoentou Table Content.
Limit Maximální počet zobrazených čísel stránek
© 2009 E-VISION International, s.r.o.
Dynamický obsah
117
Separator Oddělovač jednotlivých odkazů (výchozí je mezera)
Display Caption Zobrazí popisek Stránky: v daném jazyce
Display First Zobrazí odkaz pro přechod na první stránku
Display Prior Zobrazí odkaz pro přechod na předchozí stránku
Display Next Zobrazí odkaz pro přechod na následující stránku
Display Last Zobrazí odkaz pro přechod na poslední stránku
Class Definuje název CSS třídy pro použití v odkazu
8.4
Informace o čísle stránky (Page of Pages) Tato komponenta zobrazí informaci, ve které stránce se momentálně návštěvník nachází. Na místo v layoutu vložte komponentu
Page of Pages.
K dispozici jsou tyto nastavení:
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte stejné nastavení jako u Table Content. Zadejte tedy přímý název tabulky nebo {php: $tableName}, tedy naprosto shodně s kompoentou Table Content
Class Definuje název CSS třídy pro použití v odkazu
8.5
Výběr počtu položek na stránce (Items per Page) Počet zobrazených záznamů na stránce můžete předdefinovat, lze ale umožnit i návštěvníkovi pohodlně vybrat z nabídky. Na místo v layoutu vložte komponentu
© 2009 E-VISION International, s.r.o.
Items per Page.
118
Visual PHP Developer Guide
K dispozici jsou tyto nastavení:
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte stejné nastavení jako u Table Content. Zadejte tedy přímý název tabulky nebo {php: $tableName}, tedy naprosto shodně s kompoentou Table Content
Values Definuje možné hodnoty výběru.
Class Definuje název CSS třídy pro použití v odkazu
8.6
Filtrace záznamů Obsah tabulek lze filtrovat podle libovolného pole a podle libovolného kritéria. Slouží k tomu komponenta Filter Item. Ve výchozím stavu zobrazuje tato komponenta nabídku ve formě rozbalovací nabídky s výběrem možných hodnot.
K dispozici jsou tyto nastavení:
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte stejné nastavení jako u Table Content. Zadejte tedy přímý název tabulky nebo {php: $tableName}, tedy naprosto shodně s kompoentou Table Content.
Field Name Název pole tabulky, které chcete filtrovat.
Component Type Slouží pro změnu výchozího typu komponenty.
Component Parameters Další parametry komponenty.
© 2009 E-VISION International, s.r.o.
Dynamický obsah
119
All Existing Values Pokud zadáte, budou zobrazeny všechny možné hodnoty, které může pole tabulky databáze obsahovat. Jinak se zobrazí pouze ty hodnoty, které byly zadány.
Fulltext Filtrace probíhá fulltextově
Operator Výchozí operátor je =. Pokud filtrujete pole s čísly, můžete zadat např. >, >=, <, <=
Parent Fields Slouží pro nastavení filtrování polí, které jsou vzájemně provázané do struktury.
Width Šířka komponenty
Class Definuje název CSS třídy pro HTML prvek vytvořený komponentou
onChange JavaScript kód, který se zavolá při výběru hodnoty návštěvníkem (např odeslání formuláře)
8.7
Navigace Navigace slouží k zobrazení toho, kde se návštěvník momentálně nachází. U sekcí se stromovou strukturou jsou zobrazeny i podsekce. Pro vložení navigace vložte komponentu
K dispozici jsou tyto nastavení:
© 2009 E-VISION International, s.r.o.
Navigation.
120
Visual PHP Developer Guide
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte {php: $tableName}.
Use Menu Captions Specifikuje, zda se mají použít názvy z menu, nebo názvy z konkrétního záznamu tabulky
Display Home Zapíná a vypíná zobrazení odkazu pro návrat na úvodní stránku
Display Path Zapíná a vypíná zobrazení cesty
Display Title Zapíná a výpíná zobrazení titulku aktuálního záznamu v hlavní tabulce
Class Definuje název CSS třídy pro použití v odkazu
8.8
Menu Pro zobrazení nabídky je k dispozici vizuální komponenta Menu. Tato komponenta poskytuje velké množství nastavení chování i vzhledu a stará se o zobrazení stromové struktury z tabulky databáze menu a stará se automaticky o tvorbu správných odkazů.
K dispozici jsou tyto nastavení:
Globální nastavení
© 2009 E-VISION International, s.r.o.
Dynamický obsah
121
Table Name Název tabulky pro potřeby zobrazení menu z vlastní tabulky databáze.
Type Určuje typ zobrazení menu. · horizontal - horizontální menu, jehož hlavní položky se zobrazují vedle sebe a podpoložky se rozbalují směrem dolů · vertical - vertikální menu, jehož hlavní položky se zobrazují pod sebe a podpoložky se rozbalují směrem doprava
tid určuje textový identifikátor položky menu, ze které se mají zobrazovat data. Tohoto lze využít v tom případě, že potřebujete mít více menu ze stejného zdroje. Jako hlavní položky jsou zobrazeny podpoložky záznamu menu, který má tento textový identifikátor.
Width Definuje šířku celého menu
Height Definuje výšku celého menu
Transparency Definuje průhlednost rozbalovacích nabídek. Při hodnotě 100 bude nabídka neprůhledná.
Expand Top Level Po kliknutí na jednu z hlavních položek nabídky se ve vertikálním menu jeho podnabídka zobrazí pod touto položkou. · true - rozbalí se po kliknutí na určitou hlavní položku, ostatní položky zůstanou zabalené · always - rozbalí se všechny hlavní položky menu
Menu Object Name Zde lze nastavit název vlastního objektu, který obsahuje stromovou strukturu pro menu
Nastavení pro hlavní položky menu Text align Nastavuje zarovnání textu v položce
Text case Nastavuje, zda se zobrazí text tak, jak byl zadán, nebo budou písmena konvertována na malá nebo velká
Multiline Povolí nebo zakáže zobrazení textu na více řádků
© 2009 E-VISION International, s.r.o.
122
Visual PHP Developer Guide
Vertical Align Nastavuje vertikální zarovnání textu v položce
Width Definuje šířku samotné položky menu
Height Definuje výšku samotné položky menu
Background Color Definuje barvu pozadí položky
Background Color (over) Definuje barvu pozadí položky po najetí myší
Background Color (active) Definuje barvu pozadí položky, pokud se nacházíme v sekci, na kterou tato položka odkazuje
Background Image Definuje obrázek na pozadí položky
Background Image (over) Definuje obrázek na pozadí položky po najetí myší
Background Image (active) Definuje obrázek na pozadí položky, pokud se nacházíme v sekci, na kterou tato položka odkazuje
Text Style Nastavuje styl písma
Text Weight Nastavuje šířku písma
Text Size Nastavuje velikost písma
Text Font Family Nastavuje font, kterým bude písmo vykresleno
Text Line Height Nastavuje výšku řádku u víceřádkových položek
© 2009 E-VISION International, s.r.o.
Dynamický obsah
Text Color Definuje barvu písma
Text Color (over) Definuje barvu písma po najetí myší
Text Color (active) Definuje barvu písma, pokud se nacházíme v sekci, na kterou tato položka odkazuje
Padding Definuje vnitřní odsazení položky menu
Spacing Definuje vnější odsazení položky menu
Inner Padding (Left, Right, Top, Bottom) Definuje vnitřní odsazení textu od pozadí položky
Arrow Image Definuje obrázek s šipkou, která se zobrazí u položek, které mají podmenu
Arrow Image (over) Definuje obrázek s šipkou, která se zobrazí po najetí myší u položek, které mají podmenu
Arrow Padding (Left, Right, Top, Bottom) Definuje odsazení šipky
Border Color Definuje barvu rámečku položky menu
Border Color (over) Definuje barvu rámečku položky menu po najetí myší
Border Width Definuje šířku rámečku
Separator Image Definuje obrázek oddělovače, který se zobrazí mezi jednotlivými položkami
Separator Image Width Definuje šířku oddělovače
© 2009 E-VISION International, s.r.o.
123
124
Visual PHP Developer Guide
Separator Image Height Definuje výšku oddělovače
Nastavení pro podmenu Width Šířka podmenu
Height Výška podmenu
Background Color Barva pozadí podmenu
Border Color Barva rámečku podmenu
Border Width Šířka rámečku podmenu
Position X (relative) Specifikuje posunutí podmenu horizontálně. Kladné hodnoty posunou směrem doprava, záporné směrem doleva
Position Y (relative) Specifikuje posunutí podmenu vertikálně. Kladné hodnoty posunou směrem dolů, záporné směrem nahoru
Show Pause (ms) Nastavuje časovou prodlevu pro rozbalení podmenu
Hide Pause (ms) Nastavuje časovou prodlevu pro skrytí podmenu
Expand Type Určuje, jakým způsobem půjde podmenu rozbalit · on mouse over - podmenu se zobrazí po najetí myší nad nadřazenou položku · on mouse click - podmenu se zobrazí až po kliknutí myší na nadřazenou položku
Nastavení pro položky podmenu © 2009 E-VISION International, s.r.o.
Dynamický obsah
125
Tyto nastavení jsou shodná s nastavením pro hlavní položky menu
Flash Položky menu může tvořit i flashová animace. Přípravě položek menu ve flashi se budeme věnovat v samostatné kapitole.
All Levels Definuje flash pro všechny úrovně stromu menu
Level (1, 2, 3, 4, 5) Definuje flash pro konkrétní úroveň stromu menu
Správa obsahu menu v administraci Pro úpravu položek menu je potřeba přidat do Admin Menu položku, která bude odkazovat na správu databázové tabulky menu. Přejděte do nabídky Prezentace -> Admin Menu a přidejte nový záznam s názvem menu. Po uložení se v menu administrace zobrazí nová položka s názvem Menu. Po kliknutí na tuto položku můžete spravovat obsah menu, který se zobrazí pomocí této komponenty Menu.
© 2009 E-VISION International, s.r.o.
Šablony Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
IX
Šablony
9
127
Šablony Vizuální šablony poskytují neomezené možnosti při implementaci prezentace. Každý výstup z komponenty Table Content je zpracováván pomocí šablony. Jednotlivé záznamy, který mají být zobrazeny jsou zpracovány šablonou a poté poskládány za sebe, pod sebe nebo do sloupců. Šablony lze rozdělit do dvou skupin: · šablony pro přehled záznamů (vtList) · šablony pro zobrazení plného záznamu (vtFull) Pokud je předán v URL parametr id u hlavního obsahu, nebo přímo zadán v komponentě Table Content, dojde k načtení pouze jednoho záznamu s tímto id a použije se vtFull zobrazení. Jinak se načte více záznamů a zobrazí se jeden po druhém pomocí šablony typu vtList
Ukázka zpracování šablony V ukázce jsou zobrazeny 4 záznamy pomocí šablony. Jak je vidět, postupně je za pole tabulky databáze doplňován jejich obsah. V tabulce jsou pro text definovány 2 pole - description pro krátký popis a text pro celý text. V přehledu chceme zobrazit pouze krátký text až po kliknutí na odkaz zobrazit text celý.
Šablona pro přehled
© 2009 E-VISION International, s.r.o.
128
Visual PHP Developer Guide
Výsledek zpracování šablony pro přehled
Šablona pro plné zobrazení
Výsledek zpracování šablony pro plné zobrazení
© 2009 E-VISION International, s.r.o.
Šablony
129
Odkazy pro plné zobrazení se definují tak, že přímo do odkazu se vloží samotné pole - tedy odkazujeme na news.php?id=[id]. Po zpracování šablony dojde k nahrazení [id] reálnou hodnotou tohoto pole v záznamu databáze.
9.1
Parametry šabon U šablon lze nastavit následující možnosti
Jméno Název šablony (typicky jsou pojmenovány podle názvu tabulky, ke které patří). Pokud potřebujete zobrazit vlastní šablonu, zadejte jí svůj název a v komponentě Table Content zadejte do Template název této šablony.
Způsob zobrazení Definuje, v jakém zobrazení bude layout použit. Existují 2 typy zobrazení: · Plné (vtFull) - zobrazení konkrétního záznamu tabulky databáze · Přehled (vtList) - zobrazení několika záznamů tabulky databáze s možností výběru konkrétního včetně možnosti stránkování, filtrace a jiných funkcí
Jazyk U vícejazyčných prezentací můžete mít vlastní šablonu pro libovolný jazyk
Styl Šablonu lze přiřadit ke stylu. Bude použita pouze pokud je styl nastaven
Podmínka Zde je možné specifikovat podmínku, za jaké bude tuto šablonu použit. Podmínkou je PHP kód (např. $mojePromenna == "mojehodnota"). Systém zkontroluje všechny šablony s daným jménem, které mají definovanou podmínku a pokud není podmínka splněna u žádného z nich, použije šablonu bez podmínky.
Prázdný Speciální šablona pro zobrazení v případě, že nebyl nalezen žádný záznam pro tabulku databáze. Typicky je v takovéto šabloně zobrazen text, který oznamuje, že žádné záznamy nebyly nalezeny.
Prohlížeče Layout lze nastavit i pro konkrétní typ prohlížeče. Systém použije tu šablonu, ve kterém je prohlížeč definován. Pokud nenalezne, použije šablonu bez definice prohlížečů. Typickým použitím prohlížečů u šablony je možnost zobrazit obsah bez zbytečné grafiky pro prohlížeče v mobilních zařízeních.
HTML Vizuální editor pro samotnou implementaci HTML kódu šablony.
© 2009 E-VISION International, s.r.o.
130
9.2
Visual PHP Developer Guide
Zpracování šablon Pro každý záznam, který se má zobrazit pomocí komponenty Table Content je zpracována nastavená šablona. V šabloně se definuje jak design, tak i obsah, který se má zobrazit. Díky VPCL komponentám lze zobrazovat obsah uložený v databázi v různých podobách.
Pro vložení obsahu pole tabulky databáze uzavřete název tohoto pole do hranatých závorek (např. [name] pro zobrazení hodnoty pole name). Každá komponenta ma navíc i další pomocné funkce pro zobrazení (např. komponenta DATETIME má funkce pro zobrazení datumu - getDate(), času - getTime(), atd...) Pokud neznáte názvy všech polí, podívejte se pomocí nabídky Prezentace -> Tabulky a vyberte Pole tabulky u příslušné tabulky databáze. Zde zjistíte jak názvy polí tak i přiřazené VPCL komponenty. Pokud potřebuje mít výstup ve formě tabulky, lze vytvořit v šabloně tabulku se záhlavím a zápatím. Pro první záznam bude použito záhlaví a první řádek tabulky, pro poslední záznam bude použit řádek tabulky a zápatí.
9.3
Podmínky v šablonách Podmíněného zobrazování lze ve Visual PHP™ docílit několika způsoby.
Condition ve vlastnotech šablony Pomocí nastavení condition můžeme specifikovat, která šablona se má pro daný záznam použít. V poli condition můžeme použít proměnnou $recordValues, která obsahuje hodnoty tak, jak jsou uloženy v databázi. Například můžeme vytvořit 2 šablony vtList pro tabulku news tak, že pokud uživatel vyplní pole description, bude zobrazeno, a pokud ne, tak bude zobrazeno pole text. Pro první šablonu, která má zobrazit description, nastavíme podmínku $recordValues["description"] != "". Pro druhou šablonu už podmínku nebudeme nastavovat, protože bude použita právě v tom případě, kdy předchozí podmínka není splněna. Při zpracovávání jednotlivých záznamů bude použita jedna nebo druhá šablona.
Podmínky v šabloně Pro případy, kdy se nechceme vytvářet více šablon lze použít podmínky uvnitř HTML šablony. Zde již využíváme samotných komponent. Pro příklad, kdy chceme zobrazit pole description nebo text, lze použít této podmínky: {#if [description.hasValue()]}[description]{#else}[text]{#endif}
Systém vyhodnotí podmínku zadanou v {#if} a pokud je splněna, použije hodnotu definovanou za ní. Jinak © 2009 E-VISION International, s.r.o.
Šablony
131
použije hodnotu za {#else}
Podmínky v XHTML šablony Pokud potřebujete zobrazovat nebo nezobrazovat celý blok (např. element
) je možné nastavit celému bloku podmínku. Jednoduše to lze provést označením celého bloku a kliknutím na tlačítko Condition. Po zadání podmínky se celý blok orámuje zeleným rámečkem pro přehlednost. Podmínky lze udělat i ručně v editaci XHTML kódu. Slouží k tomu speciální atribut condition.
[descrioption]
[text]
Podmínky ve vloženém PHP kódu Pro složité podmínky je vhodné použít PHP kód. Na potřebné místo jej stačí vložit pomocí tlačítka PHP kód. Do něj lze již vložit vlastní kód pro zpracování podmínek. if ([description.hasValue()]) return("[description]"); else return("[text]");
Ve všech podmínkách jsou nejprve zpracovány komponenty, a až poté je vyhodnocován kód pro podmínku. Proto je nutné uzavřít textové hodnoty do uvozovek - viz. return("[description]")
© 2009 E-VISION International, s.r.o.
Tabulky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
X
Tabulky
10
133
Tabulky Ve Visual PHP™ jsou klasické databázové tabulky zapouzdřeny do samostaných objektů. Tyto objekty obsahují rozšíření oproti základním tabulkám v databázi. Lze u nich nastavit způsoby chování, automatické filtrace, zobrazení titulků a v neposlední řadě i vzájemné vztahy jako například masterdetail. Každá tabulka obsahuje samozřejmě pole a i tyto pole jsou představovány jako objekty, které jsou rozšířené oproti základním polím databází. O polích se dozvíte více informací v samostatné kapitole.
10.1 Přehled tabulek Pro přehled výchozích tabulek přejděte do nabídky Prezentace -> Tabulky. Zobrazí se Vám seznam tabulek ve stromové struktuře. Tato struktura zobrazuje vztahy mezi tabulkami (master-detail, extended, ...). Každá tabulka má k sobě vytvořený .php soubor podle názvu této tabulky. Chcete-li zobrazit například obsah tabulky news, stačí zadat do prohlížeče URL http://www.domena.com/news. php .
10.2 Parametry tabulek U tabulek lze nastavit následující možnosti
Základní Název tabulky Název databázové tabulky
Název tabulky (SQL) Skutečný název tabulky v databázi. Pokud nebude zadán, použije se název tabulky. Této možnosti můžete využít například k tomu, abyste nemuseli předělávat layouty a šablony, pokud potřebujete napojit jinou tabulku pod stejným názvem.
Titulek (textový název) Název tabulky, který se zobrazí koncovému zákazníkovi. Pro vícejazyčné překlady použijte Prezentace > Jazyky -> Překlady
Databázové připojení Vyberte, pokud chcete napojit tabulku z externí databáze. Databázová připojení lze nastavit v Prezentace -> Databázová připojení
Typ Zde je možné nastavit typ tabulky · standardní tabulka - klasická databázová tabulka s poli
© 2009 E-VISION International, s.r.o.
134
Visual PHP Developer Guide
· výčtová tabulka - tabulka, která má pouze 2 pole (name, value). Po načtení záznamů dojde k přiřazení názvů a hodnot podobně jako u standarní tabulky. Množství takovýchto virtuálních polí je ale neomezené · tabulka v paměti RAM - tato tabulka nečte z databáze, ale lze ji naplnit daty a tyto poté zobrazit pomocí komponenty Table Content
Externí tabulka Zaškrtněte tuto volbu, pokud chcete z tabulky číst, ale chcete zabránit jakékoli modifikaci její struktury. Typicky jde o tabulky, které jsou načítány pomocí databázového připojení z externích zdrojů. Jakékoli modifikace polí nad touto tabulkou nebudou ovlivňovat strukturu samotné tabulky v databázi.
Soubor Každá tabulka má k sobě přiřazen .php soubor s názvem shodným s názvem tabulky. Zadejte, pokud chcete použít jiný název souboru
Vyhledávání Nastaví, zda bude tabulka zahrnuta do fulltextového vyhledávání
Typ zachování historie U tabulek je možné nastavit, aby zachovávaly historii změn. To jakým způsobem budou změny uloženy nastavíte výběrem jedné z možností · bez historie - historie se neukládá · zachovat id v záznamu - původní odkazy budou směrovat vždy na aktuální záznam. Nejnovější verze záznamu má vždy stejné id a původní záznamy dostanou nové id. · zachovat id v historii - původní odkazy budou směrovat vždy na původní záznamy před modifikací. Nejnovější verze záznamu má vždy nové id a původním záznamům id zůstanou. Pokud nastavíte typ historie, je potřeba tabulku rozšířit o nové pole s názvem history, SQL typem TEXT a komponentou HISTORY. Do tohoto pole jsou ukládány informace o historii záznamu.
RSS Z každé tabulky je možné vygenerovat RSS soubor. Stačí pouze nastavit, ze kterých polí se má tento RSS soubor generovat. Common: · File Name - název souboru, kam bude RSS generováno · Limit - maximální počet generovaných záznamů · Filter - SQL filtrace záznamů · Order By - SQL řazení záznamů Channel (required): · Title - název RSS kanálu · Link - odkaz RSS kanálu · Description - popis RSS kanálu Channel (optional): · Copyright - autorské informace · Managing Editor - Jméno redaktora · Webmaster - Jméno webmastera
© 2009 E-VISION International, s.r.o.
Tabulky
135
Items: · Title - název pole pro titulek · Description - název pole pro popis · Date - název pole pro datum · Author - název pole pro autora, nebo vlastní text · Comments - název pole pro komentáře, nebo vlastní text
Relace Master tabulka Název databázové tabulky, která je nadřazená této tabulce (typicky jde o tabulku, se kterou se chceme provázat pomocí master-detail)
Pole obsahující název master tabulky Název pole, ve kterém je uložen název master tabulky (toho lze využít u multidetail tabulky, která je detail tabulkou několika master tabulek)
Master pole Název pole v master tabulce, jehož hodnota bude uložena do detail pole v detail tabulce (typicky jde o pole id)
Detail pole Název pole v této tabulce, které odkazuje na záznam v master tabulce (typicky jde o pole parent)
Klíčové pole (strom) Název pole, jehož hodnota bude uložena do Pole pro nadřazený záznam. Tohoto je využito při tvorbě tabulek, které se chovají jako strom. (typicky jde o pole id)
Pole pro nadřazený záznam (strom) Název pole, které odkazuje na nadřazený záznam v hiearchii stromu (typicky jde o pole id) Více informací o vztazích master-detail, multidetail a tree naleznete v samostatných kapitolách.
SQL Filtrace (www) Nastavení SQL filtrace, která bude použita jako výchozí v prezentaci
Filtrace (admin) Nastavení SQL filtrace, která bude použita jako výchozí v administraci
Řazení (Order By) Nastavení SQL řazení, která bude použito jako výchozí v prezentaci i administraci © 2009 E-VISION International, s.r.o.
136
Visual PHP Developer Guide
Povolit vkládání Nastavení, zda bude umožněno vkládat nové záznamy
Povolit úpravy Nastavení, zda bude umožněno upravovat záznamy
Povolit odstranění Nastavení, zda bude umožněno odstranění záznamů
Zobrazení Titulek pro přehled (vtList) Zde můžete specifikovat, jaký titulek se zobrazí v
za názvem prezentace v přehledu.
Titulek pro plné zobrazení (vtFull) Zde můžete specifikovat, jaký titulek se zobrazí v za názvem prezentace v plném zobrazení. Aby se zobrazily i informace z databáze, lze použít {php: $recordValues["field name"]}
Pole zobrazená v přehledu (administrace) Pouze tyto pole se zobrazí v přehledu záznamů v administraci
Pole zobrazená v editaci (administrace) Pouze tyto pole se zobrazí v editaci záznamu v administraci
Pole pro filtraci (administrace) Podle těchto polí bude umožněna filtrace v levém panelu v přehledu záznamů v administraci
Pole pro filtraci podle počátečních písmen (administrace) Tyto pole bude možné filtrovat podle počátečního písmene v levém panelu v přehledu záznamů v administraci
Skrytá pole (administrace) Tyto pole budou v administraci skrytá
Reporty Umožní univerzální filtraci záznamů a tím tvorbu libovolných reportů
Náhled Zobrazí odkaz pro náhled záznamu
© 2009 E-VISION International, s.r.o.
Tabulky
137
Popis Popis tabulky
SEO SEO mapování odkazů Nastavení, zda bude pro tuto tabulku generováno mapování odkazů pro SEO
Pole pro text odkazu Specifikuje pole, ze kterého se vytvoří text SEO odkazu
Pole pro popis stránky Specifikuje pole, ze kterého se bude generovat popis stránky pro tag <description>
Pole pro klíčová slova stránky Specifikuje pole, ze kterého se budou generovat klíčová slova pro tag Více informací o SEO optimalizaci ve Visual PHP™ se dočtete v samostatné kapitole.
Události Aby bylo možné prezentaci ve Visual PHP™ přizpůsobit vlastním potřebám, je možné vkládat vlastní zdrojový kód, který bude vykonán při určitých událostech prováděných s tabulkou.
onInsert tato událost se volá při vložení nového záznamu do tabulky
onUpdate tato událost se volá při úpravě záznamu v tabulce
onDelete tato událost se volá při odstranění záznamu z tabulky
onDisplay tato událost se volá při zobrazení záznamu
onFilter touto událostí můžete vrátit SQL filtraci
onChange tato událost se volá při změně záznamu (vložení, úpravě nebo odstranění)
© 2009 E-VISION International, s.r.o.
138
Visual PHP Developer Guide
onCustomChange touto událostí můžete sami obsloužit vkládání, úpravu nebo odstranění
onGetActions tato událost přidá do prvního sloupce v přehledu administrace další odkazy
onGetContent pokud vyplníte tuto událost, nebude výstup z komponenty Table Content generován automaticky, ale použije se výstup skriptu v této události
10.3 Master-Detail Tabulky Relace Master-Detail je běžně používaná relace vyjadřující vztah 1:N mezi dvěma tabulkami. Detail tabulka obsahuje pole, které odkazuje na identifikátor záznamu z master tabulky.
Jak je vidět na ukázce, je detail tabulka rozšířena o pole parent, do kterého je ukládán identifikátor z master tabulky. Pole parent tedy představuje vazbu, podle které můžeme poznat, které záznamy z detail tabulky patří k určitému záznamu v master tabulce. Pro představu je tohoto vztahu použito například u anket, kde v master tabulce votes jsou ankety a v detail tabulce vote_items jsou jednotlivé odpovědi v anketě, navázané na konkrétní záznam v master tabulce votes. Detail tabulku vytvoříte jednoduše tak, že nastavíte tabulce následující parametry v záložce relace: · Master tabulka - název tabulky, pro kterou bude tato tabulka detail tabulkou · Master pole - název pole v master tabulce, jehož hodnota bude sloužit pro master-detail vazbu (typicky jde o identifikátor id v master tabulce) · Detail pole - název pole v detail tabulce, do kterého se bude ukládat hodnota z master pole. Toto pole představuje vazbu, pomocí které poznáme, které záznamy patří k nadřazenému záznamu z master tabulky V přehledu tabulek (Prezentace -> Tabulky) se detail tabulky zobrazí ve stromové struktuře. Jsou tedy už na první pohled vidět vzájemné vztahy mezi tabulkami. Visual PHP™ umožňuje pohodlně spravovat detail záznamy pomocí komponenty DETAILTABLE. Tato © 2009 E-VISION International, s.r.o.
Tabulky
139
komponenta se přiřadí k virtuálnímu poli v master tabulce a zobrazí všechny záznamy z detail tabulky s možností pohodného vkládání, editace a odstraňovanání záznamů. Dále je automaticky v administraci vytvořen odkaz na přehled záznamů detail tabulky, který se zobrazí v prvním sloupci pod akcemi u jednotlivých záznamů.
10.4
Multi-Detail tabulky Relace Multi-Detail je rozšířením relace Master-Detail s tím rozdílem, že detail tabulka je navázána na libovolný počet master tabulek. Tato relace přináší obrovskou výhodu v tom, že pokud má mít více tabulek své detail tabulky se stejnou strukturou dat, není nutné tyto detail tabulky vytvářet pro každou master tabulku zvlášť.
Jak je vidět na ukázce, je detail tabulka rozšířena nejen o pole parent, do kterého je ukládán identifikátor z master tabulky, ale i o pole tableName, do kterého je ukládán název master tabulky. Pole parent tedy představuje vazbu, podle které můžeme poznat, které záznamy z detail tabulky patří k určitému záznamu v master tabulce a pole tableName určuje, o kterou master tabulku jde. Pro představu je tohoto vztahu použito například u diskuzí, kde lze diskuze přiřadit k libovolné tabulce, tedy libovolná sekce může obsahovat svou diskuzi. Multi-Detail tabulku vytvoříte jednoduše tak, že nastavíte tabulce následující parametry v záložce relace: · Pole obsahující název master tabulky - název pole v detail tabulce, které bude obsahovat název master tabulky · Master pole - název pole v master tabulce, jehož hodnota bude sloužit pro master-detail vazbu
© 2009 E-VISION International, s.r.o.
140
Visual PHP Developer Guide
(typicky jde o identifikátor id v master tabulce) · Detail pole - název pole v detail tabulce, do kterého se bude ukládat hodnota z master pole. Toto pole představuje vazbu, pomocí které poznáme, které záznamy patří k nadřazenému záznamu z master tabulky V přehledu tabulek (Prezentace -> Tabulky) se multi-detail tabulky nezobrazují ve stromové struktuře. Není totiž možné jednoznačně identifikovat, ke které tabulce má detail tabulka relaci. To je známo až z konkrétních hodnot v záznamu této tabulky. Visual PHP™ umožňuje pohodlně spravovat detail záznamy pomocí komponenty DETAILTABLE. Tato komponenta se přiřadí k virtuálnímu poli v master tabulce a zobrazí všechny záznamy z detail tabulky s možností pohodného vkládání, editace a odstraňovanání záznamů. Dále je automaticky v administraci vytvořen odkaz na přehled záznamů detail tabulky, který se zobrazí v prvním sloupci pod akcemi u jednotlivých záznamů.
10.5 Tree tabulky Zobrazení a ukládání dat ve stromové struktuře bývá obvykle problémem z toho důvodu, že je nutné uložit hiarchicky řazená data do tabulky databáze, která ukládá data v "plochém" formátu. Ve Visual PHP™ lze jednoduše vytvářet i tabulky se stromovou strukturou.
Jak je vidět na ukázce, je tabulka rozšířena o pole parent, ve kterém je uložen identifikátor nadřazeného záznamu (tedy odkazuje na nadřazený záznam) a pomocné pole parentList a childList , ve kterých je uložen seznam nadřazených a podřízených položek v hiearchii. Záznamy 1 a 5 nemají hodnotu v poli parent, tedy jsou na vrcholu hiearchie. Záznamy 2 a 3 mají hodnotu 1 v poli parent, tedy jsou podřízené záznamu 1. Záznam 4 má hodnotu 3 v poli parent, tedy je podřízený záznamu 3. Podobně je to i u ostatních záznamů. Pokud se podíváme na záznam 4, je vidět, že má v poli parentList hodnotu 3|1, tedy seznam všech nadřazených záznamů až k vrcholu hiearchie. Pokud se podíváme na záznam 1, je vidět, že má v poli childList hodnotu 2|3|4, tedy seznam všech podřízených záznamů. Pole childList se využívá například ke zjištění, zda má záznam nějaké podzáznamy bez toho, aby bylo nutné číst další záznamy z databáze. Pole parentList lze využít při různých filtracích. Tree tabulku vytvoříte jednoduše tak, že nastavíte tabulce následující parametry v záložce relace: · Klíčové pole (strom) - název pole v tabulce, jehož hodnota se bude ukládat do pole pro nadřazený záznam (typicky jde o pole id) · Pole pro nadřazený záznam (strom) - název pole, do kterého se bude ukládat hodnota z klíčového
© 2009 E-VISION International, s.r.o.
Tabulky
141
pole. Toto pole představuje vazbu, pomocí které poznáme, ke kterému záznamu je záznam podřízený Pro představu je tohoto vztahu použito například u menu nebo admin menu, které mají hiarchickou strukturu.
10.6 Property tabulky Tyto tabulky slouží k uložení velkého množství záznamů typu název=hodnota. Po načtení dat do tabulky se vytvoří jediný záznam s poli nazvanými tak, jako jsou názvy v jednotlivých záznamech. Hodnoty těchto polí jsou vyplněny hodnotami v těchto záznamech.
Jak je vidět na ukázce, obsahuje tabulka pole name pro název pole a pole value pro hodnotu pole. Po načtení se vytvoří záznam který převede hodnoty polí name a value v jednotlivých záznamech na jediný záznam simulující skutečné pole v tabulce. Property tabulku vytvoříte jednoduše tak, že nastavíte tabulce následující parametry v záložce základní: Typ - výčtová tabulka Pole name a value budou vytvořeny automaticky. Dále je potřeba vytvořit virtuální pole pro tuto tabulku.
© 2009 E-VISION International, s.r.o.
Pole tabulek Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XI
Pole tabulek
11
143
Pole tabulek Pole tvoří nedílnou součást databázových tabulek. Pole jsou ve Visual PHP™ opět tvořeny jako objekty, které tyto pole rozšiřují o další vlastnosti. Největší přínos tvoří komponenty, přiřazené k těmto polím. Díky těmto komponentám lze rozšířit základní datové typy SQL databáze o vizuální prvky, které Vám usnadní vlastní tvorbu administračního rozhraní pro Vašeho koncového zákazníka.
11.1 Přehled polí tabulky Přehled polí tabulky zobrazíte tak, že přejdete do nabídky Prezentace -> Tabulky a u konkrétní tabulky kliknete v prvním sloupci na Pole tabulky.
11.2 Parametry polí tabulek U polí lze nastavit následující možnosti
Základní Tabulka Název tabulky, do které pole patří
Název pole Název tohoto pole
Název pole (SQL) Název pole v databázi. Pokud například napojujete tabulku z externí databáze, která má identifikátor nazvaný jinak, než id, vyplňte skutečný název pole.
Titulek (textový název) Reprezentuje textový název pole. Tento název se zobrazí místo skutečného názvu pole v přehledu i v úpravě záznamu v administraci.
Nadřazené pole Specifikuje nadřazené pole ve stromové struktuře. Typicky jde například o záložku
SQL typ Databázový typ pole
SQL typ (parametry) Parametry databázového typu pole (např. délka řetězce, výčet hodnot, ...)
Nenulová SQL hodnota Specifikuje, že pole nesmí mít nulovou hodnotu NULL. © 2009 E-VISION International, s.r.o.
144
Visual PHP Developer Guide
Typ komponenty Přiřazuje k poli komponentu, která se stará o zobrazení v administraci, zpracování dat nad databázovým SQL typem, filtraci a zobrazení v prezentaci
Parametry komponenty Nastavuje parametry přiřazené komponenty. Tyto parametry se liší v závislosti na použité komponentě.
Výchozí hodnota Specifikuje, jakou hodnotu bude mít pole v momentě vytvoření nového záznamu. Můžete použít přímo hodnotu, nebo i libovolný PHP skript uzavřený v {php: } nebo SQL skript uzavřený v {sql :}. Typicky pro komponentu DATETIME lze vložit výchozá hodnotu {sql: NOW()} pro vložení aktuálního datumu a času.
Automatická hodnota Při každém uložení záznamu bude původní hodnota ignorována a pole bude mít vždy tuto zadanou hodnotu. Opět platí, že lze použít uvnitř PHP i SQL skripty
Typ exportu Nastavuje, jakým způsobem bude toto pole exportováno při použítí funkce exportu.
Ostatní Popis Přiřadí krátkou nápovědu v úpravě záznamu v administraci.
Povinné pole Tato pole jsou povinná a je nutné je v administraci vyplnit.
Pouze ke čtení Tato pole není možné změnit
Viditelný Tímto lze v administraci skrýt toto pole
Oddělovač Nad polem se zobrazí čára, která vizuálně oddělí toto pole v administraci
Indexovat Přidá do tabulky databáze indexaci tohoto pole (CREATE INDEX)
© 2009 E-VISION International, s.r.o.
Pole tabulek
145
Fulltextová indexace Přidá do tabulky databáze fulltextovou indexaci tohoto pole (CREATE FULLTEXT INDEX)
Unikátní Toto pole musí mít unikátní hodnotu v rámci celé tabulky databáze
Uživatelské skupiny Toto pole se zobrazí v administraci pouze vybraným uživatelským skupinám
Události Ke každému poli je přiřazena komponenta. Každá tato komponenta má své vlastní metody pro práci s daty a zobrazování. Pokud potřebujete rozšířit kódy komponent podle vlastních potřeb, je možné je změnit v následujících událostech:
onGetDBValue Vrací hodnotu, která se uloží do databáze. Typicky například komponenta EDITLIST odesílá z administračního formuláře hodnotu typu pole. Toto pole je nutné do databáze uložit jako řetězec.
onGetValue Vrací hodnotu, která je uložená v databázi. Toho lze využít v šablonách [field.getValue()]
onGetCode Vrací HTML kód, který se zobrazí při administraci tohoto pole. V této události jej můžete přepsat, nebo i rozšířit například o další tlačítka a podobně.
onGetDisplayValue Vrací hodnotu, která se zobrazí při zobrazení tohoto pole v prezentaci, nebo v přehledu administrace. Toho lze využít v šablonách [field] nebo [field.getDisplayValue()]
onGetDisplayText Vrací hodnotu podobně jako událost onGetDisplayValue, ale pouze jako text. Například u komponenty IMAGE vrací onGetDisplayValue tag , ale onGetDisplayText vrátí pouze název obrázku.
onGetExportValue Vrací hodnotu, která bude použita při exportu tohoto pole. Pokud není zadána, použije se onGetValue, nebo onGetDisplayValue
onCheckValue Zde můžete provést vlastní kontrolu správnosti zadaných dat do tohoto pole. Typicky například kontrola, zda je správně zadaný email do textového pole. Pokud vrací tato událost řetězec nenulové délky, zobrazí se tento řetězec jako chyba. V opačném případě je toto pole bráno jako validní.
© 2009 E-VISION International, s.r.o.
146
Visual PHP Developer Guide
onGetAjaxValue Této události lze využít při volání JavaScriptových funkcí.
onGetFooterValue TODO
11.3 Virtuální pole Tyto pole neexistují fyzicky v tabulce databáze. Jedná se například o pomocné pole pro komponenty PAGECONTROL a TABSHEET, pro pole sloužící ke správě obsahu detail tabulky nebo pole, které zobrazují různé součty, průměry a jiné informace, které nejdou číst přímo z databáze. Virtuální pole se vytváří tak, že se u pole nezadá SQL typ a SQL parametry. Pouze se vybere typ komponenty, která bude nad tímto polem pracovat.
© 2009 E-VISION International, s.r.o.
Komponenty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XII
148
12
Visual PHP Developer Guide
Komponenty Každé pole má svou komponentu. Tato komponenta se stará o administraci, filtraci a zobrazování hodnot v prezentaci.
12.1 COMPONENT Tato komponenta představuje základní třídu pro všechny ostatní komponenty a obsahuje základní funkcionalitu. Všechny ostatní komponenty jsou odvozené z této komponenty. Této komponenty lze využít pro tvorbu vlastních komponent.
Metody Následující metody jsou společné všem ostatním komponentám, protože jsou odvozené od této komponenty string getValue(array $recordValues) vrátí hodnotu tak, jak je uložená v databázi string getDBValue(array $beforeRecordValues, array $afterRecordValues) vrátí hodnotu, která bude uložena do databáze string getDisplayValue(array $recordValues) vrátí hodnotu pro zobrazení obsahu string getCode(array $recordValues) vrátí HTML pro úpravu obsahu bool hasValue(array $recordValues) vrátí, zda existuje hodnota
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName] nebo [fieldName.getDisplayValue()] vrátí hodnotu pro zobrazení obsahu [fieldName.getValue()] vrátí hodnotu tak, jak je uložená v databázi [fieldName.hasValue()] vrátí, zda existuje hodnota
© 2009 E-VISION International, s.r.o.
Komponenty
149
12.2 HIDDEN Tato komponenta uchovává obsah pole ale nezobrazuje se v administraci
Doporučený datový typ libovolný
Parametry bez parametrů
12.3 READONLY Tato komponenta uchovává hodnotu pole, není ji však možné v administraci měnit. Zobrazí se pouze jako text.
Doporučený datový typ libovolný
Parametry bez parametrů
12.4
UUID Tato komponenta se stará o vytvoření jedinečného identifikátoru UUID. Tento identifikátor je unikátní na celém světě a nikdy nedojde k vygenerování stejného kódu kýmkoli na světě. Tato komponenta je standardně připojena k poli id.
Doporučený datový typ CHAR(36)
Hodnota uložená v databázi value
© 2009 E-VISION International, s.r.o.
150
Visual PHP Developer Guide
Parametry bez parametrů
12.5 AUTOINCREMENT Tato komponenta se stará o vytvoření jedinečného číselného identifikátoru. Tento identifikátor je unikátní v rámci jedné tabulky. Tato komponenta je standardně připojena k poli id. Toto pole využívejte pro napojení tabulek z externích zdrojů. Pro tabulky tvořené ve Visual PHP™ doporučujeme použít UUID identifikátorů a komponenty UUID.
Doporučený datový typ INT
Hodnota uložená v databázi value
Parametry bez parametrů
12.6 T EXT Jde o běžnou komponentu pro zadávání textu nebo čísel na jednom řádku. Tuto textovou komponentu lze rozšířit i o další prvky pomocí parametrů
Doporučený datový typ libovolný nebo VARCHAR(255) pro vícejazyčné pole
Hodnota uložená v databázi value {#lang(cs): value1} {#lang(en): value2} {#lang(de): value3}...
Parametry Text Before Zobrazí text před textovým polem. Tento text je zobrazen i v prezentaci před hodnotou © 2009 E-VISION International, s.r.o.
Komponenty
151
Text After Zobrazí text za textovým polem. Tento text je zobrazen i v prezentaci za hodnotou Multilanguage Slouží pro zadávání různých hodnot ve více jazycích. V prezentaci se zobrazí pouze hodnota pro daný jazyk Size Určuje velikost textového pole pomocí atributu size Width Určuje šířku textového pole pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty textového pole
Metody string getEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis string getCharEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis [fieldName.getCharEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis
12.7 TEXTAREA Jde o běžnou komponentu pro zadávání víceřádkového textu. Tuto textovou komponentu lze rozšířit i o další prvky pomocí parametrů
© 2009 E-VISION International, s.r.o.
152
Visual PHP Developer Guide
Doporučený datový typ TEXT
Hodnota uložená v databázi value {#lang(cs): value1} {#lang(en): value2} {#lang(de): value3}...
Parametry Replace Line Break to
Nahradí nový řádek za tag
, aby bylo možné řádkování i v zobrazení v prezentaci. Multilanguage Slouží pro zadávání různých hodnot ve více jazycích. V prezentaci se zobrazí pouze hodnota pro daný jazyk Cols Určuje velikost textového pole pomocí atributu cols Rows Určuje velikost textového pole pomocí atributu rows Width
© 2009 E-VISION International, s.r.o.
Komponenty
153
Určuje šířku textového pole pomocí CSS Height Určuje výšku textového pole pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty textového pole
Metody string getEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis string getCharEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis [fieldName.getCharEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis
12.8 CHECKBOX Jde o komponentu pro dvoustavovou logiku zaškrtnuto/nezaškrtnuto formou zaškrtávacího políčka. Tuto textovou komponentu lze rozšířit i o další prvky pomocí parametrů
Doporučený datový typ ENUM
Hodnota uložená v databázi value
Parametry Values Hodnoty, které budou uloženy do databáze v pořadí zaškrtnuto|nezaškrtnuto © 2009 E-VISION International, s.r.o.
154
Visual PHP Developer Guide
Texts Textové popisky pro hodnoty v pořadí zaškrtnuto|nezaškrtnuto onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
12.9 CHECKGROUP Jde o komponentu umožňující výběr z více možností formou zaškrtávacích políček. Tuto textovou komponentu lze rozšířit i o další prvky pomocí parametrů
Doporučený datový typ VARCHAR(255)
Hodnota uložená v databázi value1|value2|value3|...
Parametry Values Hodnoty, které budou uloženy do databáze v případě zaškrtnutí Texts Textové popisky pro hodnoty ve stejném pořadí, jak byly zadány hodnoty. Pokud tyto popisky nezadáte, budou doplněny automaticky přeložením hodnot Display Separator Oddělovač popisku, který se zobrazí v prezentaci Column Count Počet sloupců, ve kterých se zobrazí zaškrtávací pole Column Order Pořadí, ve kterém se zobrazí zaškrtávací pole ve více sloupcích · bottom right - zobrazení probíhá po sloupcích (vhodné například pro abecední seřazení) · right bottom - zobrazení probíhá po řádcích Translate Specifikuje, zda mají být popisky přeloženy do aktuálního jazyka Width
© 2009 E-VISION International, s.r.o.
Komponenty
Určuje šířku celé oblasti pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
Metody array getValueAsArray(array $recordValues) vrátí hodnoty v poli array getDisplayValueAsArray(array $recordValues) vrátí popisky hodnot v poli
12.10 COMBOBOX Jde o komponentu pro výběr jedné z několika hodnot formou rozbalovací nabídky.
Doporučený datový typ ENUM nebo VARCHAR
Hodnota uložená v databázi value value1|value2|value3|...
Parametry Values Výčet hodnot ve formátu hodnota1|hodnota2|hodnota3|... Texts Textové popisky pro hodnoty ve stejném pořadí jako jsou zadány hodnoty ve values Multiselect Specifikuje, zda je možné vybrat více hodnot zároveň Translate Specifikuje, zda budou texty automaticky přeloženy do aktuálního jazyka Unselected Value Hodnota, která se uloží, pokud nevybere uživatel žádnou volbu Unselected Text Popisek pro hodnotu unselected value © 2009 E-VISION International, s.r.o.
155
156
Visual PHP Developer Guide
Editable Umožňuje zadat i vlastní hodnotu Add existing values Zobrazí v seznamu výběru hodnoty, které jsou již uložené v databázi Arrange alphabetically Seřadí popisky hodnot podle abecedy Size Určuje velikost rozbalovací nabídky pomocí atributu size Width Určuje šířku rozbalovací nabídky pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
12.11 DATETIME Jde o komponentu pro zadávání datumu a času. Tato komponenta se automaticky stará o formát datumu podle aktuálního jazyka. V administraci je k dispozici i nabídka formou kalendáře.
Doporučený datový typ DATE, TIME, DATETIME
Hodnota uložená v databázi value
Parametry Size Určuje velikost textového pole pomocí atributu size
© 2009 E-VISION International, s.r.o.
Komponenty
157
Width Určuje šířku textového pole pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty textového pole
Metody string getDate(array $recordValues, bool $asText=true, bool $dayOfWeek=false) vrátí pouze datum. Parametr $asText určuje, zda bude měsíc vrácen textově, nebo číselně. Parametr $dayOfWeek nastavuje, zda bude zobrazen i den v týdnu string getDay(array $recordValues, bool $leadingZero=false) vrátí číslo dne. Parametr $leadingZero specifikuje, zda má být dvouciferný a obsahovat na začátku nulu. string getMonth(array $recordValues, bool $leadingZero=false) vrátí číslo měsíce. Parametr $leadingZero specifikuje, zda má být dvouciferný a obsahovat na začátku nulu. string getYear(array $recordValues, bool $shortFormat=false) vrátí rok. Parametr $shortFormat specifikuje, zda má být formát roku RR nebo RRRR. string getTime(array $recordValues, bool $seconds=true) vrátí čas. Parametr $seconds specifikuje, zda má čas obsahovat sekundy. string getDateTime(array $recordValues, bool $asText=true, bool $dayOfWeek=false, bool $seconds=true) vrátí datum a čas. Parametr $asText určuje, zda bude měsíc vrácen textově, nebo číselně. Parametr $dayOfWeek nastavuje, zda bude zobrazen i den v týdnu. Parametr $seconds specifikuje, zda má čas obsahovat sekundy. string getDayOfWeek(array $recordValues, bool $short=false) vrátí den v týdnu. Parametr $short specifikuje, zda bude vrácen den v týdnu celý, nebo jeho zkrácená podoba (monday, mo) float getUnixTime(array $recordValues) vrátí datum a čas v UNIX formátu string getValueFromFormat(string $value, string $format) vrátí datum a čas podle formátu. Formát je totožný s formátem používaným funkcí date().
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getDate(bool $asText=true, bool $dayOfWeek=false)] vrátí pouze datum. Parametr $asText určuje, zda bude měsíc vrácen textově, nebo číselně. Parametr $dayOfWeek nastavuje, zda bude zobrazen i den v týdnu
© 2009 E-VISION International, s.r.o.
158
Visual PHP Developer Guide
[fieldName.getDay(bool $leadingZero=false)] vrátí číslo dne. Parametr $leadingZero specifikuje, zda má být dvouciferný a obsahovat na začátku nulu. [fieldName.getMonth(bool $leadingZero=false)] vrátí číslo měsíce. Parametr $leadingZero specifikuje, zda má být dvouciferný a obsahovat na začátku nulu. [fieldName.getYear(bool $shortFormat=false)] vrátí rok. Parametr $shortFormat specifikuje, zda má být formát roku RR nebo RRRR. [fieldName.getTime(bool $seconds=true)] vrátí čas. Parametr $seconds specifikuje, zda má čas obsahovat sekundy. [fieldName.getDateTime(bool $asText=true, bool $dayOfWeek=false, bool $seconds=true)] vrátí datum a čas. Parametr $asText určuje, zda bude měsíc vrácen textově, nebo číselně. Parametr $dayOfWeek nastavuje, zda bude zobrazen i den v týdnu. Parametr $seconds specifikuje, zda má čas obsahovat sekundy. [fieldName.getDayOfWeek(bool $short=false)] vrátí den v týdnu. Parametr $short specifikuje, zda bude vrácen den v týdnu celý, nebo jeho zkrácená podoba (monday, mo) [fieldName.getUnixTime()] vrátí datum a čas v UNIX formátu
12.12 AUTOCALC Tato komponenta umožňuje automatické výpočty hodnot, které jsou prováděny pomocí AJAX. K dispozici je tlačítko, které provádí výpočet.
Doporučený datový typ libovolný
Hodnota uložená v databázi value
Parametry Text Before Zobrazí text před textovým polem. Tento text je zobrazen i v prezentaci před hodnotou Text After Zobrazí text za textovým polem. Tento text je zobrazen i v prezentaci za hodnotou Button Text Specifikuje popisek tlačítka, kterým je volán výpočet hodnoty
© 2009 E-VISION International, s.r.o.
Komponenty
159
Fields Specifikuje názvy polí, nad kterými bude prováděn výpočet (hodnoty těchto polí budou předány pro volání přes AJAX) On Change Fields Hodnota bude automaticky přepočtena v případě, že dojde ke změně hodnoty u těchto polí
Size Určuje velikost textového pole pomocí atributu size Width Určuje šířku textového pole pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty textového pole
12.13 BROWSERS Tato komponenta umožní výběr z typů prohlížečů.
Doporučený datový typ VARCHAR(255), TEXT
Hodnota uložená v databázi value1|value2|value3|...
Parametry Display Separator Oddělovač popisku, který se zobrazí v prezentaci Column Count Počet sloupců, ve kterých se zobrazí zaškrtávací pole Column Order Pořadí, ve kterém se zobrazí zaškrtávací pole ve více sloupcích · bottom right - zobrazení probíhá po sloupcích (vhodné například pro abecední seřazení) · right bottom - zobrazení probíhá po řádcích
© 2009 E-VISION International, s.r.o.
160
Visual PHP Developer Guide
Translate Specifikuje, zda mají být popisky přeloženy do aktuálního jazyka Width Určuje šířku celé oblasti pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
Metody array getValueAsArray(array $recordValues) vrátí hodnoty v poli array getDisplayValueAsArray(array $recordValues) vrátí popisky hodnot v poli
12.14 CODE Tato komponenta umožňuje pohodlnou editaci zdrojového kódu
Doporučený datový typ TEXT
Hodnota uložená v databázi value
Parametry Type Druh jazyka, použítého pro zvýraznění syntaxe zdrojového kódu Width Určuje šířku celé oblasti pomocí CSS Height © 2009 E-VISION International, s.r.o.
Komponenty
161
Určuje výšku celé oblasti pomocí CSS Fields Specifikuje pole, které budou přidány do této komponenty formou záložek
12.15 COLOR Tato komponenta umožňuje výběr barvy přímým zadání ve formátu #RRGGBB nebo výběrem barvy z nabídky
Doporučený datový typ CHAR(7)
Hodnota uložená v databázi value
12.16 COMPONENTPROPERTIES Rezervovaná komponenta umožňující úpravu parametrů komponent pomocí Property Editor.
© 2009 E-VISION International, s.r.o.
162
Visual PHP Developer Guide
12.17 DETAILTABLE Tato komponenta umožňuje pohodlnou správu záznamů v detail tabulce. Automaticky převezme všechny komponenty z této detail tabulky a umožní přidávání, editaci i odstranění jednotlivých záznamů s použitím komponent polí této detail tabulky.
Doporučený datový typ virtuální pole
Hodnota uložená v databázi žádná
Parametry Table Název detail tabulky Width Určuje šířku celé oblasti pomocí CSS Height © 2009 E-VISION International, s.r.o.
Komponenty
Určuje výšku celé oblasti pomocí CSS
12.18 DISPLAYTYPE Komponenta usnadňuje nastavení typu zobrazení pro speciální pole displayType.
Doporučený datový typ ENUM, VARCHAR(255)
Hodnota uložená v databázi value
Parametry Type Možnosti hodnot pro toto pole. · simple - jednoduchá změna · hiearchy - hiearchická struktura změn pro publikační činnost, kdy jsou k dispozici uživatelé s různými právy. Values hodnoty, které se uloží do databáze Texts Textové popisky hodnot
Editor Status Value Hodnota pro stav v editaci Editor Status Text Popiska hodnoty pro stav v editaci Editor User Group Uživatelská skupina editorů Corrector Status Value Hodnota pro stav čeká na korekturu Corrector Status Text Popiska hodnoty pro stav čeká na korekturu
© 2009 E-VISION International, s.r.o.
163
164
Visual PHP Developer Guide
Corrector User Group Uživatelská skupina korektorů Publisher Status Value Hodnota pro stav čeká na publikaci Publisher Status Text Popisek hodnoty pro stav čeká na publikaci Publisher User Group Uživatelská skupina vydavatelů Additional Values Další možné hodnoty Additional Texts Popisky pro další možné hodnoty
12.19 EDITGRID Tato komponenta umožňuje zadávat data formou tabulky tak, jako by to byla skutečná tabulka v databázi. Data jsou ale uložena pouze do jednoho pole.
12.20 EDITLIST Tato komponenta umožňuje zadat seznam vlastních hodnot.
Doporučený datový typ VARCHAR(255), TEXT
Hodnota uložená v databázi value1|value2|value3|...
© 2009 E-VISION International, s.r.o.
Komponenty
165
Parametry Component Typ komponenty, která bude použita pro zadávání hodnot Component Parameters Parametry komponenty pro zadávání hodnot. Jednotlivé parametry jsou odděleny čárkou Width Šířka celé komponenty pomocí CSS Height Výška celé komponenty pomocí CSS
Metody array getValueAsArray(array $recordValues) vrátí zadané hodnoty
12.21 FILE Tato komponenta je vhodná pro ukládání souborů na server. Automaticky se stará o vytvoření patřičných složek a lze nastavit, aby se automaticky starala i o pojmenování souboru, aby nedocházelo ke kolizím názvů.
Doporučený datový typ VARCHAR(255), BLOB
Hodnota uložená v databázi value
Parametry Storage Definuje způsob, jak budou soubor uložen · stFile - uloží se do souborového systému serveru (v poli je uložena informace o souboru) · stDatabase - uloží se do pole v databázi (pole musí mít typ BLOB) Directory Složka (relativní k složce /repository/), do které se uloží soubor File Name Field Název pole, podle kterého se bude soubor jmenovat (přípona souboru zůstane zachována podle typu souboru) File Name Prefix Text před názvem souboru File Name Postfix © 2009 E-VISION International, s.r.o.
166
Visual PHP Developer Guide
Text za názvem souboru Digit Count Počet číslic, pokud je pole typ číslo Default File Name Výchozí název souboru Default File Ext Výchozí přípona souboru File Name Field Jméno pole podle kterého se bude soubor jmenovat File Name Field Storage Způsob přiřazení názvu souboru · read from field - pouze čte z pole · read and write - čte a zapíše i do názvu souboru File Ext Field Jméno pole podle kterého se bude mít soubor příponu File Ext Field Storage Způsob přiřazení přípony souboru · read from field - pouze čte z pole · read and write - čte a zapíše i do přípony souboru Counter Field Pole, do kterého se zapisuje počet stáhnutí Repository Directory Složka, která nahradí standardní /repository/. Vhodné pro napojení dat z jiných prezentací běžících na stejném serveru Upload Progress Způsob nahrátí na server.
Metody string getContent(array $recordValues) vrátí obsah souboru string getPath(array $recordValues) vrátí cestu k souboru string getUrl(array $recordValues) vrátí URL adresu souboru
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody
© 2009 E-VISION International, s.r.o.
Komponenty
167
komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getUrl()] vrátí URL adresu souboru [fieldName.getDownloadUrl()] vrátí URL adresu s možností stažení souboru pod jiným názvem, než je fyzicky uložený, s možností ukládat počet stažení a zápisu do statistik (pokud je nastaveno v parametrech komponenty) [fieldName.getIcon()] vrátí obrázek s ikonou typu souboru [fieldName.getIconUrl()] vrátí URL obrázku s ikonou typu souboru
12.22 GOOGLEMAP Komponenta, která umožňuje zadávat GPS souřadnice pomocí mapy od společnosti Google. Ke správné funkčnosti je potřeba mít správný licenční klíč, který je vázaný na název domény. Tento klíč můžete bez registrace získat na stránce http://www.visual-php.com/cs/generator-klice-google-maps/
Doporučený datový typ DOUBLE (pro pole latitude a longitude)
Hodnota uložená v databázi value
© 2009 E-VISION International, s.r.o.
168
Visual PHP Developer Guide
Parametry Latitude Zeměpisná šířka Longitude Zeměpisná délka Zoom Zvětšení mapy Map Type Typ mapy · map - klasická mapa · sattelite - satelitní snímky · hybrid - oba typy společně Map Type Visible Specifikuje, zda bude vidět ovladač pro změnu typu mapy Map Control Velikost ovládacích prvků · small - malé · large - velké Overview Visible Specifikuje, zda bude vidět zmenšenina mapy Scale Visible Specifikuje, zda bude vidět možnost přiblížení
Latitude Field Pole pro uložení zeměpisné šířky Longitude Field Pole pro uložení zeměpisné délky
Width Šířka mapy Height Výška mapy Confirm Question Specifikuje otázku pro potvrzení zadání nových souřadnic Icon Ikona ukazující aktuální pozici
© 2009 E-VISION International, s.r.o.
Komponenty
169
12.23 HISTORY Tato komponenta zobrazuje historii provedenou nad záznamem. Pole pro historii musí mít název history.
Doporučený datový typ TEXT
Hodnota uložená v databázi value
12.24 HTMLAREA Masivní komponenta umožňující vizuální editaci HTML kódu přívětivá pro koncového zákazníka.
Doporučený datový typ TEXT, LONGTEXT
Hodnota uložená v databázi value
Parametry Toolbars Specifikuje skupiny tlačítek zobrazených v panelu editoru - TODO
© 2009 E-VISION International, s.r.o.
170
Visual PHP Developer Guide
on [ENTER] Nastaví, zda se po stisknutí enter vloží tag
nebo odstavec Width Šířka celého editoru Height Výška celého editoru Editor Width Šířka editovatelné oblasti
Metody string getEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis. Výsledný text je ořezaný o HTML tagy string getCharEndEllipsis(array $recordValues, $length=50, $ellipsis="...") vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis. Výsledný text je ořezaný o HTML tagy
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet slov od začátku. Počet slov se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis. Výsledný text je ořezaný o HTML tagy [fieldName.getCharEndEllipsis($length=50, $ellipsis="...")] vrátí pouze určitý počet znaků od začátku. Počet znaků se nastaví parametrem $length a ukončení řetězce parametrem $ellipsis. Výsledný text je ořezaný o HTML tagy
12.25 LANGUAGE Tato komponenta umožní výběr z jazyků, dostupných v prezentaci
Doporučený datový typ VARCHAR(255)
© 2009 E-VISION International, s.r.o.
Komponenty
171
Hodnota uložená v databázi value
12.26 IMAGE Tato komponenta je vhodná pro ukládání obrázků na server. Automaticky se stará o vytvoření patřičných složek a lze nastavit, aby se automaticky starala i o pojmenování souboru, aby nedocházelo ke kolizím názvů. Navíc umožňuje automatickou změnu velikosti, uživatelské výřezy a další grafické efekty
Doporučený datový typ VARCHAR(255)
Hodnota uložená v databázi value
Parametry Directory Složka (relativní k složce /repository/), do které se uloží soubor File Name Field Název pole, podle kterého se bude soubor jmenovat File Name Prefix Text před názvem souboru File Name Postfix Text za názvem souboru Digit Count Počet číslic, pokud je pole typ číslo Output Type Typ obrázku, na který bude nahraný obrázek vždy převeden Resize Width Šířka, na kterou bude obrázek zmenšený, pokud přesáhne tuto velikost. Na serveru bude uložený pouze tento zmenšený obrázek. Pro zobrazení na www se doporučuje tento údaj nezadávat a použít v šabloně komponentu Template Image, která se sama postará o zmenšení obrázku s tím, že na serveru zůstane
© 2009 E-VISION International, s.r.o.
172
Visual PHP Developer Guide
původní zdrojový obrázek. Resize Height Výška, na kterou bude obrázek zmenšený, pokud přesáhne tuto velikost. Na serveru bude uložený pouze tento zmenšený obrázek. Pro zobrazení na www se doporučuje tento údaj nezadávat a použít v šabloně komponentu Template Image, která se sama postará o zmenšení obrázku s tím, že na serveru zůstane původní zdrojový obrázek. Stretch Specifikuje, zda se má být obrázek změněn přesně na zadanou velikost (nezachová poměr šířky a výšky) Crop Specifikuje, zda má být obrázek automaticky ořezán na zadanou velikost Crop Padding Specifikuje odsazení pro operaci crop Rotate Specifikuje otočení obrázku Background Color Nastavuje barvu pozadí obrázku (pro operaci otočení) Transparent Color Nastavuje, která barva bude transparentní Watermark Image Specifikuje obrázek, který bude přidán jako vodoznak Watermark Opacity Definuje průhlednost obrázku pro vodoznak. K dispozici jsou hodnoty od 0 do 100. Hodnota 100 vloží vodoznak tak, jak je. Hodnota 50 vloží vodoznak s 50% průhledností. Při hodnotě 0 nebude vodoznak vidět vůbec. U obrázků ve formátu PNG lze použít transparentnost definovanou přímo v tomto obrázku za použití hodnoty 100. U jiných hodnot dojde k zprůhlednění podobně jako u jiných formátů. Watermark Position Specifikuje umístění obrázku vodoznaku ve zdrojovém obrázku Watermark Scale Specifikuje zvětšení obrázku vodoznaku ve zdrojovém obrázku Watermark Background Color Specifikuje barvu pozadí vodoznaku (tato barva představuje transparentnost) Grayscale Nastavuje, zda má být obrázek převeden na stupnici šedých barev Grayscale Color Nastaví barvu, kterou bude šedý obrázek obarven Grayscale Color Opacity Nastaví průhlednost šedé barvy © 2009 E-VISION International, s.r.o.
Komponenty
173
Default Image Výchozí obrázek, pokud není obrázek k dispozici White Balance Aktivuje vyvážení bílé Colorize Color Specifikuje barvu, kterou bude obrázek obarven pomocí efektu colorize Colorize Color Opacity Specifikuje množství barvy, kterou bude obrázek obarven Gamma Correction Nastavuje automatickou korekci kontrastu a jasu Blur Specifikuje efekt rozostření · gaussian - gausovské rozostření · selective - selektivní rozostření Repository Directory Složka, která nahradí standardní /repository/. Vhodné pro napojení dat z jiných prezentací běžících na stejném serveru Extern Repository Directory Cesta k obrázku uloženém na jiné doméně (vhodné, pokud importujeme cizí databázi, kde jsou názvy souborů uložené v poli tabulky). Extern Repository URL URL k obrázku uloženém na jiné doméně (vhodné, pokud importujeme cizí databázi, kde jsou názvy souborů uložené v poli tabulky). Editor Nastavuje použití editoru obrázků. Editor Width Šířka editoru v administraci Editor Height Výška editoru v administraci Crop Width Šířka oblasti pro výřez Crop Height Výška oblasti pro výřez Crop Constrain Proportions Specifikuje, zda se má vždy zachovat poměr stran při změně velikosti oblasti pro výřez Crop Minimum Size Specifikuje, zda je možné zmenšit výřez na menší oblast, než je nastavena v parametrech Crop Width a © 2009 E-VISION International, s.r.o.
174
Visual PHP Developer Guide
Crop Height Source Image Field Pole typu IMAGE, do kterého se převede zdrojový obrázek.
Metody string getPath(array $recordValues) vrátí cestu k souboru obrázku string getUrl(array $recordValues) vrátí URL adresu obrázku int getWidth(array $recordValues) vrátí šířku obrázku int getHeight(array $recordValues) vrátí výšku obrázku
Metody pro šablony Následující metody lze použít v šablonách pro získání výstupu. Šablonové metody volají metody komponent s tím rozdílem, že je automaticky doplňován první parametr $recordValues. [fieldName.getUrl()] vrátí URL adresu obrázku [fieldName.getWidth()] vrátí šířku obrázku [fieldName.getHeight()] vrátí výšku obrázku
Více informací, jak probíhá změna velikosti obrázků se dozvíte v sekci Obrázky.
12.27 LOOKUP Komponenta, která nabízí formou rozbalovací nabídky výběr z několika hodnot. Tyto hodnoty se nezadávají přímo, ale jsou načítány z tabulky databáze.
Doporučený datový typ dle datového typu tabulky
© 2009 E-VISION International, s.r.o.
Komponenty
175
Hodnota uložená v databázi value value1|value2|value3|...
Parametry Table Název tabulky, ze které se budou číst data Value Field Název pole v tabulce, ze kterého se budou číst hodnoty Text Field Název pole v tabulce, ze kterého se budou číst popisky hodnot Table Field Název pole, které představuje název tabulky (nahrazuje parametr Table) Parent Fields Nadřazená pole (lze využít pro propojení více komponent LOOKUP z několika různých tabulek, které jsou vzájemně ve vztahu master-detail. Filter (SQL) Filtrace tabulky Order By (SQL) Řazení záznamů tabulky Display Link in Admin Zobrazí v přehledu administrace odkaz na záznam tabulky Values Možnost přidat další hodnoty Texts Možnost přidat další popisky hodnot Multiselect Umožní výběr více hodnot Multiselect Specifikuje, zda je možné vybrat více hodnot zároveň Translate Specifikuje, zda budou texty automaticky přeloženy do aktuálního jazyka Unselected Value Hodnota, která se uloží, pokud nevybere uživatel žádnou volbu Unselected Text Popisek pro hodnotu unselected value Editable © 2009 E-VISION International, s.r.o.
176
Visual PHP Developer Guide
Umožňuje zadat i vlastní hodnotu Add existing values Zobrazí v seznamu výběru hodnoty, které jsou již uložené v databázi Arrange alphabetically Seřadí popisky hodnot podle abecedy Size Určuje velikost rozbalovací nabídky pomocí atributu size Width Určuje šířku rozbalovací nabídky pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
12.28 LOOKUPCHECKGROUP Jde o komponentu umožňující výběr z více možností formou zaškrtávacích políček. Tyto hodnoty se nezadávají přímo, ale jsou načítány z tabulky databáze.
Doporučený datový typ dle datového typu tabulky
Hodnota uložená v databázi value1|value2|value3|...
Parametry Table Název tabulky, ze které se budou číst data Value Field Název pole v tabulce, ze kterého se budou číst hodnoty Text Field Název pole v tabulce, ze kterého se budou číst popisky hodnot Table Field Název pole, které představuje název tabulky (nahrazuje parametr Table) Parent Fields Nadřazená pole (lze využít pro propojení více komponent LOOKUP z několika různých tabulek, které jsou vzájemně ve vztahu master-detail. © 2009 E-VISION International, s.r.o.
Komponenty
177
Filter (SQL) Filtrace tabulky Order By (SQL) Řazení záznamů tabulky Display Link in Admin Zobrazí v přehledu administrace odkaz na záznam tabulky Values Možnost přidat další hodnoty Texts Možnost přidat další popisky hodnot Display Separator Oddělovač popisku, který se zobrazí v prezentaci Column Count Počet sloupců, ve kterých se zobrazí zaškrtávací pole Column Order Pořadí, ve kterém se zobrazí zaškrtávací pole ve více sloupcích · bottom right - zobrazení probíhá po sloupcích (vhodné například pro abecední seřazení) · right bottom - zobrazení probíhá po řádcích Translate Specifikuje, zda mají být popisky přeloženy do aktuálního jazyka Width Určuje šířku celé oblasti pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
Metody array getValueAsArray(array $recordValues) vrátí hodnoty v poli array getDisplayValueAsArray(array $recordValues) vrátí popisky hodnot v poli
12.29 LOOKUPTREE Tato komponenta umožňuje výběr hodnot formou stromové struktury. Jednotlivé hodnoty a popisky jsou načítány z tabulky.
© 2009 E-VISION International, s.r.o.
178
Visual PHP Developer Guide
Doporučený datový typ dle datového typu tabulky
Hodnota uložená v databázi value value1|value2|value3|...
Parametry Table Název tabulky, ze které se budou číst data Value Field Název pole v tabulce, ze kterého se budou číst hodnoty Text Field Název pole v tabulce, ze kterého se budou číst popisky hodnot Table Field Název pole, které představuje název tabulky (nahrazuje parametr Table) Parent Fields Nadřazená pole (lze využít pro propojení více komponent LOOKUP z několika různých tabulek, které jsou vzájemně ve vztahu master-detail. Filter (SQL) Filtrace tabulky Order By (SQL) Řazení záznamů tabulky Multiselect Specifikuje, zda je možné vybrat více hodnot zároveň Translate Specifikuje, zda budou texty automaticky přeloženy do aktuálního jazyka
© 2009 E-VISION International, s.r.o.
Komponenty
179
Width Určuje šířku celé oblasti pomocí CSS Height Určuje výšku celé oblasti pomocí CSS
12.30 PAGECONTROL Tato komponenta zobrazí všechny své podřízené komponenty v jednom samostatném panelu
Doporučený datový typ virtuální
Parametry Width Šířka panelu pomocí CSS
12.31 PERMISSIONS Tato komponenta je rezervována.
12.32 PROGRESS Tato komponenta zobrazuje procenta formou grafického ukazatele.
Doporučený datový typ SMALLINT
Hodnota uložená v databázi value
12.33 PROPERTIES Rezervovaná komponenta umožňující úpravu parametrů pomocí Property Editor.
12.34 REMOTECOMPONENT Jde o univerzální komponentu, která zobrazuje ostatní komponenty v reálném čase pomocí technologie AJAX.
Doporučený datový typ virtuální
© 2009 E-VISION International, s.r.o.
180
Visual PHP Developer Guide
12.35 REMOTECOMPONENTGROUP Jde o univerzální komponentu, která zobrazuje skupinu ostatních komponent v reálném čase pomocí technologie AJAX.
Doporučený datový typ virtuální
12.36 RSSPROPERTIES Rezervovaná komponenta sloužící k úpravě parametrů pro RSS export.
12.37 TABLES Tato komponenta umožní výběr z tabulek formou rozbalovací nabídky.
12.38 TABSHEET Tato komponenta zobrazí všechny své podřízené komponenty v záložce.
Doporučený datový typ virtuální
Parametry Default Nastavuje, zda bude záložka aktivní po otevření stránky
© 2009 E-VISION International, s.r.o.
Komponenty
181
12.39 URL Tato komponenta umožní zadat URL. K dispozici jsou i tlačítka pro výběr souboru na serveru nebo stránky z prezentace.
Doporučený datový typ VARCHAR(255)
Hodnota uložená v databázi value
12.40 USERS Tato komponenta umožňuje výběr z uživatelů prezentace
12.41 USERGROUPS Tato komponenta umožňuje výběr z uživatelských skupiny prezentace.
12.42 ADMINUSERS Tato komponenta umožňuje výběr z uživatelů administrace
© 2009 E-VISION International, s.r.o.
182
Visual PHP Developer Guide
12.43 ADMINUSERGROUPS Tato komponenta umožní výběr z uživatelských skupin administrace.
Doporučený datový typ VARCHAR(255), TEXT
Hodnota uložená v databázi value1|value2|value3|...
Parametry Display Separator Oddělovač popisku, který se zobrazí v prezentaci Column Count Počet sloupců, ve kterých se zobrazí zaškrtávací pole Column Order Pořadí, ve kterém se zobrazí zaškrtávací pole ve více sloupcích · bottom right - zobrazení probíhá po sloupcích (vhodné například pro abecední seřazení) · right bottom - zobrazení probíhá po řádcích Translate Specifikuje, zda mají být popisky přeloženy do aktuálního jazyka Width Určuje šířku celé oblasti pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
Metody array getValueAsArray(array $recordValues) vrátí hodnoty v poli array getDisplayValueAsArray(array $recordValues) vrátí popisky hodnot v poli
© 2009 E-VISION International, s.r.o.
Menu v administraci Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIII
184
13
Visual PHP Developer Guide
Menu v administraci Ve výchozím stavu je menu v administraci vyplněno pouze položkou Domů a Nástroje. Při implementaci nové prezentace se postupně přidávají jednotlivé sekce, které si Váš zákazník vyžádal. Přidal lze výchozí tabulky i Vaše vlastní. Pro úpravu menu v administraci přejděte do nabídky Prezentace -> Admin Menu
13.1 Parametry položek menu v administraci Pro jednotlivé položky menu lze zadat následující parametry: Název Představuje název tabulky, nebo vlastní název, pokud má tato položka fungovat jako podmenu. Nadřazená položka Nastavení položky, která je nadřazená ve stromové hiearchii Text Popisek menu. Pokud není zadán, je použit automatický překlad položky název Odkaz Přímý odkaz Cílové okno Nastavuje, ve kterém okně se odkaz zobrazí Viditelný Zobrazí nebo skryje tuto položku Uživatelské skupiny Uživatelé z těchto uživatelských skupin budou mít tuto položku přístupnou Ikona Specifikuje ikonu Začít skupinu (oddělovač před) Zobrazí oddělovač Ukončit skupinu (oddělovač za) Zobrazí oddělovač Odsazení (před)
© 2009 E-VISION International, s.r.o.
Skripty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIV
186
14
Visual PHP Developer Guide
Skripty Ve Visual PHP™ lze samozřejmě implementovat i vlastní PHP skripty, pokud nejsou integrované funkce dostatečně vyhovující. Skripty mají tu výhodu, že jsou vkládány na místa, kam si určíte. K dispozici jsou rovněž výchozí skripty k některým modulům, které můžete libovolně upravovat. Pro zobrazení skriptů přejděte do nabídky Prezentace -> Skripty
14.1 Parametry skriptů U jednotlivých skriptů lze nastavit tyto parametry: Typ skriptu Specifikuje, v kterém programovacím jazyku je skript napsán Identifikátor (tid) Textový identifikátor skriptu Jméno Název skriptu Způsob zobrazení Podobně jako u šablon lze mít skripty pro různá zobrazení Podmínka Podobně jako u šablon lze mít skripty rozlišené podmínkou Uživatelské skupiny Specifikuje, kterým uživatelským skupinám se skript zobrazí Code Vlastní zdrojový kód skriptu
14.2 Spouštění skriptů Skripty se chovají stejně jako zobrazení ostatních tabulek pomocí Table Content. Pro spuštění skriptu stačí zavolat URL scripts.php?tid=TEXTOVY_IDENTIFIKATOR
Takto spuštěný skript se zobrazí na místě hlavního panelu prezentace
Další možností spuštění skriptu je v layoutu pomocí Table Content. Stačí nastavit tyto parametry: Table - scripts tid - TEXTOVY_IDENTIFIKATOR
© 2009 E-VISION International, s.r.o.
Časové skripty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XV
188
15
Visual PHP Developer Guide
Časové skripty Pro spouštění skriptů v určitých časových intervalech slouží časové skripty. U těchto skriptů nastavíte, kdy se mají spouštět a zadáte jejich zdrojový kód. Ne na každém hostingu lze nastavit vlastní cron pro periodické spuštění PHP skriptů. Proto přichází Visual PHP™ se simulací tohoto spouštění, které se aktivuje přístupem návštěvníka na prezentaci. Přehled časových skriptů zobrazíte v nabídce Prezentace -> Časové skripty
15.1 Parametry časových skriptů Pro časové skripty jsou k dispozici následující parametry Identifikátor (tid) Textový identifikátor skriptu Aktivní Skript lze dočasně deaktivovat, aniž by bylo nutné jej mazat Minuty Specifikuje čas, kdy bude skript spuštěn Hodiny Specifikuje čas, kdy bude skript spuštěn Dny Specifikuje čas, kdy bude skript spuštěn Měsíce Specifikuje čas, kdy bude skript spuštěn Dny v týdnu Specifikuje čas, kdy bude skript spuštěn Spustit všechny čekající Pokud máte málo návštěvníků a skript je potřeba spouštět v nastaveném intervalu, budou spuštěny skripty, které dosud na aktivaci čekaly. Jeden skript tedy může být spuštěn vícekrát. Posledně spuštěno Zobrazuje poslední datum a čas spuštění skriptu Příští spuštění Zobrazuje plánovaný čas příštího spuštění Code Samotný zdrojový kód skriptu
© 2009 E-VISION International, s.r.o.
Časové skripty
15.2 Ruční aktivace časového skriptu Časové skripty lze ručně aktivovat pro potřeby testování. Stačí zadat URL: cron.php?tid=TEXTOVY_IDENTIFIKATOR
© 2009 E-VISION International, s.r.o.
189
Skripty na pozadí Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVI
Skripty na pozadí
16
191
Skripty na pozadí V některých případech je potřeba spouštět skripty na pozadí. Tyto skripty mohou běžet i několik desítek minut a proto není vhodné je inicializovat zadáním z URL, protože by tato akce blokovala prohlížeč do doby, kdy bude skript ukončen. Správná funkčnost těchto skriptů může být zajištěna pouze dostatečným nastavením max_execution_time a memory_limit. Proto je vhodné mít pro dlouhotrvající skripty vlastní server, nebo webhosting umožňující vyšší nastavení těchto parametrů v php.ini Tyto skripty zobrazíte z nabídky Prezentace -> Skripty na pozadí.
© 2009 E-VISION International, s.r.o.
Vkládání komponent třetích stran Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVII
Vkládání komponent třetích stran
17
193
Vkládání komponent třetích stran Visual PHP™ se snaží maximálně ulehčit práci pomocí nativních komponent. Může nastat situace, kdy je potřeba použít vlastní řešení, nebo hotové řešení třetích stran. Pro tyto účely je k dospozici několik možností.
17.1 Vkládání JavaScript komponent Pro vložení JavaScriptových efektů a komponent je ve většině případů potřeba vložit do HTML sekce
nový tag odkazující na zdrojový .js soubor, případně další .js nebo .css soubory. Co je potřeba vložit do HTML kódu stránky se dočtete v v manuálu přiloženém k těmto komponentám. Uložení zdrojových skriptů na server Zdrojové kódy můžete uložit na libovolné místo na serveru. Můžete využít jeden z výchozích adresářů, případně si vytvořit adresář vlastní.
Vkládání pomocí události onInit Pokud potřebujete vložit JavaScript pro každou stránku prezentace, vytvořte novou událost onInit a do této události pomocí funkce addHeadHtml() vložte kód
Vkládání pouze když je potřeba Příklady: http://www.puidokas.com/portfolio/frogjs/
http://www.e2interactive.com/e2_photo_gallery/download.php
© 2009 E-VISION International, s.r.o.
Sdílené objekty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVIII
Sdílené objekty
18
195
Sdílené objekty V programovacím jazyku PHP chybí možnost ukládání objektů a jejich sdílení mezi jednotlivými PHP skripty. Visual PHP™ implementuje tuto chybějící vlastnost pomocí sdílených objektů, které jsou inicializovány při každém spuštění prezentace. Pro ukládání sdílených objektů slouží objekt Persistent. Objekt má následující metody: mixed getObject(mixed $objectName) vrátí uložený objekt pod zadaným názvem void setObject(string $objectName, mixed $objectValue, bool $global=false) uloží objekt pod zadaným názvem. Pokud je nastaven parametr $global, bude objekt vytvořen automaticky jako globální při inicializaci prezentace
Pro zobrazení sdílených objektů a možnost jejich odstranění přejděte do nabídky Prezentace -> Sdílené objekty
18.1 Ukládání objektů Objekty načtete pomocí metody getObject() a uložíte pomocí metody setObject() objektu Persistent Ukázka načtení a uložení proměnné: $Persistent = getObject("Persistent"); $myCounter = $Persistent->getObject("myCounter"); $myCounter++; $Persistent->setObject("myCounter", $myCounter);
U globálních sdílených objektů stačí pouze objekt uložit: $myCounter++; getObject("Persistent")->setObject("myCounter", $myCounter, true);
© 2009 E-VISION International, s.r.o.
Automatické parametry Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIX
Automatické parametry
19
197
Automatické parametry Pro situace, kdy je potřeba předávat parametr pomocí odkazů pro všechny stránky pod danou prezentací, jsou pro výrazné ulehčení práce k dispozici automatické parametry. Místo toho, abyste museli upravovat všechny odkazy v prezentaci, stačí zadat název parametru, který má být automaticky předáván a tento parametr předat v prvním odkazu.
Nastavení parametru pro automatické předávání Pro zadání automatického parametru přejděte do nabídky Prezentace -> Automatické parametry. Pro přidání parametru vytvořte nový a zadejte jeho název.
Zahájení předávání parametru Aby byl parametr automaticky předán, je potřeba vytvořit odkaz, kde bude tento parametr obsažen: index.php?myParameter=true
Všechny odkazy budou poté rozšířeny o název a hodnotu tohoto parametru: documents.php?test=true&mid=4e483204-0105-102b-8b11-6ce63e83d6a8
V případě, že je jsou zapnuté SEO odkazy, bude automatický parametr převeden do formátu /name. value/ /test.true/name_of_seo_link/
Zrušení předávání parametru Aby nebyl parametr dále předáván, je potřeba vytvořit odkaz, kde bude mít tento parametr prázdnou hodnotu. index.php?myParameter=
nebo v případě SEO odkazů /test./
SEO odkazy Jakmile přidáte automatický parametr a používáte SEO odkazy, můžete doplnit SEO mapování o mapování pro tento parametr. Toto je vhodné v případě, že hodnota automatického parametru je neměnná. V opačném případě systém vytvoří SEO odkaz s parametrem jako složku /nazev.hodnota/ a přiřadí ke stávajícím SEO parametrům.
© 2009 E-VISION International, s.r.o.
Frontend dokumenty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XX
Frontend dokumenty
20
199
Frontend dokumenty Pro případy, kdy je potřeba vizuálně zpracovat dokumenty, které ale nechceme zpřístupnit svému koncovému zákazníkovi k úpravám, jsou k dispozici frontend dokumenty. Tyto dokumenty jsou podobné klasickým dokumentům. Lze je zobrazit pomocí komponenty Table Content, nebo i ve skriptech pomocí metody getContent() tabulky frontend_documents.
© 2009 E-VISION International, s.r.o.
Databázová připojení Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXI
Databázová připojení
21
201
Databázová připojení Tabulky lze připojit na externí databáze pomocí databázového připojení. U tabulky je nutné toto připojení zadat v parametru databázové připojení. Typické použití je při sdílení dat mezi prezentacemi.
© 2009 E-VISION International, s.r.o.
Jazyky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXII
Jazyky
22
203
Jazyky Ve Visual PHP™ lze snadno vytvářet multijazyčné prezentace. Stačí pouze přidat požadovaný jazyk a systém si vše ostatní hlídá sám. Díky kódování UTF-8 lze zobrazit stránky v libovolné znakové sadě. Po přidání jazyka se automaticky rozšíří i multijazyčné komponenty a tím umožní zadat obsah v několika jazykových mutacích. Přehled jazyků naleznete v nabídce Prezentace -> Jazyky -> Jazyky prezentace
22.1 Automatická detekce jazyka Aby se návštěvníkovi zobrazila prezentace v jazyku, který podporuje jeho prohlížeč, je potřeba zapnout volbu Automatická detekce jazyka v nabídce Nástroje -> Nastavení. Pokud systém nenalezne jazyk, který podporuje návštěvníkův prohlížeč, použije výchozí jazyk zadaný v nabídce Prezentace -> Jazyky -> Jazyky prezentace.
22.2 Přepínání jazyků Jazyk je uložen v proměnné $language. Lze tedy přepnou jazyk pouhým předáním parametru http://www.domain.com/index.php?language=cs
Pro tyto účely tedy stačí vytvořit odkaz (může být textový nebo i obrázek s vlajkou). K dispozici je i možnost odkázat se na stejnou stránku ale pod jinou jazykovou mutací. K tomuto účelu slouží speciální funkce setLanguage(). Do odkazu tedy stačí na místo pevné URL vložit tento kód, který bude převeden automaticky na patřičný správný odkaz. Tato funkce zachovává SEO odkazy pro různé jazyky. Nedochází tedy k duplicitám v URL. Doporučujeme používat právě tuto variantu. Česky
© 2009 E-VISION International, s.r.o.
Překlady Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIII
Překlady
23
205
Překlady Abychom nemuseli vytvářet layouty a šablony v několika jazycích, lze doplnit prezentaci o vlastní překlady. Pro překlady přejděte do nabídky Prezentace -> Jazyky -> Překlady. Vytvořte nový záznam, vyberte jazyk a na samostatné řádky postupně zadávejte jednotlivé překlady ve formátu text=přeložený text. Poté stačí kdekoli v prezentaci vložit _T(text pro překlad) a podle jazyka bude tento text automaticky přeložen. _T("my text")
Pro překlady ve vlastních skriptech lze použít funkci translate(). echo translate("my text");
© 2009 E-VISION International, s.r.o.
Správce procesů Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIV
Správce procesů
24
207
Správce procesů Správce procesů zobrazuje stav procesů spuštěných na pozadí. Lze kontrolovat stav a aktuální průběh všech procesů společně.
© 2009 E-VISION International, s.r.o.
Terminál Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXV
Terminál
25
209
Terminál Terminál umožňuje spouštět příkazy přímo na serveru podobně, jako byste byli připojení přes konzoli. Možnost spouštět příkazy přímo na serveru bývá na většině serverů zakázána. Typicky toho můžete využít na svém vlastním serveru. Terminál spustíte z nabídky Nástroje -> Terminál.
© 2009 E-VISION International, s.r.o.
SEO Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVI
SEO
26
211
SEO Search Engine Optimization (SEO) je dnes nedílnou součástí jakékoli prezentace. Jde o optimalizaci stránek pro vyhledávače tak, aby se stránka ve vyhledávači zobrazovala na vyšších pozicích a tím přilákala více návštěvníků.
26.1 SEO mapování SEO je ale především pro neprofesionály tvrdým oříškem. Visual PHP™ poskytuje v tomto směru vynikající nástroj SEO mapování. SEO mapování funguje na principu nahrazování parametrů v odkazu jejich textovými ekvivalenty. Toto mapování je generováno automaticky, ale lze zadat i vlastní parametry ke konverzi. Pro zobrazení mapování přejděte do nabídky Nástroje -> SEO -> SEO mapování. K dispozici jsou následující parametry: Odkaz část klasického odkazu, který má být nahrazen SEO odkaz text, kterým bude nahrazena část odkazu Tabulka název tabulky, která bude čtena, pokud bude použit tento SEO odkaz Identifikátor (externí) identifikátor záznamu tabulky, ke kterému tento odkaz patří Generovaný Specifikuje, zda byl odkaz generován automaticky, nebo zadán ručně Jazyk Specifikuje jazyk, pro který platí tento SEO odkaz
Ukázka SEO mapování Fungování SEO mapování si ukážeme na následujícím příkladě. V SEO mapování máme nastaveny tyto hodnoty: Odkaz: id=052a7fc5-48aa-102b-bd5d-d3b71959722f SEO odkaz: muj-dokument Tabulka: documents Identifikátor (externí): 052a7fc5-48aa-102b-bd5d-d3b71959722f Generovaný: ano Jazyk: česky
Věškeré odkazy v prezentaci odkazující na tento dokument http://www.domain.com/documents.php?id=052a7fc5-48aa-102b-bd5d-d3b71959722f
© 2009 E-VISION International, s.r.o.
212
Visual PHP Developer Guide
budou převedeny na SEO odkaz http://www.domain.com/muj-dokument/
Visual PHP provede před zpracováním stránky zpětnou konverzi SEO odkazu a nastaví z něj příslušné parametry $id = $tableName =
052a7fc5-48aa-102b-bd5d-d3b71959722f documents
Konverze odkazů na SEO odkazy pomocí SEO mapování je provedena pouze v tom případě, že pro všechny parametry odkazu je k dispozici jejich textový ekvivalent. SEO odkazy mohou být složeny z několika mapování současně. Pouze v případě, kdy lze všechny parametry převést na SEO odkaz bude SEO odkaz vytvořen. Pro příklad si ukážeme převod odkazu u vícejazyčných prezentací. http://www.domain.com/documents.php?language=cs&mid=5b37e792-0f58-102b-83ea-533b3040b1b6
bude převedeno na tento SEO odkaz http://www.domain.com/cs/muj-dokument/
Pro převod bylo k dispozici následující SEO mapování Odkaz: language=cs mid=5b37e792-0f58-102b-83ea-533b3040b1b6
SEO Odkaz cs /muj-dokument/
Tabulka documents
Visual PHP™ navíc umožňuje i multijazyčné mapování. Pokud pozná, že odkaz směřuje na dokument s jiným jazykem, bude převeden pomocí mapování s tímto nastaveným jazykem. Jednou z dalších předností je podpora znakových sad, které nejsou psány latinkou. Lze tedy vytvářet SEO odkazy i pro ruské, arabské, čínské i jiné znakové sady.
26.2 Zamezení duplicitního obsahu Jako duplicitní obsah vnímají vyhledávače takové stránky, kde na stejnou prezentaci odkazuje více domén. Vyhledávače proto tyto další domény ignorují a zaindexují pouze jednu z nich. Abychom mohli vyhledávačům nařídit, kterou doménu mají indexovat, je potřeba zadat hlavní doménu (Prezentace -> Nastavení -> SEO). Všechny ostatní domény směřující na prezentaci budou přesměrovány právě na tuto doménu pomocí HTTP hlavičky 301. Mohou ale nastat případy, kdy máte pod stejnou prezentací implementovány stránky pro různé domény třetího řádu. Aby nedošlo k automatickému přeměrování těchto domén na hlavní doménu, zadejte jejich názvy do pole domény 3. řádu (Prezentace -> Nastavení -> SEO).
© 2009 E-VISION International, s.r.o.
SEO
213
26.3 Hromadné generování SEO mapování Pokud zapnete SEO optimalizaci až v momentě naplnění daty, nebude SEO mapování k dispozici. Proto je možné toto mapování hromadně vygenerovat pro všechny záznamy všech tabulek přístupných k administraci. Pro hromadné generování přejděte do nabídky Nástroje -> SEO -> Generátor SEO mapování. Vyberte tabulky, ze kterých chcete generovat SEO mapování a stiskněte tlačítko Generovat. Pokud není možné některé SEO mapování vygenerovat, zobrazí se varování ke konkrétním záznamům.
26.4
SEO prohlížeč Pro správnou SEO analýzu je potřeba vědět, jak vidí roboti vyhledávačů Vaše stránky. Pro tyto účely je k dispozici SEO prohlížeč. Pro zobrazení prohlížeče přejděte do nabídky Nástroje -> SEO -> SEO prohlížeč. Prohlížeč Vám zobrazí stránku bez obrázků a kaskádových stylů. Zvýrazňuje nadpisy a umožňuje kliknutím na odkazy procházet další podstránky.
© 2009 E-VISION International, s.r.o.
Firewall Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVII
Firew all
27
215
Firewall Díky integrovanému firewallu lze zamezit spam-botům odesílání spamu do formulářů, případně lze zamezit pokusům o útok. Omezit lze pomocí části URL nebo IP adresy. Omezení pomocí IP adresy je nutné zadávat obezřetně, jelikož jsou často využívány nepřímé metody útoku, kdy jsou na cizí stránky pouze vloženy odkazy s URL napadající Váš server, ale spouštěny jsou roboty (např. Google). Proto by bylo nevhodné zablokovat tomuto robotu vstup na stránky.
© 2009 E-VISION International, s.r.o.
Obrázky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVIII
Obrázky
28
217
Obrázky
28.1 Template Image Komponenta Template Image umožňuje za chodu upravovat a zobrazovat obrázky. Díky tomu můžete mít z jednoho zdrojového obrázku neomezené množství různých velikostí tohoto obrázku. K dispozici je i možnost přidat vodoznak z gif nebo png zdroje. Navíc lze nastavit i další efekty jako zobrazení většího obrázku po najetí myší, nebo zobrazení celého obrázku po kliknutí na obrázek. Komponentu Template Image můžete využít pouze v šablonách pro pole s přiřazenou komponentou IMAGE. K dispozici jsou následující nastavení:
Základní Field Name Název pole, ze kterého se má zobrazit obrázek Width Šířka obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Height Výška obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Resize Method Způsob, jakým bude obrázek transformován. · scale - změna velikosti se zachováním poměru stran · stretch - změna velikosti bez zachování poměru stran · crop - výřez se zachováním poměru stran Rotate Počet stupňů ve směru hodinových ručiček, o kolik bude obrázek otočen. Background Color Barva pozadí obrázku, která se použije pro vyplnění prázdných míst po otočení. Watermark Image Obrázek, který bude použit jako vodoznak. Je možné nahrát transparentní GIF, nebo alphatransparentní PNG. Watermark Opacity Definuje průhlednost obrázku pro vodoznak. K dispozici jsou hodnoty od 0 do 100. Hodnota 100 vloží vodoznak tak, jak je. Hodnota 50 vloží vodoznak s 50% průhledností. Při hodnotě 0 nebude vodoznak vidět vůbec. U obrázků ve formátu PNG lze použít transparentnost definovanou přímo v tomto obrázku za použití hodnoty 100. U jiných hodnot dojde k zprůhlednění podobně jako u jiných formátů. Watermark Position Nastavuje pozici, kde bude vodoznak zobrazen.
© 2009 E-VISION International, s.r.o.
218
Visual PHP Developer Guide
Watermark Scale Nastavuje změnšení vodoznaku v poměru ke zdrojovému obrázku. Hodnota 50 přidá vodoznak o poloviční šířce a výšce, než je obrázek, kam se má vodoznak vložit.
Empty Image Default Image Výchozí obrázek, který se zobrazí v případě, že pole zadané ve Field Name neobsahuje obrázek Maintain Size Specifikuje, zda se má zachovat šířka a výška původního obrázku
Mouse Over Field Name Název pole, ze kterého se bude zobrazovat obrázek po najetí myší. Width Šířka obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Height Výška obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Resize Method Způsob, jakým bude obrázek transformován. · scale - změna velikosti se zachováním poměru stran · stretch - změna velikosti bez zachování poměru stran · crop - výřez se zachováním poměru stran Template Název šablony, která bude použita místo obrázku. V této šabloně lze zobrazit více informací s libovolným vzhledem. Align Zarovnání obrázku po najetí myší vůči původnímu obrázku · alCenterVertical- zarovná na střed svisle · alCenterHorizontal - zarovná na střed vodorovně · alCenterBoth - zarovná na střed v obou směrech Container Style Definuje CSS inline styl elementu obklopujícího obrázek po najetí myši. Watermark Image Obrázek, který bude použit jako vodoznak. Je možné nahrát transparentní GIF, nebo alphatransparentní PNG. Watermark Opacity Definuje průhlednost obrázku pro vodoznak. K dispozici jsou hodnoty od 0 do 100. Hodnota 100 vloží vodoznak tak, jak je. Hodnota 50 vloží vodoznak s 50% průhledností. Při hodnotě 0 nebude vodoznak vidět vůbec. Průhlednost lze nastavit pouze u GIF obrázků. U obrázků ve formátu PNG je potřeba vložit vodoznak s průhledností definovanou přímo v samotném obrázku.
© 2009 E-VISION International, s.r.o.
Obrázky
219
Watermark Position Nastavuje pozici, kde bude vodoznak zobrazen. Watermark Scale Nastavuje změnšení vodoznaku v poměru ke zdrojovému obrázku. Hodnota 50 přidá vodoznak o poloviční šířce a výšce, než je obrázek, kam se má vodoznak vložit.
Mouse Click URL Adresa, na kterou bude uživatel přesměrován po kliknutí Field Name Název pole, ze kterého se bude zobrazovat obrázek po kliknutí Width Šířka obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Height Výška obrázku. Lze zadat číslo, nebo parametr vynechat a šířka bude dopočítána. Více o změnách velikostí se dočtete v kapitole Změna velikosti. Resize Method Způsob, jakým bude obrázek transformován. · scale - změna velikosti se zachováním poměru stran · stretch - změna velikosti bez zachování poměru stran · crop - výřez se zachováním poměru stran Effect Typ efektu, který bude použit po kliknutí myší · Open URL - otevře zadanou URL · Open in new window - otevře obrázek v novém okně · Display Over Presentation - zobrazí obrázek ve vrstvě nad prezentací pomocí javascriptového prohlížeče Title Field Name Název pole, ve kterém je uložen název obrázku. Tento popis se zobrazí v javascriptovém prohlížeči Description Field Name Název pole, ve kterém je uložen popis obrázku. Tento popis se zobrazí v javascriptovém prohlížeči Download Protection Nastaví ochranu proti stahování obrázku z prohlížeče. Upozornění! Tato ochrana nezabrání zjištění URL adresy ze zdrojového kódu. Watermark Image Obrázek, který bude použit jako vodoznak. Je možné nahrát transparentní GIF, nebo alphatransparentní PNG. Watermark Opacity Definuje průhlednost obrázku pro vodoznak. K dispozici jsou hodnoty od 0 do 100. Hodnota 100 vloží
© 2009 E-VISION International, s.r.o.
220
Visual PHP Developer Guide
vodoznak tak, jak je. Hodnota 50 vloží vodoznak s 50% průhledností. Při hodnotě 0 nebude vodoznak vidět vůbec. Průhlednost lze nastavit pouze u GIF obrázků. U obrázků ve formátu PNG je potřeba vložit vodoznak s průhledností definovanou přímo v samotném obrázku. Watermark Position Nastavuje pozici, kde bude vodoznak zobrazen. Watermark Scale Nastavuje změnšení vodoznaku v poměru ke zdrojovému obrázku. Hodnota 50 přidá vodoznak o poloviční šířce a výšce, než je obrázek, kam se má vodoznak vložit.
CSS class třída CSS, definovaná ve Stylech style inline styl pro obrázek
JavaScript Events onMouseOver Javascriptový kód, který bude vykonán při najetí myší nad obrázek onMouseOut Javascriptový kód, který bude vykonán při najetí myší mimo obrázek onClick Javascriptový kód, který bude vykonán při kliknutí na obrázek
Kvalita generovaných obrázků Kvalitu můžete ovlivnit globálně pomocí nastavení kvality v nabídce Nástroje -> Nastavení -> Systém a změnou hodnoty ve vlastnosti Kvalita obrázku.
28.2 Změna velikosti K dispozici jsou různé možnosti změny velikosti obrázků.
Změna velikosti se zachováním poměru stran (scale) Pokud nastavíte šířku i výšku oblasti a metodu scale, bude obrázek změněn tak, aby nepřesáhl vytýčenou oblast.
© 2009 E-VISION International, s.r.o.
Obrázky
221
Pokud nastavíte pouze šířku a metodu scale, bude obrázek změněn tak, aby nepřesáhl tuto šířku. Výška obrázku bude dopočítána tak, aby byl zachován poměr stran.
Pokud nastavíte pouze výšku a metodu scale, bude obrázek změněn tak, aby nepřesáhl tuto výšku. Šířka obrázku bude dopočítána tak, aby byl zachován poměr stran.
Změna velikosti bez zachování poměru stran (stretch) Pokud nastavíte šířku i výšku a metodu stretch, bude obrázek změněn tak, aby vyplnil celou tuto oblast. © 2009 E-VISION International, s.r.o.
222
Visual PHP Developer Guide
Obrázek bude deformován, protože není zachován poměr stran.
Výřez se zachováním poměru stran (crop) Pokud nastavíte šířku i výšku a metodu crop, bude obrázek změněn tak, aby nepřesáhl jedním rozměrem šířku (pokud je typu portrait) nebo výšku (pokud je typu landscape) a bude oříznut na rozměry zadané oblasti.
28.3 Vodoznak K obrázkům lze přidat vodoznak. Tento vodoznak musí být v samostatném obrázku ve formátu průhledného GIFu, nebo alphatransparentního PNG.
Vodoznak ve formátu GIF Stačí vytvořit průhledný obrázek ve formátu GIF. Průhlednost, s jakou bude tento obrázek přidán do © 2009 E-VISION International, s.r.o.
Obrázky
223
původního obrázku se nastavuje v parametru Watermark Opacity.
Vodoznak ve formátu PNG Tento formát umožňuje sám o sobě stupně průhlednosti. Je potřeba vytvořit obrázek ve formátu PNG s požadovanou průhledností. Parametr Watermark Opacity nemá u tohoto typu obrázku zádný vliv. Výhodou vodoznaků v PNG je jemnější vyhlazení přechodů mezi vodoznakem a původním obrázkem.
Vodoznak přes celý obrázek Ve výchozím stavu se vodoznak zobrazí přes celý obrázek. V případě, že obrázek s vodoznakem je větší nebo menší, než původní obrázek, bude velikost vodoznaku automaticky přizpůsobena.
Průhlednost vodoznaku Tuto průhlednost můžete u GIF vodoznaků nastavit pomocí parametru Watermark Opacity.
© 2009 E-VISION International, s.r.o.
224
Visual PHP Developer Guide
Vodoznak na konkrétní pozici Pokud potřebujete umístit vodoznak do rohu obrázku, lze nastavit pozici vodoznaku pomocí parametru Watermark Position.
© 2009 E-VISION International, s.r.o.
Obrázky
Velikost vodoznaku Jelikož nemusí být velikost výsledného obrázku předem známa, lze měnit procentuálně velikost vkládaného vodoznaku. Toto nastavení lze provést parametrem Watermark Scale.
© 2009 E-VISION International, s.r.o.
225
Ladění (debug) Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIX
Ladění (debug)
29
227
Ladění (debug) V případech, kdy si nejste jisti, které hodnoty Visual PHP™ zpracovává, které hodnoty načítá z databáze nebo které šablony a layouty vkládá, je k dispozici možnost zobrazit tyto hodnoty. Pro zobrazení těchto informací je potřeba aktivovat Debug konzoli. V prezentaci zadejte do URL další parametr debug a nastavte mu hodnotu true. http://www.domain.com/news.php?id=66380537-e6a3-1028-96b5-20c167c295a6&debug=true
nebo v případě SEO odkazů http://www.domain.com/news/debug.true/
Na konci prezentace se zobrazí okno, ve kterém můžete zobrazit požadovaná data.
29.1 Layouty Pro zobrazení informací o layoutech zaškrtněte volbu Layouts. Na daná místa v prezentaci se zobrazí zvýrazněné layouty s dalšími informacemi o názvu, zobrazení atd.
© 2009 E-VISION International, s.r.o.
Moduly Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXX
Moduly
30
229
Moduly Pro rychlou tvorbu je k dispozici velké množství výchozích modulů připravených pro okamžité použití. Tyto moduly jsou plně konfigurovatelné a slouží především k tomu, abyste nemuseli běžné moduly implementovat sami.
30.1 E-shop Visual PHP obsahuje přednastavený základní e-shop. Základem e-shopu jsou výchozí tabulky, frontend dokumenty a skripty. Jelikož každý projekt má své specifické požadavky, lze tyto tabulky a další prvky libovolně modifikovat a rozšířovat.
30.1.1 Tabulky Pro pohodlnou implementaci e-shopu do Vaší prezentace jsou k dispozici tyto tabulky:
Katalog zboží (m_shop_catalogue) Katalog zboží je hlavní tabulka e-shopu, která obsahuje jednotlivé položky e-shopu. Modul je postaven tak, aby tuto tabulku bylo možno duplikovat a rozšířit o další pole, aby bylo možné v různých tabulkách hledat podle specifických kritérií. V objednávkách je poté rozlišeno, ze které tabulky zboží pochází. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
tabSheetCommon
TABSHEET
id
UUID
Identifikátor
date
DATETIME
Datum vytvoření
displayType
COMBOBOX
Zobrazení
image
IMAGE
Obrázek
IMAGE
Náhled
mid
LOOKUPTREE
Kategorie zboží (je navázáno na menu)
number
TEXT
Číslo zboží
name
TEXT
Název zboží
producer
LOOKUP
Výrobce
description
TEXTAREA
Popis zboží
commonPrice
TEXT
Běžná cena
ownPrice
TEXT
Naše cena
discount
TEXT
Sleva
price
AUTOCALC
Cena
tax
COMBOBOX
DPH
taxPrice
AUTOCALC
Cena s DPH
author
USERS
Autor záznamu
properties
LOOKUPCHECKGROUP
Vlastnosti zboží
thumbnail
© 2009 E-VISION International, s.r.o.
230
Visual PHP Developer Guide
groups
LOOKUPCHECKGROUP
tabSheetAdditional additional
Skupiny zboží
TABSHEET HTMLAREA
Plný popis zboží
Pro zobrazení zboží vytvořte položku menu, která se bude odkazovat na sekci Katalog zboží a má nastaveno, že jde o kategorii. Z menu se poté samy vytvoří odkazy na m_shop_catalogue.php. Položky lze samozřejmě zobrazit i přímo pomocí Table Content v layoutech například v postraních panelech.
Výrobci (m_shop_producers) Tabulka Výrobci obsahuje informace o producentech daného zboží. U každého výrobce lze vložit i obrázek (např. logo) Tabulka obsahuje tyto pole: Název pole
Typ komponenty
id
UUID
Identifikátor
name
TEXT
Název výrobce
image
IMAGE
Obrázek
thumbnail
IMAGE
Náhled
V šabloně m_shop_catalogue můžete zobrazit výrobce takto: [producer::name]
Vlastnosti zboží (m_shop_properties) Tabulka Vlastnosti zboží obsahuje informace o vlastnostech daného zboží. Typický příklad je např. dostupná velikost triček (M, L, XL, XXL) nebo příchutě (jahodová, malinová, ...). Zákazník si může při objednávce vybrat jednu z těchto vlastností zboží. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
id
UUID
Identifikátor
name
TEXT
Název
Pro zobrazení výběru vlastnosti je v šabloně m_shop_catalogue připraven vnořený PHP skript. Tento skript zobrazí rozbalovací nabídku pro výběr. Tento skript můžete odstranit, pokud nechcete tuto volbu používat
© 2009 E-VISION International, s.r.o.
Moduly
231
if ($recordValues["properties"] != "") { $lookupValues = explode("|", $recordValues["properties"]); $lookupFilter = array(); foreach($lookupValues as $lookupValue) { $lookupFilter[] = "id='".$lookupValue."'"; } $Component = getComponent("LOOKUP", "m_shop_itemSpec"); $Component->setParams("lookupTable=m_shop_properties,lookupField=name,lookupAlias=name,looku return($Component->getCode()); } else return("");
Skupiny zboží (m_shop_groups) Tabulka Skupiny zboží obsahuje informace o tom, do které skupiny zboží patří. Typický příklad je např. skupina slevy, novinky nebo pro muže, pro ženy, atd. Zákazníkovi lze nastavit filtry, pomocí kterých si z daných kategorií vyfiltruje zboží ještě i podle těchto kritérií. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
id
UUID
Identifikátor
name
TEXT
Název
Zákazníci (m_shop_customers) Do tabulky Zákazníci se ukládají informace o registrovaných zákaznících. Každý zákazník se musí před nákupem zaregistrovat, nebo lze povolit i nákup bez registrace. Pro zobrazení registračního formuláře pro zákazníka vytvořte odkaz na m_shop_signup.php. Tento soubor se odkazuje na výchozí skript m_shop_signup (Prezentace -> Skripty), který si můžete libovolně modifikovat. Pro přihlášení zákazníka vytvořte formulář s poli authLogin pro uživatelské jméno a authPassword pro heslo kdekoli v layoutu. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
id
UUID
Identifikátor
active
COMBOBOX
Aktivní (umožněno přihlášení)
login
TEXT
Přihlašovací jméno
password
PASSWORD
Heslo (zakódované v MD5)
userGroups
USERGROUPS
Uživatelské skupiny
name
TEXT
Celé jméno (fakturační adresa)
fFirstname
TEXT
Křestní jméno (fakturační adresa)
fTitle
TEXT
Titul (fakturační adresa)
fSurname
TEXT
Příjmení (fakturační adresa)
© 2009 E-VISION International, s.r.o.
232
Visual PHP Developer Guide
fSex
TEXT
Pohlaví (fakturační adresa)
fAgeRange
TEXT
Věk (fakturační adresa)
fStreet
TEXT
Ulice (fakturační adresa)
fCity
TEXT
Město (fakturační adresa)
fPostalCode
TEXT
PSČ (fakturační adresa)
fCountry
LOOKUP
Stát (fakturační adresa)
fCompanyName
TEXT
Společnost (fakturační adresa)
fIC
TEXT
IČ (fakturační adresa)
fDIC
TEXT
DIČ (fakturační adresa)
fTaxPayer
CHECKBOX
Plátce DPH (fakturační adresa)
fEmail
TEXT
E-mail (fakturační adresa)
fPhone
TEXT
Telefon (fakturační adresa)
fFax
TEXT
Fax (fakturační adresa)
dTitle
TEXT
Titul (dodací adresa)
dFirstname
TEXT
Křestní jméno (dodací adresa)
dSurname
TEXT
Příjmení (dodací adresa)
dCompanyName
TEXT
Společnost (dodací adresa)
dStreet
TEXT
Ulice (dodací adresa)
dCity
TEXT
Město (dodací adresa)
dPostalCode
TEXT
PSČ (dodací adresa)
dCountry
LOOKUP
Stát (dodací adresa)
dEmail
TEXT
E-mail (dodací adresa)
dPhone
TEXT
Telefon (dodací adresa)
dFax
TEXT
Fax (dodací adresa)
emailSignup
CHECKBOX
Přihlášení k odběru e-mailů
author
USERS
Autor
priceGroup
LOOKUP
Slevová skupina
icq
TEXT
ICQ
skype
TEXT
Skype
refererText
TEXT
Kdo doporučil
fMobile
TEXT
Mobil (fakturační adresa)
dateCreated
DATETIME
Datum a čas vytvoření
dateLoggedIn
DATETIME
Datum a čas posledního přihlášení
Příklady Pro zobrazení odkazů pro registraci a přihlášení nebo informací, které se zobrazí po přihlášení, vložte do layoutu Include na layout s názvem m_shop_customer_actions. Tento layout obsahuje výchozí kód, který se mění v závislosti na tom, zda je uživatel přihlášen nebo ne.
© 2009 E-VISION International, s.r.o.
Moduly
233
{#if $authSuccess['ugCustomers']} Přihlášen: {php: getObject('User')->name} změnit údaje | objed {#if !$authSuccess['ugCustomers']}registrace | přihlášení{#endif}
Pokud chcete vytvořit přihlašovací formulář např. v pravém panelu, vytvořte si layout s libovolným názvem a obsahem
Poté vytvořte layout se stejným názvem a s podmínkou $authSuccess["ugCustomers"] a do něj vložte kód, který se Přihlášen: {php: getObject('User')->name} změnit údaje | objednávky | odhlásit
Na požadované místo layoutu vložte Include Layout s názvem layoutu, který jste vytvořili
Objednávky (m_shop_orders) Do tabulky Objednávky se ukládají objednávky zákazníků. Tato tabulka obsahuje detail tabulku m_shop_order_items, ve které jsou uložené jednotlivé položky, které byly zákazníkem objednány. O objednávky se stará skript m_shop_purchase, který lze libovolně modifikovat dle přání zákazníka. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
tabSheetCommon
TABSHEET
id
UUID
Identifikátor
date
DATETIME
Datum vytvoření
customer
LOOKUP
Reference na zákazníka
transportType
LOOKUP
Typ dopravy
paymentType
LOOKUP
Typ platby
note
TEXTAREA
Poznámka
orderState
COMBOBOX
Stav objednávky
author
USERS
Autor
number
TEXT
Číslo objednávky
priceTotal
TEXT
Cena celkem
taxPriceTotal
TEXT
Cena celkem s DPH
tabSheetCustomer
TABSHEET
name
TEXT
Celé jméno
fTitle
TEXT
Titul (fakturační adresa)
fSurname
TEXT
Příjmení (fakturační adresa)
fStreet
TEXT
Ulice (fakturační adresa)
fCity
TEXT
Město (fakturační adresa)
© 2009 E-VISION International, s.r.o.
234
Visual PHP Developer Guide
fPostalCode
TEXT
PSČ (fakturační adresa)
fCountry
TEXT
Stát (fakturační adresa)
fCompanyName
TEXT
Název společnosti (fakturační adresa)
fIC
TEXT
IČ (fakturační adresa)
fDIC
TEXT
DIČ (fakturační adresa)
fTaxPayer
CHECKBOX
Plátce DPH (fakturační adresa)
fEmail
TEXT
E-mail (fakturační adresa)
fPhone
TEXT
Telefon (fakturační adresa)
fFax
TEXT
Fax (fakturační adresa)
fFirstname
TEXT
Křestní jméno (fakturační adresa)
dTitle
TEXT
Titul (dodací adresa)
dFirstname
TEXT
Křestní jméno (dodací adresa)
dSurname
TEXT
Příjmení (dodací adresa)
dCompanyName
TEXT
Název společnosti (dodací adresa)
dStreet
TEXT
Ulice (dodací adresa)
dCity
TEXT
Město (dodací adresa)
dPostalCode
TEXT
PSČ (dodací adresa)
dCountry
TEXT
Stát (dodací adresa)
dEmail
TEXT
E-mail (dodací adresa)
dPhone
TEXT
Telefon (dodací adresa)
dFax
TEXT
Fax (dodací adresa)
tabSheetPrices
TABSHEET
prices
DETAILTABLE
Položky objednaného zboží
Zobrazení objednávek v administraci Do Prezentace -> Admin Menu přidejte položku s názvem m_shop_orders Do tabulky Objednávky (položky) (m_shop_order_items) se ukládají jednotlivé položky objednávek zákazníků. Tato tabulka je detail tabulkou tabulky m_shop_orders.
Způsob platby (m_shop_paymenttypes) Tabulka Způsob platby umožňuje zákazníkům vybrat si, jakým způsobem zaplatí za zboží (např. bankovním převodem, hotovost, atd..) Tento způsob si určí během objednávky. Tabulka obsahuje tyto pole: Název pole Typ komponenty id
UUID
Identifikátor
name
TEXT
Název
postalPrice
TEXT
Poštovné
© 2009 E-VISION International, s.r.o.
Moduly
packagingPrice
TEXT
Balné
taxPriceTotalFrom
TEXT
Cena od
taxPriceTotalTo
TEXT
Cena do
visible
CHECKBOX
Viditelný
author
USERS
Autor
235
Způsob doručení (m_shop_transporttypes) Tabulka Způsob doručení umožňuje zákazníkům vybrat si, jakým způsobem mu bude zboží doručeno (např. osobní odběr, pošta, ...) Tento způsob si určí během objednávky. Tabulka obsahuje tyto pole: Název pole Typ komponenty id
UUID
Identifikátor
name
TEXT
Název
postalPrice
TEXT
Poštovné
packagingPrice
TEXT
Balné
taxPriceTotalFrom
TEXT
Cena od
taxPriceTotalTo
TEXT
Cena do
visible
CHECKBOX
Viditelný
author
USERS
Autor
Slevové skupiny (m_shop_price_groups) Tabulka Slevové skupiny umožňuje přesunovat zákazníky do různých skupin, ve kterých získávají slevy. Typicky získávají slevy po dosažení určité celkové ceny za všechny své objednávky Tabulka má následující pole Název pole
Typ komponenty
id
UUID
Identifikátor
name
TEXT
Název
discount
TEXT
Sleva %
orderPriceTotal
TEXT
Celková cena za objednávky
default
CHECKBOX
Výchozí sleva
30.1.2 Frontend dokumenty Formuláře a další dokumenty pro e-shop jsou uloženy ve frontend dokumentech. Registrace
m_shop_signup
Text po registraci
m_shop_signup_success
© 2009 E-VISION International, s.r.o.
236
Visual PHP Developer Guide
Přihlášení
m_shop_login
Nákupní košík
m_shop_items_step1
Objednávka
m_shop_items_step2
Kontrola objednávky m_shop_items_step3 Dokončení objednávky
m_shop_items_step4
E-mail
m_shop_items_mail
30.1.3 Skripty Skripty pro obsluhu e-shopu jsou uloženy ve Skriptech Registrace
m_shop_signup
Objednávka
m_shop_purchase
30.1.4 Nastavení Výchozí e-shop umožňuje prodej zboží pro plátce (i neplátce) DPH s možností (nebo nutností) registrace. Pro změnu těchto nastavení přejděte do nabídky Nástroje -> Nastavení do záložky Obchod. Registrace zákazníků · vyžadováno - pro objednání zboží je nutná registrace zákazníků · umožněno - zboží lze objednat jednorázově i bez registrace Plátce DPH Specifikuje, zda je prodávající plátcem DPH. V závislosti na těchto nastaveních budou použity rozdílné šablony v nákupním košíku Dodací adresa Specifikuje, zda je možné zadat jinou dodací adresu než fakturační Název firmy Název, který bude zobrazen v objednávkách E-mail firmy Na tento e-mail budou zasílány objednávky Ulice, Město, PSČ, Stát, IČ, DIČ Další informace o firmě
30.1.5 Katalog zboží Zboží určené k prodeji přes e-shop je uloženo v tabulce m_shop_catalogue .
Administrace katalogu Pro zpřístupnění administrace katalogu zboží přidejte novou položku do Admin Menu (Prezentace -> Admin Menu) s názvem m_shop_catalogue. Po přidání se nahoře v menu v administraci objeví nová položka s názvem Katalog. Po kliknutí na tuto položku je možné spravovat zboží pro e-shop.
© 2009 E-VISION International, s.r.o.
Moduly
237
Zobrazení katalogu v prezentaci pomocí odkazu Pro zobrazení přehledu zboží stačí vytvořit textový nebo obrázkový odkaz na m_shop_catalogue.php ( můžete jej vytvořit přímo v global layoutu, nebo kdekoli jinde). Tento odkaz zobrazí všechny záznamy katalogu zboží.
Zobrazení katalogu v prezentaci pomocí menu Ve většině případů se bude používat odkaz na katalog zboží s pomocí komponenty Menu, která se zobrazuje v prezentaci (typicky se vkládá do global layoutu). Jak vložit komponentu Menu do prezentace a jak spravovat jeho obsah se dozvíte v kapitole Menu. K dispozici jsou 2 různé způsoby zobrazení zboží: Společné zobrazení Pro zobrazení všech záznamů katalogu vytvořte v menu pro prezentaci novou položku (tzn. v administraci vyberte z nabídky položku s názvem Menu a klikněte na Nový záznam), zadejte jí libovolný název, nastavte sekci odkazu na Katalog a ze způsobu zobrazení vyberte Přehled všech záznamů (bez rozlišení navázání na položky menu). Tato položka menu bude odkazovat na m_shop_catalogue.php. Tip: Pokud nevidíte ve výběru sekce odkazu hodnotu Katalog, j e nutné přidat m_shop_catalogue do Admin Menu. Zobrazení podle kategorií Pokud je potřeba členit zboží do kategorií, lze použít přiřazení zboží k jednotlivým položkám menu prezentace. Pro tento případ vytvořte více položek menu v administraci menu (tzn. v administraci vyberte z nabídky položku s názvem Menu a klikněte na Nový záznam). Jednotlivým položkám zadejte libovolný název, nastavte sekci odkazu na Katalog a ze způsobu zobrazení vyberte Přehled záznamů (navázaných na tuto položku menu). Tyto položky menu budou odkazovat na m_shop_catalogue. php?mid=_identifikátor_položky_menu&isCategory=true. Každý záznam katalogu zboží je poté nutné přiřadit konkrétní položce menu. Tip: Pokud nevidíte ve výběru sekce odkazu hodnotu Katalog, j e nutné přidat m_shop_catalogue do Admin Menu.
Úprava vzhledu v šablonách K dispozici jsou 4 různé šablony, vždy v páru pro zobrazení přehledu a plného zobrazení. m_shop_catalogue (vtList) Šablona pro zobrazení v přehledu pro neplátce DPH. m_shop_catalogue (vtFull) Šablona pro zobrazení konkrétního záznamu pro neplátce DPH. m_shop_catalogue_tax (vtList) Šablona pro zobrazení v přehledu pro plátce DPH. m_shop_catalogue_tax (vtFull) Šablona pro zobrazení konkrétního záznamu pro plátce DPH.
© 2009 E-VISION International, s.r.o.
238
Visual PHP Developer Guide
Nastavení v layoutech To, zda se použije šablona pro plátce nebo neplátce DPH, je nadefinováno v Table Content pomocí parametru Template. Tato komponenta se nachází v layoutu m_shop_catalogue. Pro rozlišení názvu šablony je použito následující direktivy, která využívá nastavení z objektu Settings: Template: m_shop_catalogue{php: $Settings->shopTax=="true" ? "_tax" : ""}
Díky této direktivě se použije šablona s nebo bez _tax na konci. Rozlišení zda jde o šablonu pro přehled nebo plné zobrazení se provádí automaticky.
30.1.6 Košík Pro zobrazení obsahu košíku stačí vytvořit odkaz na m_shop.php. Tento soubor ve skutečnosti spouští skript m_shop_purchase, který naleznete v nabídce Prezentace -> Skripty. Tento skript si můžete samozřejmě libovolně modifikovat podle potřeb Vašeho zákazníka.
Vložení do košíku Pro přidání záznamu do košíku je potřeba volat soubor m_shop.php s určitými parametry. Formulář naleznete v šablonách m_shop_catalogue. Skript vyžaduje následující parametry: · m_shop_actionType - typ akce nad záznamy v košíku (pro vložení hodnota addItem) · m_shop_tableName - název tabulky, ze které se má vložit záznam do košíku · m_shop_id - identifikátor záznamu, který se má vložit do košíku Po volání tohoto skriptu se zobrazí košík s přidaným záznamem. Výchozí šablony obsahují formulář a tlačítko pro přidání záznamu do košíku. Tento formulář můžete použít jako vzor při úpravách šablon.
Kroky objednávky Pro každý krok objednávky existuje výchozí frontend dokument, který je zobrazován. Tyto frontend dokumenty můžete přizpůsobit svým požadavkům. Krok 1 - nákupní košík Pro zobrazení obsahu košíku je používán frontend dokument m_shop_items_step1 pro neplátce DPH nebo m_shop_items_step1_tax pro plátce DPH.
© 2009 E-VISION International, s.r.o.
Moduly
239
V tomto frontend dokumentu je zobrazení obsahu košíku realizováno pomocí komponenty Table Content, která čte a zobrazuje data z tabulky m_shop_order_items. Šablony, které tato komponenta používá, lze samozřejmě opět libovolně upravit. Použity jsou šablony s názvem m_shop_items_step1 pro neplátce DPH nebo m_shop_items_step1_tax pro plátce DPH. Tyto šablony obsahují formulářové prvky a další podpůrné skripty pro počítání celkové ceny. Pro správnou funkčnost nákupního košíku je nutné tyto skripty při úpravách zachovat. Krok 2 - údaje o objednavateli Po kliknutí na tlačítko Objednat se zobrazí druhý krok, který je nadefinován ve frontend dokumentu m_shop_items_step2 pro neplátce DPH nebo m_shop_items_step2_tax pro plátce DPH. Opět můžete libovolně upravovat obsah tohoto dokumentu.
© 2009 E-VISION International, s.r.o.
240
Visual PHP Developer Guide
© 2009 E-VISION International, s.r.o.
Moduly
241
V tomto frontend dokumentu je zobrazení obsahu košíku realizováno pomocí komponenty Table Content, která čte a zobrazuje data z tabulky m_shop_order_items. Šablony, které tato komponenta používá, lze samozřejmě opět libovolně upravit. Použity jsou šablony s názvem m_shop_items_step23 pro neplátce DPH nebo m_shop_items_step23_tax pro plátce DPH sdílené s krokem 3. Tyto šablony obsahují další podpůrné skripty pro počítání celkové ceny. Pro správnou funkčnost nákupního košíku je nutné tyto skripty při úpravách zachovat.
Krok 3 - kontrola údajů Po kliknutí na tlačítko Objednat se zobrazí třetí krok, který je nadefinován ve frontend dokumentu m_shop_items_step3 pro neplátce DPH nebo m_shop_items_step3_tax pro plátce DPH. Opět můžete libovolně upravovat obsah tohoto dokumentu.
© 2009 E-VISION International, s.r.o.
242
Visual PHP Developer Guide
© 2009 E-VISION International, s.r.o.
Moduly
243
V tomto frontend dokumentu je zobrazení obsahu košíku realizováno pomocí komponenty Table Content, která čte a zobrazuje data z tabulky m_shop_order_items. Šablony, které tato komponenta používá, lze samozřejmě opět libovolně upravit. Použity jsou šablony s názvem m_shop_items_step23 pro neplátce DPH nebo m_shop_items_step23_tax pro plátce DPH sdílené s krokem 2. Tyto šablony obsahují další podpůrné skripty pro počítání celkové ceny. Pro správnou funkčnost nákupního košíku je nutné tyto skripty při úpravách zachovat.
Krok 4 - kontrola údajů Po kliknutí na tlačítko Objednat se uloží objednávka do databáze, rozešlou se e-maily a zobrazí se poděkování za objednávku, které je nadefinováno ve frontend dokumentu m_shop_items_step4. Opět můžete libovolně upravovat obsah tohoto dokumentu.
30.1.7 Registrace Pro registraci zázkazníků je potřeba volat soubor m_shop_signup.php. Tento soubor ve skutečnosti spouští skript m_shop_signup, který naleznete v nabídce Prezentace -> Skripty. Tento skript si můžete samozřejmě libovolně modifikovat podle potřeb Vašeho zákazníka.
Úprava registračního formuláře Skript m_shop_signup načítá a zobrazuje frontend dokument m_shop_signup, který obsahuje formulář pro zadávání údajů. Po odeslání tohoto formuláře je opět volán skript m_shop_signup, který zpracuje vložená data. Důvodem, proč je tento formulář ve frontend dokumentech a ne v klasických dokumentech je ten, aby zákazník neměl možnost měnit strukturu tohoto formuláře, protože nemá znalosti programátora.
30.1.8 Přihlášení Formulář pro přihlášení zákazníků se zobrazuje automaticky, při vkládání zboží do košíku. Většinou je ale potřeba mít přihlašovací formulář i jinde v panelech a po přihlášení uživatele zobrazit další informace o obsahu košíku. Registrovaní uživatelé jsou uloženi v tabulce m_shop_customers. Tato tabulka rozšiřuje tabulku users, takže je možné přihlašovat se pomocí parametrů authLogin a authPassword.
Layout pro přihlášení · Na místo global layoutu, kde chcete mít přihlašovací formulář střídaný s informacemi o uživateli vložte komponentu Include Layout. · Zadejte jí název například login a global layout uložte. · Část global layoutu by mohla vypadat následovně:
© 2009 E-VISION International, s.r.o.
244
Visual PHP Developer Guide
Nyní je potřeba vytvořit 2 samostatné layouty s tímto názvem rozlišených podmínkou: · Vytvořte layout s názvem login a do něj vložte formulář. Nastavte mu metodu POST a do něj umístěte formulářové prvky: textové pole s názvem authLogin · pole pro heslo s názvem authPassword · tlačítko pro odeslání formuláře · a další textové popisky dle designu prezentace · Layout by mohl vypadat následovně:
Dále je potřeba vytvořit druhý layout se stejným názvem login, který bude zobrazen po úspěšném přihlášení: · Do tohoto layoutu lze zadat například informace o přihlášeném uživateli a odkaz pro odhlášení. Důležité je rozlišit tyto 2 layouty, aby systém věděl, který z nich vložit na místo komponenty Include Layout. Proto tomuto layoutu nastavíme podmínku $User->loggedIn. Pokud nebude splněna, vloží se předchozí layout, tedy layout bez nastavené podmínky. · Layout může vypadat následovně
Ve výsledku se za komponentu Include Layout vloží jeden z těchto layoutů v závislosti na podmínce. Takto mohou vypadat výsledné panely před a po přihlášení:
© 2009 E-VISION International, s.r.o.
Moduly
245
30.1.9 Odhlášení Odhlášení uživatele provedete vytvořením odkazu a předáním parametru authLogout=true. index.php?authLogout=true
30.1.10 Výrobci Pro administraci výrobců zboží přidejte do Admin Menu položku s názvem m_shop_producers. Jednotlivé výrobce poté vybíráte v záznamu katalogu zboží. Zobrazení výrobce Název výrobce zboží můžete zobrazit v šabloně pomocí následujícího kódu [producer]
Pokud chcete zobrazit více informací o výrobci, stačí vytvořit odkaz na tabulku m_shop_producers a předat identifikátor parametrem id. Tento identifikátor získáte v šabloně m_shop_catalogue z pole producer pomocí metody getValue() komponenty LOOKUP, která je přiřazená tomuto poli: m_shop_producers.php?id=[producer.getValue()]
30.1.11 Objednávky Pro správu objednávek v administraci přidejte položku Admin Menu s názvem m_shop_orders. Jednotlivé objednávky a informace o objednavateli a objednaném zboží se zobrazí v přehledu po kliknutí na tuto položku admin menu.
© 2009 E-VISION International, s.r.o.
246
Visual PHP Developer Guide
30.1.12 Způsoby doručení V tomto modulu lze nastavit různé způsoby doručení zboží zákazníkovi. Pokud chcete zpřístupnit tuto možnost, přidejte do Admin Menu novou položku s názvem m_shop_transporttypes. Jméno Název typu dopravy Poštovné Cena za poštovné Balné Cena za balné Viditelný Lze dočasně skrýt, aniž by bylo nutné záznam odstranit Cena celkem s DPH (od) Cenové rozpětí, pro které platí tento typ dopravy Cena celkem s DPH (do) Cenové rozpětí, pro které platí tento typ dopravy
Jednotlivé záznamy je nutné kombinovat pro dosažení různých cenových rozpětí.
30.1.13 Způsoby platby V tomto modulu lze nastavit různé způsoby platby za zboží. Pokud chcete zpřístupnit tuto možnost, přidejte do Admin Menu novou položku s názvem m_shop_paymenttypes. Jméno Název typu dopravy Poštovné Cena za poštovné Balné Cena za balné Viditelný Lze dočasně skrýt, aniž by bylo nutné záznam odstranit Cena celkem s DPH (od) Cenové rozpětí, pro které platí tento typ dopravy Cena celkem s DPH (do) Cenové rozpětí, pro které platí tento typ dopravy
Jednotlivé záznamy je nutné kombinovat pro dosažení různých cenových rozpětí.
© 2009 E-VISION International, s.r.o.
Moduly
247
30.1.14 Export XML pro www.zbozi.cz Pro generování exportního XML pro portál www.zbozi.cz stačí vložit jednoduchou událost do tabulky m_shop_catalogue. Přejděte do nabídky Prezentace -> Tabulky, najděte tabulku m_shop_catalogue a klikněte na Upravit. V záložce Události vložte do události onChange následující kód a změny uložte. $records = getTable("m_shop_catalogue")->getContentRecords(); $file = MAINPATH."zbozi.cz.xml"; _file_put_contents($file, ""); $f = fopen($file, "w");
fwrite($f, ""); fwrite($f, "<SHOP>"); $ImageComponent = getTable("m_shop_catalogue")->getComopnent("image"); foreach($records as $record) { fwrite($f, "<SHOPITEM>"); fwrite($f, ""); fwrite($f, ""); fwrite($f, "".htmlentities(toSEOUrl("m_shop_catalogue.ph'.'p?id=".$record["id"]))."".htmlentities($ImageComponent->getUrl($record)).""); fwrite($f, "".$record["tax"].""); fwrite($f, "".$record["taxPrice"].""); fwrite($f, "0"); fwrite($f, ""); } fwrite($f, ""); fclose($f);
Po každé změně výrobku dojde k přegenerování XML souboru. Pro první generování je potřeba alespoň jeden výrobek v katalogu otevřít pro úpravy a opět uložit. Výsledný XML soubor bude k dispozici na URL http://www.domena.cz/zbozi.cz.xml. Tuto adresu je potřeba zaregistrovat na portálu www.zbozi.cz.
30.2 Fotogalerie K dispozici je i modul pro fotogalerie. Skládá se ze dvou tabulek - photogalleries a photogallery_items ve vzájemném vztahu master-detail.
30.2.1 Tabulky Fotogalerie (photogalleries) Fotogalerie představují seznam všech fotogalerií. Tabulka obsahuje tyto pole:
© 2009 E-VISION International, s.r.o.
248
Visual PHP Developer Guide
Název pole
Typ komponenty
id
UUID
Identifikátor
date
DATETIME
Datum vytvoření
displayType
COMBOBOX
Zobrazení
mid
LOOKUPTREE
Kategorie zboží (je navázáno na menu)
name
TEXT
Název zboží
description
TEXTAREA
Popis zboží
author
USERS
Autor záznamu
image
IMAGE
Obrázek reprezentující fotogalerii
Tato tabulka je detail tabulkou tabulky menu. Umožňuje tedy zobrazovat fotogalerie jako kategorii, tedy navázat na konkrétní položku menu, která tuto kategorii představuje.
Obrázky fotogalerie (photogallery_items) Obrázky fotogalerie představují seznam všech fotografií přiřazených k určité fotogalerii. Tabulka obsahuje tyto pole: Název pole
Typ komponenty
id
UUID
Identifikátor
parent
LOOKUP
Nafřazený záznam
name
TEXT
Název obrázku
image
IMAGE
Obrázek
author
USERS
Autor záznamu
position
TEXT
Pozice záznamu
image
IMAGE
Obrázek
30.2.2 Šablony K dispozici jsou následující šablony photogalleries (přehled) Tato šablona zobrazuje záznamy fotogalerie pro přehled. Jsou zde nastaveny odkazy pro zobrazení všech fotografií z této fotogalerie pomocí odkazu photogallery_items.php?parent=[id]
photogalleries (plné) Tato šablona zobrazí konkrétní fotografie z této fotogalerie tím, že má v sobě další komponenty pro zobrazení z detail tabulky photogallery_items photogallery_items (přehled) Tato šablona zobrazí fotografie z nadřazené fotogalerie. Je toho dosaženo díky předanému parametru parent, který je využit pro SQL filtraci. © 2009 E-VISION International, s.r.o.
Moduly
249
30.2.3 Zobrazení Enter topic text here.Jednoduchá fotogalerie Takto nastavená fotogalerie zobrazí všechny obrázky dohromady. 1. V administraci přejděte do nabídky Prezentace -> Admin menu a vložte záznam s názvem photogallery_items. Tímto zpřístupníte k administraci vkládání fotografií. 2. Do menu přidejte položku a nastavte jí Sekce menu: Obrázky fotogalerie 3. Nyní stačí naplnit tabulku obrázky fotogalerie jednotlivými fotografiemi 4. Chcete-li upravit množství zobrazených záznamů nebo počet sloupců, přejděte do nabídky Prezentace -> Layouty a upravte komponentu Table Content v layoutu s názvem photogallery_items (přehled). 5. Chcete-li upravit velikost zobrazených obrázků, nebo přidat a upravit zobrazení dalších polí, přejděte do nabídky Prezentace -> Šablony a upravte šablonu s názvem photogallery_items (přehled)
Jednotlivé fotogalerie navázané na vlastní položky menu Tato fotogalerie Vám umožní sdružovat obrázky do skupin. Tyto skupiny představují samotné záznamy fotogalerie v tabulce photogalleries. Pro tento typ zobrazení jsou jednotlivé fotogalerie navázány zvlášť na jednu konkrétní položku menu. 1. V administraci přejděte do nabídky Prezentace -> Admin menu a vložte záznam s názvem photogalleries. Tímto zpřístupníte k administraci vkládání fotogalerií. Vkládání samotných fotografií je zajištěno automaticky tím, že tabulka photogallery_items je detail tabulkou tabulky photogalleries. 2. Do menu přidejte jednotlivé položky představující jednotlivé fotogalerie a nastavte jim Sekce menu: Fotogalerie 3. Naplňte tabulku photogalleries jednotlivými fotogaleriemi, kterým přiřaďte příslušné sekce menu. Tímto je zajištěna příslušnost záznamů k jednotlivým položkám menu. 4. Chcete-li upravit množství zobrazených záznamů nebo počet sloupců, přejděte do nabídky Prezentace -> Layouty a upravte komponentu Table Content v layoutu s názvem photogallery_items (přehled). 5. Chcete-li upravit velikost zobrazených obrázků, nebo přidat a upravit zobrazení dalších polí, přejděte do nabídky Prezentace -> Šablony a upravte šablonu s názvem photogallery_items (přehled)
Přehled fotogalerií navázané na jednu položku menu Tato fotogalerie Vám také umožní sdružovat obrázky do skupin s tím rozdílem, že je nejprve zobrazen přehled všech fotogalerií a až po kliknutí jsou zobrazeny samotné obrázky patřící k vybrané fotogalerii. 1. V administraci přejděte do nabídky Prezentace -> Admin menu a vložte záznam s názvem photogalleries. Tímto zpřístupníte k administraci vkládání fotogalerií. Vkládání samotných fotografií je zajištěno automaticky tím, že tabulka photogallery_items je detail tabulkou tabulky photogalleries. 2. Do menu přidejte položku představující odkaz na seznam fotogalerií a nastavte jí Sekce menu: Fotogalerie a Je kategorie: ano 3. Naplňte tabulku photogalleries jednotlivými fotogaleriemi, kterým přiřaďte příslušnou sekci menu. Tímto je zajištěna příslušnost záznamů k jednotlivým položkám menu. 4. Chcete-li upravit množství zobrazených záznamů nebo počet sloupců, přejděte do nabídky Prezentace -> Layouty a upravte komponentu Table Content v layoutu s názvem photogallery_items (přehled). 5. Chcete-li upravit velikost zobrazených obrázků, nebo přidat a upravit zobrazení dalších polí, přejděte do nabídky Prezentace -> Šablony a upravte šablonu s názvem photogallery_items (přehled)
© 2009 E-VISION International, s.r.o.
250
Visual PHP Developer Guide
Přehled fotogalerií navázané na vlastní položky menu Tato fotogalerie pracuje stejným způsobem, jako předešlá s tím rozdílem, že jednotlivé skupiny fotogalerií navážete na vlastní položky menu. Tyto položky musí mít opět nastaveno Sekce menu: Fotogalerie a Je kategorie: ano
30.2.4 Změna velikosti obrázků Velikost obrázků a způsob zobrazení se definuje v šablonách pomocí komponenty Template Image. Tato komponenta vrací zmenšený, zvětšený nebo ořezaný obrázek, který při prvním generování uloží do souboru a při příštím načtení použije již tento vygenerovaný soubor, aby nezatěžovala server zbytečným generováním stejného obrázku. Obrovskou výhodou tohoto řešení je možnost změny velikosti obrázků bez toho, aby bylo nutné všechny obrázky nahrávat znovu. Více informací se dozvíte v sekci Template Image.
30.2.5 Hromadný import obrázků Jazyk HTML neumožňuje do pole pro nahrání souboru vložit více než jeden soubor. Pomocí JavaScriptu není také možné automaticky uploadovat více souborů, kvůli zabezpečení prohlížečů. Z toho důvodu je k dispozici možnost hromadného nahrání obrázků pomocí jednoho zip souboru, ve kterém jsou uloženy jednotlivé obrázky. Postup pro hromadný import obrázků: 1. Otevřete v administraci přehled fotogalerií a u požadované fotogalerie, do které chcete importovat, klikněte na Fotografie. Dostanete se do přehledu detail tabulky photogallery_items. 2. Klikněte na tlačítko Import a vyberte typ souboru ZIP archív obsahující obrázky nebo soubory 3. Vyberte název pole této tabulky, které je navázáno na komponentu IMAGE a má obsahovat obrázek (typicky pole image - obrázek) 4. Klikněte na tlačítko Procházet... a vyberte zip archív z Vašeho počítače. 5. Klikněte na tlačítko Nahrát. Soubor bude nahráván na server a zobrazí se průběh jeho odesílání. 6. Jakmile je nahrátí souboru dokončeno, klikněte na tlačítko OK. 7. Zobrazí se ukazatel průběhu extrahování obrázků ze zip archívu. 8. Po dokončení se zobrazí přehled nových záznamů včetně importovaných fotografií, u kterých můžete doplnit další informace
30.3 Související dokumenty Tento modul rozšířuje klasické dokumenty a umožňuje zobrazovat informace v závislosti na tom, v jaké sekci se návštěvník nachází. Filtrace je prováděna pomocí výběru jedné nebo více položek menu, kde se má související dokument zobrazit. Typické zobrazení tohoto modulu je v některém z panelů, nikoli jako hlavní obsah. Zobrazení souvisejících dokumentů je realizováno výběrem jedné nebo více položek sekce menu a výběrem jednoho z typů zobrazení v administraci. Zadané hodnoty poté automaticky prochází filtrací při zobrazení v prezentaci.
Tabulka related_documents
© 2009 E-VISION International, s.r.o.
Moduly
251
Pole tabulky Název pole
Typ komponenty
id
UUID
Identifikátor
date
DATETIME
Datum vytvoření
displayType
COMBOBOX
Zobrazení
mid
LOOKUPTREE
Sekce menu
language
LANGUAGE
Jazyk dokumentu
title
TEXT
Název dokumentu
tid
TEXT
Textový identifikátor
author
USERS
Autor dokumentu
userGroups
USERGROUPS
Uživatelské skupiny
text
HTMLAREA
Obsah dokumentu
Rozšíření oproti dokumentům Změna oproti dokumentům je v komponentě pole displayType, kde jsou hodnoty dtDisplay a dtArchive rozšířeny o další hodnotu dtEmpty. Systém automaticky zobrazí pouze záznam s hodnotou dtEmpty, pokud nenalezne jiné záznamy s hodnotou dtDisplay. Naopak pokud nenalezne žádné záznamy s hodnotou dtDisplay, zobrazí záznam s hodnotou dtEmpty. Dalším rozšířením je komponenta pole mid, kdy je aktivována vlastnost multiselect pro výběr více hodnot současně.
Zobrazení v prezentaci K zobrazení souvisejících dokumentů stačí vložit do libovolného místa komponentu Table Content a nastavit jí název tabulky related_documents. O filtraci záznamů podle menu a typu zobrazení se stará systém sám, protože je tato filtrace nastavena pomocí vlastnosti filter tabulky related_documents (konkrétně je tam nastaveno: displayType='dtEmpty' {php: ($mid != "" ? "OR mid LIKE '%".$mid."%'" : "")}).
Příklad Máme k dispozici 4 položky menu (menu1, menu2, menu3 a menu4). Pro položky menu1 a menu2 chceme zobrazovat vlastní informace v pravém panelu. Stačí tedy vytvořit 2 samostatné související dokumenty, nastavit zobrazení na Zobrazeno, vyplnit texty a u prvního záznamu zaškrtnout v sekci menu položku menu1 a u druhého záznamu položku menu 2. Pro ostatní položky menu, pro které nebude k dispozici související dokument chceme zobrazit obecné informace. Stačí tedy vytvořit třetí související dokument, nezaškrtnout žádnou položku menu a vybrat u zobrazení hodnotu Zobrazit, pokud neexistují jiné. Pak už stačí například v global layoutu přidat komponentu Table Content s názvem tabulky related_documents.
30.4
Počasí Modul pro počasí výrazně zjednodušuje implementaci XML dat poskytovaných od portálu weather.com. K dipozici je přes 38000 stanic po celém světě, ze kterých si můžete vybrat. Tyto stanice jsou přehledně přiřazeny ke státům a k dispozici je i možnost zobrazit počasí z nejbližší stanice zadaných GPS souřadnic.
© 2009 E-VISION International, s.r.o.
252
Visual PHP Developer Guide
Jednotlivé načítání dat z weather.com je dle licenčních podmínek ukládáno do vyrovnávací paměti. Nedochází tedy k neustálému načítání a zpracování dat při každém načtení stránky.
30.4.1 Komponenta Weather O zobrazení počasí se stará vizuální komponenta Weather. Tato komponenta funguje na podobném principu jako komponenta Table Content, tedy výsledné zobrazení lze ovlivnit pomocí šablon. Na libovolné místo tedy stačí vložit tuto komponentu a nakonfigurovat potřebné vlastnosti. Komponenta má k dispozici tyto nastavení:
Typ · aktuální stav - zobrazí aktuální počasí · předpověď - zobrazí předpověď až na 5 dní
Čas. limit vyrovnávací paměti Hodnota určující dobu, po kterou budou data uchována ve vyrovnávací paměti. Po uplynutí této doby dojde k znovunačtení dat ze serveru weather.com. Zadává se číslo a následuje znakové zobrazení typu hodnoty: · s - počet sekund (např. 30s) · m - počet minut (např. 10m) · h - počet hodin (např. 6h) · d - počet dnů (např. 2d)
ID stanice Identifikátor stanice, který používá weather.com. Pro ulehčení nalezení správného identifikátoru je k dispozici databáze většiny stanic řazené podle států, která se zobrazí po kliknutí na tlačítko [...].
Stát Pokud chcete zobrazit počasí pro daný stát, lze použít výběr státu z nabídky místo identifikátoru stanice. Systém poté vyhledá stanici nejblíže středu vybraného státu.
Zeměpisná šířka a zeměpisná délka Jde o poslední možnou variantu určení stanice, kdy systém nalezne nejbližší stanici těmto souřadnicím.
Složka s obrázky Každý stav počasí je reprezentován obrázkem. Ve výchozím stavu je k dispozici sada alfatransparentních PNG obrázků v dostatečné velikosti 256x256 px. V případě, že chcete použít vlastní sadu obrázků, stačí zada cestu relativní k adresáři /repository/. Obrovskou výhodou je možnost použití komponenty Template Image v šabloně, kdy lze z původní sady zobrazovat různé velikosti bez nutnosti tyto obrázky ručně upravovat.
Počet sloupců Podobně jako u Table Content, zobrazí zpracované šablony ve více sloupcích.
Řazení ve sloupcích Podobně jako u Table Content, určuje pořadí ve sloupích. © 2009 E-VISION International, s.r.o.
Moduly
253
Jednotky Určuje, která jednotková soustava bude použita. · metrické - jednotky °C, km, ... · anglické - jednotky °F, míle, ...
Den U předpovědi omezí zobrazení pouze na určitý den (hodnoty 0..4)
Počet dnů Omezí zobrazení pouze na zadaný počet dnů
Šablona Určuje vlastní šablonu použitou k zobrazení obsahu. Pokud není žádná šablona zadaná, je použita šablona weather_cc pro aktuální stav počasí a šablona weather_forecast pro předpověď. Tyto výchozí šablony lze samozřejmě přizpůsobit požadavkům prezentace.
30.4.2 Virtuální tabulky Aby bylo možné zpracovávat obsah pomocí šablon, jsou pro aktuální počasí a předpověd k dispozici virtuální tabulky weather_cc a weather_forecast. Data jsou místo z databáze načítána z externího XML zdroje a jsou ukládána do vyrovnávací paměti, aby se nemuselo neustále načítat ze serveru weather.com (tento server to dokonce zakazuje a vyžaduje, aby byla data ukládána na serverové straně).
Tabulka weather_cc Tabulka pro aktuální stav počasí má definovány tyto pole Název pole
Typ komponenty
stationId
TEXT
Identifikátor stanice
name
TEXT
Název stanice
country
LOOKUP
Stát, ve kterém je stanice
date
DATETIME
datum a čas, kdy byly hodnoty načteny
temperature
TEXT
aktuální teplota
iconNumber
READONLY
číslo obrázku reprezentujícího stav počasí
icon
IMAGE
obrázek reprezentující stav počasí
moonIconNumber
READONLY
číslo obrázku reprezentujícího stav fáze měsíce
moonIcon
IMAGE
obrázek reprezentující fáze měsíce
moonPhase
TEXT
textový popis fáze měsíce
sunrise
DATETIME
čas východu slunce
sunset
DATETIME
čas západu slunce
text
TEXT
textový popis stavu počasí
barPressure
TEXT
tlak v dané lokalitě
© 2009 E-VISION International, s.r.o.
254
Visual PHP Developer Guide
barTrend
TEXT
tlaková tendence v dané lokalitě
windSpeed
TEXT
rychlost větru
windDirection
TEXT
směr větru
windAzimuth
TEXT
směr větru vyjádřený ve stupních
visibility
TEXT
viditelnost
humidity
TEXT
relativní vlhkost vzduchu
dewPoint
TEXT
rosný bod
uvIndex
TEXT
index UV záření
uvDescription
TEXT
textový popis intenzity UV záření
temperatureHigh
TEXT
nejvyšší očekávané teploty
temperatureLow
TEXT
nejnižší ořekávané teploty
Tato tabulka obsahuje vždy jen 1 záznam
Tabulka weather_forecast Tabulka pro předpověď počasí má definovány tyto pole Název pole
Typ komponenty
stationId
TEXT
Identifikátor stanice
name
TEXT
Název stanice
country
LOOKUP
Stát, ve kterém je stanice
date
DATETIME
datum a čas, kdy byly hodnoty načteny
sunrise
DATETIME
čas východu slunce
sunset
DATETIME
čas západu slunce
temperatureHigh
TEXT
nejvyšší očekávané teploty
temperatureLow
TEXT
nejnižší ořekávané teploty
dayIconNumber
READONLY
číslo obrázku reprezentujícího stav počasí přes den
dayIcon
IMAGE
obrázek reprezentující stav počasí přes den
dayText
TEXT
textový popis stavu počasí přes den
dayWindSpeed
TEXT
rychlost větru přes den
dayWindDirection
TEXT
směr větru přes den
dayWindAzimuth
TEXT
směr větru přes den vyjádřený ve stupních
dayHumidity
TEXT
relativní vlhkost vzduchu přes den
dayChanceOfPrecipitation
TEXT
procentuální vyjádření možnosti srážek přes den
nightIconNumber
TEXT
číslo obrázku reprezentujícího stav počasí v noci
nightIcon
TEXT
obrázek reprezentující stav počasí v noci
© 2009 E-VISION International, s.r.o.
Moduly
255
nightText
TEXT
textový popis stavu počasí v noci
nightWindSpeed
TEXT
rychlost větru v noci
nightWindDirection
TEXT
směr větru v noci
nightWindAzimuth
TEXT
směr větru v noci vyjádřený ve stupních
nightHumidity
TEXT
relativní vlhkost vzduchu v noci
nightChanceOfPrecipitation
TEXT
procentuální vyjádření možnosti srážek v noci
30.4.3 Šablony Pro zobrazení informací o počasí jsou použity (podobně jako u Table Content) šablony. Ve výchozím stavu jsou k dispozici šablony weather_cc pro aktuální stav počasí a weather_forecast pro předpověď. Samozřejmostí je i možnost vytvořit si vlastní šablonu, kterou poté nastavíte ve vlastnostech komponenty Weather. Výchozí šablona weather_cc
Výchozí šablona weather_forecast
Většina z těchto komponent jsou nadefinována tak, aby v šablonách zobrazovaly hodnoty včetně jednotek. Pro použití konkrétních hodnot lze použít metodu getValue()
© 2009 E-VISION International, s.r.o.
Tvorba vlastních modulů Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXI
Tvorba vlastních modulů
31
257
Tvorba vlastních modulů Ve většině případů nastane situace, kdy Váš zákazník požaduje unikátní nové moduly, přizpůsobené jeho konkrétním požadavkům. Tvorba těchto modulů je jednoduchá a funguje na stejných principech, jak jsou definované výchozí moduly, které jsou aktivované u konkrétní verze Visual PHP. Ve své podstatě jsou moduly, jako například články, aktuality, fotogalerie a další pouze přednastavené běžně používané moduly. Nemusíte tedy pokaždé tvořit tyto moduly, ale pouze použijete jednu z tabulek databáze a jejich layouty a šablony.
31.1 Vlastní tabulky databáze Základem tvorby vlastních modulů je vytvoření své vlastní tabulky databáze, kam se budou ukládat data. Některým vlastním modulům stačí jedna tabulka, pro jiné je potřeba vytvořit větší množství tabulek vzájemně provázaných relacemi. Ve Visual PHP™ můžete vytvořit 4 druhy tabulek s určitýmu vztahy Master-Detail, Multi-Detail, Tree a Property. Více informací o těchto typech tabulek a relacích se dozvíte v sekci Tabulky. Ve Visual PHP™ jsou tabulky představovány objekty. Tyto objekty umožňují zobrazovat obsah, vkládat nová data, upravovat data, mazat data a spousty dalších funkcí.
Vytvoření nové tabulky Pro vytvoření nové tabulky přejděte do nabídky Prezentace -> Tabulky. Zobrazí se seznam výchozích tabulek, které jsou k dispozici pro verzi jádra, kterou používáte. Pro přidání nové vlastní tabulky klikněte na Vytvořit záznam. Zadejte název tabulky (tento název nesmí obsahovat mezery a znaky s diakritikou, protože pod stejným názvem bude fyzicky uložena tabulka v MySQL databázi). Aby byl pro Vašeho koncového zákazníka zobrazen lidštější název, můžete zadat Titulek (textový název) pro tuto tabulku (například pro tabulku phone_numbers zadejte text Telefonní seznam). Klikněte na tlačítko Uložit. Bude vytvořen objekt reprezentující tuto tabulky a zároveň bude vytvořena databázová tabulka v MySQL databázi.
31.2 Vlastní pole tabulky Po uložení nové tabulky se opět zobrazí přehled všech tabulek. Pro tuto tabulku je dále potřeba vytvořit pole. U každé tabulky v přehledu je odkaz na zobrazení polí této tabulky. Najděte tedy tabulku s názvem, pod kterým jste ji vytvořili a klikněte na odkaz Pole tabulky. Zobrazí se seznam polí této tabulky. U nové tabulky uvidíte automaticky vytvořené pole id, které představuje jedinečný identitifikátor záznamu tak, aby bylo možné přesně specifikovat, se kterým záznamem bude Váš zákazník pracovat. Každé pole tabulky je opět zapouzdřeno do objektu, který rozšiřuje základní datové typy databáze o další vlastnosti, jako například o komponenty, starající se o administraci hodnot těchto polí a zobrazení v různých formátech v prezentaci.
Vložení nového pole V přehledu polí tabulky klikněte na tlačítko Nový záznam. Zadejte Název pole (opět je nutné zadat název pole bez mezer a diakritiky - neumožňuje to samotné MySQL). Zadejte textový popis tohoto pole, aby zákazník vědel, co toto pole znamená. Některé běžně používané textové popisky v angličtině není nutné zadávat, protože jsou automaticky překládány do jazyka, ve kterém bude Váš zákazník administrovat.
© 2009 E-VISION International, s.r.o.
258
Visual PHP Developer Guide
Každé pole v databázi musí mít svůj datový typ. Vybrete z nabídky možných datových typů pomocí výběru SQL typ. Některé datové typy vyžadují upřesnění, jako například počet znaků, výčet hodnot nebo rozsah čísel. Zadejte toto upřesnění do pole SQL typ (parametry). Typickým příkladem může být pole VARCHAR(255) - tedy výběr SQL typ = VARCHAR a SQL typ (parametry) = 255, nebo například výčtový typ ENUM('true','false') - tedy výběr SQL typ = ENUM a SQL typ (parametry) = 'true','false'. Dále je potřeba vybrat komponentu, která se bude starat o zadávání hodnot v administraci, filtrace, automatické převody formátů dat (například u pole typy DATETIME) a v neposlední řadě o zobrazování hodnot tohoto pole v administraci pomocí šablon. K dispozici je velké množství komponent, které rozšiřují základní datové typy databáze a výrazně Vám ulehčí práci, protože nebudete muset složitě programovat obsluhu zadávání dat a jejich zobrazení. Seznam komponent, které můžete ihned použít, naleznete v sekci Komponenty. Pro každou komponentu je potřeba upravit její nastavení v parametrech komponenty. Přehled všech parametrů komponent naleznete v sekci Komponenty. V případě, že budete chtít automaticky vytvářet výchozí hodnoty pro pole, zadejte tuto hodnotu do výchozí hodnoty. Lze použít přímo hodnotu, nebo i dynamické PHP a SQL hodnoty. Typickým příkladem může být automatická hodnota pro aktuální datum a čas - stačí zadat {sql: NOW()} (systém zavolá MySQL funkci NOW() a vrátí její hodnotu). Podobného výsledku lze dosáhnout i pomocí funkcí PHP stačí zadat {php: date("Y-m-d H:i:s", time())}. Uložte pole pomocí tlačítka Uložit a podobným způsobem můžete přidat další pole do této databázové tabulky.
© 2009 E-VISION International, s.r.o.
Fulltextové vyhledávání Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXII
260
32
Visual PHP Developer Guide
Fulltextové vyhledávání Vyhledávání pomocí tzv. fulltextu, tedy v celém obsahu databáze, lze realizovat velmi snadno a rychle.
Vytvoření formuláře pro zadání hledaného textu Na libovolné místo v layoutu lze umístit formulář s formulářovým textovým polem a tlačítkem pro odeslání formuláře. 1. Klikněte do požadovaného místa layoutu, kam chcete umístit formulář a klikněte na tlačítko Formulář. 2. Zadejte cílovou adresu search.php a vyberte metodu odeslání POST (pokud nepoužíváte SEO, můžete vybrat i metodu GET). 3. Do formuláře vložte libovolné textové informace, obrázky a popisky 4. Přidejte dovnitř formuláře textové pole a zadejte mu Název/ID fulltextSearch. 5. Přidejte dovnitř formuláře tlačítko (odeslat) a zadejte mu libovolný popisek (např. Hledat) 6. Uložte změny v layoutu Výsledná část layoutu může vypadat například takto:
Cílovou adresou tohoto formuláře bude: search.php?fulltextSearch=HLEDANY_TEXT
Úprava šablony pro zobrazení výsledků Výsledky vyhledávání ze search.php se zobrazí v šabloně s názvem search. Tuto šablonu můžete samozřejmě přizpůsobit svým vlastním požadavkům tím, že změníte výchozí šablonu search. Při vyhledávání jsou pro použití v šabloně k dispozici tyto virtuální pole: · id - identifikátor nalezeného záznamu · recordTableName - název tabulky, ze které pochází nalezený záznam · recordFileName - název souboru, na který se lze odkázat (např. articles.php pro tabulku articles) · recordTitle - název nalezeného záznamu (například název dokumentu, článku, atd.) · fulltextResult - části obsahu nalezeného textu Všechny tyto pole můžete zobrazit stejným způsobem, jako zobrazujete pole v jiných šablobnách, tedy uzavřením do hranatých závorek. Pro odkázání se na konkrétní nalezený záznam stačí vytvořit v šabloně odkaz, který bude směrovat na konkrétní soubor a předá mu identifikátor id: [recordFileName]?id=[id]
Budete-li chtít na odkazované stránce zvýraznit hledaný výraz, můžete předat navíc i parametr highlightSearch. Hodnotu pro tento parametr získáte z proměnné $fulltextSearch, protože je předána z formuláře. © 2009 E-VISION International, s.r.o.
Fulltextové vyhledávání
261
[recordFileName]?id=[id]&highlightSearch={php: $fulltextSearch}
Fulltextové vyhledávání jen nad určitou tabulkou Pokud chcete hledat pouze nad konkrétní tabulkou, stačí směřovat formulář na soubor této tabulky (např. articles.php) a opět předat parametr fulltextSearch. Výslednou adresou tohoto formuláře bude: articles.php?fulltextSearch=HLEDANY_TEXT
Tentokrát již bude použita šablona patřící k této tabulce (např. šablona s názvem articles). Nalezený text v této šabloně bude automaticky zvýrazněn.
Změna vzhledu zvýraznění nalezeného textu Nalezený text je zvýrazněn tak, že je obalen kódem: <span class="highlightSearch"> ...
Pro změnu vzhledu tohoto zvýraznění stačí nastavit třídu CSS ve Stylech (Prezentace -> Styly). Výchozí nastavení této třídy vypadá takto: .highlightSearch { text-decoration: underline; font-weight: bold; }
Fulltextové vyhledávání nad vlastními tabulkami Vyhledávání je aplikováno pouze nad těmi tabulkami, které mají zaškrtnutou vlastnost Vyhledávání (Prezentace -> Tabulky -> Upravit -> záložka Základní). Chcete-li zahrnout do vyhledávání i Vaši vlastní tabulku, je nutné tuto vlastnost zaškrtnout.
Fulltextová indexace nad poli vlastní tabulky Aby bylo možné nad textovými poli vyhledávat fulltextově, musí mít pole fulltextový index. Pokud nemá tento index, je prováděno vyhledávání pomocí SQL WHERE `fieldName` LIKE "%search_value%". Pokud má tento index, je použito vyhledávání pomocí SQL WHERE MATCH (`fieldName`) AGAINST ('search_value' IN BOOLEAN MODE). Fulltextovou indexaci u pole tabulky zapnete zaškrtnutím Fulltextová indexace v záložce ostatní.
© 2009 E-VISION International, s.r.o.
Objekty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXIII
Objekty
33
263
Objekty Pro usnadnění práce jsou k dispozici objekty, které se starají o zasílání e-mailů, čtení souborů a podobně. K dispozici jsou také samotné objekty jádra (tabulky, styly, layouty, šablony, ...)
33.1 Mail Objekt Mail se stará o zasílání e-mailů. Umožňuje posílat textové i HTML emaily, přidávat přílohy a odesílat pomocí funkce mail() nebo přímým napojením na SMTP server.
Přístup k objektu Objekt načtete pomocí funkce getObject(), která vrátí objekt Mail. V případě, že tento objekt ještě nebyl použit, bude vytvořen. $Mail = getObject("Mail");
Metody function setSender(string $address, string $fromName="", bool $replyTo=true) Nastaví odesílatele zprávy. function setSubj ect(string $subj ect) Nastaví předmět zprávy. function setBody(string $text) Nastaví obsah zprávy jako prostý text. function setHtmlBody(string $html, bool $useStyle=true) Nastaví obsah zprávy jako HTML. V případě $useStyle vloží do zprávy i CSS styl z Prezentace -> Styly function setRecipient(string $address, string $name = "") Nastaví příjemce zprávy. function addRecipient(string $address, string $name = "") Přidá dalšího příjemce zprávy. function setRecipients(array $addresses=array()) Nastaví příjemce z pole. function addCC(string $address, string $name = "") Přidá příjemce zprávy, kterému přijde kopie.
© 2009 E-VISION International, s.r.o.
264
Visual PHP Developer Guide
function addBCC(string $address, string $name = "") Přidá příjemce zprávy, kterému přijde slepá kopie. Ostatní příjemci tedy neuvidí seznam dalších příjemců této zprávy. function setReplyTo(string $address, string $name = "") Nastaví výchozího příjemce v případě odpovědi na tuto zprávu. bool function send() Odešle zprávu. Vrací TRUE v případě úspěchu a FALSE v případě chyby. function addAttachment(string $path, string $name="", string $encoding="base64", string $type="application/octet-stream") Přidá ke zprávě přílohu ze souboru. function addAttachmentContent(string $content, string $name="", string $encoding="base64", string $type="application/octet-stream") Přidá ke zprávě přílohu z předaného řetězce. function addCustomHeader(string $header) Přidá vlastní záhlaví zprávy. function clear() Vyčistí všechny odesílatele a příjemce, přílohy a další vlastní nastavení. function clearRecipient() Vyčistí příjemce function clearCC() Vyčistí příjemce kopie function clearBCC() Vyčistí příjemce slepé kopie function clearReplyTo() Vyčistí příjemce odpovědi na zprávu function clearAllRecipients() Vyčistí příjemce function clearAttachments() Vyčistí přílohy © 2009 E-VISION International, s.r.o.
Objekty
265
function clearCustomHeaders() Vyčistí vlastní záhlaví zprávy.
Způsob odeslání Objekt Mail používá k odeslání zprávy funkci mail() z jazyka PHP. V některých případech nelze tuto funkci použít (server nemá řádné nastavení této funkce nebo běží Visual PHP™ pod Windows). V tomto případě je možné nastavit přihlašovací údaje k SMTP serveru v nabídce Nástroje -> Nastavení -> Systém a objekt Mail se přímo připojí na tento SMTP server a odešle zprávu přes tento server.
Příklad Tento příklad ukazuje, jak lze použít objekt Mail k zaslání zprávy $Mail = getObject("Mail"); $recipientEmail = "to@domain.com"; $recipientEmail = "Recipient name"; $Mail->setSender("my@domain.com", "My name"); $Mail->setRecipient($recipientEmail, $recipientName); $Mail->setSubject("Test message"); $Mail->setBody("This is body of message"); $Mail->send();
© 2009 E-VISION International, s.r.o.
Funkce Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXIV
Funkce
34
267
Funkce Visual PHP™ obsahuje řadu pomocných funkcí, které můžete sami využít při vlastním programování.
34.1 getMicroTime Vrací aktuální čas v mikrosekundách. float getMicroTime()
34.2 getMemoryUsage Vrací množství použíté paměti RAM. int getMemoryUsage()
34.3 isWindows Vrací, zda běží Visual PHP™ pod operačním systémem Windows. bool isWindows()
34.4
isDebugIP Vrací, zda je připojen klient s IP adresou, která je zadaná v Nastavení -> IP adresy vývojářů. Lze použít pro kontrolní výpisy hodnot pouze developerovi. bool isDebugIP()
34.5 str_dump Vrátí řetězec obsahující stejný výpis proměnné jako pomocí funkce var_dump(), která ale provádí okamžitý výstup. string str_dump(mixed $variable)
34.6 getFunctionCall Vrátí řetězec obsahující historii volání funkcí v místě této volané funkce. string getFunctionCall()
34.7 dumpFunctionCall Provede dump výpis obsahující historii volání funkcí v místě této volané funkce. void dumpFunctionCall()
© 2009 E-VISION International, s.r.o.
268
Visual PHP Developer Guide
34.8 dump Provede dump výpis proměnné předané v parametru. Tento výpis je viditelný pouze pro IP adresy zadané v IP adresy vývojářů v nastavení. void dump(mixed $variable)
34.9 showMessage Tato funkce vyvolá zprávu v administraci nebo v prezentaci. Zpráva se zobrazí IP adresám zadaným v IP adresy vývojářů nebo všem v závislosti na nastavení Zobrazení chyb a varování
mixed showMessage(string $msg, int $type=mtNormal, bool $asString=false, bool $immediateOutput=f
možné typy: mtNormal mtWarning mtError mtDebug
34.10 deleteObject Odstraní objekt a postará se o pročištění paměti void deleteObject(mixed &$object)
34.11 createObject Funkce vytvoří novou instanci objektu zadaného jako parametr. mixed createObject(string $objectName)
34.12 getObject Vrátí instanci objektu zadaného jako parametr. Pokud neexistuje, bude vytvořen. mixed getObject(string $objectName)
34.13 objectExists Vrátí, zda existuje instance objektu názvem zadaným v parametru bool objectExists(string $objectName)
© 2009 E-VISION International, s.r.o.
Funkce
269
34.14 getmod Vrátí nastavení uživatelských práv souboru nebo adresáře. Jde o opak funkce chmod(). int getmod(string $filename)
34.15 replaceAccentChars Nahradí znaky s diakritikou za znaky bez diakritiky. string replaceAccentChars(string $str, string $language="")
34.16 runInBackground Spustí zadanou URL na pozadí void runInBackground(string $url, int $timeout=1)
34.17 encrypt Zakóduje vstupní řetězec pomocí zadaného klíče string encrypt(string $text, string $key="")
34.18 decrypt Odkóduje vstupní řetězec pomocí zadaného klíče string decrypt(string $text, string $key="")
34.19 formatNumber Vrátí číslo podle zadaného formátování
string formatNumber(float $number, string $thousandSeparator=" ", string $floatSeparator=".", st
34.20 isSqlDateFormat Vrátí, zda je řetězec ve formátu SQL datumu bool isSqlDateFormat(string $value)
34.21 execCommand Spustí příkaz přímo na serveru, pokud není zakázaná funkce proc_open(). Vrací výstup příkazu.
© 2009 E-VISION International, s.r.o.
270
Visual PHP Developer Guide
string execCommand(string $cmd)
34.21.1 isRFC822DateFormat Vrátí, zda je řetězec ve formátu datumu podle normy RFC822 bool isRFC822DateFormat(string $value)
34.22 _rmdir Odstraní adresář a pokud je zadaný parametr empty, tak v něm odstraní i soubory a adresáře bool _rmdir(string $directory, bool $empty=FALSE)
34.23 fileExists Vrátí, zda existuje soubor. Parametrem může být i URL. bool fileExists(string $fileName)
34.24 createUUID Vrátí UUID - jednoznačný identifikátor, který je unikátní na celém světě, což přináší obrovské výhody např. při synchronizaci dat. Tyto identifikátory jsou použity v databázi v polích id. string createUUID()
34.25 url_exists Vrátí, zda existuje URL. bool url_exists(string $url)
34.26 setTimeout Nastaví maximální čas, po který může skript běžet. Nastavení funguje pouze v případě, že server má povoleny změny v php.ini. void setTimeout(int $seconds)
34.27 setMemoryLimit Nastaví maximální množství paměti RAM, kterou může skript alokovat. Nastavení funguje pouze v případě, že server má povoleny změny v php.ini. void setMemoryLimit(int $megabytes)
© 2009 E-VISION International, s.r.o.
Funkce
271
34.28 file_append_contents Přiřadí data na konec souboru. Pokud soubor neexistuje, bude vytvořen. void file_append_contents(string $fileName, string $content, bool $newLine=true)
34.29 isUUID Vrátí, zda je řetězec UUID bool isUUID(string $str)
34.30 array_to_php Provede konverzi pole na řetězec. Tento řetězec lze předat jako parametr v URL string array_to_php(array $haystack=array(), string $arraySeparator=",")
34.31 php_to_array Provede zpětnou konverzi řetězce zakódovaného pomocí funkce array_to_php() na pole. array php_to_array(string $php)
34.32 strposr Vrátí první pozici řetězce needle v řetězci haystack odzadu. Jde o opačnou funkci k výchozí funkci strpos s rozdílem, že tato funkce hledá odzadu. int strposr(string $haystack, string $needle, int $offset=null)
34.33 strposc Vrátí počet výskytů řetězce needle v řetězci haystack int strposc(string $haystack, string $needle)
© 2009 E-VISION International, s.r.o.
Návody a často kladené dotazy Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXV
Návody a často kladené dotazy
35
273
Návody a často kladené dotazy
35.1 Bannery v závislosti na hlavním menu Ukážeme si, jak vytvořit modul pro bannery tak, aby se zobrazovaly v závislosti na tom, ve které sekci menu se návštěvník nachází. Prvním krokem bude vytvoření vlastní tabulky, zadání polí a komponent. Dalším krokem bude vytvoření šablon pro zobrazení různých typů bannerů (JPG, GIF nebo FLASH).
Krok 1 - Tvorba tabulky 1. Přejděte do nabídky Prezentace -> Tabulky a klikněte na tlačítko Nový záznam. 2. Vyplňte název tabulky (například banners) a textový popis (např. Bannery) 3. Klikněte na tlačítko Uložit a upravit pole.
Krok 2 - Tvorba polí tabulky a přiřazení komponent Pole id 1. Pole id již bylo automaticky vytvořeno. Pole mid 1. Klikněte na tlačítko Nový záznam 2. Zadejte název pole = mid (mid patří mezi rezervovaná pole, která mají speciální funkčnost konkrétně, pokud obsahuje tabulka pole mid, bude počítáno s navázáním na položku menu) 3. Titulek můžete zadat, ale pokud jej vynecháte, bude titulek automaticky přeložen z názvu mid 4. Vyberte SQL typ = TEXT (protože bude do tohoto pole uložen seznam identifikátorů, je potřeba mít rezervu pro případ, že položek menu bude velké množství) 5. Vyberte typ komponenty LOOKUPTREE (tato komponenta zobrazuje stromovou strukturu). 6. Ve vlastnostech této komponenty zadejte: Table = menu (budeme číst z tabulky menu) Value Field = id (při výběru se uloží identifikátor položky menu) Text Field = name (pro uživatele se zobrazí název položky menu namísto identifikátoru) Multiselect = true (chceme umožnit výběr více hodnot najednou) 7. Uložte pole Pole image 1. Klikněte na tlačítko Nový záznam 2. Zadejte název pole = image 3. Do titulku zadejte Obrázkový banner 4. Vyberte SQL typ = VARCHAR (budeme ukládat obrázek, kdy bude do databáze uložena přípona souboru) 5. Vyberte SQL parametry = 10 6. Vyberte typ komponenty IMAGE (tato komponenta umožní nahrávat obrázky na server) 7. Ve vlastnostech této komponenty zadejte: Directory = /banners/ (soubory se budou ukládat do adresáře /repository/banners/) Field Name = id (soubor bude uložen pod názvem shodným s identifikátorem záznamu) 8. Uložte pole Pole flash 1. Klikněte na tlačítko Nový záznam 2. Zadejte název pole = flash 3. Do titulku zadejte Flash banner © 2009 E-VISION International, s.r.o.
274
Visual PHP Developer Guide
4. Vyberte SQL typ = VARCHAR (budeme ukládat soubor, kdy bude do databáze uložena přípona souboru) 5. Vyberte SQL parametry = 10 6. Vyberte typ komponenty FILE (tato komponenta umožní nahrávat soubory na server) 7. Ve vlastnostech této komponenty zadejte: Directory = /banners/ (soubory se budou ukládat do adresáře /repository/banners/) Field Name = id (soubor bude uložen pod názvem shodným s identifikátorem záznamu) 8. Uložte pole Pole link 1. Klikněte na tlačítko Nový záznam 2. Zadejte název pole = link 3. Do titulku zadejte Odkaz 4. Vyberte SQL typ = VARCHAR (budeme ukládat adresu, kam se budou bannery odkazovat) 5. Vyberte SQL parametry = 255 6. Vyberte typ komponenty TEXT (klasická textová komponenta) 7. Ve vlastnostech této komponenty zadejte: Text Before = http:// (běžní uživatelé jsou zvýklí psát URL začínající www a pojem http:// neznají, proto bude tento prefix automaticky přidán) Size = 60 (určí velikost pole) 8. Uložte pole Nyní máme vytvořenou databázi s těmito poli: · id - identifikátor záznamu · mid - přiřazení k sekci menu · image - obrázkový banner · flash - flash banner · link - odkaz pro obrázkový banner
Krok 3 - Zpřístupnění tabulky k administraci 1. Přejděte do nabídky Prezentace -> Admin Menu 2. Klikněte na tlačítko Nový záznam 3. Zadejte název = banners (vyplňujeme název tabulky) 4. Textový popis není nutné zadávat, protože bude použit popis z názvu tabulky 5. Vyberte nadřazenou položku menu, nebo nechejte prázné pro zobrazení v hlavní nabídce. 6. Uložte
Krok 4 - Naplnění testovacími daty 1. Přejděte do nabídky Bannery 2. Klikněte na tlačítko Nový záznam 3. Postupně zadejte několik záznamů (některé s klasickým obrázkem, některé s flash .swf animací)
Krok 5 - Zobrazení v prezentaci 1. Přejděte do nabídky Prezentace -> Layouty 2. Klikněte na Upravit u layoutu s názvem global. (budeme chtít například vložit banner do panelu, který máme právě v global layoutu) 3. Na místo, kam chcete vložit banner, klikněte myší a vložte Table Content. 4. Ve vlastnostech této komponenty zadejte: Table Name = banners mid = {php: $mid} (budeme filtrovat podle pole mid - podobný efekt by mělo zapsání filtru mid LIKE '%{php: $mid}%' do vlastnosti Filter) © 2009 E-VISION International, s.r.o.
Návody a často kladené dotazy
Items Per Page Random Order 5. Uložte layout
=1 = true
275
(budeme chtít zobrazovat v náhodném pořadí)
Krok 6 - Vytvoření šablony pro zobrazení obrázků 1. Přejděte do nabídky Prezentace -> Šablony 2. Klikněte na tlačítko Nový záznam 3. Zadejte název šablony = banners (komponenta Table Content načítá šablony se stejným názvem, jako je název tabulky - pokud není jinak nastaveno ve vlastnosti Template této komponenty) 4. Nebudeme rozlišovat způsob zobrazení, proto ponecháme Všechny (vtAll) 5. Zadejte podmínku = $recordValues["image"] != "" (protože je nutné rozlišit, která šablona bude použita, využijeme podmínek za pomocí pole $recordValues, kde jsou uloženy hodnoty konkrétního záznamu načtené z databáze). 6. Do HTML vložte komponentu Template Image. 7. Ve vlastnostech této komponenty zadejte: Field Name = image 8. Dále potřebujeme vytvořit odkaz z tohoto obrázku. Označte komponentu Template Image a klikněte na tlačítko Vložit odkaz 9. Ve vlastnostech zadejte: URL = [link] (pole link obsahuje adresu, kam se má banner odkazovat. V databázi je uložena adresa bez http://, protože jsme u komponenty nastavili vlastnost Text Before na http://. Na výstupu komponenty bude ale tento prefix zobrazen také) Cíl = nové okno (_blank) 10.Uložte šablonu
Krok 7 - Vytvoření šablony pro zobrazení flash bannerů 1. Zůstaňte v nabídce Prezentace -> Šablony 2. Klikněte na tlačítko Nový záznam 3. Zadejte název šablony = banners (opět stejný název, jako je název tabulky - šablony budou rozlišeny jak podle názvu tak i dále podle podmínky, kterou u šablon zadáváme) 4. Opět nebudeme rozlišovat způsob zobrazení, proto ponecháme Všechny (vtAll) 5. Zadejte podmínku = $recordValues["flash"] != "" (obě šablony budou tedy rozlišeny podmínkou a která z nich se použije bude záležet na splnění těchto podmínek) 6. Do HTML vložte komponentu Flash 7. Ve vlastnostech této komponenty zadejte: Šířka = šířka flashe v pixelech Výška = výška flashe v pixelech URL = [flash.getUrl()] (pole flash má komponentu typu FILE, proto můžeme použít metodu getUrl() k získání cesty k uloženému souboru) 8. Odkaz u flash bannerů nemůžeme měnit, proto je nutné, aby byl odkaz součástí samotného banneru. 9. Uložte šablonu Tímto posledním krokem jsme vytvořili funkční rotace bannerů s navázáním na položky menu. Nabízí se samozřejmě neomezené možnosti rozšiřování funkčnosti jako například různé skupiny bannerů podle umístění, další formáty bannerů atd. Ve Visual PHP™ stačí popustit uzdu Vaši fantazii a vrhnout se směle do práce.
35.2 Fotogalerie zobrazená s FrogJS Pomocí Visual PHP™ je možné zobrazovat fotografie s libovolnými JavaScriptovými knihovnami třetích stran. V tomto návodu si ukážeme, jak použít pro zobrazování fotografií knihovnu FrogJS.
© 2009 E-VISION International, s.r.o.
276
Visual PHP Developer Guide
Stažení zdrojových kódů Zdrojové kódy k této knihovně lze stáhnout z internetových stránek tvůrce knihovny, tedy http://www. puidokas.com/portfolio/frogjs/. Ke stažení v době vydání tohoto manuálu je soubor frogjs11.zip. Archív frogjs11.zip obsahuje tuto strukturu: · /images/ · /scripts/ · example.html · example2.html
Nahrátí zdrojových souborů na server Aby si mohly prohlížeče stáhnout knihovny a spustit JavaScripty v nich uložené, je potřeba nahrát zdrojové soubory, obrázky a další pomocné soubory na server. Doporučuje se použít pro externí knihovny samostatný adresář. Připojte se tedy pomocí FTP na server (přístupové údaje jste získali od svého poskytovatele webhostingu) a v hlavním adresáři (tam, kam jste nahrávali install.php) vytvořte adresář např. s názvem "js". V tomto adresáři si vytvořte podadresář FrogJS a do tohoto podadresáře nahrejte všechny soubory a adresáře z archívu frogjs.zip. Struktura adresářů na serveru bude vypadat následovně: · · · · · · · · · · · · · ·
/admin/ /cache/ /config/ /core/ /install/ /js/ /FrogJS/ /images/ /scripts/ example.html example2.html /repository/ /styles/ /visual-php-core/ URL ke zdrojovému souboru bude vypadat následovně: http://www.domena.cz/js/FrogJS/scripts/frog.js
Úprava .htaccess při zapnutém SEO V případě, že máte zapnuté SEO, systém předpokládá, že cesta /js/FrogJS/scripts/ je SEO mapování a snaží se tuto cestu převést na parametry. Pokud si tuto URL zobrazíte v prohlížeči uvidíte, že se zobrazí úvodní stránka prezentace. Abychom mohli nastavit, že /js/ je skutečným adresářem, je nutné upravit soubor .htaccess. Úpravu lze provést přímo v administraci v nabídce Nástroje -> Nastavení -> SEO. Ve výchozím souboru .htaccess naleznete tento obsah: RewriteEngine on RewriteRule ^repository/.*$ - [PT] RewriteRule ^admin/.*$ - [PT] RewriteRule ^visual-php-core/CVS/.*$ - [PT] RewriteRule ^install/.*$ - [PT] RewriteRule ^(.+)/ /index.php?seoParams=$1 [L,E=QUERY_STRING:$1]
© 2009 E-VISION International, s.r.o.
Návody a často kladené dotazy
277
Jak je vidět z obsahu konfiguračního souboru .htaccess, adresáře repository, admin, visual-php-core a install jsou nastaveny tak, aby je webserver Apache bral jako skutečné adresáře. Ostatní adresáře předané v URL budou směrovány na index.php a použity jako SEO mapování. Pro nastavení vyjímky pro adresář js přidejte další řádek. Výsledek by měl vypadat takto: RewriteEngine on RewriteRule ^repository/.*$ - [PT] RewriteRule ^admin/.*$ - [PT] RewriteRule ^visual-php-core/CVS/.*$ - [PT] RewriteRule ^install/.*$ - [PT] RewriteRule ^js/.*$ - [PT] RewriteRule ^(.+)/ /index.php?seoParams=$1 [L,E=QUERY_STRING:$1]
Po zobrazení URL http://www.domena.cz/js/FrogJS/scripts/frog.js by se již neměla zobrazit úvodní stránka, ale obsah souboru frog.js.
Přidání knihovny do zdrojového kódu HTML stránky Prohlížečům je potřeba říci, které zdrojové soubory si mají stáhnout a spustit. Dle manuálu ke knihovně FrogJS je potřeba vložit do sekce HEAD zdroje HTML stránky následující kód: <script src="scripts/prototype.js" type="text/javascript"> <script src="scripts/scriptaculous.js?load=effects" type="text/javascript"> <script src="scripts/frog.js" type="text/javascript">
Pro vložení jakéhokoli kódu do sekce HEAD slouží funkce addHeadHTML($source, $onceOnly=false) . Aby se tento kód vkládal pouze do stránek, kde je potřeba, upravíme nebo vytvoříme Layout s názvem photogallery_items (vtList), kde se pomocí komponenty Table Content načítají samotné fotografie. Do tohoto Layoutu na libovolné místo umístíme komponentu PHP Code, do které vložíme tento kód:
$html = '<script src="'.PROJECTURL.'js/FrogJS/scripts/prototype.js" type="text/javascript">
Aby bylo zajištěno, že po přesunu prezentace na jiný server nebude nutné přepisovat URL cesty na jinou doménu, nepoužíváme plnou cestu "natvrdo" napsanout, ale je použita konstanta PROJECTURL, která obsahuje protokol, název serveru, případně port a cestu k prezentaci (např. http://www.domena.cz/ mojestranky/ na vývojovém serveru a http://www.jinadomena.cz/ na serveru zákazníka)..
Přizpůsobení layoutu pro zobrazení obrázků pomocí knihovny FrogJS V manuálu ke knihovně FrogJS je příklad, jak aktivovat obrázky pro použití s touto knihovnou. V ukázce je tento zdrojový kód:
© 2009 E-VISION International, s.r.o.
278
Visual PHP Developer Guide
Z ukázky je zřejmé, že všechny obrázky uložené v divu s id FrogJS budou použity pro zobrazení efektu této knihovny. V layoutu photogallery_items (vtList) tedy najdeme komponentu Table Content, která načítá obrázky a uzavřeme ji do divu a tomuto divu nastavíme id="FrogJS" (lze vytvořit div a do něj přesunout komponentu, nebo to lze provést editací zdrojového kódu layoutu). Obsah tohoto divu již bude generovat samotná komponenta TableContent, je tedy potřeba upravit šablonu tak, aby generovala odkaz a obrázek.
Přizpůsobení šablony pro generování obrázků pro knihovnu FrogJS Je potřeba upravit šablonu photogallery_items (vtList). Knihovna FrogJS je zpracována tak, že odkaz je použit pro specifikaci URL obrázku, který se má zobrazit jako velký a samotné URL obrázků specifikují malý náhled. Do této šablony tedy vložíme komponentu Template Image s tímto nastavením: Common: Field Name Width Height Resize Method
image 150 150 scale
Komponenta Template Image vygeneruje tag a postará se o zmenšení rozměru obrázku. Abychom měli uprostřed obrázek se stejnou velikostí, lze použít tu samou komponentu s tímto dalším nastavením: Mouse Click: Field Name Width Height Resize Method Effect
image 300 300 scale open in new window
Toto nastavení "obalí" tag odkazem směřujícím na obrázek zmenšených na výše uvedené rozměry. Pro každý záznam fotogalerie se místo komponenty Table Content vloží zpracované šablony a knihovna FrogJS je zobrazí s efektem. Tímto posledním krokem je knihovna FrogJS přípravena k použítí. Díky odkazům se i při vypnutém JavaScriptu návštěvníkovi zobrazí alternativa v podobě náhledů s možností kliknutí a zobrazení zvětšeného obrázku. TIP: Lze vynechat generování odkazu komponentou Template Image tak, že nenastavíme sekci Mouse Click, ale sami obalíme tuto komponentu odkazem, který bude směřovat na [image.getUrl()] (v šabloně bude nahrazeno za URL zdrojového obrázku).
© 2009 E-VISION International, s.r.o.
279
Endnotes 2... (after index)
© 2009 E-VISION International, s.r.o.
Back Cover