<?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>Battisti - Blog &#187; PHP</title>
	<atom:link href="http://battisti.etc.br/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://battisti.etc.br</link>
	<description>Tecnologia, Web e um pouco de cultura inútil</description>
	<lastBuildDate>Fri, 27 Jan 2012 11:49:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jQuery Json htmlentities</title>
		<link>http://battisti.etc.br/2011/02/28/jquery-json-htmlentities/</link>
		<comments>http://battisti.etc.br/2011/02/28/jquery-json-htmlentities/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 01:11:59 +0000</pubDate>
		<dc:creator>Battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=1055</guid>
		<description><![CDATA[O nome já diz tudo, como trazer alguma coisa em json vinda do php com o htmlentities $(document).ready(function(){ // faz uma chamada em ajax para preencher os dados da pessoa var url = "urldosistema"; $.getJSON(url, function(json) { $('#codigo).val(json.codigo); var nome = json.nome; var a = $('#nome').html(nome).text(); $('#nome').val(a); }); }); O código var a = $(&#8216;#nome&#8217;).html(nome).text(); [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><p>O nome já diz tudo, como trazer alguma coisa em json vinda do php com o htmlentities</p>
<pre>$(document).ready(function(){

                // faz uma chamada em ajax para preencher os dados da pessoa
                var url =  "urldosistema";
                $.getJSON(url, function(json)
                {
                    $('#codigo).val(json.codigo);
                    var nome = json.nome;
                    var a = $('#nome').html(nome).text();
                    $('#nome').val(a);
                });
    });
</pre>
<p>O código <strong>var a = $(&#8216;#nome&#8217;).html(nome).text(); </strong> é um truque para podemos converter o htmlentities do php em string legível para humanos</p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2011/02/28/jquery-json-htmlentities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Localizar Latitude e Longitude de um Endereço API Google Maps?</title>
		<link>http://battisti.etc.br/2010/03/13/como-localizar-latitude-e-longitude-de-um-endereco-api-google-maps/</link>
		<comments>http://battisti.etc.br/2010/03/13/como-localizar-latitude-e-longitude-de-um-endereco-api-google-maps/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 01:10:04 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=867</guid>
		<description><![CDATA[Essa é uma das primeiras perguntas que alguém faz quando começa a utilizar a API de mapas do google. Bom no meu caso eu queria saber isso NÃO através de JS e sim via PHP! SE VOCÊ QUER SABER QUAL A LATITUDE DE UM ENDEREÇO CLIQUE AQUI. SE FOR PROGRAMADOR CONTINUE LENDO A versão atual [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><p>Essa é uma das primeiras perguntas que alguém faz quando começa a utilizar a API de mapas do google. Bom no meu caso eu queria saber isso NÃO através de JS e sim via PHP!</p>
<p><span id="more-867"></span></p>
<p><a style="font-size: 20px" href="http://battisti.etc.br/scripts/latitude/index.php">SE VOCÊ QUER SABER QUAL A LATITUDE DE UM ENDEREÇO CLIQUE AQUI</a>. SE FOR PROGRAMADOR CONTINUE LENDO <img src='http://battisti.etc.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A versão atual da API de mapas do google e <a href="http://code.google.com/apis/maps/documentation/v3/">versão 3</a> e uma coisa muito legal que tem nesta versão  é que agora você não precisa mais gerar aquela famigerada (bonita palavra não) chave de validação que vamos e convenhamos era um porre total!</p>
<p>Outra coisa muito legal é que o google gentilmente disponibilizou na versão 3 um <em>Webservice</em> que dentre outras coisas faz o geocode, que nada mais é do que a partir de um endereço retornar suas características geográficas (não apenas latitude e longitude, vem um montão de coisa).</p>
<p>Ok e como eu uso este <em>Webservice</em> ? Simples pequeno gafanhoto é só passar o endereço via parâmetro na  seguinte URL:</p>
<p>http://maps.google.com/maps/api/geocode/json?address=<span style="color: #ff0000;">1600+Amphitheatre+Parkway,+Mountain+View,+CA</span>&amp;sensor=<span style="color: #ff0000;">true_or_false</span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">Isso ai vai te retornar um objeto JSON que você vai espetacularmente converter em um PHP Array e zaz e zaz e zaz ali está suas coordenadas!</span></span></p>
<p>Bem por hoje é só pessoal!</p>
<p>Poxa battisti mas eu não sei ler a URL via PHP e minha mãe ta doente e eu quero dar um CTRL + C / CTRL + V e hoje é sexta e meu chefe ta me pertubando e tal será que não rola um <em>codiginho</em>! Ta bom ta bom vamos la então, MAS (sempre tem um mas)  eu usei a função <em>url_encode</em> ou seja essa treta tem que estar instalada no seu servidor, se não estive use essa <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=198">lib aqui</a>!</p>
<p>&nbsp;</p>
<p>Agora sim com código e tudo é hora de dizer tchau!</p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2010/03/13/como-localizar-latitude-e-longitude-de-um-endereco-api-google-maps/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>XML DOM to PHP ARRAY</title>
		<link>http://battisti.etc.br/2010/03/04/xml-dom-to-php-array/</link>
		<comments>http://battisti.etc.br/2010/03/04/xml-dom-to-php-array/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:29:54 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=861</guid>
		<description><![CDATA[Mexer com XML é chato, no PHP é pior ainda! Eu prefiro muito mais um vetorzinho, então como converter aquele XML monstro em array? Modo de uso $aux = new xml2array($string_xml); $cores = $aux-&#62;getResult(); Referência Este cara http://www.akchauhan.com/convert-xml-to-array-using-dom-extension-in-php5/ foi quem escreveu a classe originalmente mas tava com pau e eu dei uma garibada nela!]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><p>Mexer com XML é chato, no PHP é pior ainda! Eu prefiro muito mais um vetorzinho, então como converter aquele XML monstro em array?</p>
<p><script src="http://gist.github.com/321332.js?file=xml2array.php"></script></p>
<p>Modo de uso</p>
<pre>$aux = new xml2array($string_xml);
$cores = $aux-&gt;getResult();</pre>
<h1>Referência</h1>
<p>Este cara <a href="http://www.akchauhan.com/convert-xml-to-array-using-dom-extension-in-php5/">http://www.akchauhan.com/convert-xml-to-array-using-dom-extension-in-php5/</a> foi quem escreveu a classe originalmente mas tava com pau e eu dei uma garibada nela!</p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2010/03/04/xml-dom-to-php-array/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Encoding UTF-8 Problema no PHP</title>
		<link>http://battisti.etc.br/2010/03/01/encoding-utf-8-problema-no-php/</link>
		<comments>http://battisti.etc.br/2010/03/01/encoding-utf-8-problema-no-php/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 14:34:48 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=859</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2010/03/01/encoding-utf-8-problema-no-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vetor PHP Estados Brasileiros</title>
		<link>http://battisti.etc.br/2009/12/07/vetor-php-estados-brasileiros/</link>
		<comments>http://battisti.etc.br/2009/12/07/vetor-php-estados-brasileiros/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 16:03:32 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=785</guid>
		<description><![CDATA[Se você precisa de um vetor com os estados brasileiros ai está // vetor estado $estado&#91;&#34;AC&#34;&#93; = &#34;AC&#34;; $estado&#91;&#34;AL&#34;&#93; = &#34;AL&#34;; $estado&#91;&#34;AP&#34;&#93; = &#34;AP&#34;; $estado&#91;&#34;AM&#34;&#93; = &#34;AM&#34;; $estado&#91;&#34;BA&#34;&#93; = &#34;BA&#34;; $estado&#91;&#34;CE&#34;&#93; = &#34;CE&#34;; $estado&#91;&#34;DF&#34;&#93; = &#34;DF&#34;; $estado&#91;&#34;EC&#34;&#93; = &#34;ES&#34;; $estado&#91;&#34;GO&#34;&#93; = &#34;GO&#34;; $estado&#91;&#34;MA&#34;&#93; = &#34;MA&#34;; $estado&#91;&#34;MG&#34;&#93; = &#34;MG&#34;; $estado&#91;&#34;MT&#34;&#93; = &#34;MT&#34;; $estado&#91;&#34;MS&#34;&#93; = &#34;MS&#34;; $estado&#91;&#34;PA&#34;&#93; [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><p>Se você precisa de um vetor com os estados brasileiros ai está</p>

<div class="wp_syntax"><div class="code"><pre class="php">	<span class="co1">// vetor estado</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;AC&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;AC&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;AL&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;AL&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;AP&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;AP&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;AM&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;AM&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;BA&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;BA&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;CE&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;CE&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;DF&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;DF&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;EC&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;ES&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;GO&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;GO&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;MA&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;MA&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;MG&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;MG&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;MT&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;MT&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;MS&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;MS&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;PA&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;PA&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;PR&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;PR&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;PE&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;PE&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;PI&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;PI&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;RJ&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;RJ&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;RN&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;RN&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;RS&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;RS&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;RO&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;RO&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;RR&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;RR&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;SC&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;SC&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;SP&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;SP&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;SE&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;SE&quot;</span><span class="sy0">;</span>
	<span class="re0">$estado</span><span class="br0">&#91;</span><span class="st0">&quot;TO&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;TO&quot;</span><span class="sy0">;</span></pre></div></div>

</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/12/07/vetor-php-estados-brasileiros/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Exibindo Erros No PHP error_reporting e display_errors</title>
		<link>http://battisti.etc.br/2009/11/26/exibindo-erros-no-php-error_reporting-e-display_errors/</link>
		<comments>http://battisti.etc.br/2009/11/26/exibindo-erros-no-php-error_reporting-e-display_errors/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 22:22:44 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=748</guid>
		<description><![CDATA[Introdução Esta é uma dúvida bem comum, como fazer para exibir os erros gerados pelo PHP em servidores cujas diretivas de exibição de erros estejam desativadas. Como Resolver Primeiramente veja como estão as configuraçoes: value error_reporting display_errors, se a display_erros estiver off então nada vai ser exibido independente do que estiver no error_reporting, Mais sobre [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><h1>Introdução</h1>
<p>Esta é uma dúvida bem comum, como fazer para exibir os erros gerados pelo PHP em servidores cujas diretivas de exibição de erros estejam desativadas.</p>
<h1>Como Resolver</h1>
<p>Primeiramente veja como estão as configuraçoes: value error_reporting display_errors, se a display_erros estiver off então nada vai ser exibido independente do que estiver no error_reporting,</p>
<p>Mais sobre o error_reporting pode ser visto aqui http://php.net/manual/en/function.error-reporting.php.</p>
<p>Para setar o error_reportig e o display_error via PHP use:</p>
<pre>init_set('php_value error_reporting', 6135);
init_set('php_value display_erros', 'On');</pre>
<p>Mas vc vai ter que fazer isso em TODAS as tuas paginas, meio chato né, se estiver ativo o uso do .htaccess no seu servidor então crie um arquivo com este nome dentro da pasta raiz e dentro dele coloque:</p>
<pre>php_value error_reporting 6135
php_flag display_errors On</pre>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/11/26/exibindo-erros-no-php-error_reporting-e-display_errors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DOMPdf Tamanho do Papel Personalizado</title>
		<link>http://battisti.etc.br/2009/11/25/dompdf-tamanho-do-papel-personalizado/</link>
		<comments>http://battisti.etc.br/2009/11/25/dompdf-tamanho-do-papel-personalizado/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:43:54 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=746</guid>
		<description><![CDATA[O Problema Gerar arquivo pdf contendo etiquetas cujo papel não possui um tamanho padrão; O arquivo será gerado utilizando a lib domPdf que pode ser baixada aqui. Como resolver Para resolver este problema você precisa no momento de criar o seu documento passar um vetor com as configurações do papel, veja o exemplo abaixo: require_once(SISTEMA_DIR.&#34;componente/pdf/dompdf_config.inc.php&#34;); [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><h1>O Problema</h1>
<p>Gerar arquivo pdf contendo etiquetas cujo papel não possui um tamanho padrão;</p>
<p>O arquivo será gerado utilizando a lib domPdf que pode ser <a href="http://code.google.com/p/dompdf/">baixada aqui</a>.</p>
<p><span id="more-746"></span></p>
<h1>Como resolver</h1>
<p>Para resolver este problema você precisa no momento de criar o seu documento passar um vetor com as configurações do papel, veja o exemplo abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="pdf">    require_once(SISTEMA_DIR.&quot;componente/pdf/dompdf_config.inc.php&quot;);
    spl_autoload_register('DOMPDF_autoload');
&nbsp;
    $html = &quot;O html da etiqueta&quot;;
    $dompdf = new DOMPDF();
    $dompdf-&amp;gt;load_html($html);
&nbsp;
    $papel = array(0,0,355.00,866.20);
    $dompdf-&amp;gt;set_paper($papel, 'portrait');
&nbsp;
    $dompdf-&amp;gt;render();
    $dompdf-&amp;gt;stream(&quot;etiqueta.pdf&quot;);
    return;</pre></div></div>

<p>A função set_paper por padrão recebe uma string com o nome do papel porém olhando no código fonte eu vi que se for passado um vetor ele emula um novo papel com as informações passadas.</p>
<p>Vale lembrar que o tamanho deve ser informado em pontos e que para converter de mm para pp multiplique por 2.84!</p>
<p><img id="myFxSearchImg" style="border: medium none; position: absolute; z-index: 2147483647; opacity: 0.6; display: none;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADsElEQVR4nK2VTW9VVRSGn33OPgWpYLARbKWhQlCHTogoSkjEkQwclEQcNJEwlfgD/AM6NBo1xjhx5LyJ0cYEDHGkJqhtBGKUpm3SFii3vb2956wPB/t+9raEgSs52fuus89613rftdcNH8/c9q9++oe/Vzb5P+3McyNcfm2CcPj9af9w6gwjTwzvethx3Bx3x8xwd1wNM8dMcTNUHTfFLPnX6nVmZpeIYwf3cWD/PhbrvlPkblAzVFurKS6GmmGqqComaS+qmBoTI0Ncu3mXuGvWnrJ+ZSxweDgnkHf8ndVTdbiT3M7cQp2Z31dRTecHAfqydp4ejhwazh6Zezfnu98E1WIQwB3crEuJ2Y45PBTAQUVR9X4At66AppoEVO1Q8sgAOKJJjw6Am6OquDmvHskZ3R87gW+vlHz98zpmiqphkkRVbQtsfPTOC30lJKFbFTgp83bWh7Zx/uX1B6w3hI3NkkZTqEpBRDBRzG2AQHcwcYwEkOGkTERREbLQ/8HxJwuW7zdYrzfZ2iopy4qqEspKaDYravVm33k1R91Q69FA1VBRzFIVvXbx5AgXT44A8MWP81yfu0utIR2aVK3vfCnGrcUNxp8a7gKYKiLCvY2SUvo/aNtnM3e49ucK9S3p0aDdaT0UAVsKi2tVi6IWwNL9JvdqTdihaz79/l+u/rHMxmaJVMLkS2OoKKLWacdeE3IsSxctc2D5Qcl6vUlVVgNt+fkPPcFFmTw1xruvT7SCd7nuVhDQvECzJH90h0azRKoKFRkAmP5lKTWAGRdefoZL554FQNUxB92WvYeA5UN4PtSqwB2phKqsqMpBgAunRhFR3j49zuU3jnX8k6fHEQKXzh1jbmGDuYU6s4t1rt6socUeLLZHhYO2AHSHmzt19ihTZ48O8Hzl/AmunD/BjTvrvPfNX3hWsNpwJCvwYm+ngug4UilSCSq6k8YPtxDwfA+WRawIWFbgscDiULcCEaWqBFOlrLazurupOSHLqGnEKJAY8TwBEHumqUirAjNm52vEPPRV4p01XXMPAQhUBjcWm9QZwijwokgAeYHlHYA06KR1cT6ZvoV56pDUJQEjw0KeaMgj1hPEY4vz2A4eW0/e1qA7KtQdsxTYAG0H3iG4xyK1Y+xm7XmEPOJZDiENzLi2WZHngeOjj2Pe+sMg4GRYyLAsx7ME4FnsyTD9pr0PEc8zPGRAwKXBkYOPEd96cZRvf11g9MDe7e3R4Z4Q+vyEnn3P4t0XzK/W+ODN5/kPfRLewAJVEQ0AAAAASUVORK5CYII%3D" alt="" width="24" height="24" /></p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/11/25/dompdf-tamanho-do-papel-personalizado/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Arquivo de Idioma para Plugin Joomla</title>
		<link>http://battisti.etc.br/2009/11/18/arquivo-de-idioma-para-plugin-joomla/</link>
		<comments>http://battisti.etc.br/2009/11/18/arquivo-de-idioma-para-plugin-joomla/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 13:49:16 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=728</guid>
		<description><![CDATA[Objetivo Utilizar arquivos de linguagem  em um plugin do joomla. Solução Os arquivos de linguagem podem estar nas seguintes pastas: language:  arquivos de linguagem para o front-end (seu site) administrator/language: arquivos de linguagem para o back-end (admin) O nome do arquivo de linguagem do plugin deve seguir a seguinte padronização: qual o idioma seguindo de [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><h1>Objetivo</h1>
<p>Utilizar arquivos de linguagem  em um plugin do joomla.<span id="more-728"></span></p>
<h1>Solução</h1>
<p>Os arquivos de linguagem podem estar nas seguintes pastas:</p>
<ol>
<li>language:  arquivos de linguagem para o front-end (seu site)</li>
<li>administrator/language: arquivos de linguagem para o back-end (admin)</li>
</ol>
<p>O nome do arquivo de linguagem do plugin deve seguir a seguinte padronização:</p>
<ol>
<li>qual o idioma seguindo de .</li>
<li>palavra plg seguindo de _</li>
<li>tipo do plugin (system/xmlrpc/editor/ &#8230;)</li>
<li>nome do plugin.</li>
</ol>
<p>Se o seu plugin se chama user e é do tipo xmlrpc então o nome de para a lingua inglesa seria: en-GB.plg_xmlrpc_user</p>
<p>Este arquivo deve estar localizado dentro da pasta administrator/language/en-GB/en-GB.plg_xmlrpc_user</p>
<p>No construtor do seu plugin você deve fazer uma chamada para o método $this-&gt;loadLanguage( &#8221;, JPATH_ADMINISTRATOR ); a fim de que o joomla carregue o arquivo de linguagem, fica assim:</p>

<div class="wp_syntax"><div class="code"><pre class="sql"><span class="kw1">FUNCTION</span> plgXMLRPCBlogger<span class="br0">&#40;</span>&amp;amp;$subject<span class="sy0">,</span> $config<span class="br0">&#41;</span> <span class="br0">&#123;</span>
   parent::__construct<span class="br0">&#40;</span>$subject<span class="sy0">,</span> $config<span class="br0">&#41;</span>;
   $this<span class="sy0">-</span>&amp;gt;loadLanguage<span class="br0">&#40;</span> <span class="st0">''</span><span class="sy0">,</span> JPATH_ADMINISTRATOR <span class="br0">&#41;</span>;
 <span class="br0">&#125;</span></pre></div></div>

<p>Para utilizar uma constante da sua linguagem utilize JText::_( &#8216;CONSTANTE&#8217; )</p>
<p>Agradeço aqui ao Luiz do <a href="http://weber.eti.br/">http://weber.eti.br/</a> pela ajuda em mais esta empreitada.</p>
<p><img id="myFxSearchImg" style="border: medium none; position: absolute; z-index: 2147483647; opacity: 0.6; display: none;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADsElEQVR4nK2VTW9VVRSGn33OPgWpYLARbKWhQlCHTogoSkjEkQwclEQcNJEwlfgD/AM6NBo1xjhx5LyJ0cYEDHGkJqhtBGKUpm3SFii3vb2956wPB/t+9raEgSs52fuus89613rftdcNH8/c9q9++oe/Vzb5P+3McyNcfm2CcPj9af9w6gwjTwzvethx3Bx3x8xwd1wNM8dMcTNUHTfFLPnX6nVmZpeIYwf3cWD/PhbrvlPkblAzVFurKS6GmmGqqComaS+qmBoTI0Ncu3mXuGvWnrJ+ZSxweDgnkHf8ndVTdbiT3M7cQp2Z31dRTecHAfqydp4ejhwazh6Zezfnu98E1WIQwB3crEuJ2Y45PBTAQUVR9X4At66AppoEVO1Q8sgAOKJJjw6Am6OquDmvHskZ3R87gW+vlHz98zpmiqphkkRVbQtsfPTOC30lJKFbFTgp83bWh7Zx/uX1B6w3hI3NkkZTqEpBRDBRzG2AQHcwcYwEkOGkTERREbLQ/8HxJwuW7zdYrzfZ2iopy4qqEspKaDYravVm33k1R91Q69FA1VBRzFIVvXbx5AgXT44A8MWP81yfu0utIR2aVK3vfCnGrcUNxp8a7gKYKiLCvY2SUvo/aNtnM3e49ucK9S3p0aDdaT0UAVsKi2tVi6IWwNL9JvdqTdihaz79/l+u/rHMxmaJVMLkS2OoKKLWacdeE3IsSxctc2D5Qcl6vUlVVgNt+fkPPcFFmTw1xruvT7SCd7nuVhDQvECzJH90h0azRKoKFRkAmP5lKTWAGRdefoZL554FQNUxB92WvYeA5UN4PtSqwB2phKqsqMpBgAunRhFR3j49zuU3jnX8k6fHEQKXzh1jbmGDuYU6s4t1rt6socUeLLZHhYO2AHSHmzt19ihTZ48O8Hzl/AmunD/BjTvrvPfNX3hWsNpwJCvwYm+ngug4UilSCSq6k8YPtxDwfA+WRawIWFbgscDiULcCEaWqBFOlrLazurupOSHLqGnEKJAY8TwBEHumqUirAjNm52vEPPRV4p01XXMPAQhUBjcWm9QZwijwokgAeYHlHYA06KR1cT6ZvoV56pDUJQEjw0KeaMgj1hPEY4vz2A4eW0/e1qA7KtQdsxTYAG0H3iG4xyK1Y+xm7XmEPOJZDiENzLi2WZHngeOjj2Pe+sMg4GRYyLAsx7ME4FnsyTD9pr0PEc8zPGRAwKXBkYOPEd96cZRvf11g9MDe7e3R4Z4Q+vyEnn3P4t0XzK/W+ODN5/kPfRLewAJVEQ0AAAAASUVORK5CYII%3D" alt="" width="24" height="24" /></p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/11/18/arquivo-de-idioma-para-plugin-joomla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla Plugin XMLRPC Exemplo</title>
		<link>http://battisti.etc.br/2009/11/17/joomla-xmlrpc-exemplo/</link>
		<comments>http://battisti.etc.br/2009/11/17/joomla-xmlrpc-exemplo/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 13:12:49 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=710</guid>
		<description><![CDATA[Objetivo Escrever e entender os plugin que recebem as chamadas utilizando XMLRPC, vamos mexer com um cliente e um servidor Introdução O XMLRPC é uma tecnologia que permite a você executar métodos do Joomla remotamente a partir de outro aplicativo. Nativamente no joomla já vem instalado com algumas chamadas XMLRPC: Plugin joomla: fornece o método [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><h1>Objetivo</h1>
<p>Escrever e entender os plugin que recebem as chamadas utilizando XMLRPC, vamos mexer com um cliente e um servidor</p>
<h1>Introdução</h1>
<p>O XMLRPC é uma tecnologia que permite a você executar métodos do Joomla remotamente a partir de outro aplicativo. Nativamente no joomla já vem instalado com algumas chamadas XMLRPC:<span id="more-710"></span></p>
<ol>
<li>Plugin joomla: fornece o método searchSite permite executar consultas ao conteúdo de um site remotamente;</li>
<li>System: são os métodos nativos do próprio joomla para manipular os demais plugins que executam XMLRPC.</li>
</ol>
<p>O Joomla utilizar a biblioteca <a href="http://phpxmlrpc.sourceforge.net/ ">phpxmlrpc</a>, para gerenciar as chamadas XMLRPC, eu aconselho você a também utilizá-la em seus clientes.</p>
<h1>Antes de Começar</h1>
<p>Antes de começar a codificar vamos configurar no joomla</p>
<ol>
<li>Acesse as configurações globais</li>
<li>System</li>
<li>Enable Web Services (Habilitar Web Services): marque como <strong>Sim</strong></li>
<li>Debug Settings (Debugar Configurações) marque como <strong>Sim</strong></li>
</ol>
<p>A configuração Debug Settings deve apenas ficar ativa no seu ambiente de desenvolvimento, no ambiente de produção ela deve ficar marcada como <strong>não</strong>.</p>
<h1>Debugger</h1>
<p>Desenvolver Web Service requer ferramentas de debug mais elaboradas haja visto que os print_r e die causam efeitos estranhos no códgo fonte, sendo assim vou apresentar duas ferramentas de debug.</p>
<h2>Debug Nativo</h2>
<p>O próprio joomla já fornece um debug para XMLRPC, para o acessar:</p>
<ol>
<li>Acesse as configurações globais</li>
<li>System</li>
<li>Habilite a opção Debug System</li>
</ol>
<p>Depois disso acesse:</p>
<p>http://seusite/xmlrpc/client.php</p>
<h2>Debug com o Phpxmlrpc</h2>
<p>Dentro da pasta do phpxmlrpc existe uma pasta chamada debbuger, para utilizar o debug:  e acesse a pasta debugger, por aqui você pode testar o seu webservice.</p>
<ol>
<li>Copie o arquivo xmlrpc.inc que está na pasta lib para dentro da pasta debugger</li>
<li>Copie o arquivo xmlrpc_wrappers.inc que está na pasta lib para dentro da pasta debugger</li>
<li>Acesse o endereço http://seusite/debugger/</li>
<li>Configure o campo Address para Endereço do site onde está o seu plugin, exemplo localhost e o campo Path com o caminho APÓS o localhost onde estão os plugins, no caso do joomla é /xmlrpc/index.php.</li>
<li>Escolha uma das ações: List available methods, Describe method, Execute method, Generate stub for method call</li>
<li>Clique no botão executar</li>
</ol>
<p>Caso você esteja trabalhando com uma instalação nova do Joomla então você terá a disposição os seguintes métodos:</p>
<ol>
<li>joomla.searchSite</li>
<li>system.listMethods</li>
<li>system.methodHelp</li>
<li>system.methodSignature</li>
<li>system.multicall</li>
<li>system.getCapabilities</li>
</ol>
<h1>Criando um Cliente</h1>
<p>Vamos criar um cliente para acessar o método searchSite da classe plgXMLRPCJoomla, o retorno desse método é um vetor um todas as matérias que contenham um determinado texto:</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="kw2">function</span> xmlrpc_joomla_searchSite <span class="br0">&#40;</span><span class="re0">$p1</span><span class="sy0">,</span> <span class="re0">$p2</span><span class="sy0">,</span> <span class="re0">$debug</span><span class="sy0">=</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<span class="re0">$client</span> <span class="sy0">=&amp;</span>amp<span class="sy0">;</span> <span class="kw2">new</span> xmlrpc_client<span class="br0">&#40;</span><span class="st_h">'/xmlrpc/index.php'</span><span class="sy0">,</span> <span class="st_h">'seu_site_sem_http'</span><span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>port <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>method <span class="sy0">=</span> <span class="st_h">'http'</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>errno <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
port <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>method <span class="sy0">=</span> <span class="st_h">'http'</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>errno <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>errstr <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>authtype <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>cert <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>certpass <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>cacert <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>cacertdir <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>key <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>keypass <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>verifypeer <span class="sy0">=</span> <span class="kw4">true</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>verifyhost <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>no_multicall <span class="sy0">=</span> <span class="kw4">false</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>proxy <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>proxyport <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>proxy_user <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>proxy_pass <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>proxy_authtype <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>cookies <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">&#40;</span>
<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>accepted_compression <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request_compression <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>xmlrpc_curl_handle <span class="sy0">=</span> <span class="kw4">NULL</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>keepalive <span class="sy0">=</span> <span class="kw4">true</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>accepted_charset_encodings <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">&#40;</span>
  <span class="nu0">0</span> <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> <span class="st_h">'UTF-8'</span><span class="sy0">,</span>
  <span class="nu0">1</span> <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> <span class="st_h">'ISO-8859-1'</span><span class="sy0">,</span>
  <span class="nu0">2</span> <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> <span class="st_h">'US-ASCII'</span><span class="sy0">,</span>
<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request_charset_encoding <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>return_type <span class="sy0">=</span> <span class="st_h">'xmlrpcvals'</span><span class="sy0">;</span>
<span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>setDebug<span class="br0">&#40;</span><span class="re0">$debug</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$msg</span> <span class="sy0">=&amp;</span>amp<span class="sy0">;</span> <span class="kw2">new</span> xmlrpcmsg<span class="br0">&#40;</span><span class="st_h">'joomla.searchSite'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$p1</span> <span class="sy0">=&amp;</span>amp<span class="sy0">;</span> <span class="kw2">new</span> xmlrpcval<span class="br0">&#40;</span><span class="re0">$p1</span><span class="sy0">,</span> <span class="st_h">'string'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$msg</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>addparam<span class="br0">&#40;</span><span class="re0">$p1</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$p2</span> <span class="sy0">=&amp;</span>amp<span class="sy0">;</span> <span class="kw2">new</span> xmlrpcval<span class="br0">&#40;</span><span class="re0">$p2</span><span class="sy0">,</span> <span class="st_h">'string'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$msg</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>addparam<span class="br0">&#40;</span><span class="re0">$p2</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$res</span> <span class="sy0">=&amp;</span>amp<span class="sy0">;</span> <span class="re0">$client</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>send<span class="br0">&#40;</span><span class="re0">$msg</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st_h">''</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$res</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>faultcode<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">return</span> <span class="re0">$res</span><span class="sy0">;</span> <span class="kw1">else</span> <span class="kw1">return</span> php_xmlrpc_decode<span class="br0">&#40;</span><span class="re0">$res</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>value<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="re0">$result</span> <span class="sy0">=</span> xmlrpc_joomla_searchSite<span class="br0">&#40;</span><span class="st_h">'Palavra Chave'</span><span class="sy0">,</span><span class="st_h">'exact'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<a href="http://www.php.net/print_r"><span class="kw3">print_r</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span><span class="sy0">;</span>
<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Pronto temos o nosso cliente rodando. Todos os plugins devem estar dentro da pasta plugins/xmlrpc o método que estamos executando é o joomla.searchSite ou seja abra o arquivo joomla.php que dentro dele tem a definição deste método.</p>
<p>Este plugin joomla na versão 1.5.14 tem um bug que eu acabei  acertando e mandando para o repositório. http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&amp;tracker_item_id=18748</p>
<h1>Criando o Servidor</h1>
<p>A parte do servidor exige atenção pois a partir daqui você estará dando permissão para qualquer pessoa de qualquer lugar do mundo executar algum método então escreva-o com sabedoria:</p>
<p>Vou colar aqui um exemplo do plugin joomla ok:</p>
<pre>defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.plugin.plugin');

class plgXMLRPCJoomla extends JPlugin
{
	function plgXMLRPCJoomla(&amp; $subject, $config){
		parent::__construct($subject, $config);
	}

	function onGetWebServices(){
		global $xmlrpcString;
		// Initialize variables
		$services = array();
		// Site search service
		$services['joomla.searchSite'] = array( // nome do método que você irá chamar do cliente
			'function' =&gt; 'plgXMLRPCJoomlaServices::searchSite', // nome do método que irá executar qnd uma chamada acontecer
			'docstring' =&gt; 'Searches a remote site.', // apenas uma descrição
			'signature' =&gt; array(array($xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)) // o primeiro parâmetro indica o tipo do retorno e os demais são os parâmetros da função			);
		return $services;
	}
}

class plgXMLRPCJoomlaServices {

	function searchSite($searchword, $phrase='', $order='')
	{
		global $mainframe;

		// Initialize variables
		$db		=&amp; JFactory::getDBO();

		// Prepare arguments
		$searchword	= $db-&gt;getEscaped( trim( $searchword ) );
		$phrase		= '';
		$ordering	= '';

		// Load search plugins and fire the onSearch event
		JPluginHelper::importPlugin( 'search' );
		$results = $mainframe-&gt;triggerEvent( 'onSearch', array( $searchword, $phrase, $ordering ) );

		// Iterate through results building the return array
		require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_search'.DS.'helpers'.DS.'search.php');

		foreach ($results as $i=&gt;$rows)
		{
			foreach ($rows as $j=&gt;$row) {
				$results[$i][$j]-&gt;href = eregi('^(http|https)://', $row-&gt;href) ? $row-&gt;href : JURI::root().'/'.$row-&gt;href;
				$results[$i][$j]-&gt;text = SearchHelper::prepareSearchContent( $row-&gt;text, 200, $searchword);
			}
		}
		return $results;
	}
}</pre>
<p>Algumas dicas sobre o servidor:</p>
<ol>
<li>Para manter compatibilidade com o php4 não use __construct e sim o nome da classe como sendo o construtor</li>
<li>Após criar o plugin você precisa <span style="color: #ff0000;">INSTALAR</span> e <span style="color: #ff0000;">ATIVAR</span> antes de fazer qualquer chamada ao plugin caso contrário irá receber uma mensagem de Unknow Method</li>
</ol>
<h1>Observação Importantes</h1>
<ol>
<li>Em ambiente de teste onde você tem o seu cliente e o servidor no MESMO servidor é importante que o servidor conheça o endereço que você está acessando caso contrário vai dar um erro de (An error occurred: Code: 5 Reason: &#8216;Didn&#8217;t receive 200 OK from remote server. (HTTP/1.0 302 Found)&#8217;) ou seja, o seu site não foi encontrado, nesse caso adicione o seu ambiente de teste no host da sua máquina servidora.</li>
<li>&#8216;signature&#8217; =&gt; array(array($xmlrpcString, $xmlrpcString, $xmlrpcString)) : Na  assinatura do método o primeiro parâmetro define o tipo do retorno e os demais são os tipos dos parâmetros da função que será chamada</li>
</ol>
<h1>Descrição do Erros</h1>
<p>Abaixo tem uma lista dos erros que o RPC pode te retornar</p>
<pre>
Fault codes for your servers should start at the value indicated by the global $xmlrpcerruser + 1.
Standard errors returned by the server include:
1 Unknown method
Returned if the server was asked to dispatch a method it didn't know about

2 Invalid return payload
This error is actually generated by the client, not server, code, but signifies that a server returned something it couldn't understand. A more detailed error report is sometimes added onto the end of the phrase above.

3 Incorrect parameters
This error is generated when the server has signature(s) defined for a method, and the parameters passed by the client do not match any of signatures.

4 Can't introspect: method unknown
This error is generated by the builtin system.* methods when any kind of introspection is attempted on a method undefined by the server.

5 Didn't receive 200 OK from remote server
This error is generated by the client when a remote server doesn't return HTTP/1.1 200 OK in response to a request. A more detailed error report is added onto the end of the phrase above.

6 No data received from server
This error is generated by the client when a remote server returns HTTP/1.1 200 OK in response to a request, but no response body follows the HTTP headers.

7 No SSL support compiled in
This error is generated by the client when trying to send a request with HTTPS and the CURL extension is not available to PHP.

8 CURL error
This error is generated by the client when trying to send a request with HTTPS and the HTTPS communication fails.

9-14 multicall errors
These errors are generated by the server when something fails inside a system.multicall request.

100- XML parse errors
Returns 100 plus the XML parser error code for the fault that occurred. The faultString returned explains where the parse error was in the incoming XML stream.
</pre>
<h1>Livros</h1>
<p>Infelizmente os livros sobre joomla em português não são muitos mas se você quiser dar uma olhada o submarino oferece algumas opção como o  <a href="http://www.submarino.com.br/produto/1/21403480?franq=264916">Joomla Guia do Operador,</a> caso queira em inglês eu recomendo o livro Mastering Joomla.</p>
<h1>Links Úteis</h1>
<ul>
<li><a href='http://forum.joomla.org/index.php/topic,252028.msg1168161.html'>http://forum.joomla.org/index.php/topic,252028.msg1168161.html</a></li>
<li><a href='http://phpxmlrpc.sourceforge.net/'>Download da Lib</a></li>
<li><a href='http://www.packtpub.com/files//code/2820_Code.zip'> Download dos exemplos do livro Mastering Joomla</a></li>
<li><a href='http://phpxmlrpc.sourceforge.net/doc-2/ch07s05.html'>Problemas com o xmlrpc<a/></li>
<li><a href='http://docs.joomla.org/How_to_create_a_content_plugin'>Como criar plugins<a/></li>
<li><a href='http://issuu.com/wonkateuton/docs/manualjoomla'>Livro mastering joomla<a/></li>
</ul>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/11/17/joomla-xmlrpc-exemplo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php_network_getaddresses: getaddrinfo failed: Name or service not known in</title>
		<link>http://battisti.etc.br/2009/11/17/php_network_getaddresses-getaddrinfo-failed-name-or-service-not-known-in/</link>
		<comments>http://battisti.etc.br/2009/11/17/php_network_getaddresses-getaddrinfo-failed-name-or-service-not-known-in/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 01:01:59 +0000</pubDate>
		<dc:creator>battisti</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://battisti.etc.br/?p=706</guid>
		<description><![CDATA[Cara esse erro me deixou brabo, olha só que zelda, eu queria abrir uma conexão via http, com o site do google a coisa funcionava com o meu site não, olha o exemplo $str = ''; $sock = fsockopen&#40;'google.com.br', 80&#41;; $req = &#34;GET / HTTP/1.1\r\n&#34; . &#160; &#34;Host: www.google.com\r\n&#34; . &#160; &#34;Connection: close\r\n&#34; . &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="mwordstext"><p>Cara esse erro me deixou brabo, olha só que zelda, eu queria abrir uma conexão via http, com o site do google a coisa funcionava com o meu site não, olha o exemplo</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="re0">$str</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
<span class="re0">$sock</span> <span class="sy0">=</span> <a href="http://www.php.net/fsockopen"><span class="kw3">fsockopen</span></a><span class="br0">&#40;</span><span class="st_h">'google.com.br'</span><span class="sy0">,</span> <span class="nu0">80</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$req</span> <span class="sy0">=</span>     <span class="st0">&quot;GET / HTTP/1.1<span class="es1">\r</span><span class="es1">\n</span>&quot;</span> <span class="sy0">.</span>
&nbsp;
        <span class="st0">&quot;Host: www.google.com<span class="es1">\r</span><span class="es1">\n</span>&quot;</span> <span class="sy0">.</span>
&nbsp;
        <span class="st0">&quot;Connection: close<span class="es1">\r</span><span class="es1">\n</span>&quot;</span> <span class="sy0">.</span>
&nbsp;
        <span class="st0">&quot;<span class="es1">\r</span><span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<a href="http://www.php.net/fwrite"><span class="kw3">fwrite</span></a><span class="br0">&#40;</span><span class="re0">$sock</span><span class="sy0">,</span> <span class="re0">$req</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$buff</span> <span class="sy0">=</span> <a href="http://www.php.net/fread"><span class="kw3">fread</span></a><span class="br0">&#40;</span><span class="re0">$sock</span><span class="sy0">,</span> <span class="nu0">1024</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
    <span class="re0">$str</span> <span class="sy0">.=</span> <span class="re0">$sock</span><span class="sy0">;</span></pre></div></div>

<p>Agora qnd eu colocava:</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="re0">$sock</span> <span class="sy0">=</span> <a href="http://www.php.net/fsockopen"><span class="kw3">fsockopen</span></a><span class="br0">&#40;</span><span class="st_h">'localhost'</span><span class="sy0">,</span> <span class="nu0">80</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>dava o erro que originou o título deste post, o problema não é do PHP mas sim do DNS, adicionei no arquivos hosts a linha</p>
<pre>192.168.0.1     webgenium:80</pre>
<p>e a coisa funcionou!</p>
</div><!-- fim mwordstext -->]]></content:encoded>
			<wfw:commentRss>http://battisti.etc.br/2009/11/17/php_network_getaddresses-getaddrinfo-failed-name-or-service-not-known-in/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

