<?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"
	>

<channel>
	<title>Blue MUIOMUIO &#187; Tutoriais</title>
	<atom:link href="http://blue.muiomuio.net/category/tutoriais/feed/" rel="self" type="application/rss+xml" />
	<link>http://blue.muiomuio.net</link>
	<description>Blogue sobre tecnologia, internet, web design, etc..</description>
	<pubDate>Fri, 18 Jul 2008 21:50:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Validação de campos com JavaScript</title>
		<link>http://blue.muiomuio.net/validacao-de-campos-com-javascript/</link>
		<comments>http://blue.muiomuio.net/validacao-de-campos-com-javascript/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 21:50:16 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/?p=748</guid>
		<description><![CDATA[Em junho escrevi um artigo sobre a validação de campos usando o jQuery. É uma forma eficaz, pratica e moderna mas que nem sempre o cliente gosta.
Esta semana vi-me forçado a criar uma validação de campos á maneira antiga devido a uma escolha do cliente.
O código que se segue é bastante básico portanto se algum [...]]]></description>
			<content:encoded><![CDATA[<p>Em junho escrevi um artigo sobre a <a href="http://blue.muiomuio.net/validar-formularios-com-jquery/">validação de campos usando o jQuery</a>. É uma forma eficaz, pratica e moderna mas que nem sempre o cliente gosta.<br />
Esta semana vi-me forçado a criar uma validação de campos á maneira antiga devido a uma escolha do cliente.</p>
<p>O código que se segue é bastante básico portanto se algum especialista em javascript quiser ajudar a criar um código igualmente simples e eficaz com uma estrutura melhor eu agradeço.</p>
<p><code>&lt;SCRIPT&gt;<br />
function validate() {<br />
var nome=form1.nome.value;<br />
var empresa=form1.empresa.value;<br />
var telefone=form1.telefone.value;<br />
if (nome=='') {<br />
alert('O seu Nome é um campo obrigatório');<br />
return false;<br />
}<br />
if (empresa=='') {<br />
alert('Por favor indique qual a Empresa');<br />
return false;<br />
}<br />
if (telefone=='') {<br />
alert('O campo Telefone é um campo obrigatório');<br />
return false;<br />
}<br />
}<br />
&lt;/SCRIPT&gt;<br />
</code></p>
<p>Na primeira parte declaro variáveis caso tenha de adicionar mais código para trabalhar com o valor dos campos. A seguir faço a comparação caso os campos estejam vazios lança o alerta.<br />
De forma a tornar o formulário mais coeso deveria verificar também se os campos não tiverem um determinado numero de caracteres para não validar.<br />
Por agora este código chega para o que pretendo que é lançar um alert caso o cliente não preencha os campos obrigatórios.</p>
<p>Agora de forma a que o formulário não processe antes de verificar se os campos obrigatórios estão preenchidos é necessário antes da action declarar o seguinte: </p>
<p><code>onsubmit="return validate();"</code></p>
<p>Assim quando o formulário for submetido primeiro chama a função validate().<br />
Como podes ver o código é relativamente simples, pode ser melhorado em vários aspectos e adaptados como verificar se o telefone possui apenas valores numéricos, se o nome ou empresa não tem espaços apenas para não ficarem vazios e se têm mais de 1 ou 2 caracteres, etc&#8230;</p>
<p>Ficam as sugestões para melhorares o código e caso o faças, partilha-o comigo.</p>
<p>Caso queiras aprender mais sobre JavaScript aconselho-te por começares a ler o tutorial de javascript da <a href="http://www.w3schools.com/JS/default.asp">w3Schools</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/validacao-de-campos-com-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Validar formulários com jQuery</title>
		<link>http://blue.muiomuio.net/validar-formularios-com-jquery/</link>
		<comments>http://blue.muiomuio.net/validar-formularios-com-jquery/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 17:45:36 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[validar campos formulario]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/?p=743</guid>
		<description><![CDATA[Normalmente quando crio um formulário apenas depois de o processar é que o PHP envia a mensagem de erro o que pode ser chato para o cliente especialmente se o formulário for algo extenso. Não quero que o cliente desista apenas porque o formulário complicou tudo.
A solução é então usar JavaScript para detectar se os [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente quando crio um formulário apenas depois de o processar é que o PHP envia a mensagem de erro o que pode ser chato para o cliente especialmente se o formulário for algo extenso. Não quero que o cliente desista apenas porque o formulário complicou tudo.</p>
<p>A solução é então usar JavaScript para detectar se os campos estão bem preenchidos ou não e nos dias de hoje não se justifica usar prompts para alertar o cliente de algo.<br />
A solução é relativamente simples com <a href="http://jquery.com/">jQuery</a>.</p>
<p><code><strong>//Filtros</strong><br />
var filters = {<br />
    requerido: function(el) {return ($(el).val() != ” &#038;&#038; $(el).val() != -1);},<br />
    email: function(el) {return /^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/.test($(el).val());},<br />
    telefono: function(el){return /^[0-9]*$/.test($(el).val());}};<br />
<strong>// Extenções</strong><br />
$.extend({<br />
	stop: function(e){<br />
        if (e.preventDefault) e.preventDefault();<br />
        if (e.stopPropagation) e.stopPropagation();<br />
    }<br />
});<br />
<strong>// Código</strong><br />
$(document).ready(function(){<br />
	$(”form.validable”).bind(”submit”, function(e){<br />
		if (typeof filters == ‘undefined’) return;<br />
	    $(this).find(”input, textarea, select”).each(function(x,el){<br />
	        if ($(el).attr(”className”) != ‘undefined’) {<br />
	        $.each(new String($(el).attr(”className”)).split(” “), function(x, klass){<br />
	            if ($.isFunction(filters[klass]))<br />
	                if (!filters[klass](el))  $(el).addClass(”error”);<br />
	        });<br />
	        }<br />
	    });<br />
		if ($(this).find(”.error”).size() > 0) {<br />
			$.stop(e || window.event);<br />
			return false;<br />
		}<br />
	    return true;<br />
	});<br />
});<br />
	</code></p>
<h2>Explicação</h2>
<p>A parte de processamento do script começa com <strong>$(document).ready</strong> o que faz com que o script seja processado apenas quando a página for carregada.</p>
<p>Quando o conteúdo é carregado o script percorre todos os formulários procurando uma class de CSS chamada <strong>validable</strong> (class=&#8221;validable&#8221;), podes editar esta variável no código do script, e adiciona um listener quando o formulário for submetido.</p>
<p>Após o formulário ser submetido o script percorre todos os elementos <strong>&lt;input /&gt;, &lt;textarea /&gt; e &lt;select /&gt;</strong> procurando as suas classes e comparando-as com as declaradas na zona dos filtros.<br />
O objecto filters é composto de uma série de métodos que são efectuados para validar os elementos de acordo com as classes. </p>
<p>Se o elemento do html não tiver uma classe declarada é adicionada a class error (class=&#8221;error&#8221;) ao elemento e não é efectuada a verificação do campo.</p>
<p>Podes testar o script <a href="http://www.anieto2k.com/demo/validable/">aqui</a>. Este tutorial foi adaptado para português. O tutorial original pode ser visto no <a href="http://www.anieto2k.com/2008/06/25/validar-formularios-con-jquery/">anieto2k.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/validar-formularios-com-jquery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8 dicas uteis em CSS</title>
		<link>http://blue.muiomuio.net/8-dicas-uteis-em-css/</link>
		<comments>http://blue.muiomuio.net/8-dicas-uteis-em-css/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 12:11:37 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[alinhamento vertical]]></category>

		<category><![CDATA[auto]]></category>

		<category><![CDATA[centrar horizontal]]></category>

		<category><![CDATA[css tips]]></category>

		<category><![CDATA[hidden]]></category>

		<category><![CDATA[horizontal alignment]]></category>

		<category><![CDATA[impedir]]></category>

		<category><![CDATA[layout break]]></category>

		<category><![CDATA[line height]]></category>

		<category><![CDATA[link break]]></category>

		<category><![CDATA[links partidos]]></category>

		<category><![CDATA[meio ecra]]></category>

		<category><![CDATA[nowrap]]></category>

		<category><![CDATA[overflow]]></category>

		<category><![CDATA[remove link outline]]></category>

		<category><![CDATA[remover border links]]></category>

		<category><![CDATA[w3c maujor]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/8-dicas-uteis-em-css/</guid>
		<description><![CDATA[O CSS Globe publicou á uns tempos um artigo com 8 dicas CSS interessantes. No artigo intitulado 8 Premium One Line CSS Tips podem encontrar exemplos de algumas destas linhas em funcionamento.


Alinhamento vertical com Line-Height
line-height:24px;

Quando se atribuí uma altura (height) fixa a um bloco pode-se usar a propriedade line-height para centrar verticalmente o conteúdo.
Mais sobre [...]]]></description>
			<content:encoded><![CDATA[<p>O CSS Globe publicou á uns tempos um artigo com 8 dicas CSS interessantes. No artigo intitulado <a href="http://www.cssglobe.com/post/1392/8-premium-one-line-css-tips">8 Premium One Line CSS Tips</a> podem encontrar exemplos de algumas destas linhas em funcionamento.</p>
<ul>
<li>
<h2>Alinhamento vertical com Line-Height</h2>
<p><code>line-height:24px;</code><br />
<br />
Quando se atribuí uma altura (height) fixa a um bloco pode-se usar a propriedade line-height para centrar verticalmente o conteúdo.<br />
Mais sobre o line-height:<br />
<a href="http://www.w3schools.com/css/pr_dim_line-height.asp">http://www.w3schools.com/css/pr_dim_line-height.asp</a><br />
<a href="http://www.maujor.com/tutorial/elinhas.php">http://www.maujor.com/tutorial/elinhas.php</a>
</li>
<p></p>
<li>
<h2>Impedir que o conteúdo saia fora do layout</h2>
<p><code>overflow:hidden;</code></p>
<p>Este código irá esconder todo o conteúdo que sair fora do layout. Imaginando que temos um DIV com 500px de largura e um link enorme. O texto do link que ultrapassar a largura definida (500px) não irá aparecer.<br />
Se quiserem que apareça um scroll para que o conteúdo mostre todo e apenas quando o conteúdo ultrapassar as dimensões definidas podem usar o seguinte código:</p>
<p><code>overflow:auto;</code>
</li>
<p></p>
<li>
<h2>Impedir que o texto se parta</h2>
<p><code>white-space:nowrap;</code></p>
<p>Podem ver um exemplo <a href="http://webdesign.about.com/od/examples/l/bl_htmltablesattributes_nowrap.htm">aqui</a> do que acontece quando se usa o nowrap.</li>
<p></p>
<li>
<h2>Centrar blocos horizontalmente</h2>
<p><code>margin:0 auto;</code></p>
<p>O valor auto funciona para as margens laterais (esquerda e direita). Isto fará com que o bloco fique centrado horizontalmente.</li>
<p></p>
<li>
<h2>Remover borders de links activos</h2>
<p>Quando se clica num link aparece um border á sua volta. Já falei disso <a href="http://blue.muiomuio.net/css-remove-link-dot/">aqui</a> e como remover este link. Nada mais simples:</p>
<p><code>outline:none;<br />
<br />
</code></li>
</ul>
<p>Sem dúvida, excelentes dicas  <img src='http://blue.muiomuio.net/wp-includes/images/smilies/icon_cool.gif' alt=':cool:' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/8-dicas-uteis-em-css/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Botões Liquidos com CSS &#038; HTML</title>
		<link>http://blue.muiomuio.net/html-css-liquid-button/</link>
		<comments>http://blue.muiomuio.net/html-css-liquid-button/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 20:37:03 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[botao liquido]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[liquid button]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/html-css-liquid-button/</guid>
		<description><![CDATA[Por vezes na construção de sites deparo-me com um problema, não quero criar uma imagem para cada botão que crio e não me apetece ter um botão quadrado completamente plano, por vezes pode mesmo quebrar o design do site.
Código HTML
A tag BUTTON tem uma maior capacidade de personalização que usando input type=submit.
Esta tag foi introduzido [...]]]></description>
			<content:encoded><![CDATA[<p>Por vezes na construção de sites deparo-me com um problema, não quero criar uma imagem para cada botão que crio e não me apetece ter um botão quadrado completamente plano, por vezes pode mesmo quebrar o design do site.</p>
<h2>Código HTML</h2>
<p>A tag BUTTON tem uma maior capacidade de personalização que usando input type=submit.<br />
Esta tag foi introduzido com a versão 4.01 do HTML e permite, por exemplo, que sejam adicionadas imagens dentro dele. </p>
<p>Fica aqui algumas referencias úteis:</p>
<ul>
<li><a href="http://particletree.com/features/rediscovering-the-button-element/">http://particletree.com/features/rediscovering-the-button-element/</a></li>
<li><a href="http://www.htmlhelp.com/reference/html40/forms/button.html">http://www.htmlhelp.com/reference/html40/forms/button.html</a></li>
<li><a href="http://www.w3schools.com/tags/tag_button.asp">http://www.w3schools.com/tags/tag_button.asp</a></li>
</ul>
<p>Sem dúvida que a grande vantagem da TAG BUTTON é a sua capacidade de ter conteúdo e é essa capacidade que vou explorar.</p>
<p><code>&lt;button&gt;&lt;span&gt;&lt;em&gt;Texto Botão&lt;/em&gt;&lt;/span&gt;&lt;/button&gt;</code></p>
<p>O objectivo com este código é criar um botão que permita ter um comprimento variável adaptando-se ao seu conteúdo de forma a que não seja necessário editar o CSS cada vez que quero criar um novo botão.<br />
<span id="more-677"></span><br />
Após o código HTML é necessário criar uma imagem suficientemente larga para que independente da largura do botão ela se adapte sem quebras. De preferência crio sempre uma imagem com a largura do contentor onde o texto se encontra. Por exemplo se o texto tiver dentro de um DIV com 550 pixels de largura crio uma imagem com 550 pixels. Desta forma sei que por mais longo que o texto seja não irá quebrar.</p>
<p><span style="font-size:7pt;">Imagem usada no tutorial:</span><br />
<img src="http://muiomuio.net/lab/botao-liquido/btn_bg.png" alt="fundo botão liquido css html" /></p>
<h2>CSS</h2>
<p>Em seguida vamos aplicar a imagem. A TAG BUTTON irá funcionar como contentor, o elemento SPAN e EM ficam com um estilo geral:</p>
<p><code>button {<br />
	border:none;<br />
	background:none;<br />
	padding:0;<br />
	margin:0;<br />
	width:auto;<br />
	text-align:center;<br />
	height:40px;<br />
	}<br />
</code></p>
<p><code>button span, button em{<br />
	display:block;<br />
	margin:0;<br />
	height:40px;<br />
	font:9pt Helvetica, Verdana, Arial, sans-serif;<br />
	color:#000000;<br />
	}</p>
<p></code></p>
<p>Em seguida aplicamos a imagem como background do SPAN, a imagem ficará da esquerda para a direita mostrando o canto esquerdo e o fundo do centro do botão:</p>
<p><code>button span{<br />
	padding-left:20px; /* mostrar canto esquerdo arredondado */<br />
	background:url(btn_bg.png) no-repeat 0 0;<br />
	}<br />
</code></p>
<p>Agora o elemento EM a onde se encontra o texto:</p>
<p><code>button em{<br />
	padding-right:20px;<br />
	background:url(btn_bg.png) no-repeat 100% 0; /* os 100% serve para adaptar a largura do botão */<br />
	line-height:38px;<br />
	}</code></p>
<div style="background:#ddd; padding:5px; border-top:1px dashed #333; border-bottom:1px dashed #333; width:80%; margin:10px auto; text-align:center;"><a href="http://muiomuio.net/lab/botao-liquido/">Exemplo</a> / <a href="http://muiomuio.net/lab/botao-liquido/botao-liquido.zip">Download do código</a></div>
<p>Este código foi testado em Firefox 2, Internet Explorer 7 e 8 em Windows XP. Agradeço se alguém testar nos outros browsers e sistemas operativos.</p>
<p>Referência: <a href="http://www.alistapart.com/articles/slidingdoors/">http://www.alistapart.com/articles/slidingdoors/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/html-css-liquid-button/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bugfix para imagens PNG no Internet Explorer</title>
		<link>http://blue.muiomuio.net/bugfix-para-imagens-png-no-internet-explorer/</link>
		<comments>http://blue.muiomuio.net/bugfix-para-imagens-png-no-internet-explorer/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 00:24:49 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[Web Design]]></category>

		<category><![CDATA[internet explorer]]></category>

		<category><![CDATA[png buxfix]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/bugfix-para-imagens-png-no-internet-explorer/</guid>
		<description><![CDATA[Em 2006 publiquei um artigo que ensinava como colocar transparência em imagens PNG no Internet Explorer 6.
Há uns tempos atrás dei de caras com uma library em javascript que torna o IE mais de acordo com os standards nomeadamente no que se trata des CSS e transparência em imagens PNG.
Site do Script: http://dean.edwards.name/IE7/
Como instalar
Basta colocarem [...]]]></description>
			<content:encoded><![CDATA[<p>Em 2006 publiquei um artigo que ensinava como colocar <a href="http://blue.muiomuio.net/como-colocar-imagem-png-com-transparencia-no-internet-explorer/">transparência em imagens PNG no Internet Explorer 6</a>.</p>
<p>Há uns tempos atrás dei de caras com uma library em javascript que torna o IE mais de acordo com os standards nomeadamente no que se trata des CSS e transparência em imagens PNG.</p>
<p><strong>Site do Script</strong>: <a href="http://dean.edwards.name/IE7/">http://dean.edwards.name/IE7/</a></p>
<h2>Como instalar</h2>
<p>Basta colocarem o seguinte código dentro das tags &lt;HEAD&gt;&lt;/HEAD&gt;</p>
<p><code>&lt;!--[if lt IE 8]&gt;<br />
&lt;script src=&#8221;http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;![endif]&#8211;&gt;</code></p>
<p>Podem fazer download do ficheiro JavaScript aqui: <a href="http://code.google.com/p/ie7-js/downloads/list">http://code.google.com/p/ie7-js/downloads/list</a>.</p>
<p>O ficheiro ZIP trás diversos ficheiros:</p>
<ul>
<li><strong>ie7-core.js</strong> - É um modulo fundamental. Contem um motor que permite que CSS funcione correctamente.</li>
<li><strong>ie7-html4.js</strong> - Arranja tags HTML incorrectas.</li>
<li><strong>ie7-layout.js</strong> - Permite o suporte do box-model do W3C e permite o suporte das propriedades CSS min-width, max-width e min-height.</li>
<li><strong>ie7-css2-selectors.js</strong> - Permite usar selectores do CSS2.</li>
<li><strong>ie7-graphics.js</strong> - Permite que o browser suporte transparencia PNG.</li>
<li><strong>ie7-fixed.js</strong> - Permite o uso da propriedade Fixed no posicionamento de imagens.</li>
<li><strong>ie7-standard-p.js</strong> - Um compacto de todos os scripts em cima, desta forma basta chamar apenas 1 script.</li>
<li><strong>ie7-css3-selectors.js</strong> - Permite o suporte de selectores CSS3.</li>
<li><strong>ie7-css-strict.js</strong> - Todos os selectores CSS são convertidos em classes do IE7.</li>
<li><strong>ie7-overflow.js</strong> - Permite o uso de overflow:visible.</li>
<li><strong>ie7-recalc.js</strong> - Permite o uso de <a href="http://msdn2.microsoft.com/en-us/library/ms536685(VS.85).aspx">document.recalc()</a>.</li>
<li><strong>ie7-dynamic-attributes.js</strong>- Permite o suporte de selectores com atributos dinâmicos.</li>
<li><strong>ie7-squish.js</strong> -  Bug fixes.</li>
</ul>
<p>Mais informações sobre os ficheiros em:<br />
<a href="http://dean.edwards.name/IE7/usage/configure.html">http://dean.edwards.name/IE7/usage/configure.html</a></p>
<p>Para que o script saiba quais os ficheiros em que deve actuar devem incluir <strong>-trans.png</strong> no nome das imagens.</p>
<p>Este script usa a propriedade filter que impede, no IE6, que se consiga posicionar ou repetir uma imagem de fundo PNG, a solução pode passar por criar um div que permite a inclusão da imagem como fundo.</p>
<p>Podem ler mais sobre este script em:<br />
<a href="http://trevordavis.net/blog/tutorial/the-ultimate-png-guide/">http://trevordavis.net/blog/tutorial/the-ultimate-png-guide/</a></p>
<p><strong>Site Oficial</strong>: <a href="http://code.google.com/p/ie7-js/">IE7-JS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/bugfix-para-imagens-png-no-internet-explorer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial: Secções Extensíveis</title>
		<link>http://blue.muiomuio.net/tutorial-seccoes-extensiveis/</link>
		<comments>http://blue.muiomuio.net/tutorial-seccoes-extensiveis/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 17:48:55 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[secção extensivel]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/tutorial-seccoes-extensiveis/</guid>
		<description><![CDATA[Neste tutorial irei explicar como criar uma secção extensível com conteúdo. O resultado final pode ser visto aqui.

Breve descrição
A secção extensível é composta por 2 partes:

O cabeçalho
O conteúdo


O cabeçalho
O cabeçalho é composto por um &#60;span&#62; e por uma de cabeçalho (h2) que ambos serão estilizados com CSS.
Ao clicar no cabeçalho irá mostrar ou ocultar o [...]]]></description>
			<content:encoded><![CDATA[<p>Neste tutorial irei explicar como criar uma secção extensível com conteúdo. O resultado final pode ser visto <a href="http://pwp.netcabo.pt/lounge-22/tutoriais/secExtensivel/" title="Secções Extensíveis">aqui</a>.</p>
<p><img src="http://pwp.netcabo.pt/lounge-22/tutoriais/secExtensivel/seccao_extensivel.jpg" alt="secção extensível show hide div" /></p>
<h2>Breve descrição</h2>
<p>A secção extensível é composta por 2 partes:</p>
<ol>
<li>O cabeçalho</li>
<li>O conteúdo</li>
</ol>
<p><span id="more-680"></span></p>
<h3>O cabeçalho</h3>
<p>O cabeçalho é composto por um &lt;span&gt; e por uma de cabeçalho (h2) que ambos serão estilizados com CSS.<br />
Ao clicar no cabeçalho irá mostrar ou ocultar o conteúdo.</p>
<h3>O conteúdo</h3>
<p>O conteúdo terá um texto de exemplo e um link que permitirá ocultar todo o conteúdo.</p>
<h2>Primeiro Passo, o código HTML:</h2>
<div class="code">
<span style="color: rgb(0, 0, 153);">&lt;h2&gt;&lt;span&gt;</span><span style="color: rgb(0, 153, 0);">&lt;a href=</span><span style="color: rgb(51, 51, 255);">&#8220;#&#8221;</span> <span style="color: rgb(0, 153, 0);">onclick=</span><span style="color: rgb(51, 51, 255);">&#8220;cabracega(&#8217;noticias&#8217;)&#8221;</span><span style="color: rgb(0, 153, 0);">&gt;</span>Noticias<span style="color: rgb(0, 153, 0);">&lt;/a&gt;</span><span style="color: rgb(0, 0, 153);">&lt;/span&gt;&lt;/h2&gt;</span><br /><span style="color: rgb(0, 0, 153);">&lt;div id=</span><span style="color: rgb(51, 51, 255);">&#8220;noticias&#8221;</span> <span style="color: rgb(0, 0, 153);">class=</span><span style="color: rgb(51, 51, 255);">&#8220;seccao&#8221;</span><span style="color: rgb(0, 0, 153);">&gt;</span><span style="color: rgb(0, 0, 153);"><br />&lt;span&gt;</span><br />O conteúdo é colocado aqui<br /><span style="color: rgb(0, 0, 153);">    &lt;/span&gt;</span><br /><span style="color: rgb(0, 0, 153);">&lt;/div&gt;</span>
</div>
<p>O link chama uma função em javascript chamada cabracega que mostra ou oculta o conteúdo do div com a ID de noticias. Este código pode ser usado para mais de uma secção extensível. Para tal basta atribuir nomes diferentes as secções. (noticias1, noticias2, noticias3&#8230;)<br />
Caso contrário poderá causar algum conflito.</p>
<h2>Segundo Passo: Código CSS</h2>
<div class="code"><span style="color: rgb(204, 51, 204);"> h2{ </span><span style="color: rgb(0, 0, 153);">margin</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">0px</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(0, 0, 153);">padding</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">0px</span><span style="color: rgb(204, 51, 204);">;</span><br />
  <span style="color: rgb(0, 0, 153);">border</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">0px</span><span style="color: rgb(204, 51, 204);">;<br />
  </span><span style="color: rgb(0, 0, 153);">color</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">#00f</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(0, 0, 153);">font-size</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">13px</span><span style="color: rgb(204, 51, 204);">;</span><br /><span style="color: rgb(0, 0, 153);">display</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">block</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(204, 51, 204);">}</span> <span style="color: rgb(204, 51, 204);"></p>
<p>h2 span{</span><br /><span style="color: rgb(0, 0, 153);">padding</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">10px</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(0, 0, 153);">display</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">block</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(204, 51, 204);">}</span> <span style="color: rgb(204, 51, 204);"></p>
<p>h2 a:</span><span style="color: rgb(204, 51, 204);">link, h2 a</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(204, 51, 204);">visited{</span><br />
<span style="color: rgb(0, 0, 153);">color</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">#00f</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(0, 0, 153);">text-decoration</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">none</span><span style="color: rgb(204, 51, 204);">;</span><br /><span style="color: rgb(0, 0, 153);">display</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">block</span><span style="color: rgb(204, 51, 204);">;</span> <span style="color: rgb(204, 51, 204);"><br />
}</span><br />
<span style="color: rgb(204, 51, 204);"><br />
div.seccao {</span><br />
<span style="color: rgb(0, 0, 153);"> font-size</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">12px</span><span style="color: rgb(204, 51, 204);">;</span> <span style="color: rgb(204, 51, 204);">}</span></p>
<p><span style="color: rgb(204, 51, 204);">div.seccao span{</span><br />
<span style="color: rgb(0, 0, 153);">padding</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(51, 51, 255);">10px</span><span style="color: rgb(204, 51, 204);">;</span><br />
<span style="color: rgb(0, 0, 153);">display</span><span style="color: rgb(204, 51, 204);">:</span><span style="color: rgb(204, 51, 204);"></span><span style="color: rgb(51, 51, 255);">block</span><span style="color: rgb(204, 51, 204);">;</span> <span style="color: rgb(204, 51, 204);"><br />
}</span>
</div>
<h2>Terceiro Passo: Código Javascript</h2>
<div class="code"><span style="color: rgb(204, 0, 0);">&lt;script type=</span><span style="color: rgb(51, 51, 255);">&#8220;text/javascript&#8221;</span><span style="color: rgb(204, 0, 0);">&gt;</span><br /><span style="font-weight: bold;">function</span> cabracega<span style="color: rgb(0, 0, 153); font-weight: bold;">(</span>id<span style="font-weight: bold; color: rgb(0, 0, 153);">){</span><br /><span style="color: rgb(0, 0, 153); font-weight: bold;">var</span> mySection <span style="color: rgb(51, 51, 255);">=</span> <span style="color: rgb(204, 51, 204);">document</span>.getElementById<span style="font-weight: bold; color: rgb(0, 0, 153);">(</span>id<span style="font-weight: bold; color: rgb(0, 0, 153);">);</span><br /><span style="color: rgb(0, 153, 0);">if</span><span style="font-weight: bold; color: rgb(0, 0, 153);">(</span>mySection.style.display<span style="color: rgb(51, 51, 255);">==&#8221;none&#8221;</span><span style="font-weight: bold; color: rgb(0, 0, 153);">){</span><br />mySection.style.display<span style="color: rgb(51, 51, 255);">=&#8221;block&#8221;</span><span style="font-weight: bold; color: rgb(0, 0, 153);">;</span><br /><span style="font-weight: bold;"> <span style="color: rgb(0, 0, 153);">} </span></span><span style="color: rgb(0, 153, 0);">else</span> <span style="font-weight: bold; color: rgb(0, 0, 153);">{</span><span style="color: rgb(0, 0, 153);"> </span><br />mySection.style.display<span style="color: rgb(51, 51, 255);">=&#8221;none&#8221;</span><span style="font-weight: bold; color: rgb(0, 0, 153);">;</span><br /><span style="font-weight: bold; color: rgb(0, 0, 153);">    }</span> <span style="font-weight: bold; color: rgb(0, 0, 153);">}</span><br /><span style="color: rgb(204, 0, 0);">&lt;/script&gt;</span>
</div>
<p>O JavaScript vai buscar a ID da secção através de um link:</p>
<div class="code"><span style="color: rgb(0, 153, 0);">&lt;a href=</span><span style="color: rgb(51, 51, 255);">&#8220;#&#8221;</span> <span style="color: rgb(0, 153, 0);">onclick=</span><span style="color: rgb(51, 51, 255);">&#8220;cabracega(<span style="font-weight: bold;">&#8216;noticias&#8217;</span>)&#8221;</span><span style="color: rgb(0, 153, 0);">&gt;</span></div>
<h2><a href="http://pwp.netcabo.pt/lounge-22/tutoriais/secExtensivel/">Resultado final</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/tutorial-seccoes-extensiveis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tempo de carregamento da página</title>
		<link>http://blue.muiomuio.net/tempo-de-carregamento-da-pagina/</link>
		<comments>http://blue.muiomuio.net/tempo-de-carregamento-da-pagina/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 18:27:39 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/tempo-de-carregamento-da-pagina/</guid>
		<description><![CDATA[De certeza que já viram por aí muitas páginas que têm no final algo a dizer &#8220;Loading time&#8221;. Este é um tutorial em PHP e é algo bastante simples de fazer e para quem gosta de ter estatisticas no seu site é uma  especie de rebuçado com papel de embrulho brilhante.
Em teoria o que [...]]]></description>
			<content:encoded><![CDATA[<p>De certeza que já viram por aí muitas páginas que têm no final algo a dizer &#8220;Loading time&#8221;. Este é um tutorial em PHP e é algo bastante simples de fazer e para quem gosta de ter estatisticas no seu site é uma  especie de rebuçado com papel de embrulho brilhante.</p>
<p>Em teoria o que vamos fazer é gravar o tempo no inicio da página, gravar o tempo no final da pagina e calcular o tempo que demorou.</p>
<p>O código seguinte deve ser colocado no inicio da página:<br />
<b><br />
$micro_tempo = explode(&#8221; &#8220;,microtime());<br />
$micro_tempo = $micro_tempo[0] + $micro_tempo[1];<br />
$tempo_inicial = $micro_tempo;<br />
</b></p>
<p>A função microtime() dá-nos os micro-segundos no inicio da página.<br />
Usando a função explode() &#8220;transforma&#8221; os micro-segundos num vector.<span id="more-516"></span></p>
<p>Agora falta-nos ver o tempo no final da página, comparar o tempo final com o tempo inicial e mostrar o resultado. $tempoTotal = ($tempo_final - $tempo_inicial).</p>
<p>O codigo seguinte deve ser colocado no final da página:<br />
<b><br />
$micro_tempo = explode(&#8221; &#8220;,microtime());<br />
$micro_tempo = $micro_tempo[0] + $micro_tempo[1];<br />
$tempo_final = $micro_tempo;<br />
$tempototal = ($tempo_final - $tempo_inicial);<br />
echo &#8220;Pagina carregada em:&#8221;. round($tempototal,3) .&#8221; segundos&#8221;;<br />
</b></p>
<p>Aqui repetimos os mesmos passos do inicio da página, comparamos o tempo final com o inicial de onde retiramos o tempo total de carregamento da página (<b><i>$tempototal = ($tempo_final - $tempo_inicial);</i></b>).</p>
<p>round($tempototal,3) serve para arredondar a variavel $tempototal para 3 casas décimais.</p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/tempo-de-carregamento-da-pagina/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Editar qualquer página com javascript</title>
		<link>http://blue.muiomuio.net/editar-qualquer-pagina-com-javascript/</link>
		<comments>http://blue.muiomuio.net/editar-qualquer-pagina-com-javascript/#comments</comments>
		<pubDate>Wed, 07 Feb 2007 13:17:46 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Humor]]></category>

		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/editar-qualquer-pagina-com-javascript/</guid>
		<description><![CDATA[É possivel editar qualquer página online utilizando Javascript.
Basta seguir os seguintes passos:

Vamos a uma página qualquer, digamos http://www.blog.nonsensebb.com  
Limpamos a barra de endereço
Inserimos o seguinte código:
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

E começamos a editar

Isto acontece devido ao atributo contentEditable que permite editar o conteudo e o atributo designMode que permite editar o documento. Podem ver os [...]]]></description>
			<content:encoded><![CDATA[<p>É possivel editar qualquer página online utilizando Javascript.</p>
<p>Basta seguir os seguintes passos:</p>
<ol>
<li>Vamos a uma página qualquer, digamos http://www.blog.nonsensebb.com <img src='http://blue.muiomuio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Limpamos a barra de endereço</li>
<li>Inserimos o seguinte código:<br />
<code>javascript:document.body.contentEditable='true'; document.designMode='on'; void 0</code>
</li>
<li>E começamos a editar</li>
</ol>
<p>Isto acontece devido ao atributo contentEditable que permite editar o conteudo e o atributo designMode que permite editar o documento. Podem ver os resultados em baixo.</p>
<p><a href="http://img244.imageshack.us/my.php?image=hackeddextroyq0.jpg" target="_blank"><img src="http://img244.imageshack.us/img244/2183/hackeddextroyq0.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/editar-qualquer-pagina-com-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spyware e adware</title>
		<link>http://blue.muiomuio.net/spyware-e-adware-2/</link>
		<comments>http://blue.muiomuio.net/spyware-e-adware-2/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 10:27:57 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Tutoriais]]></category>

		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/spyware-e-adware-2/</guid>
		<description><![CDATA[Este artigo vai falar por algo do que é [tag]spyware[/tag] e [tag]adware[/tag] e explicar como funciona e se diferenciam de [tag]vírus[/tag] e outros perigos para o seu computador. Faz parte de uma série de artigos que irei publicar sobre o assunto por isso fiquem atentos.
Hoje em dia para além de vírus existem outras ameaças com [...]]]></description>
			<content:encoded><![CDATA[<p>Este artigo vai falar por algo do que é [tag]spyware[/tag] e [tag]adware[/tag] e explicar como funciona e se diferenciam de [tag]vírus[/tag] e outros perigos para o seu computador. Faz parte de uma série de artigos que irei publicar sobre o assunto por isso fiquem atentos.</p>
<p>Hoje em dia para além de vírus existem outras ameaças com um potencial de perigo tão grande ou maior que um vírus, é o caso de spyware, adware, [tag]phishing[/tag], [tag]root kits[/tag] e [tag]spam[/tag]. Grande parte dos cyber crimes estão relacionados com ameaças que não são vírus.</p>
<h2>Sabendo o que é:</h2>
<p><strong>Adware/Spyware</strong>:<br />
Trata-se de qualquer software clandestino que efectua diversas actividades sem o consentimento do utilizador. Esta é a definição generalizada<span id="more-229"></span> de qualquer adware ou spyware e embora a definição possa variar, irei descrever adware como qualquer programa que esteja instalado no computador e exibe anúncios não solicitados, normalmente sob forma de pop-ups ou que reúnem informação comercial sobre o utilizador para fins de marketing.<br />
informação essa que é normalmente vendida a empresas de publicidade e marketing.</p>
<p>Spyware reúne informação mais pessoal como por exemplo os sites que visitamos, número do cartão de credito e talvez algumas passwords e envia essa informação através da [tag]internet[/tag] para alguém não identificado.<br />
Alguns programas de adware/spyware alteram a página de entrada do browser para páginas fazem propaganda a algo.</p>
<p><strong>Phishing</strong>:<br />
É um esquema complexo com a finalidade de fazer com que um utilizador revele informação pessoal, normalmente relacionada com dados bancários como acesso a contas, números de cartões de credito, etc&#8230; É um acto bastante comum hoje em dia na internet, é divulgado via email e aparenta ser um email da entidade bancaria ou outra empresa legitima. A vitima é levada a um site idêntico em todo o seu visual ao da entidade bancaria ou empresa e é pedido para que insira informação pessoal como os dados de acesso a determinada conta.</p>
<p>Embora grande parte da propagação dos sites de phishing seja feita através de emails, mensagens instantâneas através do MSN Messenger, Yahoo Messenger, ICQ, etc&#8230; já foram reportados casos em que era feita via de fax.</p>
<p><strong>Root kits</strong>:<br />
São uma série de programas ou ferramentas utilizadas por cyber criminosos para terem controlo de outros computadores. É frequente que um Root Kit passe despercebido por software de segurança como um antivírus, e pode introduzir um Trojan que abre portas no computador que permite que alguém tenha acesso ao seu computador.</p>
<p><strong>Spam</strong>:<br />
São emails não solicitados com finalidade de fazer propaganda a algo. São chatos, são aos milhões ou biliões por dia e é impossível de os parar ou filtrar a 100%.</p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/spyware-e-adware-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Javascript: Sistema de Password</title>
		<link>http://blue.muiomuio.net/javascript-sistema-de-password/</link>
		<comments>http://blue.muiomuio.net/javascript-sistema-de-password/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 09:51:21 +0000</pubDate>
		<dc:creator>Lounge22</dc:creator>
		
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://blue.muiomuio.net/javascript-sistema-de-password/</guid>
		<description><![CDATA[MUIOMUIO.NET
&#8220;Vamos criar uma função que vai gerar a nossa password que irá conter caracteres ao calhas utilizando o método charAt() que serve para seleccionar um caracter isolado numa cadeia de caracteres.&#8221;
Criei um tutorial de como criar um sistema que gera uma password com caracteres ao calhas, numeros, lowercase, uppercase e ainda a possível inclusão de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muiomuio.net/">MUIOMUIO.NET</a></p>
<blockquote><p>&#8220;Vamos criar uma função que vai gerar a nossa password que irá conter caracteres ao calhas utilizando o método charAt() que serve para seleccionar um caracter isolado numa cadeia de caracteres.&#8221;</p></blockquote>
<p>Criei um tutorial de como criar um sistema que gera uma password com caracteres ao calhas, numeros, <dfn title="Método em inglês para definir todas as letras são minusculas">lowercase</dfn>, <dfn title="Método em inglês para definir todas as letras são maiúsculas">uppercase</dfn> e ainda a possível inclusão de outros caracteres.</p>
<p>Podem visitar o tutorial aqui: <a href="http://muiomuio.net/javascript-sistema-de-password/">http://muiomuio.net/javascript-sistema-de-password/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blue.muiomuio.net/javascript-sistema-de-password/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
