<meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
<h2>PPWizard - tvo°φme a spravujeme WWW strßnky</h2>
<p id='prepend'>PPWizard je preprocesor, kter² vßm usnadnφ tvorbu a hlavn∞ sprßvu WWW strßnek. Umo₧≥uje centralizaci sdφlen²ch Φßstφ, jako jsou loga, navigaΦnφ menu nebo emailovΘ adresy a hotovΘ WWW strßnky ·Φinn∞ komprimuje vypuÜt∞nφm p°ebyteΦn²ch mezer. Zpracovßvat s nφm lze nejen HTML dokumenty, ale i XML soubory, soubory s kaskßdov²mi styly, programovΘ k≤dy a jinΘ ASCII textovΘ soubory.</p>
<p>Internet je pln² Φlßnk∙ o HTML, CSS, textov²ch a grafick²ch editorech, ale Φlßnky o kompletovßnφ web∙, a₧ na ΦestnΘ v²jimky, zcela chybφ. Pravda, jazyku PHP je v∞novßno nepoΦφtanΘ mno₧stvφ serißl∙, ovÜem po jejich p°eΦtenφ zφskßvß Φtenß° pocit, ₧e se neobejde bez slo₧itΘho databßzovΘho programovßnφ, jeho₧ nezvlßdnutφ m∙₧e mφt katastrofick² vliv na stabilitu webovΘho serveru. Navφc je pro jednoduchΘ WWW strßnky preprocesor efektivn∞jÜφ i praktiΦt∞jÜφ. Produkuje statickΘ HTML strßnky, kterΘ tak nejsou zßvislΘ na webovΘm serveru a prohlφ₧et je lze i z pevnΘho nebo kompaktnφho disku.</p>
<p>PPWizard jsem nezvolil nßhodou. Jednak nenφ moc z Φeho vybφrat, ale hlavn∞ je PPWizard skuteΦnou jedniΦkou, kterß plnφ sv∙j ·kol s nefalÜovanou graciΘznostφ. Disponuje bohatou Ükßlou funkcφ a dφky tomu s nφm lze jednu v∞c tvo°it vφce zp∙soby. V²bornΘ takΘ je, ₧e pracuje na p°φkazovΘ °ßdce. M∙₧e tak b²t souΦßstφ dßvkov²ch soubor∙, kterΘ automatizujφ nejen tvorbu a generovßnφ WWW strßnek, ale i jejich upload na server.</p>
<p>Pot∞Üujφcφ je skuteΦnost, ₧e je PPWizard freeware. Australan <cite>Dennis Bareis</cite> jej p∙vodn∞ vytvo°il pro usnadn∞nφ svΘ vlastnφ prßce, ale pozd∞ji jej dal k dispozici i dalÜφm u₧ivatel∙m, za co₧ si zaslou₧φ nßÜ dφk.</p>
<h3>Po₧adavky a instalace</h3>
<p>PPWizard je naprogramovßn v jazyce <strong>REXX</strong> a je dodßvßn p°φmo ve zdrojovΘm k≤du. Nenφ nutnΘ jej kompilovat a provozovat jej m∙₧ete na ÜirokΘm spektru operaΦnφch systΘm∙, Windows ani Linux nevyjφmaje. StaΦφ si stßhnout p°φsluÜnou verzi interpretu jazyka REXX. Jß budu pro jednoduchost vysv∞tlovat instalaci i prßci na systΘmu Windows, p°iΦem₧ na dalÜφch operaΦnφch systΘmech lze p°edpoklßdat ekvivalenci.</p>
<p>V zßsad∞ existujφ t°i varianty postupu, jak instalovat PPWizard:</p>
<div class='list'>
<ul>
<li>Ze strßnek <a href='http://www.labyrinth.net.au/~dbareis/ppwizard.htm'>PPWizardu</a> si stßhn∞te kompletnφ spustiteln² instalaΦnφ balφk pro Windows, kter² krom PPWizardu obsahuje i GNU interpret <strong>Regina</strong> jazyka REXX. Samotnou instalacφ se navφc integruje do kontextovΘho menu Windows Exploreru, vyvolßvanΘho prav²m tlaΦφtkem myÜi na typick²ch p°φponßch PPWizardu. </li>
<li>Ze strßnek <a href='http://www.labyrinth.net.au/~dbareis/ppwizard.htm'>PPWizardu</a> si stßhnete pouze samotn² PPWizard. Jde o mal² ZIP archiv o velikosti kolem 100 kB, kter² rozbalφte do libovolnΘho adresß°e. Pak si stßhnete <a href='http://www.lightlink.com/hessling/'>interpret Regina</a> jazyka REXX ve verzi podporovanΘ PPWizardem a nainstalujete jej. Nakonec si vytvo°φte dßvkov² soubor, kter² vßm umo₧nφ p°edat parametry projektu p°es p°φkazovou °ßdku PPWizardu a ten pak postoupit interpretu. Podrobnosti o dßvkov²ch operacφch jsou vÜak ji₧ nad rßmec tohoto Φlßnku.</li>
<li>T°etφ mo₧nost pro vßs bude nejjednoduÜÜφ a proto vßm ji doporuΦuji. Stßhn∞te si p°edp°ipraven² <a href='podklady/bien/920/ppw-project.zip'>archiv</a>, kter² obsahuje v jednom balφku zdrojov² soubor PPWizardu, interpret Regina jazyka REXX a zdrojovΘ soubory malΘho ukßzkovΘho webu, ke kterΘmu se budu odvolßvat. PPWizard ani interpret Regina v tomto balφku nenφ t°eba instalovat. StaΦφ, kdy₧ jej rozbalφte do libovolnΘho prßzdnΘho adresß°e. Tφm instalace konΦφ. Jen dßvejte pozor, aby adresß°, Φi n∞kter² z nad°azen²ch adresß°∙, nem∞l v nßzvu mezeru Φi znak s diakritikou, proto₧e PPWizard mß p°i zpracovßnφ cest s t∞mito znaky problΘmy.</li>
</ul>
</div>
<h3>StruΦn² popis projektu</h3>
<p>Myslφm, ₧e nejlΘpe se bude vysv∞tlovat PPWizard na praktickΘm p°φkladu. Proto se m∙₧ete rovnou pustit do prozkoumßvßnφ projektu. Cel² je ulo₧en v adresß°i "PPW". Souborem <em>generuj.bat</em> si zkuste webov² projekt vygenerovat.</p>
<p>Co se p°i generovßnφ d∞lo? PPWizard vlo₧il do ka₧dΘho zdrojovΘho souboru s p°φponou "it" obsah souboru <em>macros.ih</em>, samotn² obsah pak zpracoval a v²stup ulo₧il do v²stupnφho adresß°e "WEB" jako soubor s p°φponou HTML. PoslΘze do v²stupnφho adresß°e zkopφroval vÜechny soubory s p°φponou "css" a "jpg". Do adresß°e "TEMP" si ulo₧il informace o Φasech poslednφ editace zdrojov²ch soubor∙, aby p°φÜt∞ generoval pouze zm∞n∞nΘ soubory. Nastavenφ vÜech t∞chto parametr∙ je ulo₧eno v souboru <em>project.ppw</em>.</p>
<p>Soubor∙m, uklßdan²m na v²stup jako HTML, je vhodnΘ dßvat p°φponu "it". Technicky to nutnΘ nenφ, ale jde o dobrΘ doporuΦenφ. Stejn∞ tak soubor∙m, kterΘ chcete do "it" soubor∙ vklßdat (takzvan∞ "includovat"), p°i°azujte p°φponu "ih". V naÜem p°φkladu mßme jedin² takov² soubor <em>macros.ih</em>. Projekt je nastaven tak, aby se p°i zpracovßvßnφ vklßdal automaticky na zaΦßtek ka₧dΘho "it" souboru. V tomto souboru jsou ulo₧enΘ spoleΦnΘ deklarace, jako je hlaviΦka webu, menu, patiΦka, jmΘno a email autora a podobn∞.</p>
<h3>Makra</h3>
<p>V textovΘm editoru (nap°φklad v poznßmkovΘm bloku) si otev°ete soubor <em>macros.ih</em> a svoji pozornost zam∞°te hned na prvnφ °ßdek: <samp>#define myName Jan Bien</samp>. Tφm deklarujete jak²si pam∞¥ov² prostor, kter² se jmenuje <code>myName</code> a obsahuje mΘ jmΘno. Nynφ p°esu≥te svou pozornost na p°edposlednφ °ßdek souboru <em>index.it</em>: <samp><$myName></samp>. Zde dojde, zjednoduÜen∞ °eΦeno, k vypsßnφ obsahu pam∞¥ovΘho prostoru <code>myName</code>.</p>
<p>Mo₧nß vßs udivilo slovnφ spojenφ "pam∞¥ov² prostor" a vidφte v n∞m jen cosi, co programovacφ jazyky oznaΦujφ pojmem "prom∞nnß". Ve skuteΦnosti zde vÜak jde o n∞co vφce. V <em>index.it</em> p°ejd∞te na 12. °ßdek (<samp><$subTitle text="Dolor sit"></samp>) a v <em>macros.ih</em> na <samp>#define subTitle <h2>{$text}</h2></samp>. VÜimn∞te si, ₧e jsme pam∞¥ovΘmu prostoru <code>subTitle</code> p°i vyvolßnφ p°edali navφc parametr "text" s hodnotou "Dolor sit". Pam∞¥ov² prostor dokß₧e tento parametr vyu₧φt odvolßnφm se na jmΘno parametru za znakem dolaru ve slo₧en²ch zßvorkßch (<samp>{$text}</samp>), Φφm₧ se zaΦφnß podobat jazykem programßtor∙ spφÜe jakΘsi procedu°e Φi funkci. V PPWizardu se tento pam∞¥ov² prostor naz²vß <strong>makro</strong> a tak i jß budu na dalÜφch °ßdcφch pou₧φvat prßv∞ tento termφn.</p>
<p>Nynφ vßm je ji₧ jist∞ jasn² i prvnφ a poslednφ °ßdek souboru, <samp><$document title="Lorem ipsum"></samp> a <samp><$/document></samp>. Makro <code>document</code> vlo₧φ celou hlaviΦku webu vΦetn∞ navigace a makro <code>/document</code> patiΦku a °ßdnΘ ukonΦenφ HTML souboru. V souboru <em>macros.ih</em> vßs vÜak Φekß p°ekvapenφ - definice makra je zde o n∞co slo₧it∞jÜφ, dokonce je vφce°ßdkovß:</p>
<div class='sample'>
#( '<?NewLine>'
<br />#define document
<br /> definice makra document
<br /> na vφce °ßdcφch
<br />#)
</div>
<p>ZaΦßtek <samp>#(</samp> je na dalÜφm °ßdku nßsledovßn <samp>#define document</samp>. Ka₧d² dalÜφ °ßdek je ji₧ jednφm °ßdkem makra <code>document</code> a₧ po ukonΦenφ definice na °ßdku <samp>#)</samp>. Tajemnß konstrukce <samp>'<?NewLine>'</samp> urΦuje, jak mß makro zachßzet s konci °ßdk∙. Kdybyste tuto konstrukci u makra neuvedli, vlo₧ilo by se p°i vyvolßnφ celΘ do jednoho °ßdku.</p>
<h3>K Φemu to je?</h3>
<p>Myslφm, ₧e i z takto malΘho p°φkladu je vid∞t, jak efektivnφ PPWizard je. A je nejen efektivnφ, ale i velice mocn². NavÜtivte weby <a href='http://www.mraveniste.org'>MraveniÜt∞</a> Φi <a href='http://www.sovavsiti.cz'>Sova v sφti</a> - v∞°te nebo ne, oba jsou tvo°eny kompletn∞ v PPWizardu!</p>
<h3>Odkazy, zdroje</h3>
<div class='list'>
<ul>
<li><a href='http://www.os2ezine.com/v3n05/htmlpp1.htm'>Building Dynamic Web Sites Part 1</a> - Dennis Bareis (OS/2 e-Zine!, nedatovßno)</li>
<li><a href='http://www.os2ezine.com/v3n06/htmlpp.htm'>Building Dynamic Web Sites Part 2</a> - Dennis Bareis (OS/2 e-Zine!, nedatovßno)</li>
<li><a href='http://www.os2ezine.com/v3n12/dyn3.htm'>Building Dynamic Web Sites Part 3</a> - Dennis Bareis (OS/2 e-Zine!, nedatovßno)</li>
<li><a href='http://www.os2ezine.com/v3n14/dws.htm'>Building Dynamic Web Sites Part 4</a> - Dennis Bareis (OS/2 e-Zine!, nedatovßno)</li>
<li><a href='http://www.os2ezine.com/v4n3/dws.htm'>Building Dynamic Web Sites Part 5 - Widgets & Macros</a> - Dennis Bareis (OS/2 e-Zine!, 16. 2. 1999)</li>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3476'>Kurz SVG - vypl≥ovßnφ I</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3479'>PPWizard - pokroΦilß makra, podmφnky a standardnφ definice</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3478'>Transformace dat z databßze pomocφ XSL v .NET jednoduÜe</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3481'>Strßnkovßnφ v ovlßdacφm prvku DataGrid bez pou₧itφ PostBack</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3477'>Zpracovßnφ databßzov²ch dat p°es XSLT v ASP</a></li>
</ul>
</div>
</div>
<div class='page-right-box cauldron'>
<h3>Diskuznφ kotel</h3>
<div class='page-right-box-in'>
<ul>
<li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3473' title='(25 komentß°∙)'>Sedφm na konßri a Φtu Computerworld</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3468' title='(23 komentß°∙)'>PPWizard - tvo°φme a spravujeme WWW strßnky</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3474' title='(22 komentß°∙)'>PφÜeme pro web - o sφle slov</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3464' title='(15 komentß°∙)'>Kurz SVG - grafickß primitiva</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3472' title='(10 komentß°∙)'>Cryptography v .NET - Symmetric a Asymmetric encryption</a></li>