tadarank afiliados

14 junho, 2007

Script word-wrap para Firefox - versão revisada

Hoeee,

Dei uma corrigida no meu antigo script pra quebrar palavras grandes no Firefox.
Agora testado no Firefox e no Opera. Não tem mais bugs com elementos filhos ou pais.
E também ficou mais fácil de usar.

O Firefox não quebra grandes palavras como o Internet Explorer. O IE tem uma propriedade CSS chamada word-wrap que pode ser setada para 'break-word' pra dar uma quebrada nas palavras grandes. Firefox e Opera não tem suporte a esta propriedade.
Este script simula esta propriedade nos elementos que tiverem sua classe igual a "word-wrap".

Como usar :

1. Baixe o script em http://naironjcg.googlepages.com/micoxWordWrap.js (4kb)

2. Chame este script no seu documento html: <script type='text/javascript' src='micoxWordWrap.js'></script>

3. Coloque a classe 'word-wrap' nos elementos (ou pai de elementos) que você irá querer quebrar palavras grandes.

Examplo:

<head>
<script type='text/javascript' src='micoxWordWrap.js'></script>
<style>
#url {
width: 400px;
padding: 20px;
border: 1px solid green;
}
</style>
</head>
<body>
<div style='width: 350px; border: 1px dotted green;' class='word-wrap'>
 <h3>Class word-wrap used just on some parent:</h3>
 <p>Normal words Normal words Normal words Normal words Normal words </p>
 <p>BigWordBigWordBig<br />
  WordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWordBigWord</p>
 <p><a href='http://elmicoxcodes.blogspot.com'>BigWordAroundedByLink(tagInside)<br />  BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)</a></p>
</div>
<div style='width: 350px; border: 1px dotted green; padding: 20px;'>
 <h3>Class word-wrap used directly in children tags:</h3>
 <p class="word-wrap">Normal words Normal words Normal words Normal words Normal words </p>
 <p class="word-wrap">BigWordAroundedByLink (tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)</p>
 <p class="word-wrap"><a href='http://elmicoxcodes.blogspot.com'>BigWordAroundedByLink (tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)BigWordAroundedByLink(tagInside)</a></p>
</div>
<div id='result'>aaa </div>
</body>

Pronto. Por hoje é só pessoal!

Vota neste link lá no DZone.

Bugs, comenta ae povo. Té.

Se você quiser ver meu script e fazer as alterações que desejar:

/**
 * Micox Word Wrap 2.0 
 * elmicoxcodes.blogspot.com - www.ievolutionweb.com - micoxjcg@yahoo.com.br
 * Creative Commons License - creativecommons.org
 * 
 * Description:
 * Wraps large words in Firefox and Opera.
 * Works just like the word-wrap: break-word; CSS property in Internet Explorer
 *
 * Usage:
 * 1) Include this JS file in your page. Example: 
 * 2) Set 'word-wrap' as the classname of the elements that you want to word break. Example: 

* **/ function wrap(quem){ var larg_total,larg_carac,quant_quebra,pos_quebra, over_orig; var elementos,quem, pai, caracs, texto, pai_texto, display_orig, wid_orig; if(quem.nodeType==3){ //elemento tipo texto. tenho que verificar se o pai dele tá quebrando if(quem.nodeValue.replace('\n','').replace('\t','').trim()==''){ //se o textNode for vazio, não prossigo return true; } pai = quem.parentNode; texto = quem.nodeValue; //pegando a largura setada oficial display_orig = pai.style.display; over_orig = pai.style.overflow; wid_orig = pai.style.width; pai.style.display="block"; pai.style.overflow="hidden"; larg_oficial = pai.offsetWidth; //pegando a largura real total pai.style.display="table"; pai.style.width = "auto"; //para o Opera pai.style.overflow = "visible"; larg_total = pai.offsetWidth; //alert("texto: " + texto + " \r\n larg_oficial:" + larg_oficial + " \r\n larg_total:" + larg_total) pai.style.overflow = over_orig; if(larg_total>larg_oficial){ //se o pai do text tá extrapolando, quebro o text pos_quebra = 0; caracs = pai.textContent.length; //recalculando a largura real tirando os espaços pra poder calcular // direito a largura dos caracs e quando vou quebrar quem.nodeValue = pai.textContent.replace(/ /g,"Ø") + " "; larg_total = pai.offsetWidth; pai.style.display = display_orig; larg_carac = larg_total / caracs ; quant_quebra = parseInt(larg_oficial/larg_carac) - 2; quant_quebra = quant_quebra>0 ? quant_quebra : 1 ; quem.nodeValue = ''; while(pos_quebra<=caracs){ quem.nodeValue += texto.substring(pos_quebra,pos_quebra + quant_quebra) + " " pos_quebra = pos_quebra + quant_quebra; } } pai.style.display = display_orig; pai.style.display = over_orig; pai.style.width = wid_orig; }else if(quem.childNodes.length==1 && quem.childNodes[0].nodeType==3){ //é o último do nível e o único filho é texto texto = String(quem.innerHTML); //salvando o original /*quem.innerHTML = " " display_orig = quem.style.display; quem.style.display="block"; larg_oficial = quem.offsetWidth; quem.style.display="table"; quem.innerHTML = texto; larg_total = quem.offsetWidth;*/ //pegando a largura setada oficial display_orig = quem.style.display; over_orig = quem.style.overflow; wid_orig = quem.style.width; quem.style.display="block"; quem.style.overflow="hidden"; larg_oficial = quem.offsetWidth; //pegando a largura real total quem.style.display="table"; quem.style.width = "auto"; //para o Opera quem.style.overflow = "visible"; larg_total = quem.offsetWidth; //alert("texto: " + texto + " \r\n larg_oficial:" + larg_oficial + " \r\n larg_total:" + larg_total) quem.style.overflow = over_orig; if(larg_total>larg_oficial){ //quebrando quem extrapolou pos_quebra = 0; caracs = texto.length; //recalculando a largura real tirando os espaços pra poder calcular // direito a largura dos caracs e quando vou quebrar quem.innerHTML = quem.innerHTML.replace(/ /g,"Ø"); larg_total = quem.offsetWidth; larg_carac = larg_total / caracs ; quant_quebra = parseInt(larg_oficial/larg_carac) - 2; quant_quebra = quant_quebra>0 ? quant_quebra : 1 ; quem.innerHTML = "" while(pos_quebra<=caracs){ quem.innerHTML += texto.substring(pos_quebra,pos_quebra + quant_quebra) + " " pos_quebra = pos_quebra + quant_quebra; } } quem.style.display = display_orig; quem.style.display = over_orig; quem.style.width = wid_orig; }else if(quem.childNodes.length>0){ //se tiver mais que um filho, vou ter que executar de filho em filho nele for(var i=0;i<quem.childNodes.length;i++){ wrap(quem.childNodes[i]); } } } function wordWrap(){ var elementos = document.body.getElementsByTagName("*") if(navigator.appName.indexOf("Internet Explorer")>-1){ for(var i=0; i<elementos.length;i++){ if(elementos[i].className.indexOf("word-wrap")>-1){ elementos[i].style.wordWrap = "break-word"; } } }else{ for(var i=0; i<elementos.length;i++){ if(elementos[i].className.indexOf("word-wrap")>-1){ wrap(elementos[i]); } } } } String.prototype.trim = function() { //Trim ambas direcciones return this.replace(/^[ ]+|[ ]+$/g,""); } function bodyOnReady(func){ //call the function when DOM loaded //http://www.elmicox.com/2007/evento-body-onready-sem-o-uso-de-libs/ //by Micox - www.elmicox.com - elmicox.blogspot.com - webly.com.br if(!(document.body==null)){ func(); }else{ var func_rep = func; setTimeout(function(){ bodyOnReady(func_rep) },100); } } bodyOnReady(wordWrap);

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

11 junho, 2007

Ranking da capa do Rec6 e Rec6 em fóruns

Hoeee,

Ranking do Rec6

O Rec6, 'juntador' de notícias que eu frequento, acabou de divulgar uma lista oficialzona mesmo contendo os domínios que mais levaram notícias à capa deles de janeiro a maio de 2007.

Parabéns a toda galera listada lá, que contribui em levar informações à cabeça do mico.

Rec6 em fóruns IPB (bbcode)

Eu não tinha falado antes, mas aproveito esta oportunidade aqui pra citar uma nova ferramenta que o Rec6 disponibilizou (tem tempo) e foi feita por djô: Botão do Rec6 em fóruns IPB.

Esta ferramenta dará a possibilidade de usuários de fóruns colocarem o botão de votação do Rec6 em seus tópicos. Ela é colocada através de um BBcode. Dessa forma, os tópicos de notícias ou tutoriais de determinado fórum poderão ter mais visilidade graças ao Rec6.

Eu acredito que isto trará muitos usuários novos ao Rec6.

O BBCode do Rec6 já está em uso a um bom tempo lá no iEvolution e posso dizer que é um sucesso no fórum.

Por hoje é só pessoal.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Ajax Compilation - compilação de técnicas e ferramentas

Muito bão, compensa mesmo darem uma olhada: Ajax Compilation - compilação de técnicas e ferramentas

by Anieto2k

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

10 junho, 2007

Javascript DOM Inspector para IE - colaboradores

Javascript DOM Inspector para IE - em busca de colaboradores.

Comecei a brincar de fazer um DOM explorer usando javascript.
Motivo? Fazer um dom explorer pra ajudar agente a resolver os boró no Internet Explorer e Opera (afinal já temos o ótimo firebug no FF que não precisa de substitutos).

Tentando desenvolver um aqui. Ajude também se vc sacar de javascript.

Eu dei os começo mas vou dar uma parada pra ir agilizando meus serviços.

Acredito que será útil pra quem desenvolve muito com javascript.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

06 junho, 2007

SynthaSite: editor WYSIWYG - primeiras impressões

Bom, passeando pelo Ajaxian, me deparo com este editor WYSIWYG online: SynthaSite.

Lá vou eu esperimentar o bixo, principalmente porque tenho vontade de fazer algo parecido no futuro :-).
Ele vêm com a promessa de não precisar instalar mais nenhuma ferramenta no computador pra precisar editar algum site, seja sozinho ou com uma equipe. Tentar aposentar editores wysiywyg desktop.

Primeiramente fui fazer o cadastro, que é absurdamente simplificado e rápido. Ótimo. Já pensei "beleza, o negócio deve ser bão".

Só que, logo em seguida, começou a complicação: abre-se um popup na minha tela inteira que demora mil anos pra carregar. Aliás, tudo lá após o login tava demorando pra carregar.

O ajax usado parecia nem fazer sentido, visto a lentidão ao processar uma simples tarefa de clique de mouse. Assim eles não conseguem aposentar os editores desktop não viu...

Além disso, pecaram na complexidade. Muitas coisas, muitos menus, porém nada de simplicidade. Não achei nem onde editava o código fonte, não achei como criar página com extensão php, etc (tá certo que nem procurei muito também né).

Acho que fizeram o bixo voltado pra novatos dependentes em excesso de editores visuais apenas. Se não fosse a lentidão pode até ser que eles conquistassem este mercado. Mas, sei não. Não aposto neste bixo aí não.

Testem lá. Talvez tenham mais sorte que eu.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Função limpa texto pra virar URL

Ó, esta é pra quem não frequenta o fórum e o portal iEvolution, afinal quem já frequenta, já viu ela em uso.

Hoje mostro uma função PHP pra variar um pouco né? Ficar só sempre no JavaScript aqui no blog deve ser meio chato pra muitos de vocês. Lets go.

Muitas vezes, principalmente quando estamos trabalhando para deixar nossas url's amigáveis (aqui outros exemplos de friendly url) nos deparamos com alguns links nossos gerados a partir de banco de dados que contém: acentos, cedilha, pontuações, etc.

Isso em um link pode dar boró né?

O wordpress e o blogger têm suas próprias funções pra isto muito mal feitas. Elas desrespeitam nossa beeela língua (hehe) e simplesmente removem os caracteres que têm acento. O que? Acha que isto não dá problema? Lembre-se que "quem tem céu, tem medo".

Pra resorver este póbrema o mico aqui tentou fazer uma funçãozinha.

Função que gera uma texto limpo pra virar URL:

  • limpa acentos e transforma em letra normal
  • limpa cedilha e transforma em c normal, o mesmo com o ñ
  • transforma espaços em hífen (-) (chama hífen mesmo né?)
  • tira caracteres invalidos e pontuações

Por exemplo, temos o texto "O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti.htm"

Que queremos que vire a url "o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.htm"

1) Pegue esta minha função

function geraUrlLimpa($texto){
    /* função que gera uma texto limpo pra virar URL:
       - limpa acentos e transforma em letra normal
       - limpa cedilha e transforma em c normal, o mesmo com o ñ
       - transforma espaços em hífen(-)
       - tira caracteres invalidos
      by Micox - elmicox.blogspot.com - www.ievolutionweb.com
    */
    //desconvertendo do padrão entitie (tipo á para á)
    $texto = html_entity_decode($texto);
    //tirando os acentos
    $texto = eregi_replace('[aáàãâä]','a',$texto);
    $texto = eregi_replace('[eéèêë]','e',$texto);
    $texto = eregi_replace('[iíìîï]','i',$texto);
    $texto = eregi_replace('[oóòõôö]','o',$texto);
    $texto = eregi_replace('[uúùûü]','u',$texto);
    //parte que tira o cedilha e o ñ
    $texto = eregi_replace('[ç]','c',$texto);
    $texto = eregi_replace('[ñ]','n',$texto);
    //trocando espaço em branco por underline
    $texto = eregi_replace('( )','-',$texto);
    //tirando outros caracteres invalidos
    $texto = eregi_replace('[^a-z0-9\-]','',$texto);
    //trocando duplo espaço (underline) por 1 underline só
    $texto = eregi_replace('--','-',$texto);
    
    return strtolower($texto);
}

2) Use a danada

$tes = "O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti.htm";
  $tes = geraUrlLimpa($tes)."html";
  echo $tes."
"; //irá gerar o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.html

 

Se alguém quiser corrigir o wordpress usando minha função e linkar pro pessoal saber como implantar a modificação, acho que será de grande ajuda para os users do wordpress não terem mais medo de dar o céu aos outros heheh.

Dúvidas, pergunta lá no tópico do fórum ok?

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

05 junho, 2007

Ego moment

O brodi NGhorta me passou esta página da revista www.com.br deste mês pra eu dar uma bizuiada e ficar feliz:

Destes 2 citados aí, eu fiz o da acentuação.

Infelizmente, não fico 100% feliz pois não citaram os nomes dos autores. Mas nem tudo é perfeito né hehehe

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Bugs float e display table no IE e FF

Opa, dica rápida.

Edit 27/08/07 - Atenção: leia o post até o final onde está a solução do Chessman pois ela é a mais aconselhável.

Às vezes quando agente tá brincando com algum elemento ou pai de elemento que tem float: left ou display: table acontecem alguns bugs estranhos.

No Firefox, às vezes, o float não funciona quando se dá Control + F5, porém fica tudo beleza se você der um F5.
No Internet Explorer o pai do elemento simlesmente some. Vai entender.

Eu acredito que estas loucuras sejam bugs.

Aqui um exemplo de um cidadão com o problema.

Algumas soluções pra estas loucuras incluem um elemento fantasma (ou wrapper) no final da div pai com um clear both.
Outras sugerem colocar um display inline em quem tá com o float.

Eu vou entrar pro rol das soluções possíveis e tentar mostrar mais outra:

Tenta definir a largura e altura do elemento pai dos elementos com float.
Pode ser em porcentagem mesmo. Apenas defina. Se não der certo no pai dos floats, tente no avô dos floats também.

Aqui pra mim deu certo. Talvêz pra você dê certo também.

Edit: Uma perfecta (e inédita acredito eu) solução para este problema do bug foi feita pelo amigo de fórum senhor TheChessMan. Aqui o post onde ele desenvolveu inicialmente a solução. Parabéns chess.

Fui.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Resultado! Concursos