<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Peter Oravec Blog &#187; ZF &#8220;po lopate&#8221;</title>
	<atom:link href="http://www.peteroravec.sk/clanky/webdizajn-a-programovanie/php-hypertext-preprocessor/zend-framework-php-hypertext-preprocessor-webdizajn-a-programovanie/zf-po-lopate/feed" rel="self" type="application/rss+xml" />
	<link>http://www.peteroravec.sk</link>
	<description>O IT, weboch, webdizajne, SEO a RC modeloch...</description>
	<lastBuildDate>Wed, 25 Jan 2012 19:59:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Zend Framework: validátor voľnej domény</title>
		<link>http://www.peteroravec.sk/zend-framework-validator-volnej-domeny</link>
		<comments>http://www.peteroravec.sk/zend-framework-validator-volnej-domeny#comments</comments>
		<pubDate>Sun, 21 Mar 2010 19:25:13 +0000</pubDate>
		<dc:creator>Peter Oravec</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdizajn a programovanie]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZF "po lopate"]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.peteroravec.sk/?p=2502</guid>
		<description><![CDATA[Toto je krátky návod ako si vytvoriť vlastný validátor v Zend Frameworku pre overenie Vami zadanej domény či je dostupná pre registráciu. Na internete je podobných scriptov dosť ale nie všetky fungujú spoľahlivo. Táto ukážka by mala fungovať a je tu prerobená do validátora v ZF. Celý validátor pre overenie domény v ZF class My_Validate_AvailableDomain extends Zend_Validate_Abstract { const NOT_AVAILABLE = &#039;NotAvailableDomain&#039;; const NOT_VALID = &#039;NotValidDomain&#039;; const NO_TLD = &#039;NoTLD&#039;;...]]></description>
			<content:encoded><![CDATA[<p>Toto je krátky návod ako si vytvoriť vlastný validátor v Zend Frameworku pre overenie Vami zadanej domény či je dostupná pre registráciu. Na internete je podobných scriptov dosť ale nie všetky fungujú spoľahlivo. Táto ukážka by mala fungovať a je tu prerobená do validátora v ZF.</p>
<p><a href="http://www.peteroravec.sk/wp-content/uploads/2010/03/ZendFramework-logo.png"><img class="alignnone size-medium wp-image-2520" style="border: 0;" title="ZendFramework-logo" src="http://www.peteroravec.sk/wp-content/uploads/2010/03/ZendFramework-logo-640x169.png" border="0" alt="" width="640" height="169" /></a><span id="more-2502"></span></p>
<h2>Celý validátor pre overenie domény v ZF</h2>
<p><pre><pre style="height: 150px; overflow: auto; padding: 5px; border: 1px solid white;">class My_Validate_AvailableDomain extends Zend_Validate_Abstract
{
const NOT_AVAILABLE = &#039;NotAvailableDomain&#039;;
const NOT_VALID = &#039;NotValidDomain&#039;;
const NO_TLD = &#039;NoTLD&#039;;

protected $_messageTemplates =

array(
self::NOT_AVAILABLE =&amp;gt; &#039;Táto doména nie je voľná! Skúste vybrať inú...&#039;,
self::NOT_VALID =&amp;gt; &#039;Neplatná doména, nesprávny tvar domény!&#039;,
self::NO_TLD =&amp;gt; &#039;Vyberte TLD domény! (Top Level Domains)&#039;
);

public function isValid($value, $context = null)
{

$value = (string) $value;
$this-&amp;gt;_setValue($value);

if(!eregi(&quot;^[a-z0-9_\-]*$&quot;, $value)) {
$this-&amp;gt;_error(self::NOT_VALID);
return false;
}

if(isset($context[&#039;tld&#039;]) &amp;amp;&amp;amp; $context[&#039;tld&#039;] == &quot;&quot;) {
$this-&amp;gt;_error(self::NO_TLD);
return false;
}

###################

// ked budete pridavat domeny, musite zvysovat cislo v premennej podla poctu tld
$tlds = 32;

$tldt[&#039;co.uk&#039;] = 1;
$tld[1]=&quot;.co.uk&quot;;
$nic[1]=&quot;whois.nic.uk&quot;;
$rep[1]=&quot;No match for&quot;;

$tldt[&#039;org.uk&#039;] = 2;
$tld[2]=&quot;.org.uk&quot;;
$nic[2]=&quot;whois.nic.uk&quot;;
$rep[2]=&quot;No match for&quot;;

$tldt[&#039;net.uk&#039;] = 3;
$tld[3]=&quot;.net.uk&quot;;
$nic[3]=&quot;whois.nic.uk&quot;;
$rep[3]=&quot;No match for&quot;;

$tldt[&#039;me.uk&#039;] = 4;
$tld[4]=&quot;.me.uk&quot;;
$nic[4]=&quot;whois.nic.uk&quot;;
$rep[4]=&quot;No match for&quot;;

$tldt[&#039;com&#039;] = 5;
$tld[5]=&quot;.com&quot;;
$nic[5]=&quot;whois.opensrs.net&quot;;
$rep[5]=&quot;Can&#039;t get information&quot;;

$tldt[&#039;net&#039;] = 6;
$tld[6]=&quot;.net&quot;;
$nic[6]=&quot;whois.opensrs.net&quot;;
$rep[6]=&quot;Can&#039;t get information&quot;;

$tldt[&#039;org&#039;] = 7;
$tld[7]=&quot;.org&quot;;
$nic[7]=&quot;whois.publicinterestregistry.net&quot;;
$rep[7]=&quot;Not found&quot;;

$tldt[&#039;biz&#039;] = 8;
$tld[8]=&quot;.biz&quot;;
$nic[8]=&quot;whois.nic.biz&quot;;
$rep[8]=&quot;not found&quot;;

$tldt[&#039;info&#039;] = 9;
$tld[9]=&quot;.info&quot;;
$nic[9]=&quot;whois.afilias.net&quot;;
$rep[9]=&quot;not found&quot;;

$tldt[&#039;cc&#039;] = 10;
$tld[10]=&quot;.cc&quot;;
$nic[10]=&quot;whois.nic.cc&quot;;
$rep[10]=&quot;no match&quot;;

$tldt[&#039;uk.com&#039;] = 11;
$tld[11]=&quot;.uk.com&quot;;
$nic[11]=&quot;whois.centralnic.com&quot;;
$rep[11]=&quot;no match&quot;;

$tldt[&#039;uk.net&#039;] = 12;
$tld[12]=&quot;.uk.net&quot;;
$nic[12]=&quot;whois.centralnic.com&quot;;
$rep[12]=&quot;no match&quot;;

$tldt[&#039;name&#039;] = 13;
$tld[13]=&quot;.name&quot;;
$nic[13]=&quot;whois.nic.name&quot;;
$rep[13]=&quot;no match&quot;;

$tldt[&#039;sk&#039;] = 14;
$tld[14]=&quot;.sk&quot;;
$nic[14]=&quot;whois.ripe.net&quot;;
$rep[14]=&quot;Not found.&quot;;

$tldt[&#039;cz&#039;] = 15;
$tld[15]=&quot;.cz&quot;;
$nic[15]=&quot;whois.nic.cz&quot;;
$rep[15]=&quot;No entries found.&quot;;

$tldt[&#039;eu&#039;] = 16;
$tld[16]=&quot;.eu&quot;;
$nic[16]=&quot;whois.eu&quot;;
$rep[16]=&quot;Status:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FREE&quot;;

$tldt[&#039;at&#039;] = 17;
$tld[17]=&quot;.at&quot;;
$nic[17]=&quot;whois.nic.at&quot;;
$rep[17]=&quot;nothing found&quot;;

$tldt[&#039;de&#039;] = 18;
$tld[18]=&quot;.de&quot;;
$nic[18]=&quot;whois.denic.de&quot;;
$rep[18]=&quot;free&quot;;

$tldt[&#039;ru&#039;] = 19;
$tld[19]=&quot;.ru&quot;;
$nic[19]=&quot;whois.ripn.ru&quot;;
$rep[19]=&quot;No entries found&quot;;

$tldt[&#039;tv&#039;] = 20;
$tld[20]=&quot;.tv&quot;;
$nic[20]=&quot;whois.nic.tv&quot;;
$rep[20]=&quot;No match for&quot;;

$tldt[&#039;be&#039;] = 21;
$tld[21]=&quot;.be&quot;;
$nic[21]=&quot;whois.geektools.com&quot;;
$rep[21]=&quot;Status:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FREE&quot;;

$tldt[&#039;ch&#039;] = 22;
$tld[22]=&quot;.ch&quot;;
$nic[22]=&quot;whois.nic.ch&quot;;
$rep[22]=&quot;We do not have an entry&quot;;

$tldt[&#039;li&#039;] = 23;
$tld[23]=&quot;.li&quot;;
$nic[23]=&quot;whois.nic.ch&quot;;
$rep[23]=&quot;We do not have an entry&quot;;

$tldt[&#039;lt&#039;] = 24;
$tld[24]=&quot;.lt&quot;;
$nic[24]=&quot;whois.domreg.lt&quot;;
$rep[24]=&quot;Status:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;available&quot;;

$tldt[&#039;lv&#039;] = 25;
$tld[25]=&quot;.lv&quot;;
$nic[25]=&quot;whois.nic.lv&quot;;
$rep[25]=&quot;%ERR - Nothing found&quot;;

$tldt[&#039;se&#039;] = 26;
$tld[26]=&quot;.se&quot;;
$nic[26]=&quot;whois.nic-se.se&quot;;
$rep[26]=&quot;not found.&quot;;

$tldt[&#039;ac&#039;] = 27;
$tld[27]=&quot;.ac&quot;;
$nic[27]=&quot;whois.nic.ac&quot;;
$rep[27]=&quot;- Available&quot;;

$tldt[&#039;ag&#039;] = 28;
$tld[28]=&quot;.ag&quot;;
$nic[28]=&quot;whois.nic.ag&quot;;
$rep[28]=&quot;Not found&quot;;

$tldt[&#039;cc&#039;] = 29;
$tld[29]=&quot;.cc&quot;;
$nic[29]=&quot;whois.nic.cc&quot;;
$rep[29]=&quot;No match&quot;;

$tldt[&#039;cn&#039;] = 30;
$tld[30]=&quot;.cn&quot;;
$nic[30]=&quot;whois.cnnic.net.cn&quot;;
$rep[30]=&quot;no matching record&quot;;

$tldt[&#039;cx&#039;] = 31;
$tld[31]=&quot;.cx&quot;;
$nic[31]=&quot;whois.nic.cx&quot;;
$rep[31]=&quot;Status: Not Registered&quot;;

$tldt[&#039;ws&#039;] = 32;
$tld[32]=&quot;.ws&quot;;
$nic[32]=&quot;whois.worldsite.ws&quot;;
$rep[32]=&quot;No match for&quot;;

###########################

$domainname = $value;
$texttld = $context[&#039;tld&#039;];
$stld = $tldt[$texttld];
$domname= $domainname.&#039;.&#039;.$texttld; //$tldt[$stld];

$wnic=$nic[$stld];
$ns = fsockopen($wnic,43); fputs($ns,&quot;$domname\r\n&quot;);
while(!feof($ns)) $result .= fgets($ns,128); fclose($ns);
if (eregi($rep[$stld],$result)) {
return true;
} else {
$this-&amp;gt;_error(self::NOT_AVAILABLE);
return false;
}
}
}
</pre></pre><br />
Trieda validátora sa volá  <strong>My_Validate_AvailableDomain</strong> pretože je uložená v adresári library/My/Validate/AvailableDomain.php . Vytvoríme si 3 konštanty ktoré budú označovať stavy ktoré môžu nastať a popíšeme k nim chybové hlášky ktoré sa vrátia ak overenie neprebehne v poriadku, ak prebehne script vráti len <strong>true</strong>.<br />
<pre><pre style="height: 150px; overflow: auto; padding: 5px; border: 1px solid white;">const NOT_AVAILABLE = &#039;NotAvailableDomain&#039;;
const NOT_VALID = &#039;NotValidDomain&#039;;
const NO_TLD = &#039;NoTLD&#039;;

protected $_messageTemplates =
array(
&nbsp;&nbsp;self::NOT_AVAILABLE =&amp;gt; &#039;Táto doména nie je voľná! Skúste vybrať inú...&#039;,
&nbsp;&nbsp;self::NOT_VALID =&amp;gt; &#039;Neplatná doména, nesprávny tvar domény!&#039;,
&nbsp;&nbsp;self::NO_TLD =&amp;gt; &#039;Vyberte TLD domény! (Top Level Domains)&#039;
);
</pre></pre><br />
Ďalšie na rade je zoznam registrátorov podľa krajiny.  V tomto scripte si nie som istý či pobeží overenie EU domén a INFO pravdepodobne bude treba len dať inú URL adresu pre WHOIS.</p>
<p>Script obsahuje aj overenie tvaru domény kde ak sa nezhoduje tvar podľa regulárneho výrazu vráti to FALSE. Pokračovať bude len ak je tvar správny.</p>
<h2>Hodnoty z formulára pre overenie</h2>
<p>Validátor je navrhnutý tak, že preberie 2 hodnoty z formulára a to: TLD, a názov domény (pomenujme si ich domain a tld). TLD bude klasický selectbox a názov domény bude klasický input pre text. V tomto scripte sa preberajú v tomto mieste:<br />
<pre><pre style="height: 100px; overflow: auto; padding: 5px; border: 1px solid white;">$domainname = $value;
$texttld = $context[&#039;tld&#039;];
$stld = $tldt[$texttld];
$domname= $domainname.&#039;.&#039;.$texttld;
</pre></pre></p>
<h2>Zobrazenie formulára a overenie domény</h2>
<p>Samotné volanie validátora je jednoduché, prikladám ukážku kde mám vytvorené políčka formuláru domain a tld. Pri TLD vložíme cez addMultiOption do rozbaľovátka hodnoty ktoré chceme overovať. (MOBI a EU možno nepojde, treba upraviť WHOIS)<br />
<pre><pre style="height: 150px; overflow: auto; padding: 5px; border: 1px solid white;">$name = new Zend_Form_Element_Text(&#039;domain&#039;);
$name -&amp;gt;setLabel(&#039;Názov domény&#039;)
-&amp;gt;setRequired(true)
-&amp;gt;addFilter(&#039;StripTags&#039;)
-&amp;gt;addFilter(&#039;StringTrim&#039;)
-&amp;gt;addFilter(&#039;StringToLower&#039;)
-&amp;gt;addValidator(&#039;NotEmpty&#039;)
-&amp;gt;addValidator(&#039;AvailableDomain&#039;)
-&amp;gt;addValidator(&#039;stringLength&#039;, false, array(1, 100));
$name-&amp;gt;addPrefixPath(&#039;My_Validate&#039;, &#039;My/Validate/&#039;,&#039;validate&#039;);
$name-&amp;gt;setDecorators(array(&#039;Composite&#039;,&#039;CustomHtml&#039;));
$this-&amp;gt;addElement($name);

$tld = new Zend_Form_Element_Select(&#039;tld&#039;);
$tld-&amp;gt;addMultiOption(&#039;&#039;, &#039;&#039;);
$tld-&amp;gt;addMultiOption(&#039;sk&#039;, &#039;sk&#039;);
$tld-&amp;gt;addMultiOption(&#039;cz&#039;, &#039;cz&#039;);
$tld-&amp;gt;addMultiOption(&#039;com&#039;, &#039;com&#039;);
//$tld-&amp;gt;addMultiOption(&#039;eu&#039;, &#039;eu&#039;);
$tld-&amp;gt;addMultiOption(&#039;biz&#039;, &#039;biz&#039;);
$tld-&amp;gt;addMultiOption(&#039;info&#039;, &#039;info&#039;);
$tld-&amp;gt;addMultiOption(&#039;name&#039;, &#039;name&#039;);
$tld-&amp;gt;addMultiOption(&#039;net&#039;, &#039;net&#039;);
$tld-&amp;gt;addMultiOption(&#039;org&#039;, &#039;org&#039;);
//$tld-&amp;gt;addMultiOption(&#039;mobi&#039;, &#039;mobi&#039;);
$tld-&amp;gt;addMultiOption(&#039;de&#039;, &#039;de&#039;);
$tld-&amp;gt;setLabel(&#039;&#039;)
-&amp;gt;addFilter(&#039;StripTags&#039;)
-&amp;gt;addFilter(&#039;StringTrim&#039;)
-&amp;gt;setDecorators(array(&#039;Composite&#039;,&#039;CustomHtml&#039;))
-&amp;gt;addValidator(&#039;NotEmpty&#039;);
$this-&amp;gt;addElements(array($tld));
</pre></pre><br />
V prípade, že overenie neprebehne script vráti hlášku podľa konštanty na začiatku scriptu. Môže to vyzerať napríklad takto.</p>
<p><a href="http://www.peteroravec.sk/wp-content/uploads/2010/03/overenie-domeny.gif"><img class="alignnone size-full wp-image-2518" title="overenie-domeny" src="http://www.peteroravec.sk/wp-content/uploads/2010/03/overenie-domeny.gif" alt="" width="462" height="104" /></a></p>
<p>Najdôležitejšie je mať políčka domain a tld. V políčku domain treba zavolať<br />
<pre><pre style="overflow: auto; padding: 5px; border: 1px solid white;">$name-&amp;gt;addPrefixPath(&#039;My_Validate&#039;, &#039;My/Validate/&#039;,&#039;validate&#039;);
$name-&amp;gt;addValidator(&#039;AvailableDomain&#039;);
</pre></pre><br />
Ostatné prebehne automaticky pretože validátor volá obsah políčok podľa ich mena. Dúfam, že som pomohol pri vytváraní vlastného validátora pre overenie domény. Podobným spôsobom môžete vytvoriť akýkoľvek validátor pre overenie čohokoľvek. Štruktúra a spôsob ostáva, jediné čo zmeníte je vnútro tiedy kde sa niečo overuje a vracia TRUE alebo FALSE. To je celé...</p>
<h2  class="related_post_title">Podobné články</h2><ul class="related_post"><li>18. Február 2009 -- <a href="http://www.peteroravec.sk/zend-framework-po-lopate-pouzitie-view-helperu" title="Zend Framework po lopate: Použitie View Helperu">Zend Framework po lopate: Použitie View Helperu</a></li><li>23. Január 2009 -- <a href="http://www.peteroravec.sk/ako-vytvorit-vlastny-validator-pre-zend-framework-overenie-hesiel" title="Ako vytvoriť vlastný validátor pre Zend Framework: overenie hesiel">Ako vytvoriť vlastný validátor pre Zend Framework: overenie hesiel</a></li><li>20. September 2008 -- <a href="http://www.peteroravec.sk/zend-framework-pre-php" title="Zend Framework pre PHP">Zend Framework pre PHP</a></li><li>7. August 2008 -- <a href="http://www.peteroravec.sk/ako-presunut-web-na-novu-domenu-a-neprist-o-navstevnost-z-google" title="Ako presunúť web na novú doménu a neprísť o návštevnosť z Google">Ako presunúť web na novú doménu a neprísť o návštevnosť z Google</a></li><li>14. Marec 2008 -- <a href="http://www.peteroravec.sk/php5-a-mysql5-na-localhoste-s-wampserverom-nic-lahsie" title="PHP5 a MySQL5 na localhoste? S Wampserverom nič ľahšie&#8230;">PHP5 a MySQL5 na localhoste? S Wampserverom nič ľahšie&#8230;</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.peteroravec.sk/zend-framework-validator-volnej-domeny/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework po lopate: Použitie View Helperu</title>
		<link>http://www.peteroravec.sk/zend-framework-po-lopate-pouzitie-view-helperu</link>
		<comments>http://www.peteroravec.sk/zend-framework-po-lopate-pouzitie-view-helperu#comments</comments>
		<pubDate>Wed, 18 Feb 2009 19:32:31 +0000</pubDate>
		<dc:creator>Peter Oravec</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdizajn a programovanie]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZF "po lopate"]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.peteroravec.sk/?p=1844</guid>
		<description><![CDATA[O Zend Frameworku je na internete toho popísaného veľa, nie ale všetko je zrozumiteľné hlavne pre človeka ktorý sa do toho chce dostať a nie všetkému rozumie. Jedna z takých vecí je napríklad View Helper. V podstate nutnosť pri práci so Zendom. Tento článok je laický návod na jeho použitie. Zend Framework sa podľa mňa ťažko učí z oficiálnej príručky kde človek veľa veciam nerozumie a často potrebuje vedieť aj...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.peteroravec.sk/wp-content/uploads/2009/02/zend-framework.png"><img class="alignleft size-full wp-image-1850" title="zend-framework" src="http://www.peteroravec.sk/wp-content/uploads/2009/02/zend-framework.png" alt="zend-framework" width="185" height="187" /></a></p>
<p>O Zend Frameworku je na internete toho popísaného veľa, nie ale všetko je zrozumiteľné hlavne pre človeka ktorý sa do toho chce dostať a nie všetkému rozumie. Jedna z takých vecí je napríklad View Helper. V podstate nutnosť pri práci so Zendom. Tento článok je laický návod na jeho použitie.</p>
<p>Zend Framework sa podľa mňa ťažko učí z oficiálnej príručky kde človek veľa veciam nerozumie a často potrebuje vedieť aj iné veci. Práve preto asi  urobím niečo ako mini seriál <strong>laických návodov Zend Frameworku</strong> lebo keby existovalo niečo keď som sa to snažil naučiť je sám tak by som si ušetril kopec času. Uvidíme...<span id="more-1844"></span></p>
<h2 style="clear: both;">Čo je View Helper?</h2>
<p>Vzhľadom na to, že je to framework typu MCV tak logika so vzhľadom je oddelená vec, view helper je niečo medzi tým. V podstate je to ako PHP funkcia ktorá mi niečo robí (počíta niečo alebo vráti kus HTML kódu) a vracia určité hodnoty alebo kusy kódov.  Už z názvu View je používaná v pohľadoch ale dá sa použiť aj v controller, tu je to ale na zváženie lebo nie vždy je vhodné do logiky vkladať View helper ktorý mi môže narušiť tú logiku MCV frameworku. Ak teda sa už hráme, že oddeľujeme logiku od vzhľadu tak je najlepšie View helper v controlleroch používať rozumne alebo vôbec.</p>
<h3>Kedy je to vhodné a vlastne na čo použiť View Helper?</h3>
<p>View Helper je vhodný do miest kde určitý úkon vykonávam často prípadne existuje na každej podstránke. <strong>Tým ale nemyslím</strong> napríklad ľavý stĺpec, pravý stĺpec, pätičku alebo hlavičku. Na niečo takéto sa to síce použiť dá ale podľa mňa to nieje dobre, toto sa dá vytvoriť pomocou vlastností a možností layoutov. View helper sa pri klasickom webe hodí napríklad na generovanie odkazov na registráciu, prihlásenie, odhlásenie a výpis prihláseného užívateľa. I keď sa toto bude nachádzať na každej podstránke tak to aké odkazy sa zobrazia si vyžaduje určitý script na overenie či je užívateľ prihlásený alebo nie. Mohli by ste to dať do hlavičky kde to nejakým spôsobom overiť ale nieje to praktické. View helper to vyrieši  a do pohľadu len vložíme jeden riadok kódu ktorý nám vráti čo potrebujeme.</p>
<h2>Vytvárame View Helper</h2>
<p>Vytvorenie View Helperu je jednoduché v podste si len vytvoríte jednu triedu s určitým názvom, tú uložíte na určité miesto vďaka tomu, že názov triedy a jej umiestnenie v adresároch umožní to, že View Helper použijete kdekoľvek bez toho aby bolo niekde treba niečo includovať.</p>
<blockquote><p>View Helper zavoláte v bez nutnosti includovania, to vďaka názvu triedy ktorá odkazuje na jeho umiestnenie. Toto je veľmi pohodlné, View Helper môžete zavolať aj v controller triede ale to je na zváženie, nemiešajte logiku so vzhľadom.</p></blockquote>
<p>Jednoduchý View Helper vyzerá napríklad takto:<br />
<pre><pre>&amp;lt;?php

class Zend_View_Helper_LoggedInUser

{

&nbsp;&nbsp;protected $_view;

&nbsp;&nbsp;function setView($view) {

&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;_view = $view;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;function loggedInUser() {

&nbsp;&nbsp;&nbsp;&nbsp;$auth = Zend_Auth:getInstance();

&nbsp;&nbsp;&nbsp;&nbsp;if($auth-hasIdentity()) 

&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$logoutUrl = $this-&amp;gt;_view-&amp;gt;linkTo(&#039;auth/logout&#039;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$user = $auth-&amp;gt;getIdentity();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$username = $this-&amp;gt;_view-&amp;gt;escape(ucfirst($user-&amp;gt;username));

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string = &#039;Logged in as &#039; . $username . &#039; | &amp;lt;a href=&quot;&#039; . $logoutUrl . &#039;&quot;&amp;gt;Logout&amp;lt;/a&amp;gt;&#039;; 

&nbsp;&nbsp;&nbsp;&nbsp;} else {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$loginUrl = $this-&amp;gt;_view-&amp;gt;linkTo(&#039;authentification/identify&#039;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string = &#039;&amp;lt;a href=&quot;&#039; . $loginUrl . &#039;&quot;&amp;gt;Log In&amp;lt;/a&amp;gt;&#039;;

&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;return $string;

&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

}</pre></pre><br />
<a href="http://www.peteroravec.sk/wp-content/uploads/2009/02/zend-view-helper.gif"><img class="alignleft size-thumbnail wp-image-1864" title="Umiestnenie View Helperu v štruktúre" src="http://www.peteroravec.sk/wp-content/uploads/2009/02/zend-view-helper-83x180.gif" alt="Umiestnenie View Helperu v štruktúre" width="83" height="180" /></a>View Helper začína definíciou triedy, názov našej triedy je:<br />
<pre>Zend_View_Helper_LoggedInUser</pre><br />
Prečo? Zend_View_Helper definuje umiestnenie View Helperu, ten môžeme uložiť do ľubovoľného PHP súboru... názov môže byť ľubovoľný. Avšak v adresári <strong>Views / Helpers </strong>/ názov našeho View Helperu.</p>
<p><strong>LoggedInUser</strong> je názov triedy, najideálnejšie je si ju nazvať tak ako budeme volať aj View Helper v pohľade.</p>
<p>Funkciu SetView neriešte vložte to do každého View Helperu. Ďalej nasleduje funkcia ktorá sa volá tak isto ako názov triedy a to je to kde si dáte vlastný kód ktorý niečo spraví a vráti. V našom prípade to bude overenie či je užívateľ prihlásený a ak áno tak vypíše jeho meno a zobrazí odkaz na odhlásenie. Podrobne jej kód vysvetľovať nebudem.</p>
<p>V jednom View Helper môžete vytvoriť aj viac funkcií kde jedna môže niečo vrátiť druhej, funguje to ako keď v jednej funkcii vložíte inú atď.</p>
<h2>View Helper už máme, treba ho len zavolať</h2>
<p>View Helper máme vytvorený, jeho názov je dobre vytvorený, je umiestnený v presnom adresári... teraz ho už len zavoláme na mieste kde potrebujeme. V pohľade to spravíme s kódom napríklad:<br />
<pre>&amp;lt;?php echo $this-&amp;gt;LoggedInUser(); ?&amp;gt;</pre><br />
V Controller to zavoláme trochu inak a to:<br />
<pre>$this-&amp;gt;view-&amp;gt;LoggedInUser();</pre><br />
Toto je dúfam ľahko pochopiteľné použitie jednoduchého View Helperu...</p>
<h2  class="related_post_title">Podobné články</h2><ul class="related_post"><li>21. Marec 2010 -- <a href="http://www.peteroravec.sk/zend-framework-validator-volnej-domeny" title="Zend Framework: validátor voľnej domény">Zend Framework: validátor voľnej domény</a></li><li>23. Január 2009 -- <a href="http://www.peteroravec.sk/ako-vytvorit-vlastny-validator-pre-zend-framework-overenie-hesiel" title="Ako vytvoriť vlastný validátor pre Zend Framework: overenie hesiel">Ako vytvoriť vlastný validátor pre Zend Framework: overenie hesiel</a></li><li>20. September 2008 -- <a href="http://www.peteroravec.sk/zend-framework-pre-php" title="Zend Framework pre PHP">Zend Framework pre PHP</a></li><li>27. Apríl 2009 -- <a href="http://www.peteroravec.sk/tutorial-3d-text-vo-photoshope" title="Tutoriál: 3D text vo Photoshope">Tutoriál: 3D text vo Photoshope</a></li><li>7. August 2008 -- <a href="http://www.peteroravec.sk/ako-presunut-web-na-novu-domenu-a-neprist-o-navstevnost-z-google" title="Ako presunúť web na novú doménu a neprísť o návštevnosť z Google">Ako presunúť web na novú doménu a neprísť o návštevnosť z Google</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.peteroravec.sk/zend-framework-po-lopate-pouzitie-view-helperu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

