<?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>BLOG::Nivaldo &#187; dojo grupo</title>
	<atom:link href="http://www.nivaldoarruda.com.br/tag/dojo-grupo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nivaldoarruda.com.br</link>
	<description>Tecnologias Web, PHP e Aquários</description>
	<lastBuildDate>Sun, 29 Aug 2010 23:59:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Fieldset no Zend_Form ou Zend_Dojo_Form</title>
		<link>http://www.nivaldoarruda.com.br/2008/12/04/fieldset-no-zend_form/</link>
		<comments>http://www.nivaldoarruda.com.br/2008/12/04/fieldset-no-zend_form/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 11:34:57 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[Dojo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[agrupar]]></category>
		<category><![CDATA[DisplayGroup]]></category>
		<category><![CDATA[dojo grupo]]></category>
		<category><![CDATA[dojo titlepane]]></category>
		<category><![CDATA[Fieldset]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[grupo de form]]></category>
		<category><![CDATA[grupos]]></category>
		<category><![CDATA[javascript block]]></category>
		<category><![CDATA[TitlePane]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutorial dojo]]></category>
		<category><![CDATA[tutorial dojo toolkit]]></category>
		<category><![CDATA[tutorial javascript]]></category>
		<category><![CDATA[tutorial js]]></category>
		<category><![CDATA[tutorial php]]></category>
		<category><![CDATA[tutorial zend]]></category>
		<category><![CDATA[tutorial zend framework]]></category>
		<category><![CDATA[tutorial zf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend_Dojo_Form]]></category>
		<category><![CDATA[Zend_Form]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://atriatecnologia.com.br/nivaldo/blog/?p=176</guid>
		<description><![CDATA[Provavelmente você já teve que separar alguns campos de seus formulários em blocos, utilizando o fieldset, certo? E se ainda não teve, pode ter certeza que um dia terá, hehe ^^. Como resolver isso no Zend Framework? fácil! &#8220;addDisplayGroup&#8221; Mas, tenha em mente que o addDisplayGroup irá criar o fieldset exatamente aonde ele foi setado, [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo'>Integrando o Zend Framework com o Dojo</a> <small>Bom, como me bati um pouco para achar boas informações...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/09/07/zend-framework-tutorial-personalizando-os-decorators/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Tutorial &#8211; Personalizando os decorators'>Zend Framework &#8211; Tutorial &#8211; Personalizando os decorators</a> <small>php, zend, hospedagem, ajax, programação, tutorial, curso, apostila, site, criar...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Provavelmente você já teve que separar alguns campos de seus formulários em blocos, utilizando o fieldset, certo? E se ainda não teve, pode ter certeza que um dia terá, hehe ^^.</p>
<p>Como resolver isso no Zend Framework? fácil! &#8220;<em>addDisplayGroup</em>&#8221;</p>
<p>Mas, tenha em mente que o addDisplayGroup irá criar o fieldset exatamente aonde ele foi setado, logo, você deve criar seus forms na sequência de campos e de chamadas do group corretas. Veja aqui um pequeno exemplo:</p>
<pre name="code" language="php">&lt;?php
Class AnimaisForm extends Zend_Dojo_Form
{
	public function __construct($options=null)
	{
		parent::__construct($options);

        $translate = Zend_Registry::get('translate');
        $this-&gt;setTranslator($translate);

        $campo = $this-&gt;createElement('ValidationTextBox', 'nome_popular');
        $campo-&gt;addFilters(array('StringTrim', 'StripTags'))
                 -&gt;addValidator('NotEmpty')
                 -&gt;setInvalidMessage('Informe o nome do animal.')
	 	         -&gt;addValidator('StringLength', true, array(1,60))
	             -&gt;setRequired(true)
                 -&gt;setLabel('Nome Popular');
        $this-&gt;addElement($campo);

	$campo = $this-&gt;createElement('ValidationTextBox', 'raca');
        $campo-&gt;addFilters(array('StringTrim', 'StripTags'))
                 -&gt;addValidator('NotEmpty')
                 -&gt;setInvalidMessage('Informe a raça do animal.')
	 	         -&gt;addValidator('StringLength', true, array(1,60))
	             -&gt;setRequired(true)
                 -&gt;setLabel('Raça');
        $this-&gt;addElement($campo);

	//Aqui vamos agrupar os 2 campos pelo nome.
        $this-&gt;addDisplayGroup(array('nome_popular', 'raca'), 'gBasico', array('legend'=&gt;"Dados básicos"));

	$campo = $this-&gt;createElement('NumberTextBox', 'idade');
        $campo-&gt;addFilter('StringTrim')
                 -&gt;addValidator('int')
                 -&gt;setInvalidMessage('Informe a idade do animal.')
                 -&gt;setRequired(true)
                 -&gt;setAttrib('lang', 'pt-br')
                 -&gt;setLabel('Idade');
        $this-&gt;addElement($campo);

	$campo = $this-&gt;createElement('NumberTextBox', 'peso');
        $campo-&gt;addFilter('StringTrim')
                 -&gt;addValidator('int')
                 -&gt;setInvalidMessage('Informe o peso do animal.')
                 -&gt;setRequired(true)
                 -&gt;setAttrib('lang', 'pt-br')
                 -&gt;setLabel('Peso');
        $this-&gt;addElement($campo);

	//Aqui vamos agrupar os 2 campos pelo nome em outro fieldset.
        $this-&gt;addDisplayGroup(array('idade', 'peso'), 'gespecifico', array('legend'=&gt;"Dados específicos"));

	}
}
?&gt;</pre>
<p style="text-align: center;"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form1.png"><img class="size-medium wp-image-178 aligncenter" title="Exemplo sem TitlePane" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form1-300x109.png" alt="Exemplo sem TitlePane" /></a></p>
<p>Bem tranquilo não? Agora ultima dica, se você está utilizando o Dojo também, pode transformar esses fieldsets em TitlePanes, eles ficam com um visual mais interessante e podem esconder o conteúdo ao custo de um clique. Para isso, apenas substítua a linha do &#8220;<em>addDisplayGroup</em>&#8221; para:</p>
<pre name="code" language="php">         $this-&gt;addDisplayGroup(array('nome_popular', 'raca'), 'gBasico', array("dojoType"=&gt;'dijit.TitlePane', 'title'=&gt;"Dados básicos"));</pre>
<p>e</p>
<pre name="code" language="php">         $this-&gt;addDisplayGroup(array('idade', 'peso'), 'gespecifico', array("dojoType"=&gt;'dijit.TitlePane', 'title'=&gt;"Dados específicos"));</pre>
<p>Você também precisará acrescentar no view, que irá chamar essa form, uma chamada Dojo para importar o módulo do TitlePane (e levando em conta que você já possui a chamada do dojo em seu layout). Dessa forma:</p>
<pre name="code" language="php">&lt;?php
   $this-&gt;dojo()-&gt;requireModule('dijit.TitlePane');
?&gt;</pre>
<p style="text-align: center;"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form2.png"><img class="size-medium wp-image-179" title="Exemplo 01 com dojo" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form2-300x126.png" alt="Exemplo 01 com dojo" width="300" height="126" /></a></p>
<p style="text-align: center;"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form3.png"><img class="size-medium wp-image-180" title="Exemplo 02 com dojo" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/12/form3-300x80.png" alt="Exemplo 02 com dojo" width="300" height="80" /></a></p>
<p>É isso ^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo'>Integrando o Zend Framework com o Dojo</a> <small>Bom, como me bati um pouco para achar boas informações...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/09/07/zend-framework-tutorial-personalizando-os-decorators/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Tutorial &#8211; Personalizando os decorators'>Zend Framework &#8211; Tutorial &#8211; Personalizando os decorators</a> <small>php, zend, hospedagem, ajax, programação, tutorial, curso, apostila, site, criar...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2008/12/04/fieldset-no-zend_form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
