quarta-feira, 1 de dezembro de 2010

[HTML] - EmulateIE7 meta tag que faz IE8 renderizar como o IE7

Essa é uma tag muito interessante, você pode usá-la para seu site ser renderizado no Internet Explorer 8 como Internet Explorer 7. Como por exemplo você ter que arrumar vários problemas em um site que não é compatível com IE8.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

terça-feira, 9 de novembro de 2010

[WORDPRESS] - Diferença entre the_content vs. the_excerpt

Vamos comparar duas funções que podem ser usadas para mostrar o conteúdo dos POSTS na listagem inicial do blog:

 the_content -> utilizado quando se quer mostrar todo o POST ou o próprio editor quer delimitar o tamanho do POST na listagem colocando a tag <!–more–> que irá aparecer "mais..."

the_excerpt -> com esse o post aparece limitado de 120 palavras por post na listagem

Qualquer uma das opções acima são boas depende do objetivo do usuário!

[PHP] - Exemplo da classe FPDF e suas saídas (outputs)

As vezes sempre preciso saber quais os outputs da classe fpdf, vou colocá-los porque acho muito útil.





quinta-feira, 4 de novembro de 2010

[PHP] - Problemas com IFRAME quando se usa SESSION e COOKIES em cross-sites

Certa vez tive que colocar um IFRAME em um site e nele tive que colocar um site de outro domínio. Até aí tudo bem nunca tive problemas. O problema veio a ocorrer quando dentro desse IFRAME eu trabalhava com SESSIONS. Era um sistema que tinha login, e utilizar SESSION era essencial. Sempre que eu ia realizar o login a sessão era perdida e o login não funcionava. Depois de muito tempo de busca no google, encontrei o seguinte código abaixo:

<?php
session_start();
header("p3p: CP='CAO PSA OUR'");
//colocar sempre no site dentro do iframe
?>

A e para termina terminar esse problema só ocorria no INTERNET EXPLORER, no FIREFOX funcionava normalmente.

sexta-feira, 1 de outubro de 2010

[JAVASCRIPT] - Detectar navegador

É uma coisa muito fácil de fazer mas nunca encontro na hora que eu quero! Intão vou colocar aqui! Esse código verifica se o navegador é o IE ou outro.

if(navigator.appName.indexOf('Internet Explorer')>0){
alert('Internet Explorer');
}else{
alert('Outro Navegador');
}

OU

if ( document.all ) {
// É internet explorer
} else if (document.getElementById){
// Pode redirecionar para Mozilla!
}

OU ainda você pode fazer isso com o jQuery:
http://api.jquery.com/jQuery.browser/

segunda-feira, 23 de agosto de 2010

[PHP] - Pegando o código HTML de um site externo usando CURL

Existem várias maneiras de se fazer isso, pode-se usar também fopen() ou file_get_contents(). Normalmente se faz isso para pegar algumas informações de páginas, como por exemplo a cotação do dólar em um site. Particularmente, a maneira abaixo eu obtive mais sucesso em alguns casos. O exemplo abaixo eu usei até a tag <base> que eu descrevi no post anterior, vale a pena dar uma olhada também.

sexta-feira, 20 de agosto de 2010

[HTML] - Utilizando a tag <base> como caminho absoluto

Este atributo especifica um URI absoluto que atua como a base URI para resolver problemas de URIs relativas.

No HTML, links e referências a imagens externas, applets, formulários, folhas de estilo, etc, são sempre especificada por um caminho URI. Os caminhos URI's relativos são resolvidos de acordo com a tag <base> URI, que pode vir de uma variedade de fontes. O elemento <base> permite aos desenvolvedores especificar o caminho de um documento URI explicitamente.

quarta-feira, 11 de agosto de 2010

[SEO] - Análise de desempenho do seu site e dicas de otimização

Estava procurando um site para analisar o desempenho de alguns sites e me deparei com o http://gtmetrix.com/, segue abaixo algumas informações que encontrei lá:

"Estudos mostram que os usuários deixam um site se ele demorar mais de 4 segundos para carregar, para manter os usuários felizes e engajados, você deve fornecer um desempenho rápido no seu site!"

quinta-feira, 29 de julho de 2010

[JQUERY PHP] - Twitter com JSON e CURL

Atualmente está normal colocarmos o Twitter nos sites atuais. Fiz algumas pesquisas e testes e achei alguns scripts em PHP e Jquery que faz isso.

Exemplos com Jquery:

$(document).ready(function(){
      var tweeturl = "http://twitter.com/status/user_timeline/usertwitter.json?count=3&callback=?";
      $.getJSON(tweeturl,function(data){
            $.each(data, function(i, item) {
            $("#twitter ul").append("<li>" + item.text.link_r() + "</li> ");<br /> });<br /> });
            String.prototype.link_r = function() {
                  return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(aux) {
                  return aux.link(aux);
            });
      };
});


quarta-feira, 28 de julho de 2010

[PHP] - API Youtube com Zend_Gdata_YouTube - Upload de Vídeo

Estou colocando um exemplo de upload de vídeo para o youtube pelo php. Tudo isso está na documentação. Coloquei os links da documentação e do código no final do post para download. Essa classe do Zend é muito boa. 

quarta-feira, 21 de julho de 2010

[JQUERY] - JQuery Tools

"JQuery Tools é uma coleção de componentes de interface do usuário mais importante para a web. São elas tabs, accordions, tooltips, overlays, exposing effects and scrollables. Eles podem melhorar significativamente a usabilidade e capacidade de resposta do seu site. Eles centram-se principalmente na apresentação de informação e apelo visual. Afinal, este é exatamente o que a maioria dos sites querem desesperadamente: apresentar o seu conteúdo para o leitor de uma forma fácil e visualmente agradável maneira."

Achei esse site mundo bom e resolvi compartilhar. Tem coisa muito boa!

terça-feira, 20 de julho de 2010

[PHP] - Função para limitar caracteres

Essa é uma função muito usada quando você quer delimitar alguma frase ou texto que não possa "estourar" o layout.

quinta-feira, 15 de julho de 2010

[SQL] - SQL de todas as cidades e estados do brasil

Esses dias precisei popular um tabela de cidades e estados. Fiz algumas buscas no google e resolvi compartilhar.
Seguem os links abaixo para quem interessar:

segunda-feira, 12 de julho de 2010

[PHP] - Função para nome de arquivo em upload

Sempre tive problemas com nomes de arquivos nos uploads dos meus sistemas. Até que percorri o google e fiz alguns ajustes para formar a função perfeita. Essa função retira caracteres acentuados, espaços em branco e caracteres estranhos. Vale a pena tela em sua biblioteca.

quinta-feira, 8 de julho de 2010

[SQL] - Otimização simples de query

Fiz uns teste com algumas querys no mysql só para tirar algumas dúvidas e ter certeza do que estou falando. Não seria bem uma otimização, e sim boas maneiras de se fazer algumas querys.

Executei os testes em uma tabela de 10mil registros e de 30 campos.

Para retornar o total de registros de um tabela use sempre a query abaixo e não um "count" no resultado de outra query:
SELECT COUNT(campo) AS total FROM tabela
Nessa tabela de 30 campos percebi que sempre deve-se usar a query abaixo mesmo se você precise de todos os campos:
SELECT campo1,campo2,..,campon FROM tabela
Todos as vezes que usei a query abaixo precisando de todos os campos a execução foi mais lenta:
SELECT * FROM tabela
Não descobri nada de novo, mas se todos se preocupasse com isso na hora do desenvolvimento teríamos resultados melhores por essa WEB afora.

[PHP e HTML] - Problema com cache

Estou iniciando esse blog para dividir experiências e aprender coisas novas também.
Esses dias eu estava com o seguinte problema:

O usuário fazia uma pesquisa em um formulário HTML, após o resultado ele escolhia um registro e clicava. Quando ele acessava o registro e queria voltar depois usando o "voltar" do navegador ou por javascript usando "history.back()" aparecia o erro de "Página da Web expirada". O que mais me deixava cabreiro era que quando o cliente testava não funcionava e quando eu testa funcionava. Nos dois acessavamos o mesmo servidor porém de lugares diferentes. Mas não importa tem que funcionar no cliente. Depois de algum tempo percebi que o problema era cache. Onde eu estava funcionava porque minha rede de alguma maneira não perdia os dados do POST ou havia alguma configuração no meu Internet Explorer que não dava problema.

Eu resolvi a seguinte maneira: