<?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 Toolkit</title>
	<atom:link href="http://www.nivaldoarruda.com.br/tag/dojo-toolkit/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>Entrevista para a revista TI DIGITAL</title>
		<link>http://www.nivaldoarruda.com.br/2009/05/18/entrevista-para-a-revista-ti-digital/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/05/18/entrevista-para-a-revista-ti-digital/#comments</comments>
		<pubDate>Mon, 18 May 2009 23:29:18 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[Dojo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[misc]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[arruda]]></category>
		<category><![CDATA[capoeira legends]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[nivaldo]]></category>
		<category><![CDATA[revista]]></category>
		<category><![CDATA[tidigital]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=419</guid>
		<description><![CDATA[Fui convidado pela jornalista Flávia Freire a participar de uma entrevista para a matéria &#8220;Frameworks Javascript: Conheça os prós e os contras dos 10 mais populares&#8220;, que ela estava escrevendo. Como não podia deixar de ser, eu falei sobre o Dojo Toolkit. A matéria saiu na edição número 3 da revista TI DIGITAL. Agora como [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/01/21/inlineeditbox-alternando-para-filteringselect-dojotoolkit/' rel='bookmark' title='Permanent Link: InlineEditBox alternando para FilteringSelect &#8211; DojoToolKit'>InlineEditBox alternando para FilteringSelect &#8211; DojoToolKit</a> <small>Criar os InlineEditBox (aqueles campos que se mostram como texto,...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Fui convidado pela jornalista Flávia Freire a participar de uma entrevista para a matéria &#8220;<strong>Frameworks Javascript</strong>: <em>Conheça os prós e os contras dos 10 mais populares</em>&#8220;, que ela estava escrevendo. Como não podia deixar de ser, eu falei sobre o <a title="Dojo Toolkit" href="http://www.dojotoolkit.org" target="_blank">Dojo Toolkit</a>. A matéria saiu na edição número 3 da revista <a title="Revista TI DIGITAL" href="http://www.tidigital.com.br" target="_blank">TI DIGITAL</a>.</p>
<div id="attachment_420" class="wp-caption aligncenter" style="width: 232px"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2009/05/capa_03_maior.jpg"><img class="size-medium wp-image-420" title="Revista TI DIGITAL n° 3" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2009/05/capa_03_maior-222x300.jpg" alt="Revista TI digital n° 3" width="222" height="300" /></a><p class="wp-caption-text">Revista TI DIGITAL n° 3</p></div>
<p>Agora como um bom nerd, algumas considerações sobre a revista (que acabei de ler).</p>
<ul>
<li><strong>Distribuição</strong>: Ao menos aqui em Curitiba-PR, foi um tanto complicado de achar a revista na banca. Eu tive que mandar um email para a editora e eles me passaram alguns endereços de algumas bancas. Segue:</li>
</ul>
<blockquote>
<ol>
<li>R.NILO PECANHA,n.1000</li>
<li>R.BOM JESUS,n.1032</li>
<li>RUA CEL. LUIZ JOSE DOS SANTOS,n.201</li>
<li>R.DES.WESTPHALEN C/ R.PEDRO IVO</li>
<li>RUA PEDRO IVO,n.600 (<strong>Comprei a minha aqui</strong>)</li>
<li>R.XV DE NOVEMBRO ESQ.MONS.CELSO</li>
</ol>
</blockquote>
<ul>
<li><strong>Conteúdo</strong>: O conteúdo da revista é bastante variado. Nenhum tipo de &#8220;preconceito&#8221; com nenhuma linguagem. Nessa edição, fora a matéria dos frameworks javascript, tem também uma sobre ASP.NET , outra sobre ActionScript e também Ruby on Rails. Falam um pouco sobre SEO e tem uma matéria sobre o jogo brasileiro: Capoeira Legends (Que parece ser bem legal, vou atrás depois para conhecer melhor).</li>
<li><strong>Publicidade</strong>: Uma quantidade bem interessante de propaganda. Não atrapalha a leitura da revista e nem te deixa injuriado. ^^</li>
<li><strong>Preço</strong>: Apenas R$7,90! Vale a apena comprar uma para você tirar suas próprias conclusões <img src='http://www.nivaldoarruda.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>Então é isso. Agradeço a Equipe da <a href="http://www.tidigital.com.br" target="_blank">TI DIGITAL</a> pela oportunidade e espero que tenham gostado da minha pequena contribuição.</p>
<p>^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/01/21/inlineeditbox-alternando-para-filteringselect-dojotoolkit/' rel='bookmark' title='Permanent Link: InlineEditBox alternando para FilteringSelect &#8211; DojoToolKit'>InlineEditBox alternando para FilteringSelect &#8211; DojoToolKit</a> <small>Criar os InlineEditBox (aqueles campos que se mostram como texto,...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/05/18/entrevista-para-a-revista-ti-digital/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Integrando o Zend Framework com o Dojo &#8211; Parte III</title>
		<link>http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 22:17:04 +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[apostila js]]></category>
		<category><![CDATA[apostila php]]></category>
		<category><![CDATA[apostila zend]]></category>
		<category><![CDATA[biblioteca js]]></category>
		<category><![CDATA[borderContainer]]></category>
		<category><![CDATA[compatibilidade]]></category>
		<category><![CDATA[contentPane]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[curso dojo]]></category>
		<category><![CDATA[curso js]]></category>
		<category><![CDATA[curso php]]></category>
		<category><![CDATA[curso web]]></category>
		<category><![CDATA[curso zend]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[dica js]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[dojo 1.2.1]]></category>
		<category><![CDATA[dojo 1.2.3]]></category>
		<category><![CDATA[dojo layout]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[dojotoolkit]]></category>
		<category><![CDATA[layer]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[limpar código]]></category>
		<category><![CDATA[melhorar código]]></category>
		<category><![CDATA[nihilo]]></category>
		<category><![CDATA[número de requisição]]></category>
		<category><![CDATA[otimizador]]></category>
		<category><![CDATA[otimizando]]></category>
		<category><![CDATA[otimizar]]></category>
		<category><![CDATA[Validação com Dojo]]></category>
		<category><![CDATA[Zend Script]]></category>
		<category><![CDATA[Zend_Dojo_Form]]></category>
		<category><![CDATA[Zend_Form]]></category>
		<category><![CDATA[Zend_Layout]]></category>
		<category><![CDATA[ZF+Dojo]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=287</guid>
		<description><![CDATA[Dando continuidade a nossa integração, vamos dar uma rapida olhada na criação de layouts utilizando o dojo toolkit. Basicamente ele vai construir todos os blocos que formam o seu layout. Criando os DIVs com os IDs que você definir (que terão o estilo presente no css). O código final fica bem interessante e você já [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/' rel='bookmark' title='Permanent Link: Dojo Toolkit (ajax): Submetendo um form via POST'>Dojo Toolkit (ajax): Submetendo um form via POST</a> <small>Irei demonstrar nesse pequeno tutorial, como é fácil enviar os...</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>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Dando continuidade a nossa <a href="http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/" target="_BLANK">integração</a>, vamos dar uma rapida olhada na criação de layouts utilizando o dojo toolkit. Basicamente ele vai construir todos os blocos que formam o seu layout. Criando os DIVs com os IDs que você definir (que terão o estilo presente no css). O código final fica bem interessante e você já vai se habituando a utilizar os helper dos dojos e seus view. </p>
<p>Para esse exemplo, vamos utilizar novamente o <a href="http://www.nivaldoarruda.com.br/2008/11/21/zend_layout/" target="_BLANK">Zend_Layout</a> para abstrair o nosso html. Exemplo:</p>
<p><strong>teste.phtml</strong></p>
<pre name="code" language="php">
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xml:lang="pt-br" xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"&gt;
&lt;head&gt;
    &lt;link rel="stylesheet" type="text/css" href="/estilos/teste.css"&gt;
	<?php
        if ($this->dojo()->isEnabled()){
            $this->dojo()->setLocalPath('/js/dojo/dojo.js')
                         ->setDjConfig(array(
                                          'parseOnLoad' => true,
                                          'extraLocale' => array('pt-br', 'en-us')
                                       ))
                         ->addStyleSheetModule('dijit.themes.nihilo');
        }
	?>

	<?php echo $this->dojo(); ?>
</head>
<body class="nihilo">
<?php
/* CORPO: INICIO */
$this->borderContainer()->captureStart('corpo', array('design' => 'headline'));

/* CABEÇALHO: INICIO */
echo $this->contentPane(
    'cabecalho',
    'TESTE DE LAYOUT COM DOJO'
);
/* CABEÇALHO: FIM */

/* BARRAS_EXTRAS: INICIO */
echo $this->contentPane(
    'caixa_mensagem',
    'CAIXA DE MENSAGEM'
);
/* BARRAS_EXTRAS: FIM */

/* CONTEUDO: INICIO */
echo $this->contentPane(
    'conteudo',
    $this->layout()->content
    .$this->inlineScript()
);
/* CONTEUDO: FIM */

/* MENU LATERAL: INICIO */
$barra_lateral =  $this->contentPane(
    'menu_lateral',
    '<b>Opções</b>
<ol>
<li>Opção 1</li>
<li>Opção 2</li>
<li>Opção 3</li>
<li>Opção 4</li>
<li>Opção 5</li>
</ol>

'
);

echo $this->contentPane(
    'box_menu_lateral',
     $barra_lateral
);
/* MENU LATERAL: FIM */
echo $this->borderContainer()->captureEnd('corpo');
/* CORPO: FIM */
?>

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Explicando um pouco essa sopa de código. Logo no início do arquivo, adicionamos o Dojo em nosso layout e setamos para que ele utilize o tema chamado &#8220;nihilo&#8221;. É um tema bem interessante, para se trabalhar em escala de cinza.</p>
<p>Na sequência, criamos um &#8220;borderContainer&#8221; Start. Desse trecho, até o &#8220;borderContainer&#8221; End, ele vai capturar todo o código e jogara dentro de um div chamado &#8220;corpo&#8221;.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6037690795851697";
/* 468x15, NA-meiopost */
google_ad_slot = "4228667083";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
<br/></p>
<p>Seguindo a ordem das coisas, o próximo elemento a ser criado é o cabeçalho, seguido pela barra de mensagens. O &#8220;conteudo&#8221; e a &#8220;barra_lateral&#8221; são os próximos da lista. Eles ficarão um ao lado do outro (veremos isso logo a seguir no css).</p>
<p>Se você já percebeu o padrão de uso, o primeiro parametro do elemento é sempre o seu ID enquanto o segundo é o seu valor. </p>
<p>É o elemento &#8220;conteudo&#8221;:</p>
<pre name="code" language="php">
/* CONTEUDO: INICIO */
echo $this->contentPane(
    'conteudo',
    $this->layout()->content
    .$this->inlineScript()
);
/* CONTEUDO: FIM */
</pre>
<p>que irá receber a saída da view do seu sistema. Os outros DIVs estão com os valores fixo, mas eles podem ser facilmente substituidos utilizando &#8220;placeholders&#8221; ou algum helper (para criar o menu por exemplo).</p>
<p>Para testar perfeitamente esse código, crie também esse arquivo de estilo:</p>
<p><strong>teste.css</strong></p>
<pre name="code" language="css">
/* TAGS GENERICAS:INICIO */
body{font:12px verdana,arial,tahoma;background:#ffffff;}
ul{list-style:none;}
h3{font:13px verdana,arial,tahoma;color: #7172A3;font-weight: bold}
/* TAGS GENERICAS:FIM */

/* ELEMENTOS DO LAYOUT:INICIO */
#cabecalho{height: 40px; color: #ffffff; background-color: #794256;font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size: 22px;padding: 10px;}
#caixa_mensagem{color: gray; background-color: #fffbcc;font-family: verdana, arial;font-size: 11px;padding: 10px;border-top: 1px solid #e6db55;border-bottom: 1px solid #e6db55;margin-top: 2px}
#caixa_mensagem div{height: 15px;}
#conteudo{float: left; background-color: black; padding: 3px;margin-top: 3px}
#menu_lateral{background-color: silver; padding: 3px;}
#box_menu_lateral{float: right; width: 230px; background-color: black; padding: 3px;margin-left: 10px;margin-top: 3px}
/* ELEMENTOS DO LAYOUT:FIM */
</pre>
<p>Se tudo correu bem, você terá algo parecido com isso:</p>
<div id="attachment_290" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2009/02/layout.png" target="_BLANK"><img src="http://www.nivaldoarruda.com.br/wp-content/uploads/2009/02/layout-300x224.png" alt="Exemplo de layout com dojo" title="layout" width="300" height="224" class="size-medium wp-image-290" /></a><p class="wp-caption-text">Exemplo de layout com dojo</p></div>
<p>*OBS: O texto dessa screenshot está na view que chamei.</p>
<p>Por fim, acredito que fora o carater educativo do dojo layout é possivel se virar muito bem sem ele. Mas para um sistema totalmente integrado e interativo com dojo, ele é fundamental. Mas se me permitem uma ultima dica: Utilizem esse aprendizado apenas nas views e deixe o dojo layout amadurecer mais.</p>
<p>^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/' rel='bookmark' title='Permanent Link: Dojo Toolkit (ajax): Submetendo um form via POST'>Dojo Toolkit (ajax): Submetendo um form via POST</a> <small>Irei demonstrar nesse pequeno tutorial, como é fácil enviar os...</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>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dojo Toolkit (ajax): Submetendo um form via POST</title>
		<link>http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 13:33:48 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[Dojo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ajax post]]></category>
		<category><![CDATA[código pronto]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[curso ajax]]></category>
		<category><![CDATA[curso dojo]]></category>
		<category><![CDATA[curso javascript]]></category>
		<category><![CDATA[curso php]]></category>
		<category><![CDATA[curso xhr]]></category>
		<category><![CDATA[dojo 1.2.1]]></category>
		<category><![CDATA[dojo 1.2.3]]></category>
		<category><![CDATA[dojo ajax]]></category>
		<category><![CDATA[Dojo modules]]></category>
		<category><![CDATA[dojo post]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[dojo xhr]]></category>
		<category><![CDATA[dojo.xhrPost]]></category>
		<category><![CDATA[dojotoolkit]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[metodo post]]></category>
		<category><![CDATA[otimizando]]></category>
		<category><![CDATA[otimizar]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[scripts de exemplo]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutorial ajax]]></category>
		<category><![CDATA[tutorial dojo]]></category>
		<category><![CDATA[tutorial javascript]]></category>
		<category><![CDATA[tutorial xhr]]></category>
		<category><![CDATA[xhr]]></category>
		<category><![CDATA[ZF+Dojo]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=271</guid>
		<description><![CDATA[Irei demonstrar nesse pequeno tutorial, como é fácil enviar os dados de um formulário pelo método POST, utilizando o Dojo Toolkit para gerenciar as requisições http (xhr ou ajax). Para o nosso exemplo, crie essa função genérica para envio dos dados: function enviaForm(formulario_url, formulario_id){ var config = { url: formulario_url, load: function(data){ /* retorno da [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/11/dojo-dojox-datagrid/' rel='bookmark' title='Permanent Link: Dojo (dojox) DataGrid'>Dojo (dojox) DataGrid</a> <small>Hoje vou apenas exemplificar a criação de um Dojox Datagrid....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Irei demonstrar nesse pequeno tutorial, como é fácil enviar os dados de um formulário pelo método <em>POST</em>, utilizando o <a href="http://www.dojotoolkit.org">Dojo Toolkit</a> para gerenciar as requisições http (xhr ou ajax). </p>
<p>Para o nosso exemplo, crie essa função genérica para envio dos dados:</p>
<pre name="code" language="javascript">
function enviaForm(formulario_url, formulario_id){
	var config = {
	        url: formulario_url,
	        load: function(data){
			 /* retorno da informação. Você pode chamar uma outra função aqui para processar os dados de retorno da requisição, que estão contido na váriavel "data" */
	        },
	        error: function(data){
	                console.debug("An error occurred: ", data); /*Em caso de erro joga no console*/
	        },
	        timeout: 2000, //timeout da operação
	        form: formulario_id
	};

	dojo.xhrPost(config); /* Executa a requisição  */

}
</pre>
<p> Como vocês já devem ter percebido, é uma função bem pequena e simples (apesar de bastante útil). Acredito que só com os comentários contidos nela, você já consiga identificar o que cada bloco de comando é responsável em tratar. Para executa-la, é só adicionar sua chamada em um evento de sua preferência. Como por exemplo:</p>
<pre name="code" language="javascript">
	<a href="#" onclick="enviaForm('/mamifero/cadastrar', 'form_cadastro_mamifero')">Enviar dados</a>
</pre>
<p>Aonde:</p>
<ol>
<li>/mamifero/cadastrar é a url que você enviará os dados do formulário.</li
<li>form_cadastro_mamifero é o id do form fictício de cadastro de mamíferos.</li>
</ol>
<p>Simples não? Utilizando uma função genérica desse tipo, fica bem mais tranquilo trabalhar em sistemas dinâmicos. Principalmente se você der uma pequena implementada no atributo &#8220;load&#8221; (criando uma função genérica de tratamento de erros/mensagens, por exemplo) e com seus scripts server-sides sempre retornando dados padronizados, você consegue um bom resultado com apenas 2 pequenas funções.</p>
<p>^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/11/dojo-dojox-datagrid/' rel='bookmark' title='Permanent Link: Dojo (dojox) DataGrid'>Dojo (dojox) DataGrid</a> <small>Hoje vou apenas exemplificar a criação de um Dojox Datagrid....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Otimizando o Dojo Toolkit</title>
		<link>http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/</link>
		<comments>http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 22:14:09 +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[buildscript]]></category>
		<category><![CDATA[compactar]]></category>
		<category><![CDATA[Dojo + Zend Framework]]></category>
		<category><![CDATA[dojo 1.2.1]]></category>
		<category><![CDATA[Dojo layer]]></category>
		<category><![CDATA[Dojo modules]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[dojo utils]]></category>
		<category><![CDATA[otimização]]></category>
		<category><![CDATA[otimizando]]></category>
		<category><![CDATA[otimizar]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[shrinksafe]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://atriatecnologia.com.br/nivaldo/blog/?p=167</guid>
		<description><![CDATA[Se você já está usando o Dojo ou começou com seus testes, já deve ter percebido o quão pesado um simples formulário pode ser. Se você utilizar uns três ou quatro tipos diferentes de campos no form, o dojo facilmente realizará uns 20 request de arquivos em javascript. Isso passa a ser um problema, pois [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/' rel='bookmark' title='Permanent Link: Dojo Toolkit (ajax): Submetendo um form via POST'>Dojo Toolkit (ajax): Submetendo um form via POST</a> <small>Irei demonstrar nesse pequeno tutorial, como é fácil enviar os...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Se você já está usando o Dojo ou começou com seus testes, já deve ter percebido o quão pesado um simples formulário pode ser. Se você utilizar uns três ou quatro tipos diferentes de campos no form, o dojo facilmente realizará uns 20 request de arquivos em javascript.</p>
<p>Isso passa a ser um problema, pois a cada vez que você carregar a mesma tela,  a biblioteca irá requisitar os mesmos arquivos novamente. Para resolver isso o dojo conta com uma funcionalidade chamada &#8220;Layer&#8221;, com ela, você pode empacotar alguns módulos em apenas um arquivo javascript, depois disso é só incluir esse script na sua página e pronto ^^ . O dojo, por ser extremamente modularizado, continuará requisitando os arquivos que não estão nesse pacote, mas daí o número de request caí para uns 5. Em uns testes meus, eu consegui sair de 64 request para apenas 18 (e desses 18, três eram de dados json).</p>
<p><strong>Como Utilizar</strong></p>
<p>Vamos precisar de apenas 3 passos.</p>
<ol>
<li>Baixar os <a title="Dojo toolkit" href="http://download.dojotoolkit.org/release-1.2.1/" target="_blank">fontes </a>do Dojo toolkit. Lembre-se de pegar os pacotes que terminar com &#8220;-src&#8221;</li>
<li>Configurar um arquivo de profile e utilizá-lo para o buildscript empacotar seus dados</li>
<li>Adicionar a chamada da layer no seu layout do Zend Framework</li>
</ol>
<p><strong>Passo 1:</strong></p>
<p>Espero que já tenha sido resolvido nas linhas acima <img src='http://www.nivaldoarruda.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Passo 2:</strong></p>
<p>Após descompactar os fontes do Dojo Toolkit, entre no diretório:<em><br />
dojo-release-1.2.1-src\util\buildscripts\profiles<br />
</em>e crie um arquivo chamado <em>exemplo.profile.js </em>com o seguinte conteúdo:</p>
<pre name="code" class="javascript">dependencies ={
    layers:  [
        {
        name: "../dojo/exemplo.js",
	  layerDependencies: [
	  ],
        dependencies: [
		"dojo.i18n",
		"dijit.form.FilteringSelect",
		"dijit.form.ValidationTextbox",
		"dojo.data.ItemFileReadStore",
		"dijit.form.NumberSpinner",
		"dijit.form.CurrencyTextbox",
		"dijit.form.Textarea",
		"dijit.form.Button",
		"dijit.form.Form",
		"dojo.data.ItemFileReadStore",
        ]
        }
    ],
    prefixes: [
        [ "dijit", "../dijit" ],
        [ "dojox", "../dojox" ]
     ]
};</pre>
<p>A var &#8220;<em>name</em>&#8221; indica aonde o arquivo empacotado será criado. Em &#8220;<em>dependencies</em>&#8221; você irá definir todos os módulos que gostaria de empacotar. Com esse que listei, cheguei no resultado que comentei no começo do post. Em &#8220;<em>prefixes</em>&#8220;, você define o caminho dos diretórios das API que irá utilizar (esse caminho é o padrão que vem dentro do zip).</p>
<p>Depois de pronto, é só executar o script que irá gerar seu pacote. Detalhe, o buildscript utiliza java para esse fim, então certifique-se que o tenha instalado.</p>
<p><strong>build.bat profile=exemplo action=release loader=&#8221;default&#8221; optimize=&#8221;shrinksafe&#8221; layerOptimize=&#8221;shrinksafe&#8221; copyTestes=&#8221;false&#8221; version=&#8221;1.2.1&#8243;</strong></p>
<p>Após executar esse comando (demora um bocado, vai depender da sua máquina), será criada uma pasta chamada &#8220;Dojo&#8221; dentro do caminho:<em> dojo-release-1.2.1-src\release</em><br />
entre nela e copie o arquivo:<em> dojo-release-1.2.1-src\release\dojo\dojo\exemplo.js</em> para dentro da pasta dojo de sua aplicação. Você deve ter percebido que o script gerou toda a estrutura do dojo/dijit/dojox, você não precisa necessariamente utilizar essas pastas, pode utilizar a que já existe (se for o caso), sempre atento as versões.</p>
<p><strong>Passo 3</strong></p>
<p>Com o arquivo exemplo.js no local correto, está na hora de integrar ele no seu Zend Framework. Para isso, adicione a seguinte linha no seu load do dojo.</p>
<pre name="code" class="php">
->addLayer('/js/dojo/exemplo.js')
</pre>
<p>seu código final deve ficar alguma coisa parecedida com isso:</p>
<pre name="code" class="php">
   $this->dojo()->setLocalPath('/js/dojo/dojo.js')
       		       ->addLayer('/js/dojo/exemplo.js')
		       ->setDjConfig(array(
			        	'parseOnLoad' => true,
				 	'extraLocale' => array('pt-br', 'en-us')
				 	))
                 ->addStyleSheetModule('dijit.themes.tundra');
</pre>
<p>Simples não? três pequenos passo (que me deram uma certa dor de cabeça) e que pode melhorar e muito a sua aplicação. Sem problemas com requests, deixa mais ágil a substituição dos componentes e fica mais elegante também.</p>
<p>Qualquer problema/dica/sugestão, por favor, não deixem de comentar ^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/08/dojo-toolkit-ajax-submetendo-um-form-via-post/' rel='bookmark' title='Permanent Link: Dojo Toolkit (ajax): Submetendo um form via POST'>Dojo Toolkit (ajax): Submetendo um form via POST</a> <small>Irei demonstrar nesse pequeno tutorial, como é fácil enviar os...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.7</title>
		<link>http://www.nivaldoarruda.com.br/2008/11/17/zend-framework-17/</link>
		<comments>http://www.nivaldoarruda.com.br/2008/11/17/zend-framework-17/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:24:10 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[Dojo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[1.7]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[zend 1.7]]></category>
		<category><![CDATA[zend com jquery]]></category>
		<category><![CDATA[zend framework 1.7]]></category>
		<category><![CDATA[zend twitter]]></category>
		<category><![CDATA[zendo com dojo]]></category>
		<category><![CDATA[Zend_Tool]]></category>
		<category><![CDATA[ZF 1.7]]></category>
		<category><![CDATA[zf with jquery]]></category>

		<guid isPermaLink="false">http://atriatecnologia.com.br/nivaldo/blog/?p=104</guid>
		<description><![CDATA[Foi lançado a pouco o Zend Framework 1.7 Temos uma boa lista de mudança, segue ela: Zend_Amf with support for AMF0 and AMF3 protocols Dojo Toolkit 1.2.1 (esse muito me interessa) Support for dijit editor available in the Dojo Toolkit (esse muito me interessa) Zend_Service_Twitter ZendX_JQuery in extras library (Finalmente ^^) Metadata API in Zend_Cache [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Foi lançado a pouco o Zend Framework 1.7</p>
<p>Temos uma boa lista de mudança, segue ela:</p>
<ul>
<li> Zend_Amf with support for AMF0 and AMF3 protocols</li>
<li> Dojo Toolkit 1.2.1 (<strong>esse muito me interessa</strong>)</li>
<li> Support for dijit editor available in the Dojo Toolkit (<strong>esse muito me interessa</strong>)</li>
<li> Zend_Service_Twitter</li>
<li> ZendX_JQuery in extras library (<strong>Finalmente ^^</strong>)</li>
<li> Metadata API in Zend_Cache</li>
<li> Google book search API in Zend_Gdata</li>
<li> Preliminary support for GData Protocol v2 in Zend_Gdata</li>
<li> Support for skip data processing in Zend_Search_Lucene</li>
<li> Support for Open Office XML documents in Zend_Search_Lucene indexer</li>
<li> Performance enhancements in Zend_Loader, Zend_Controller, and server components</li>
<li> Zend_Mail_Storage_Writable_Maildir enhancements for mail delivery</li>
<li> Zend_Tool in incubator</li>
<li> Zend_Text_Table for formatting table using characters</li>
<li> Zend_ProgressBar</li>
<li> Zend_Config_Writer</li>
<li> ZendX_Console_Unix_Process in the extras library</li>
<li> Zend_Db_Table_Select support for Zend_Paginator</li>
<li> Global parameters for routes</li>
<li> Using Chain-Routes for Hostname-Routes via Zend_Config</li>
<li> I18N improvements</li>
</ul>
<ol>
<li> Application wide locale for all classes</li>
<li> Data retrieving methods are now static</li>
<li> Additional cache handling methods in all I18N classes</li>
<li> Zend_Translate API simplified</li>
</ol>
<ul>
<li> File transfer enhancements</li>
</ul>
<ol>
<li> Support for file elements in subforms</li>
<li> Support for multifile elements</li>
<li> Support for MAX_FILES_SIZE in form</li>
<li> Support for breaking validation chain</li>
<li> Support for translation of failure ,messages</li>
<li> New IsCompressed, IsImage, ExcludeMimeType, ExcludeExtension validators</li>
<li> Support for FileInfo extension in MimeType validator</li>
</ol>
<ul>
<li> Zend_Db_Table_Select adapater for Zend_Paginator</li>
<li> Support for custom adapters in Zend_Paginator</li>
<li> More flexible handling of complex types in Zend_Soap</li>
</ul>
<p>Como era de se esperar, ocorreram alterações/atualizações em diversas bibliotecas do framework. As que mais me interessam são a classes que integram com Dojo e o JQuery.</p>
<p>As alterações no DB para paginação me parecem ser interessante também. Sem contar com a File_transfer,que tive que usa-la esses tempos e realmente esta muito crua.</p>
<p>Fora isso para o fãs, tem um service para o twitter!</p>
<p>Depois de testar o ZF 1.7   exaustivamente eu tentarei me animar para um review melhor.</p>
<p>Abraços!</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2008/11/17/zend-framework-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrando o Zend Framework com o Dojo &#8211; Parte II</title>
		<link>http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/</link>
		<comments>http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 13:54:31 +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[Dojo Toolkit]]></category>
		<category><![CDATA[Validação com Dojo]]></category>
		<category><![CDATA[Zend Script]]></category>
		<category><![CDATA[Zend_Dojo_Form]]></category>
		<category><![CDATA[Zend_Form]]></category>
		<category><![CDATA[ZF+Dojo]]></category>

		<guid isPermaLink="false">http://atriatecnologia.com.br/nivaldo/blog/?p=78</guid>
		<description><![CDATA[Nessa segunda parte do tutorial, vou exemplificar um form utilizando o Zend_Dojo_Form. Para isso, crie em seu application uma pasta chamada &#8220;forms&#8221; e salve dentro dela o arquivo Exemplo.php com o seguinte conteudo: no controller que você irá chamar o form, crie a propriedade: protected $_form; no método Init do controller, você deve adicionar a [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</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/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Nessa segunda parte do tutorial, vou exemplificar um form utilizando o Zend_Dojo_Form. Para isso, crie em seu application uma pasta chamada &#8220;forms&#8221; e salve dentro dela o arquivo Exemplo.php com o seguinte conteudo:</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/10/cod_zend_form.png"><img class="size-medium wp-image-79" title="Código do Zend_Dojo_Form" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/10/cod_zend_form-300x295.png" alt="Código do Zend_Dojo_Form" width="300" height="295" /></a><p class="wp-caption-text">Código do Zend_Dojo_Form</p></div>
<p>no controller que você irá chamar o form, crie a propriedade:</p>
<p><code>protected $_form;</code></p>
<p>no método Init do controller, você deve adicionar a seguinte linha de código:</p>
<p><code>Zend_Dojo::enableView($this-&gt;view);</code></p>
<p>ainda no controller o método abaixo deve ser criado:</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/10/cod_zend_form2.png"><img class="size-medium wp-image-80" title="método getForm" src="http://www.nivaldoarruda.com.br/wp-content/uploads/2008/10/cod_zend_form2-300x147.png" alt="método getForm" width="300" height="147" /></a><p class="wp-caption-text">método getForm</p></div>
<p>Com esse código, você já terá um formulário validado tanto no serverside quanto no clientside. De uma olhada melhor depois nos filtros e no validadores do ZF, lá você vai encontrar mais opções fora essa que usei. Para visualizar o form, chame ele na ação de sua preferencia do controller com o código:</p>
<p><code>$this-&gt;view-&gt;form = $this-&gt;getForm();</code></p>
<p>No view dessa ação, você deve adicionar a seguinte linha:</p>
<p><code>&lt;?php echo $this-&gt;form ?&gt;</code></p>
<p>E por último, no arquivo de layout, para que ocorra a validação no momento do submit, você deve adicionar essa função abaixo da chamado do dojo:<br />
<script type="text/javascript"><!--
google_ad_client = "pub-6037690795851697";
/* 468x15, NA-meiopost */
google_ad_slot = "4228667083";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
<br/><br />
<code>&lt;?php $this-&gt;dojo()-&gt;javascriptCaptureStart() ?&gt;<br />
function validateForm(formid) {<br />
var form = dijit.byId(formid);<br />
if (!form.validate()) {<br />
alert("Verifique os campos marcados antes de continuar.");<br />
return false;<br />
}</code><br />
<code><br />
return true;<br />
}<br />
&lt;?php $this-&gt;dojo()-&gt;javascriptCaptureEnd() ?&gt;</code></p>
<p>*Edit:<br />
Atendendo ao pedido do Mozart Fazito, segue o arquivo com o post. Comi bola com essas imagens mesmo.</p>
<p><a href='http://www.nivaldoarruda.com.br/wp-content/uploads/2008/11/exemplo_zf_dojo_p2.zip'>exemplo_zf_dojo_p2</a></p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</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/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Integrando o Zend Framework com o Dojo</title>
		<link>http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/</link>
		<comments>http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 11:32:02 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[turorial zend]]></category>
		<category><![CDATA[tutorial dojo]]></category>
		<category><![CDATA[tutorial php]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[Zend_Dojo_Form]]></category>
		<category><![CDATA[Zend_Layout]]></category>
		<category><![CDATA[ZF]]></category>
		<category><![CDATA[ZF+Dojo]]></category>

		<guid isPermaLink="false">http://atriatecnologia.com.br/nivaldo/blog/?p=55</guid>
		<description><![CDATA[Bom, como me bati um pouco para achar boas informações sobre ZF+Dojo, resolvi escrever algo a respeito dessa integração. A princípio esse assunto será  tratado em 2 posts diferentes. Esse primeiro mostra como habilitar o dojo via zend e um próximo  irá exemplificar a criação de um formulário com o Zend_Dojo_Form. Ambos os posts serão [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Bom, como me bati um pouco para achar boas informações sobre ZF+Dojo, resolvi escrever algo a respeito dessa integração. A princípio esse assunto será  tratado em 2 posts diferentes. Esse primeiro mostra como habilitar o dojo via zend e um próximo  irá exemplificar a criação de um formulário com o Zend_Dojo_Form. Ambos os posts serão simples e bem pequenos, pois pretendo preparar ao término de meus estudos um pequeno pdf com tudo que eu aprendi.</p>
<p>Esse código que vou aprensentar, foi testado com o Zend_Layout. Recomendo que você o utilize. A configuração do Zend_Layout é bem simples e os resultados são bem interessantes (mas isso já é assunto para o outro post também).</p>
<ul>
<li>Instalando o Dojo</li>
</ul>
<p>Baixe o pacote: <a title="Dojo ToolKit" href="http://download.dojotoolkit.org/release-1.2.0/dojo-release-1.2.0.tar.gz" target="_blank">Dojo Toolkit 1.2.0: Dojo + Dijit + DojoX</a> e descompacte ele em sua pasta de js, dentro de public (caso esteja utilizando a estrutura de diretório do Zend_Tool). No fim você deve ter um estrutra desse tipo:</p>
<p>js/<br />
&nbsp;&nbsp;&nbsp;dojo/<br />
&nbsp;&nbsp;&nbsp;dijit/<br />
&nbsp;&nbsp;&nbsp;dojox/</p>
<ul>
<li>Habilitando o dojo</li>
</ul>
<p>Dentro da tag &lt;head&gt; de seu html, insira o seguinte código:</p>
<pre name="code" language="php">
&lt;?php
if ($this-&gt;dojo()-&gt;isEnabled()){
&nbsp;&nbsp;$this-&gt;dojo()-&gt;setLocalPath('/js/dojo/dojo.js')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;setDjConfig(array(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'parseOnLoad' =&gt; true,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'extraLocale' =&gt; array('pt-br', 'en-us')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;addStyleSheetModule('dijit.themes.tundra');
}
?&gt;</pre>
<p>Basicamente, esse pequeno script irá realizar o seguinte:</p>
<ol>
<li>Validar se o dojo está habilitado no ZF.</li>
<li>Definir o caminho do script do dojo.</li>
<li>Configurar o script para: Realizar um parse dos widgets no momendo da leitura e carregar as configurações (data, números, moeda) das regiões do Brasil e do EUA.</li>
<li>Carregar o tema &#8220;tundra&#8221; para os widgets do dijit.</li>
</ol>
<ul>
<li>Adicionando código javascript</li>
</ul>
<p>Para adicionar algum código pessoal, você deve escreve-los entre os seguintes comando do ZF:</p>
<pre name="code" language="php">
&lt;?php $this-&gt;dojo()-&gt;javascriptCaptureStart() ?&gt;
//Código JS
&lt;?php $this-&gt;dojo()-&gt;javascriptCaptureEnd() ?&gt;</pre>
<p>Esse método será o responsavel em adicionar todo o script na base que já está na memória para ser &#8220;printado&#8221; mais adiante.</p>
<ul>
<li>Executando o Dojo</li>
</ul>
<p>Para finalizar, você deve escrever no html tudo o que foi gerado e configurado nas linhas anteriores (e verá que mais para frente as configurações do Zend_Dojo_Form também serão escritas aqui) utilizando o comando:</p>
<pre name="code" language="php">&lt;?php echo $this-&gt;dojo(); ?&gt;</pre>
<p>Simples não? ^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/02/16/integrando-o-zend-framework-com-o-dojo-parte-iii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte III'>Integrando o Zend Framework com o Dojo &#8211; Parte III</a> <small>Dando continuidade a nossa integração, vamos dar uma rapida olhada...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/10/29/integrando-o-zend-framework-com-o-dojo-parte-ii/' rel='bookmark' title='Permanent Link: Integrando o Zend Framework com o Dojo &#8211; Parte II'>Integrando o Zend Framework com o Dojo &#8211; Parte II</a> <small>Nessa segunda parte do tutorial, vou exemplificar um form utilizando...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2008/11/27/otimizando-o-dojo-toolkit/' rel='bookmark' title='Permanent Link: Otimizando o Dojo Toolkit'>Otimizando o Dojo Toolkit</a> <small>Se você já está usando o Dojo ou começou com...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2008/10/23/integrando-o-zend-framework-com-o-dojo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
