Visual PHP Developer Guide
Verze jádra: 1.7.6.762
© 2008 E-VISION International, s.r.o.
Visual PHP Developer Guide © 2008 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 : říjen 2008
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čí jednatel společnosti tel: 602 115 986 e-mail:
[email protected] Technické oddělení : Bc. Tomáš Kočí jednatel 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 projektu. Která díky tomu zažila spoustu odříkání a ani přes všechny těžkosti, které jsem jí tímto připravoval, mě nepřestala zahrnovat láskou a pochopením. Moc ti za to vše děkuji a slibuji, že ti vše vynahradím. Master Developer Dále chceme poděkovat všem těm, kteří nám zasílají svoje 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
tel.: 606 579 615 e-mail:
[email protected]
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 nového projektu na server
18
1 Instalační skript ................................................................................................................................... 18 2 Spuštění instalace ................................................................................................................................... 18
Kapitola : III Aktualizace jádra
33
Kapitola : IV Přenesení projektu na jiný server
50
1 Vygenerování ................................................................................................................................... instalačního souboru 50
Kapitola : V Administrace
52
1 Přihlášení pomocí ................................................................................................................................... USB klíče 52 2 Přihlášení pomocí ................................................................................................................................... jména a hesla 53 3 Popis okna administrace ................................................................................................................................... 53
Kapitola : VI Základy tvorby prezentací
56
1 Vytvoření global ................................................................................................................................... layoutu 56 2 Vložení obsahu ................................................................................................................................... z databáze 58 3 Vkládání dalších ................................................................................................................................... layoutů 59
Kapitola : VII Nastavení prezentace
64
Kapitola : VIII Styly
68
1 Parametry stylů ................................................................................................................................... 68 2 Zpracování stylů ................................................................................................................................... 68 3 Přepínání stylů ................................................................................................................................... 69
Kapitola : IX Layouty
71
1 Parametry layoutů ................................................................................................................................... 71 2 Zpracování layoutů ................................................................................................................................... 72 3 Vložení vnitřního ................................................................................................................................... layoutu (Include Layout) 72
Kapitola : X Dynamický obsah
75
1 Vložení layoutu ................................................................................................................................... 75 © 2008 E-VISION International, s.r.o.
3
4
Visual PHP Developer Guide 2 Obsah tabulky ................................................................................................................................... databáze (Table Content) 75 3 Procházení stránek ................................................................................................................................... (Browse Pages) 79 4 Informace o ................................................................................................................................... čísle stránky (Page of Pages) 80 5 Výběr počtu................................................................................................................................... položek na stránce (Items per Page) 80 6 Filtrace záznamů ................................................................................................................................... 81 7 Navigace
................................................................................................................................... 82
8 Menu
................................................................................................................................... 83
Kapitola : XI Šablony
90
1 Parametry šabon ................................................................................................................................... 92 2 Zpracování šablon ................................................................................................................................... 92 3 Podmínky v ................................................................................................................................... šablonách 93
Kapitola : XII Tabulky
96
1 Přehled tabulek ................................................................................................................................... 96 2 Parametry tabulek ................................................................................................................................... 96 3 Master-Detail ................................................................................................................................... Tabulky 101 4 Multi-Detail................................................................................................................................... tabulky 101 5 Tree tabulky ................................................................................................................................... 103 6 Property tabulky ................................................................................................................................... 103
Kapitola : XIII Pole tabulek
106
1 Přehled polí ................................................................................................................................... tabulky 106 2 Parametry polí ................................................................................................................................... tabulek 106 3 Virtuální pole ................................................................................................................................... 109
Kapitola : XIV Komponenty
111
1 COMPONENT ................................................................................................................................... 111 2 HIDDEN
................................................................................................................................... 111
3 READONLY................................................................................................................................... 112 4 UUID
................................................................................................................................... 112
5 AUTOINCREMENT ................................................................................................................................... 112 6 TEXT
................................................................................................................................... 113
7 TEXTAREA................................................................................................................................... 114 8 CHECKBOX ................................................................................................................................... 115 9 CHECKGROUP ................................................................................................................................... 115 10 COMBOBOX ................................................................................................................................... 117 11 DATETIME................................................................................................................................... 118 12 ADMINUSERGROUPS ................................................................................................................................... 119 13 AUTOCALC................................................................................................................................... 120 14 BROWSERS ................................................................................................................................... 121 © 2008 E-VISION International, s.r.o.
Obsah
5
15 CODE
................................................................................................................................... 122
16 COLOR
................................................................................................................................... 122
17 COMPONENTPROPERTIES ................................................................................................................................... 123 18 DETAILTABLE ................................................................................................................................... 124 19 DISPLAYTYPE ................................................................................................................................... 124 20 EDITGRID ................................................................................................................................... 125 21 EDITLIST ................................................................................................................................... 126 22 FILE
................................................................................................................................... 126
23 GOOGLEMAP ................................................................................................................................... 128 24 HISTORY ................................................................................................................................... 129 25 HTMLAREA................................................................................................................................... 129 26 LANGUAGE................................................................................................................................... 130 27 IMAGE
................................................................................................................................... 131
28 LOOKUP ................................................................................................................................... 133 29 LOOKUPCHECKGROUP ................................................................................................................................... 134 30 LOOKUPTREE ................................................................................................................................... 136 31 PAGECONTROL ................................................................................................................................... 137 32 PERMISSIONS ................................................................................................................................... 137 33 PROGRESS ................................................................................................................................... 137 34 PROPERTIES ................................................................................................................................... 137 35 REMOTECOMPONENT ................................................................................................................................... 137 36 REMOTECOMPONENTGROUP ................................................................................................................................... 138 37 RSSPROPERTIES ................................................................................................................................... 138 38 TABLES
................................................................................................................................... 138
39 TABSHEET................................................................................................................................... 138 40 URL
................................................................................................................................... 139
41 USERGROUPS ................................................................................................................................... 139 42 USERS
................................................................................................................................... 139
Kapitola : XV Menu v administraci
141
1 Parametry položek ................................................................................................................................... menu v administraci 141
Kapitola : XVI Skripty
143
1 Parametry skriptů ................................................................................................................................... 143 2 Spouštění skriptů ................................................................................................................................... 143
Kapitola : XVII Časové skripty
145
1 Parametry časových ................................................................................................................................... skriptů 145 2 Ruční aktivace ................................................................................................................................... časového skriptu 145
Kapitola : XVIII Skripty na pozadí
148
© 2008 E-VISION International, s.r.o.
5
6
Visual PHP Developer Guide
Kapitola : XIX Sdílené objekty
150
1 Ukládání objektů ................................................................................................................................... 150
Kapitola : XX Automatické parametry
152
Kapitola : XXI Frontend dokumenty
154
Kapitola : XXII Databázová připojení
156
Kapitola : XXIII Uživatelé
158
1 Uživatelé (administrace) ................................................................................................................................... 158 2 Uživatelé (www) ................................................................................................................................... 158
Kapitola : XXIV Uživatelské skupiny
160
1 Uživatelské................................................................................................................................... skupiny (administrace) 160 2 Uživatelské................................................................................................................................... skupiny (www) 160
Kapitola : XXV Jazyky
162
1 Automatická ................................................................................................................................... detekce jazyka 162 2 Přepínání jazyků ................................................................................................................................... 162
Kapitola : XXVI Překlady
164
Kapitola : XXVII Správce procesů
166
Kapitola : XXVIII Terminál
168
Kapitola : XXIX SEO
170
1 SEO mapování ................................................................................................................................... 170 2 Zamezení duplicitního ................................................................................................................................... obsahu 171 3 Hromadné ................................................................................................................................... generování SEO mapování 171 4 SEO prohlížeč ................................................................................................................................... 172
Kapitola : XXX Firewall
174
Kapitola : XXXI Obrázky
176
1 Template Image ................................................................................................................................... 176 2 Změna velikosti ................................................................................................................................... 179 3 Vodoznak ................................................................................................................................... 181
Kapitola : XXXII Ladění (debug) 1 Layouty
185
................................................................................................................................... 185
© 2008 E-VISION International, s.r.o.
Obsah
Kapitola : XXXIII Moduly 1 E-shop
7
187
................................................................................................................................... 187
Tabulky .......................................................................................................................................................... 187 Frontend dokumenty .......................................................................................................................................................... 193 Skripty .......................................................................................................................................................... 194 Nastavení .......................................................................................................................................................... 194 Katalog zboží .......................................................................................................................................................... 194 Košík .......................................................................................................................................................... 196 Registrace .......................................................................................................................................................... 201 Přihlášení .......................................................................................................................................................... 201 Odhlášení .......................................................................................................................................................... 202 Výrobci .......................................................................................................................................................... 203 Objednávky .......................................................................................................................................................... 203 Způsoby doručení .......................................................................................................................................................... 203 Způsoby platby .......................................................................................................................................................... 204
2 Fotogalerie................................................................................................................................... 204 Tabulky .......................................................................................................................................................... 204 Šablony .......................................................................................................................................................... 205 Zobrazení .......................................................................................................................................................... 205 Změna velikosti .......................................................................................................................................................... obrázků 206 Hromadný import .......................................................................................................................................................... obrázků 207
3 Související................................................................................................................................... dokumenty 207
Kapitola : XXXIV Tvorba vlastních modulů
210
1 Vlastní tabulky ................................................................................................................................... databáze 210 2 Vlastní pole................................................................................................................................... tabulky 210
Kapitola : XXXV Objekty 1 Mail
213
................................................................................................................................... 213
Kapitola : XXXVI Funkce
217
1 getMicroTime ................................................................................................................................... 217 2 getMemoryUsage ................................................................................................................................... 217 3 isWindows................................................................................................................................... 217 4 isDebugIP ................................................................................................................................... 217 5 str_dump ................................................................................................................................... 217 6 getFunctionCall ................................................................................................................................... 217 7 dumpFunctionCall ................................................................................................................................... 217 8 dump
................................................................................................................................... 218
9 showMessage ................................................................................................................................... 218 10 deleteObject ................................................................................................................................... 218 11 createObject ................................................................................................................................... 218 12 getObject ................................................................................................................................... 218 13 objectExists ................................................................................................................................... 218
© 2008 E-VISION International, s.r.o.
7
8
Visual PHP Developer Guide 14 getmod
................................................................................................................................... 218
15 replaceAccentChars ................................................................................................................................... 219 16 runInBackground ................................................................................................................................... 219 17 encrypt
................................................................................................................................... 219
18 decrypt
................................................................................................................................... 219
19 formatNumber ................................................................................................................................... 219 20 isSqlDateFormat ................................................................................................................................... 219 21 isRFC822DateFormat ................................................................................................................................... 219 22 execCommand ................................................................................................................................... 219 23 _rmdir
................................................................................................................................... 220
24 fileExists ................................................................................................................................... 220 25 createUUID................................................................................................................................... 220 26 url_exists ................................................................................................................................... 220 27 setTimeout................................................................................................................................... 220 28 setMemoryLimit ................................................................................................................................... 220 29 file_append_contents ................................................................................................................................... 220 30 dirCopy
................................................................................................................................... 220
31 getFiles
................................................................................................................................... 221
32 getDirectories ................................................................................................................................... 221 33 isUUID
................................................................................................................................... 221
34 array_to_php ................................................................................................................................... 221 35 php_to_array ................................................................................................................................... 221 36 strposr
................................................................................................................................... 221
37 strposc
................................................................................................................................... 221
Kapitola : XXXVII Návody a často kladené dotazy
223
1 Bannery v závislosti ................................................................................................................................... na hlavním menu 223
Rejstřík
0
© 2008 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.
© 2008 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:
© 2008 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:
© 2008 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ší >.
© 2008 E-VISION International, s.r.o.
14
Visual PHP Developer Guide
Zobrazí se toto dialogové okno:
© 2008 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:
© 2008 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.
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
II
18
2
Visual PHP Developer Guide
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
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. 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.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 Pokračujte tlačítkem Spustit instalaci.
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
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 nedostatky, zobrazí se červeně. Pokud jsou všechny požadavky splňeny, klikněte na tlačítko Pokračovat.
© 2008 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. Pokud máte nainstalované všechny ovladače a certifikáty, přejdete do dalšího kroku instalace.
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
21
Krok 4 - Získávání informací K dispozici jsou tyto možnosti instalace souborů: Instalace pomocí FTP připojení (doporučené pro UNIX server): Pokud jste dostali přístupové údaje na FTP k UNIXovému serveru, vyberte tuto možnost a zadejte přístupové údaje. 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 Windows Server): 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ů. Adresář jádra: Všechny verze jádra Visual PHP™ jsou uložené ve vlastním adresáři. Typický je adresář /visual-phpcore/ .Prezentace je od jádra oddělená z toho důvodu, aby bylo možné provádět aktualizace na vyšší
© 2008 E-VISION International, s.r.o.
22
Visual PHP Developer Guide
verze.
Krok 5 - Verze instalace Zde si vyberete instalační soubor. Tento soubor si 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. 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.
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
23
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.
© 2008 E-VISION International, s.r.o.
24
Visual PHP Developer Guide
Po dokončení stahování klikněte na tlačítko pokračovat a vyberte požadovanou verzi k instalaci.
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
25
Krok 5b - Výběr instalačního souboru
Zaškrtněte volbu Nainstalovat nebo aktualizovat jádro Visual PHP™ a Nainstalovat prázdnou prezentaci. Klikněte na tlačítko Pokračovat.
© 2008 E-VISION International, s.r.o.
26
Visual PHP Developer Guide
Po dokončení klikněte na tlačítko Pokračovat
Krok 7 - Instalace databáze
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
27
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. Typicky ovšem dostanete pouze přístupy k jedné databázi, proto je důležité zadat prefix tabulek jádra, aby nedocházelo ke kolizi jmen. Typicky je prefix podtržítko _. Pro instalaci do jedné databáze zaškrtněte volbu pro databázi prezentace Stejné jako pro jádro. Klikněte na tlačítko Pokračovat. Instalátor se připojí k databázi a nainstaluje do ní potřebné tabulky.
© 2008 E-VISION International, s.r.o.
28
Visual PHP Developer Guide
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™
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
29
Krok 9 - Správa uživatelů Pro správu prezentace je nutný alespoň jeden Developer účet. Vyplňte přihlašovací jméno a heslo. To slouží 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 developery. Všichni ostatní developeř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í.
© 2008 E-VISION International, s.r.o.
30
Visual PHP Developer Guide
Po kliknutí na tlačítko Pokračovat dojte k uložení přístupů zadaných uživatelů.
Krok 10 - Dokončení
© 2008 E-VISION International, s.r.o.
Instalace nového projektu na server
Instalace se zdárně podařila a můžete přejít do administrace prezentace a začít s tvorbou.
© 2008 E-VISION International, s.r.o.
31
Aktualizace jádra Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
III
Aktualizace jádra
3
33
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.
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.
© 2008 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.
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
Krok 4 - Získávání informací Zde vyberte stejný způsob instalace, jaký byl použit pro instalaci prázdné prezentace. Veškeré přístupové údaje jsou načteny z konfigurace aktuálního produktu.
© 2008 E-VISION International, s.r.o.
35
36
Visual PHP Developer Guide
Krok 5 - Verze instalace Zde si vyberete instalační soubor. Tento soubor si 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. 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.
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
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.
© 2008 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.
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
39
Krok 5b - Výběr instalačního souboru
Zaškrtněte pouze volbu Nainstalovat nebo aktualizovat jádro Visual PHP™ . Klikněte na tlačítko Pokračovat.
© 2008 E-VISION International, s.r.o.
40
Visual PHP Developer Guide
Po dokončení klikněte na tlačítko Pokračovat
Krok 7 - Instalace databáze
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
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_prezentace.sql. V případě potíží lze tento SQL soubor použít k obnově původní databáze včetně jádra.
© 2008 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.
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
43
Pokud jsou zobrazeny pouze tabulky s prefixem _, je vše v pořádku a můžete pokračovat tlačítkem Pokračovat.
© 2008 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™
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
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.
© 2008 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.
Krok 10 - Dokončení
© 2008 E-VISION International, s.r.o.
Aktualizace jádra
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
© 2008 E-VISION International, s.r.o.
48
Visual PHP Developer Guide
Po dokončení odstranění můžete instalátor ukončit.
© 2008 E-VISION International, s.r.o.
Přenesení projektu na jiný server Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
IV
50
4
Visual PHP Developer Guide
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ů.
4.1
Vygenerování instalačního souboru Pro vygenerování souboru pro instalaci prezentace přejděte do nabídky Prezentace -> Vygenerovat instalaci projektu.
© 2008 E-VISION International, s.r.o.
Administrace Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
V
52
5
Visual PHP Developer Guide
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:
5.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.
© 2008 E-VISION International, s.r.o.
Administrace
5.2
53
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.
5.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. 2. 3. 4. 5. 6.
Název projektu Informace o přihlášeném uživateli Menu dostupné pro administraci obsahu koncovým zákazníkem Menu dostupné pro implementaci prezentace developerem Informace o přihlášených uživatelích, odhlášení a otevření nového okna (záložky) s administrací Název sekce, kde se nacházíte
© 2008 E-VISION International, s.r.o.
54
Visual PHP Developer Guide
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
© 2008 E-VISION International, s.r.o.
Základy tvorby prezentací Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VI
56
6
Visual PHP Developer Guide
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.
6.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ě:
© 2008 E-VISION International, s.r.o.
Základy tvorby prezentací
57
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.
© 2008 E-VISION International, s.r.o.
58
6.2
Visual PHP Developer Guide
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:
Jak je vidět, na místo komponenty bude vložený dynamický obsah podle její konfigurace. Takto lze © 2008 E-VISION International, s.r.o.
Základy tvorby prezentací
59
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í.
6.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 default. Po vložení této komponenty vypadá část global layoutu takto: © 2008 E-VISION International, s.r.o.
60
Visual PHP Developer Guide
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-4a13b921-c36205c3a3fe 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ě:
© 2008 E-VISION International, s.r.o.
Základy tvorby prezentací
61
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ě:
© 2008 E-VISION International, s.r.o.
62
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Nastavení prezentace Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VII
64
7
Visual PHP Developer Guide
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 emailového programu.
SMTP (přihlašovací jméno) Přihlašovací jméno, které používáte k odesílání e-mailů.
SMTP (heslo) Heslo, které používáte k odesílání e-mailů.
© 2008 E-VISION International, s.r.o.
Nastavení prezentace
65
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í.
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.
© 2008 E-VISION International, s.r.o.
66
Visual PHP Developer Guide
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
© 2008 E-VISION International, s.r.o.
Styly Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
VIII
68
8
Visual PHP Developer Guide
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ě.
8.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.
8.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í. © 2008 E-VISION International, s.r.o.
Styly
8.3
69
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.
© 2008 E-VISION International, s.r.o.
Layouty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
IX
Layouty
9
71
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.
9.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.
© 2008 E-VISION International, s.r.o.
72
9.2
Visual PHP Developer Guide
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.
9.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 .
© 2008 E-VISION International, s.r.o.
Layouty
73
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ů.
© 2008 E-VISION International, s.r.o.
Dynamický obsah Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
X
Dynamický obsah
10
Dynamický obsah
10.1
Vložení layoutu Komponenta
75
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í
10.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. © 2008 E-VISION International, s.r.o.
76
Visual PHP Developer Guide
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ů)
Filter SQL fitrace záznamů
© 2008 E-VISION International, s.r.o.
Dynamický obsah
77
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
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
© 2008 E-VISION International, s.r.o.
78
Visual PHP Developer Guide
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ě:
© 2008 E-VISION International, s.r.o.
Dynamický obsah
79
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...)
10.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
© 2008 E-VISION International, s.r.o.
80
Visual PHP Developer Guide
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
10.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
10.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
Items per Page.
© 2008 E-VISION International, s.r.o.
Dynamický obsah
81
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
10.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.
© 2008 E-VISION International, s.r.o.
82
Visual PHP Developer Guide
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)
10.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
Navigation.
K dispozici jsou tyto nastavení:
Table Name Název tabulky. Abyste dosáhli správného přiřazení, použijte {php: $tableName}.
© 2008 E-VISION International, s.r.o.
Dynamický obsah
83
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
10.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í 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
© 2008 E-VISION International, s.r.o.
84
Visual PHP Developer Guide
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ů
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 © 2008 E-VISION International, s.r.o.
Dynamický obsah
85
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
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 © 2008 E-VISION International, s.r.o.
86
Visual PHP Developer Guide
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
Separator Image Height Definuje výšku oddělovače
Nastavení pro podmenu Width Šířka podmenu
Height Výška podmenu
© 2008 E-VISION International, s.r.o.
Dynamický obsah
87
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 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 © 2008 E-VISION International, s.r.o.
88
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Šablony Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XI
90
11
Visual PHP Developer Guide
Š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
© 2008 E-VISION International, s.r.o.
Šablony
Výsledek zpracování šablony pro přehled
Šablona pro plné zobrazení
Výsledek zpracování šablony pro plné zobrazení
© 2008 E-VISION International, s.r.o.
91
92
Visual PHP Developer Guide
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.
11.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.
11.2
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 © 2008 E-VISION International, s.r.o.
Šablony
93
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í.
11.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 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 © 2008 E-VISION International, s.r.o.
94
Visual PHP Developer Guide
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]")
© 2008 E-VISION International, s.r.o.
Tabulky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XII
96
12
Visual PHP Developer Guide
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.
12.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 .
12.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 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
© 2008 E-VISION International, s.r.o.
Tabulky
97
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 Items: Title - název pole pro titulek Description - název pole pro popis Date - název pole pro datum
© 2008 E-VISION International, s.r.o.
98
Visual PHP Developer Guide
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
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 © 2008 E-VISION International, s.r.o.
Tabulky
99
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
Popis Popis tabulky
SEO SEO mapování odkazů Nastavení, zda bude pro tuto tabulku generováno mapování odkazů pro SEO
© 2008 E-VISION International, s.r.o.
100
Visual PHP Developer Guide
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í)
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
© 2008 E-VISION International, s.r.o.
Tabulky
12.3
101
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 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ů.
12.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ášť.
© 2008 E-VISION International, s.r.o.
102
Visual PHP Developer Guide
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 (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ů.
© 2008 E-VISION International, s.r.o.
Tabulky
12.5
103
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 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.
12.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.
© 2008 E-VISION International, s.r.o.
104
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Pole tabulek Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIII
106
13
Visual PHP Developer Guide
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.
13.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.
13.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.
© 2008 E-VISION International, s.r.o.
Pole tabulek
107
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)
Fulltextová indexace Přidá do tabulky databáze fulltextovou indexaci tohoto pole (CREATE FULLTEXT INDEX)
© 2008 E-VISION International, s.r.o.
108
Visual PHP Developer Guide
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í.
onGetAjaxValue Této události lze využít při volání JavaScriptových funkcí.
onGetFooterValue TODO
© 2008 E-VISION International, s.r.o.
Pole tabulek
13.3
109
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.
© 2008 E-VISION International, s.r.o.
Komponenty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIV
Komponenty
14
111
Komponenty Každé pole má svou komponentu. Tato komponenta se stará o administraci, filtraci a zobrazování hodnot v prezentaci.
14.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
14.2
HIDDEN Tato komponenta uchovává obsah pole ale nezobrazuje se v administraci
Doporučený datový typ libovolný
Parametry bez parametrů
© 2008 E-VISION International, s.r.o.
112
14.3
Visual PHP Developer Guide
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ů
14.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
Parametry bez parametrů
14.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
© 2008 E-VISION International, s.r.o.
Komponenty
113
Parametry bez parametrů
14.6
TEXT 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 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
© 2008 E-VISION International, s.r.o.
114
14.7
Visual PHP Developer Guide
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ů
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 © 2008 E-VISION International, s.r.o.
Komponenty
115
Určuje velikost textového pole pomocí atributu rows Width 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
14.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 Texts Textové popisky pro hodnoty v pořadí zaškrtnuto|nezaškrtnuto onChange Specifikuje JavaScriptový kód volaný při změně hodnoty
14.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ů
© 2008 E-VISION International, s.r.o.
116
Visual PHP Developer Guide
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 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
© 2008 E-VISION International, s.r.o.
Komponenty
14.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 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
© 2008 E-VISION International, s.r.o.
117
118
Visual PHP Developer Guide
Specifikuje JavaScriptový kód volaný při změně hodnoty
14.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 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
© 2008 E-VISION International, s.r.o.
Komponenty
119
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(arary $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().
14.12 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 © 2008 E-VISION International, s.r.o.
120
Visual PHP Developer Guide
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
14.13 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 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 © 2008 E-VISION International, s.r.o.
Komponenty
Určuje šířku textového pole pomocí CSS onChange Specifikuje JavaScriptový kód volaný při změně hodnoty textového pole
14.14 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 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
© 2008 E-VISION International, s.r.o.
121
122
Visual PHP Developer Guide
array getDisplayValueAsArray(array $recordValues) vrátí popisky hodnot v poli
14.15 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 Určuje výšku celé oblasti pomocí CSS Fields Specifikuje pole, které budou přidány do této komponenty formou záložek
14.16 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
© 2008 E-VISION International, s.r.o.
Komponenty
Doporučený datový typ CHAR(7)
Hodnota uložená v databázi value
14.17 COMPONENTPROPERTIES Rezervovaná komponenta umožňující úpravu parametrů komponent pomocí Property Editor.
© 2008 E-VISION International, s.r.o.
123
124
Visual PHP Developer Guide
14.18 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 Určuje výšku celé oblasti pomocí CSS
14.19 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 © 2008 E-VISION International, s.r.o.
Komponenty
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 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
14.20 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.
© 2008 E-VISION International, s.r.o.
125
126
Visual PHP Developer Guide
14.21 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|...
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
14.22 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ů.
© 2008 E-VISION International, s.r.o.
Komponenty
127
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 Field Name Název pole, podle kterého se bude soubor jmenovat 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.
© 2008 E-VISION International, s.r.o.
128
Visual PHP Developer Guide
14.23 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
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 © 2008 E-VISION International, s.r.o.
Komponenty
129
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
14.24 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
14.25 HTMLAREA Masivní komponenta umožňující vizuální editaci HTML kódu přívětivá pro koncového zákazníka.
© 2008 E-VISION International, s.r.o.
130
Visual PHP Developer Guide
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
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
14.26 LANGUAGE Tato komponenta umožní výběr z jazyků, dostupných v prezentaci
© 2008 E-VISION International, s.r.o.
Komponenty
131
Doporučený datový typ VARCHAR(255)
Hodnota uložená v databázi value
14.27 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 a další 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 Field Name Název pole, podle kterého se bude soubor jmenovat Digit Count Počet číslic, pokud je pole typ číslo Resize Width Šířka, na kterou bude obrázek zmenšený, pokud přesáhne tuto velikost Resize Height © 2008 E-VISION International, s.r.o.
132
Visual PHP Developer Guide
Výška, na kterou bude obrázek zmenšený, pokud přesáhne tuto velikost 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 Specifikuje průhlednost vodoznaku 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 Default Image Výchozí obrázek, pokud není obrázek k dispozici White Balance Aktivuje vyvážení bílé 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 TODO Extern Repository URL TODO Více informací, jak probíhá změna velikosti obrázků se dozvíte v sekci Obrázky.
© 2008 E-VISION International, s.r.o.
Komponenty
133
14.28 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
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 © 2008 E-VISION International, s.r.o.
134
Visual PHP Developer Guide
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 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
14.29 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
© 2008 E-VISION International, s.r.o.
Komponenty
135
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 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
© 2008 E-VISION International, s.r.o.
136
Visual PHP Developer Guide
14.30 LOOKUPTREE Tato komponenta umožňuje výběr hodnot formou stromové struktury. Jednotlivé hodnoty a popisky jsou načítány z tabulky.
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ň
© 2008 E-VISION International, s.r.o.
Komponenty
Translate Specifikuje, zda budou texty automaticky přeloženy do aktuálního jazyka Width Určuje šířku celé oblasti pomocí CSS Height Určuje výšku celé oblasti pomocí CSS
14.31 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
14.32 PERMISSIONS Tato komponenta je rezervována.
14.33 PROGRESS Tato komponenta zobrazuje procenta formou grafického ukazatele.
Doporučený datový typ SMALLINT
Hodnota uložená v databázi value
14.34 PROPERTIES Rezervovaná komponenta umožňující úpravu parametrů pomocí Property Editor.
14.35 REMOTECOMPONENT Jde o univerzální komponentu, která zobrazuje ostatní komponenty v reálném čase pomocí technologie AJAX.
Doporučený datový typ virtuální
© 2008 E-VISION International, s.r.o.
137
138
Visual PHP Developer Guide
14.36 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í
14.37 RSSPROPERTIES Rezervovaná komponenta sloužící k úpravě parametrů pro RSS export.
14.38 TABLES Tato komponenta umožní výběr z tabulek formou rozbalovací nabídky.
14.39 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
© 2008 E-VISION International, s.r.o.
Komponenty
139
14.40 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
14.41 USERGROUPS Tato komponenta umožňuje výběr z uživatelských skupiny prezentace.
14.42 USERS Tato komponenta umožňuje výběr z uživatelů administrace
© 2008 E-VISION International, s.r.o.
Menu v administraci Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XV
Menu v administraci
15
141
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
15.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)
© 2008 E-VISION International, s.r.o.
Skripty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVI
Skripty
16
143
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
16.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
16.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
© 2008 E-VISION International, s.r.o.
Časové skripty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVII
Časové skripty
17
145
Č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
17.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
17.2
Ruční aktivace časového skriptu Časové skripty lze ručně aktivovat pro potřeby testování. Stačí zadat URL:
© 2008 E-VISION International, s.r.o.
146
Visual PHP Developer Guide
cron.php?tid=TEXTOVY_IDENTIFIKATOR
© 2008 E-VISION International, s.r.o.
Skripty na pozadí Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XVIII
148
18
Visual PHP Developer Guide
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í.
© 2008 E-VISION International, s.r.o.
Sdílené objekty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XIX
150
19
Visual PHP Developer Guide
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
19.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);
© 2008 E-VISION International, s.r.o.
Automatické parametry Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XX
152
20
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Frontend dokumenty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXI
154
21
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Databázová připojení Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXII
156
22
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Uživatelé Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIII
158
23
Visual PHP Developer Guide
Uživatelé Uživatelé jsou ve Visual PHP™ rozděleni na Uživatele pro administraci a Uživatele pro prezentaci.
23.1
Uživatelé (administrace) Uživatele můžete do administrace přidat z nabídky Nástroje -> Uživatelé -> Uživatelé (administrace) Uživatelé v administraci mají následující parametry
23.2
Uživatelé (www) Enter topic text here.
© 2008 E-VISION International, s.r.o.
Uživatelské skupiny Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIV
160
24
Visual PHP Developer Guide
Uživatelské skupiny Každý uživatel musí být součástí nějaké uživatelské skupiny. Uživatelské skupiny jsou rozděleny na uživatelské skupiny pro administraci a uživatelské skupiny pro prezentaci.
24.1
Uživatelské skupiny (administrace) Enter topic text here.
24.2
Uživatelské skupiny (www) Enter topic text here.
© 2008 E-VISION International, s.r.o.
Jazyky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXV
162
25
Visual PHP Developer Guide
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
25.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.
25.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
© 2008 E-VISION International, s.r.o.
Překlady Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVI
164
26
Visual PHP Developer Guide
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");
© 2008 E-VISION International, s.r.o.
Správce procesů Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVII
166
27
Visual PHP Developer Guide
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ě.
© 2008 E-VISION International, s.r.o.
Terminál Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXVIII
168
28
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
SEO Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXIX
170
29
Visual PHP Developer Guide
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ů.
29.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
budou převedeny na SEO odkaz
© 2008 E-VISION International, s.r.o.
SEO
171
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: SEO Odkaz language=cs cs mid=5b37e792-0f58-102b-83ea-533b3040b1b6 /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.
29.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).
29.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
© 2008 E-VISION International, s.r.o.
172
Visual PHP Developer Guide
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.
29.4
SEO prohlížeč Pro správnou SEO analýzu je potřeva 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.
© 2008 E-VISION International, s.r.o.
Firewall Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXX
174
30
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Obrázky Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXI
176
Visual PHP Developer Guide
31
Obrázky
31.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. 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.
© 2008 E-VISION International, s.r.o.
Obrázky
177
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. 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. © 2008 E-VISION International, s.r.o.
178
Visual PHP Developer Guide
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ží 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.
© 2008 E-VISION International, s.r.o.
Obrázky
179
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.
31.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.
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.
© 2008 E-VISION International, s.r.o.
180
Visual PHP Developer Guide
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. Obrázek bude deformován, protože není zachován poměr stran.
© 2008 E-VISION International, s.r.o.
Obrázky
181
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.
31.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 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.
© 2008 E-VISION International, s.r.o.
182
Visual PHP Developer Guide
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.
Vodoznak na konkrétní pozici Pokud potřebujete umístit vodoznak do rohu obrázku, lze nastavit pozici vodoznaku pomocí parametru Watermark Position.
© 2008 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.
© 2008 E-VISION International, s.r.o.
183
Ladění (debug) Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXII
Ladění (debug)
32
185
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.
32.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.
© 2008 E-VISION International, s.r.o.
Moduly Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXIII
Moduly
33
187
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.
33.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.
33.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
© 2008 E-VISION International, s.r.o.
188
Visual PHP Developer Guide
groups
LOOKUPCHECKGROUP Skupiny zboží
tabSheetAdditional additional
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
© 2008 E-VISION International, s.r.o.
Moduly
189
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,lookupFilter=( 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)
© 2008 E-VISION International, s.r.o.
190
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 © 2008 E-VISION International, s.r.o.
Moduly
191
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.
{#if $authSuccess['ugCustomers']} Přihlášen: {php: getObject('User')->name} změnit údaje | objednávky | o {#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 zobrazí místo formuláře po přihlášení 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)
© 2008 E-VISION International, s.r.o.
192
Visual PHP Developer Guide
fStreet
TEXT
Ulice (fakturační adresa)
fCity
TEXT
Město (fakturační adresa)
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
© 2008 E-VISION International, s.r.o.
Moduly
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
193
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
default
CHECKBOX
Celková cena za objednávky Výchozí sleva
33.1.2 Frontend dokumenty Formuláře a další dokumenty pro e-shop jsou uloženy ve frontend dokumentech.
© 2008 E-VISION International, s.r.o.
194
Visual PHP Developer Guide
Registrace Text po registraci Přihlášení Nákupní košík Objednávka Kontrola objednávky Dokončení objednávky E-mail
m_shop_signup m_shop_signup_success m_shop_login m_shop_items_step1 m_shop_items_step2 m_shop_items_step3 m_shop_items_step4 m_shop_items_mail
33.1.3 Skripty Skripty pro obsluhu e-shopu jsou uloženy ve Skriptech Registrace Objednávka
m_shop_signup m_shop_purchase
33.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ě
33.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.
© 2008 E-VISION International, s.r.o.
Moduly
195
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, je 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, je 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.
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 © 2008 E-VISION International, s.r.o.
196
Visual PHP Developer Guide
š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.
33.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.
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.
© 2008 E-VISION International, s.r.o.
Moduly
197
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.
© 2008 E-VISION International, s.r.o.
198
Visual PHP Developer Guide
© 2008 E-VISION International, s.r.o.
Moduly
199
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.
© 2008 E-VISION International, s.r.o.
200
Visual PHP Developer Guide
© 2008 E-VISION International, s.r.o.
Moduly
201
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.
33.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.
33.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ě:
Nyní je potřeba vytvořit 2 samostatné layouty s tímto názvem rozlišených podmínkou: © 2008 E-VISION International, s.r.o.
202
Visual PHP Developer Guide
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í:
33.1.9 Odhlášení Odhlášení uživatele provedete vytvořením odkazu a předáním parametru authLogout=true.
© 2008 E-VISION International, s.r.o.
Moduly
203
index.php?authLogout=true
33.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()]
33.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.
33.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
© 2008 E-VISION International, s.r.o.
204
Visual PHP Developer Guide
Jednotlivé záznamy je nutné kombinovat pro dosažení různých cenových rozpětí.
33.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í.
33.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.
33.2.1 Tabulky Fotogalerie (photogalleries) Fotogalerie představují seznam všech fotogalerií. Tabulka obsahuje tyto pole: 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ží
© 2008 E-VISION International, s.r.o.
Moduly
author
USERS
Autor záznamu
image
IMAGE
Obrázek reprezentující fotogalerii
205
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
33.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.
33.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). © 2008 E-VISION International, s.r.o.
206
Visual PHP Developer Guide
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)
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
33.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. © 2008 E-VISION International, s.r.o.
Moduly
207
33.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
33.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
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
© 2008 E-VISION International, s.r.o.
208
Visual PHP Developer Guide
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.
© 2008 E-VISION International, s.r.o.
Tvorba vlastních modulů Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXIV
210
34
Visual PHP Developer Guide
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.
34.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.
34.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. Každé pole v databázi musí mít svůj datový typ. Vybrete z nabídky možných datových typů pomocí
© 2008 E-VISION International, s.r.o.
Tvorba vlastních modulů
211
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.
© 2008 E-VISION International, s.r.o.
Objekty Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXV
Objekty
35
213
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, ...)
35.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 setSubject(string $subject) 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. 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. © 2008 E-VISION International, s.r.o.
214
Visual PHP Developer Guide
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 function clearCustomHeaders() Vyčistí vlastní záhlaví zprávy.
© 2008 E-VISION International, s.r.o.
Objekty
215
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();
© 2008 E-VISION International, s.r.o.
Funkce Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXVI
Funkce
36
217
Funkce Visual PHP™ obsahuje řadu pomocných funkcí, které můžete sami využít při vlastním programování.
36.1
getMicroTime Vrací čas v mikrosekundách. float getMicroTime()
36.2
getMemoryUsage Vrací množství použíté paměti RAM. int getMemoryUsage()
36.3
isWindows Vrací, zda běží Visual PHP™ pod operačním systémem Windows. bool isWindows()
36.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()
36.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)
36.6
getFunctionCall Vrátí řetězec obsahující historii volání funkcí v místě této volané funkce. string getFunctionCall()
36.7
dumpFunctionCall Provede dump výpis obsahující historii volání funkcí v místě této volané funkce. void dumpFunctionCall()
© 2008 E-VISION International, s.r.o.
218
36.8
Visual PHP Developer Guide
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)
36.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=false)
možné typy: mtNormal mtWarning mtError mtDebug
36.10 deleteObject Odstraní objekt a postará se o pročištění paměti void deleteObject(mixed &$object)
36.11 createObject Funkce vytvoří novou instanci objektu zadaného jako parametr. mixed createObject(string $objectName)
36.12 getObject Vrátí instanci objektu zadaného jako parametr. Pokud neexistuje, bude vytvořen. mixed getObject(string $objectName)
36.13 objectExists Vrátí, zda existuje instance objektu názvem zadaným v parametru bool objectExists(string $objectName)
36.14 getmod Vrátí nastavení uživatelských práv souboru nebo adresáře. Jde o opak funkce chmod(). int getmod(string $filename)
© 2008 E-VISION International, s.r.o.
Funkce
219
36.15 replaceAccentChars Nahradí znaky s diakritikou za znaky bez diakritiky. string replaceAccentChars(string $str, string $language="")
36.16 runInBackground Spustí zadanou URL na pozadí void runInBackground(string $url, int $timeout=1)
36.17 encrypt Zakóduje vstupní řetězec pomocí zadaného klíče string encrypt(string $text, string $key="")
36.18 decrypt Odkóduje vstupní řetězec pomocí zadaného klíče string decrypt(string $text, string $key="")
36.19 formatNumber Vrátí číslo podle zadaného formátování
string formatNumber(float $number, string $thousandSeparator=" ", string $floatSeparator=".", string $nul
36.20 isSqlDateFormat Vrátí, zda je řetězec ve formátu SQL datumu bool isSqlDateFormat(string $value)
36.21 isRFC822DateFormat Vrátí, zda je řetězec ve formátu datumu podle normy RFC822 bool isRFC822DateFormat(string $value)
36.22 execCommand Spustí příkaz přímo na serveru, pokud není zakázaná funkce proc_open(). Vrací výstup příkazu. string execCommand(string $cmd)
© 2008 E-VISION International, s.r.o.
220
Visual PHP Developer Guide
36.23 _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)
36.24 fileExists Vrátí, zda existuje soubor. Parametrem může být i URL. bool fileExists(string $fileName)
36.25 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()
36.26 url_exists Vrátí, zda existuje URL. bool url_exists(string $url)
36.27 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)
36.28 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)
36.29 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)
36.30 dirCopy Enter topic text here.
© 2008 E-VISION International, s.r.o.
Funkce
221
36.31 getFiles Enter topic text here.
36.32 getDirectories Enter topic text here.
36.33 isUUID Vrátí, zda je řetězec UUID bool isUUID(string $str)
36.34 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=",")
36.35 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)
36.36 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)
36.37 strposc Vrátí počet výskytů řetězce needle v řetězci haystack int strposc(string $haystack, string $needle)
© 2008 E-VISION International, s.r.o.
Návody a často kladené dotazy Visual PHP ™ Užívejte si volnosti administrace Vaší internetové prezentace
Kapitola
XXXVII
Návody a často kladené dotazy
37
223
Návody a často kladené dotazy Enter topic text here.
37.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 (mid patří mezi rezervovaná pole, která mají speciální funkčnost 2. Zadejte název pole = mid 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 4. Vyberte SQL typ = VARCHAR (budeme ukládat soubor, kdy bude do databáze uložena přípona souboru)
© 2008 E-VISION International, s.r.o.
224
Visual PHP Developer Guide
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. 2. 3. 4. 5. 6.
Přejděte do nabídky Prezentace -> Admin Menu Klikněte na tlačítko Nový záznam Zadejte název = banners (vyplňujeme název tabulky) Textový popis není nutné zadávat, protože bude použit popis z názvu tabulky Vyberte nadřazenou položku menu, nebo nechejte prázné pro zobrazení v hlavní nabídce. 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) Items Per Page =1 Random Order = true (budeme chtít zobrazovat v náhodném pořadí) 5. Uložte layout
© 2008 E-VISION International, s.r.o.
Návody a často kladené dotazy
225
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.
© 2008 E-VISION International, s.r.o.
226
Visual PHP Developer Guide
Endnotes 2... (after index)
© 2008 E-VISION International, s.r.o.
Back Cover