Symfony + Doctrine + Postgres + Sequence com erro

Olá,

Hoje passei por um problema muito estranho com a Doctrine e o Postgres, quando eu estava configurando um projeto que vai usar como banco de dados o Postgres, até ai tudo ok, configuração de conexão, gerador de código etc.
Quando fui testar os Forms gerado pela doctrine percebi que quando eu estava inserindo un novo registro, a Doctrine gerava Doctrine_Sequence_Exception: on demand sequence “table_name_seq” could not be created.

Bom depois de quebrar a cabeça por muito tempo, levando em consideração (criação de novo banco, nova sequence etc) achei um post na net falando sobre tal bug na Doctrine com campos Serial do Postgres e uma possível solução. Testei e deu certo, então resolvi postar aqui para mais alguém que está com o mesmo erro.

O arquivo a ser alterado: /lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Sequence/Pgsql.php

Na linha onde tem:

$sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true);
$query = "SELECT NEXTVAL('" . $sequenceName . "')";

Substitua por:

//$sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true);
$query = "SELECT NEXTVAL('" . $seqName . "')";

Fazendo isso vai funcionar perfeitamente, pelo menos aqui funcionou.

Bom espero que isso ajude mais alguém.

E-Book Prototype and Scriptaculous in Action

Bom procurando e-books pela net achei esse bem interessante, é Prototype com Scriptaculous, ainda não li por falta de tempo, mas logo que me sobrar um tempinho estarei lendo o mesmo.

Segue o link para download clique aqui.

Bom estudo para todos!

Quanto vale seu site?

Bom hoje de noite estava navegando no BUZZ e vi um post de um amigo (Vinicius Feitosa) falando sobre um site
que verifica quanto custa o seu site.
Resolvi verificar que se tratava e achei muito bom, pois você tem uma noção de quanto vale mais ou menos
um site.

Bom vou postar logo o link.
Biz Information

Caso queira saber quanto vale o meu site, clique aqui

Lista de temas jQuery UI no google code

Bom, pesquisando no google encontrei uma coisa bem bacana que é o repositório de themes para a jQuery UI.
Para facilitar a vida de vocês, eu fiz uma lista completa de temas para jQuery UI 1.7.2 abaixo. Eu não testei todos, mas acredito que eles estão disponíveis no repositório SVN.

Segue a lista de temas da jQuery UI 1.7.2:

Base

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css" type="text/css" />

Black Tie

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/black-tie/jquery-ui.css" type="text/css" />

Blitzer

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/blitzer/jquery-ui.css" type="text/css" />

Cupertino

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/cupertino/jquery-ui.css" type="text/css" />

Dark Hive

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dark-hive/jquery-ui.css" type="text/css" />

Dot Luv

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/dot-luv/jquery-ui.css" type="text/css" />

Eggplant

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/eggplant/jquery-ui.css" type="text/css" />

Excite Bike

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/excite-bike/jquery-ui.css" type="text/css" />

Flick

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/flick/jquery-ui.css" type="text/css" />

Hot Sneaks

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/hot-sneaks/jquery-ui.css" type="text/css" />

Humanity

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/humanity/jquery-ui.css" type="text/css" />

Le Frog

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/le-frog/jquery-ui.css" type="text/css" />

Mint Chocolate

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/mint-choc/jquery-ui.css" type="text/css" />

Overcast

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/overcast/jquery-ui.css" type="text/css" />

Peper Grinder

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/pepper-grinder/jquery-ui.css" type="text/css" />

Redmond

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css" type="text/css" />

Smoothness

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css" type="text/css" />

South Street

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/south-street/jquery-ui.css" type="text/css" />

Start

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/start/jquery-ui.css" type="text/css" />

Sunny

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/sunny/jquery-ui.css" type="text/css" />

Swanky Purse

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/swanky-purse/jquery-ui.css" type="text/css" />

Trontastic

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/trontastic/jquery-ui.css" type="text/css" />

UI Darkness

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css" type="text/css" />

UI Lightness

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-lightness/jquery-ui.css" type="text/css" />

Vader

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/vader/jquery-ui.css" type="text/css" />

SKOLACHO 2 – A FESTA

SKOLACHO 2.
ESSA É PARA ESCULACHAR!!!

DIAS 8 E 9 DE MAIO
Início: Sábado às 15:00h
Término: Domingo às 18:00h

FESTA OPEN BAR
Convites:
Feminino: R$ 40,00
Masculino: R$ 50,00

Vendas limitadas até 31/04/2010

Local: Chácara Alegria.
Não fique fora dessa, venha fazer a festa.

Convite Feminino
Mapa da Festa
Convite Masculino

Fazendo upload de arquivos GRANDES

Bom estive com um problema em um sistema que estava desenvolvendo que era enviar arquivos
maiores que 8Mb para o servidor.

Pensei em alteras as configurações do servidor para que o script funciona-se corretamente, mas
o pessoal do suporte me informou que não seria possível pois o servidor não era dedicado e bla bla bla.

Então resolvi fazer o seguinte:

<?php
    ini_set("set_time_limit",  '0');
    ini_set('post_max_size', '150M');
    ini_set('upload_max_filesize', '100M');
?>

Pensei que tinha resolvido o problema com essas configurações mas nada tinha acontecido.
então pesquisando um pouco na net, achei a solução para meu problema.

Passo 1:
Criar um arquivo .htaccess e colocar na raiz do sistema ou na pasta onde está o script de upload.

Passo 2:
Copie esse codigo e cole no arquivo.

php_value memory_limit 300M
php_value post_max_size 150M
php_value upload_max_filesize 100M
php_value max_execution_time 1800
php_value session.gc_maxlifetime 3600

Agora vou explicar cada linha para vocês entenderem melhor.

O parametro: memory_limit, define a qauntidade máxima de memória em bytes que um script pode alocar, seu padrão é “128M”, estamos alterando para “300M”, mas se precisar pode liberar mais memória para o script.

O parametro: post_max_size, define o tamanho máximo dos dados a ser enviados via POST, por padrão o tamanho máximo é de “8M”.

O parametro: upload_max_filesize, define o tamanho máximo do arquivo que você poderá fazer upload, seu tamanho padrão é de “2M”.

O parametro: max_execution_time, define em segundos o tempo máximo de execução de um script, o tempo padrão é de 30 segundos, estou especificando 30 minutos, é meio exagerado mas estou levando em conta as conexões discadas que ainda existem.

O parametro: session.gc_maxlifetime, especifica também em segundos o tempo de vida da sessão, após isso ela é limpada. O padrão é de 24 minutos ou 1440 segundos, estou alterando aqui para 1 hora para não ter problemas quando for executar o script de upload.

Prontinho, agora você poderá enviar arquivos para seu servidor sem problemas, sem precisar pedir para o pessoal do suporte para alterar as configurações do servidor.
Espero ter ajudado, até a próxima.

Gerar string randômica em javascript

Olá pessoal, depois de muito tempo sem postar, estou voltando hoje para deixar
uma função em javascript que gera uma string de 8 caracteres.

Bom para usa-lá é bem simples.

var string = randomizer();
alert(string);

Segue a função.

function randomizer()
{
var randomstr = "";
var alpha = new Array("1","2","3","4","5","6","7","8","9","0","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
 
for (var i=0; i &lt; 8; i++)
{
var randomnumber=Math.floor(Math.random()*36);
randomstr += alpha[randomnumber];
}
return randomstr;
};

Espero que gostem.
Abraços.

Remover acentos e caracteres especiais de string

Olá, hoje irei compartilhar uma função que é bastante usada quando faço upload de arquivos, onde eu tenho que tratar os nomes dos arquivos enviados para o servidor.
Então vamos la para a função.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
/**
	 * Função para retirar acentos, caracteres especiais de uma string
	 * @param $string
	 * @return $string
	 */
	function removerCaracter($string){
	    $string = ereg_replace("[áàâãª]","a",$string);
	    $string = ereg_replace("[ÁÀÂÃ]","A",$string);
	    $string = ereg_replace("[éèê]","e",$string);
	    $string = ereg_replace("[ÉÈÊ]","E",$string);
	    $string = ereg_replace("[íì]","i",$string);
	    $string = ereg_replace("[ÍÌ]","I",$string);
	    $string = ereg_replace("[óòôõº]","o",$string);
	    $string = ereg_replace("[ÓÒÔÕ]","O",$string);
	    $string = ereg_replace("[úùû]","u",$string);
	    $string = ereg_replace("[ÚÙÛ]","U",$string);
	    $string = ereg_replace("ç","c",$string);
	    $string = ereg_replace("Ç","C",$string);
	    $string = ereg_replace("[][><}{)(:;,!?*%~^`&#@]","",$string);
	    $string = ereg_replace(" ","_",$string);
 
	    return $string;
	}
?>

Agora vou mostrar como utilizar a mesma.

1
2
3
4
5
6
7
<?php
      $string = "Vamor remover os acentos á Á é É e ç";
      echo removerCaracter($string);
 
      // saida
     Vamos_remover_os_acentos_a_A_e_E_e_c
?>

Percebam que os acentos foram removidos e os espaços foram substituidos por underline.

Bom espero que tenham gostado. Qualquer dúvida, sugestão, reclamação ou qualquer outro assunto estarei a disposição.

Abraços a todos.

Convertendo data com php

Hoje irei postar uma função que uso diariamente. Lembro quando não tinha pensado em nada ainda, como que era dificíl pegar uma data pradrão americano e converter para padrão português. Fazia esse processo para visualizar e para gravar no banco. Mas deixei um pouco a preguiça de lado e fiz uma função bem simples que faz essa conversão de datas.

Segue o codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    /**
    * Função para converter data
    *
    * @param $data
    * @return $data
    */
    function converterData($data)
    {
        if(substr($data,2,1) == "/")
        {
            $dd = substr($data, 0,2);
            $mm = substr($data, 3,2);
            $aa = substr($data, 6,4);
            $time = substr($data, 11,8);
            if($time != "")
                $data = $aa."-".$mm."-".$dd." ".$time;
            else
                $data = $aa."-".$mm."-".$dd;
        }
        else
        {
            $dd = substr($data, 8,2);
            $mm = substr($data, 5,2);
            $aa = substr($data, 0,4);
            $time = substr($data, 11,8);
            if($time != "")
                $data = $dd."/".$mm."/".$aa." ".$time;
            else
                $data = $dd."/".$mm."/".$aa;
        }
        if($data=='//')
        {
            $data = '';
        }
        return $data;
    }

Simples não? Vou mostrar como aplicar no seu codigo:

1
2
3
4
5
6
7
8
9
10
11
<?php
    $data = "2009-07-08";
    echo converterData($data);
    // saida
    08/07/2009
 
    $data = "08/07/2009";
    echo converterData($data);
    // saida
    2009-07-08
?>

Caso encontre algum erro ou tenha alguma sugestão de como poder melhorar, poste ai para conversar-mos um pouco. Abraços e até a proxima.

Resumindo textos

Bom, hoje vou postar uma função que me ajudou bastante em um projeto que fazia parte. A função serve para resumir texto de acordo com a quantidade de caracteres que você desejar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/**
* Função para resumir textos
*
* @param $str
* @param $n
* @param $delim
* @return $str
*/
function resumo($str, $n, $delim='...') 
{
    $len = strlen($str);
    if ($len > $n) 
    {
        preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
        $str = rtrim($matches[1]) . $delim;
        return $str;
    }
    else 
    {
        return $str;
    }
}
?>

Como aplicar a função no seu código:

1
2
3
4
5
6
7
<?php
    $string = "Marcelo Bento da Rocha.";
    echo resumo($string, 7);
 
    // resultado
    Marcelo...
?>

Bom espero que essa função ajude alguém. Qualquer dúvida, sugestão, crítica favor postar.
Abraços e até a próxima.