Postagens para o marcador ‘Blog’

   terça-feira, 11 de dezembro de 2012

Como vetar automaticamente comentários com spam no WordPress.



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

O Jefferson fez este post com um script (que ele encontrou) que ajuda a matar uma boa parte do SPAM no WordPress.

Porem como o próprio Jefferson notou, ele tem uma falha que confunde palavras, como o bem citado exemplo dele, onde “especialista” é confundido com “cialis”.

Nisso resolvi dar uma ajeitada no script de forma que ele não confunda mais as palavras, fazendo o uso de expressões regulares para “pescar” somente as frases (ou blocos) exatos dentro do texto do comentário.

O novo código ficou assim:

//Acrescente isso no final de functions.php (é um arquivo do tema, não do wordpress)
//pode ser imediatamente antes da linha final com um "?>".

function in_comment_post_like($string, $array) {
      foreach ( $array as $key => $value ) {
          if (preg_match("/\b".$value."\b/i", $string)) { return true; }
      }
      return false;
}

function drop_bad_comments() {
    if (!empty($_POST['comment'])) {
        $post_comment_content = $_POST['comment'];
        $lower_case_comment = strtolower($_POST['comment']);

        // Lista de palavras banidas.
        // Comentários com essas palavras serão automaticamente deletados
        // e quem postou, se não for um bot, verá um alerta.
        // Mas caso seja um bot, receberá o erro http 503.

        // Coloque somente palavras na lista, não coloque símbolos como: [ { ( *

        $bad_comment_content = array(
            'viagra',
            'hydrocodone',
            'xanax',
            'tramadol',
            'lorazepam',
            'adderall',
            'dexadrine',
            'no prescription',
            'oxycontin',
            'without a prescription',
            'sex pics',
            'family incest',
            'online casinos',
            'online dating',
            'cialis',
            'amoxicillin',
            'ecadastro.com.br',
            'seomaster.com',
            'divulgaemail.com',
            'listadeemails.com',
            'casaemail.com.br',
            'acertemail.com',
            'maladiretasegmentada.com.br',
            'busquemail.com.br',
            'boliche.com.br',
            'kitsucesso.com',
            'emailsvip.com.br',
            'kitdeemail.com',
            'rocket attacks',
            'blue spoon'
        );

        if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
            wp_die( __('<b>Seu comentário contém palavras ou expressões banidas.</b><br><br><i>'.$post_comment_content.'</i>'),('Erro'),array( 'response' => 503, 'back_link' => true ) );
        }
    }
}

add_action('init', 'drop_bad_comments');

Isto deve ser adicionado dentro do arquivo functions.php do seu tema. Com isso, a lista de palavras presentes no array será verificada uma a uma com o conteúdo do comentário e caso uma delas esteja presente, o comentário é automaticamente bloqueado e não é postado. }:D

De quebra, adicionei para o script já enviar um header http com erro para os robots, já dando um legitimo chute na bunda deles, se e quando é claro, eles lerem o header http. :-o*

Tenho planos de transformar esse script em um plugin, que poderá ser instalado facilmente no WordPress, e o banco de palavras ficará armazenado no mysql, e com isso não será mais necessário editar diretamente o código para inserir novas palavras, isso será feito diretamente pela pagina de configuração do plugin.

Edit: Existe um pequeno conflito com a mensagem de alerta quando usado o plugin AEC (Ajax Edit Comments) e a função wp_die. Quando é postado o primeiro comentário e existir uma palavra proibida, a mensagem é exibida corretamente. Porem quando for o segundo comentário ou posteriores, a mensagem será exibida em um popup do tipo alert (javascript) e neste caso a formatação do texto será perdida, melhor dizendo, será impressa na mensagem as tags html.

Por mim esta de bom tamanho, posso conviver com isso, visto que essa mensagem de erro só deverá se vista por spammer mesmo.

E estou tentado a desligar o reCaptcha, só pra ver o que acontece. :-))



   domingo, 9 de dezembro de 2012

Chuva de SPAM



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Aproveitando a deixa, que o Jefferson comenta em seu blog sobre problema com SPAM no WordPress, eu também já notei que nos últimos 4 meses, a quantidade de SPAM capturada pelo Akismet tem aumentado absurdamente mês a mês.

Veja o gráfico do log do Akismet deste blog:

Não sei o que aconteceu para o nível de spam aumentar nessa progressão.  Veja que se a coisa continuar como parece, dezembro já deve superar novembro. :X.:

No meu caso aqui, a quantidade de comentários que efetivamente cai marcado como SPAM e precisa de intervenção manual, ainda é pequena, não chega a uns 10 comentários por semana. A grande maioria já é capturada, identificada e corretamente apagada pelo Akismet.

Estes poucos comentários SPAM, conseguem passar pelo reCaptcha. Como conseguem passar? Desconfio de 3 hipoteses:

1) Algum grande buraco no sistema de comentários do WordPress.
2) Os spammers acharam um jeito de burlar o reCaptcha.
3) Já existe algum robot com um bom OCR que acerta alguns captchas.

Porem, eu vou testar o script que o Jefferson encontrou, para criar uma lista de palavras proibidas e tentar já sumir automaticamente com esses poucos SPAM que ainda passam.

[ Ouvindo: The Ritchie Family – American Generation (1978) ]


   sábado, 7 de abril de 2012

WordPress: WidGet FeedBurner Subscriptions



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Ou… traduzindo, Quinquilharia personalizada que pega o numero de assinantes do FeedBurner e pendura em algum lugar no seu blog, sem ser aquela coisinha horrível já disponibilizada pelo próprio FeedBurner. :-o*

O lugar onde prestei atenção nesse tipo de GadGet foi no Blog do Jefferson Ryan. Perguntei a ele se aquilo era algum plugin do WordPress, e a resposta foi que era uma solução própria.

Como eu sou daqueles que até certo ponto gosta de bater testa e arrumar as próprias soluções, fui a caça de como fazer isso funcionar.

Bom, primeiramente, você precisa usar o FeedBurner para publicar os feeds do seu blog. Pra isso eu recomendo o plugin FD Feedburner Plugin. Tendo ele instalado, crie seus feeds de postagens e comentários no FeedBurner, e adicione as urls do FeedBurner no plugin. Salve e pronto. A partir de agora, seu blog estará usando o FeedBurner como publicador de seus feeds e não aquela coisinha pobre original do WordPress. O FeedBurner é legal porque te dá várias estatísticas interessantes, além, claro de lhe mostrar quantos assinantes você tem em seus Feeds.

Com os feeds prontos, você precisa ativar o Publicize. Entre em sua conta no FeedBurner, clique sobre o nome de seu feed, na tela que vai abrir clique em Publicize e no menu lateral que vai abrir, clique em FeedCount. Ative esta opção. Não precisa se preocupar com estilo, cor, etc… não usaremos nada daquilo.

Feito isso para o Feed de postagens e comentários, vamos a parte “home made”.

Primeiramente edite o arquivo functions.php de seu tema e adicione a seguinte função:

function show_count($feedname) {
  $url = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feedname;

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $url);

  $data = curl_exec($ch);

  curl_close($ch);

  $xml = new SimpleXMLElement($data);
  $count = $xml->feed->entry['circulation'];

  return $count;
}

Peguei esta função acima pronta no google. Tem tantas ocorrências pra este código que fica difícil saber quem é o seu autor.

Salve seu arquivo functions.php

Agora edite seu arquivo style.css de seu tema e adicione o seguinte código CSS:

/* FeedBurner WidGet */

#fb {
  width: 185px;
  height: 64px;
  background-color: #191919;
  border: solid 1px #292929;
}

#fbtxt {
  height: 64px;
  font-family: Arial, Helvetica, Sans-Serif;
  font-size: 12px;
  color: #CCC;
  display: table-cell;
  vertical-align:middle;
  text-align: center;
}

#fbimg {
  float: left;
  margin: 3px 5px 3px 3px;
}

#fbcount {
  color: #FF7F3F;
  font-weight: bold;
}

Salve seu arquivo style.css e estamos quase no final. :-P

Agora acrescente o seguinte código no arquivo sidebar.php ou onde melhor convier:

<div id="fb">
  <img id="fbimg" border="0" src="<?php bloginfo('template_directory'); ?>/images/feed_readers.gif" width="60" height="59" />
  <div id="fbtxt">Leitores assinando:<br />
    postagens: <span id="fbcount"><?php echo show_count(my_posts_feed); ?></span><br />
    comentários: <span id="fbcount"><?php echo show_count(my_comments_feed); ?></span>
  </div>
</div>

Antes de salvar o código, altere my_posts_feed para o nome de seu feed de postagens (o nome que escolheu para seu feed) e my_comments_feed para o nome de seu feed de comentários.

Escolha uma imagem para usar com seu GadGet. O tamanho máximo fica a seu critério.  Uma boa pedida na minha opinião é um ícone de 60 x 60 pixels. Pode usar inclusive o ícone clássico do Feed, tem ele aos montes no google imagens.

O nome da imagem é o “feed_readers.gif” que esta na segunda linha do código acima. A imagem deve ficar na pasta images de seu tema.

Agora é só salvar o código e pronto.

O WidGet já deverá funcionar. E claro, obviamente você pode e deve alterar as cores no código do CSS para compatibilizar com seu tema. :)

[ Ouvindo: Tom Tom Club – Under The Boardwalk (1981) ]


   quinta-feira, 5 de abril de 2012

WordPress: Função get_calendar();



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Usando um calendário com CARA de calendário! :wink:

Depois de muito apanhar com a função get_calendar(); do WordPress, consegui chegar muito perto do que eu queria.

Veja na imagem ao lado como era o  calendário interno do WordPress antes e depois do banho de CSS.

O difícil foi apurar os parâmetros do CSS! :X.:  Foi preciso muito hack em alguns temas prontos do WordPress pra entender como a coisa era feita, e uma boa estudada em algumas técnicas que eu nunca tinha usado em CSS. :-o*

Bom, inicialmente, você precisa entender como funciona a função get_calendar();

Ela aceita unicamente um parâmetro: False ou True

Este parâmetro dita como ele vai exibir os dias da semana, se com apenas uma letra ou com abreviatura de 3 letras.

Então para exibir com a abreviatura de três letras, é preciso passar o parâmetro False.

get_calendar(false);

O get_calendar(); em geral deve estar dentro do arquivo sidebar.php mas também nada impede de você colocá-lo em outro local.

Com isso já temos os dias da semana com abreviatura de 3 letras. O restante é puramente CSS. Para isso edite o arquivo style.css de seu tema, localize as entradas iniciadas com #wp-calendar e remova todas,  e acrescente o seguinte código em seu lugar:

/* Calendar Widget */

#wp-calendar {
  text-transform: capitalize;
  text-align: center;
  empty-cells: show;
  margin: 0;
  border-spacing: 0;
  width: 98%;
  padding: 3px;
}

#wp-calendar caption {
  font-size: 1.2em;
  font-weight: bold;
  color: #BBBB00;
  padding: 5px 0 3px 0;
}

#wp-calendar th {
  background: #252525;
  font-family : Arial, Helvetica, Sans-Serif;
  font-size : 0.9em;
  font-weight: bold;
  color: #CCC;
  border-top: 1px solid #666;
  border-bottom: 1px solid #666;
}

#wp-calendar td {
  font-size: 0.8em;
  color: #CCC;
  text-align: center;
  letter-spacing: normal;
  padding: 2px 0;
  border-bottom: 0px;
}

#wp-calendar thead tr th:first-child {
  color: #FF0000;
}

#wp-calendar tbody tr td:first-child {
  background: #521;
}

#wp-calendar tfoot td {
  background: #252525;
  border-top: 1px solid #666;
  border-bottom: 1px solid #666;
}

#wp-calendar a {
  display: block;
  text-decoration: none;
  border-bottom: 0px;
}

#wp-calendar #today, #wp-calendar #today a {
  background: #221;
  font-size: 1.1em;
  font-weight: bold;
  color: #BBBB00 !important;
  border: 1px solid #442;
}

#wp-calendar #next a {
  text-align: right;
  font-weight: bold;
  padding-right: 12px;
}

#wp-calendar #prev a {
  text-align: left;
  font-weight: bold;
  padding-left: 12px;
}

E com isso, voilá! Seu calendário estará 99% igual ao da imagem. A única coisa que não estará igual, é o Domingo em vermelho, porque isso por enquanto depende de um pequeno hack no general-template.php do WordPress, e  mexer diretamente no “core” do WordPress não é algo recomendado. Para contornar isso, estou estudando algumas funções para tentar fazer isso de uma forma mais limpa, através do functions.php do tema. :mrgreen:

Já era! Perguntar as coisas pra professor é outro papo! Dá pra pintar o domingo de vermelho na moleza via CSS também.  Olhe o código inserido das linhas 39 a 41, isso resolve o problema.  Pequeno detalhe, não funciona (não pinta o Domingo de vermelho) em IE6. Mas… quem se importa? Quem ainda usa essa coisa horrenda? Migra pra algo decente. }:D

Ah! Obviamente, você pode e DEVE alterar as cores no CSS para que fique compatível com seu tema. o:-)



   terça-feira, 3 de abril de 2012

Remodelada e limpeza no blog



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Dei uma remodelada no blog.  Mas só no código. A aparência continua igual. :-P

Consegui derrubar o tamanho do sidebar.php de 23KB pra menos de 13KB. Como? Acho que finalmente consegui me entender em partes com os malditos <DIV>.

O google friend connect foi limado. Que vá pro inferno. :hot:

Dei também um alterada na ordem dos itens do menu, deixando a coisa um pouco mais lógica. E acrescentei dois widget internos:

– Os 10 comentários recentes
– Leitores assinantes do Feed

Como ambos foram códigos escritos em php e inseridos no template do blog (não são plugins do WordPress), pretendo publicar estes códigos aqui para quem mais quiser usar. :-))

Ah… e também pendurei uma página 404 personalizada. Coloque um código de postagem invalido ali em cima. :-o*



   domingo, 1 de abril de 2012

WordPress: Cores na nuvem de tags, e sem usar plugin!



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Estou postando esta dica aqui, que foi encontrada a duras penas (pela segunda vez), neste blog aqui.

Porque estou postando aqui? Para que a dica não se perca, e porque o código postado por lá tem pequenos erros. E porque eu gastei umas 3 horas de google e muito xingamento pra achar esse código novamente, pois eu fiz uma caquinha com o template do blog e perdi essa modificação. :X.:

Bom, pra usar faça o seguinte:

Edite o arquivo functions.php de seu tema.

Acrescente o código abaixo no final do arquivo:

<?php
//Colorful Tag Cloud
function ColorCloud($text) {
    $text = preg_replace_callback('|<a (.+?)>|i', 'RandomColorCloudCallback', $text);
    return $text;
}

function RandomColorCloudCallback($matches) {
    $text = $matches[1];
    $color = dechex(rand(0,16777215));
    $pattern = '/style=(\'|\")(.*)(\'|\")/i';
    $text = preg_replace($pattern, "style=\"color:#{$color};$2;\"", $text);
    return "<a $text>";
}

function ColorCloudCallback($matches) {
    $tag_link=$matches[1];

    /*the sylloge of your custom color*/
    $colorFull = array('#999','#D8D9A4','#9BB','#EB9','#a3c159','#FEC42D','#6C8C37','#c2dc15','#3371A3','#888','#00ccff','#FF8080');
    $color=$colorFull[ mt_rand(0, count($colorFull) - 1)];
    $pattern = '/style=(\'|\")(.*)(\'|\")/i';
    $tag_link= preg_replace($pattern, "style=\"color:{$color};$2;\"", $tag_link);
    return "<a $tag_link>";
}

add_filter('wp_tag_cloud', 'ColorCloud', 1);
?>

Se quiser trocar do modo random para com cores definidas, apenas altere a chamada da função:

function ColorCloud($text) {
    $text = preg_replace_callback('|<a (.+?)>|i', 'RandomcolorCloudCallback', $text);
    return $text;
}

Para:

function ColorCloud($text) {
    $text = preg_replace_callback('|<a (.+?)>|i', 'ColorCloudCallback', $text);
    return $text;
}

E altere o valore das cores no $colorFull

$colorFull = array('#999','#D8D9A4','#9BB','#EB9','#a3c159','#FEC42D','#6C8C37','#c2dc15','#3371A3','#888','#00ccff','#FF8080');

O resultado vocês podem conferir ai no menu lateral do blog, eu estou usando o modo Random.

E avisando… o banco de dados do blog já foi inteiramente corrigido. (nota mental e foi pro ToDo list: Aprender a manipular mysql pelo php :-$ )

Pelo menos os erros que eu sabia que existiam de longa data. Se por acaso alguém topar ou lembrar de alguma imagem quebrada, me avise que arrumo. :coffe:

O google friend connect, foi sumariamente LIMADO pelo google. E por falar nisso eu ando perdendo a paciência com esse põe e tira serviço do ar. Só no inicio desse mês foram mais 5 pro saco, o google quer de toda forma enfiar o Plus goela abaixo. Eu me recuso a usar, e estou pensando seriamente em limar o meu Plus. Eita empresinha que esta ficando filho-da-puta viu? :furious:

Ainda não sei o que fazer, se coloco outro plugin social… alguém ai recomenda alguma coisa que todos usem e seja garantido?

Bom, como podem notar ai acima, eu instalei o addon para Sintaxe Highlight, pra facilitar as coisas. Estou pensando em dar um upgrade no post que explico em como hackear a barra do google (outra filho da putisse do google), e anexar mais umas ou duas coisinhas que ficaram faltando. Porém lembro que do jeito que esta lá atualmente, funciona perfeitamente. o:-)



   sexta-feira, 30 de março de 2012

Teste



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Devido a uma alteração nas politicas de segurança (que na minha opinião foi uma idiotice) do DreamHost, o blog ficou dois dias fora do ar. :censored:

Pios bem, já esta no ar, graças ao trabalho incansável de dois dois fudebas, este que vos escreve e do Daniel Caetano que é quem me fornece a hospedagem do blog, de loooooooooonga data.

Depois da gente apanhar muito, fazer algumas gambiarras, e eu editar o banco de dados MySQL do blog na UNHA, já esta navegável novamente. :-P

Coisas que quebraram e vou consertando aos poucos:

– Google Friend Connect

O google esta descontinuando o serviço, o que eu acho uma palhaçada. Vou ver se acho uma outra alternativa ou algum hack.

– Link para imagens.

Como o DreamHost bloqueou varias funções do remapeamento de diretórios, e o blog usava isso, e ainda por cima eu tinha uma baita gambiarra feita na época que migrei do Blogger.com para o WordPress, eu acabei com dois diretórios de imagens, ou seja, uma bagunça pra administrar. :wacko:

Já que foi preciso mexer em algumas coisas no banco de dados, pois o WP armazenava as imagens em um diretório remapeado, eu aproveitei pra acertar esse diretório e unificar com o de imagens antigas da era Blogger. Já acertei uns 80% do banco de dados.

Assim sendo, em alguns posts antigos, PODE haver imagens quebradas. o:-)



   segunda-feira, 27 de fevereiro de 2012

Redirecionando para o Feedburner



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Estou experimentando um plugin que faz redirecionamento automático para o feedburner.

Se você por algum motivo qualquer não for redirecionado para o feedburner, atualize seu feed para:

https://feeds.feedburner.com/crashcomputer

 



   segunda-feira, 19 de dezembro de 2011

Instabilidades a vista.



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Algumas instabilidades no blog podem acontecer nos próximos dias.

Vou tentar usar novamente o plugin Social Connect,  que é sabidamente bugado, mas tem como consertar. O RPX já me deu dores de cabeça de mais. A cada atualização do WP ou do Google, essa jaca para de funcionar.

Assim, se por uma obra do destino alguém quiser comentar algo, use o login com nome e e-mail válido.

Edit 20/12/2011:

Acredito que esteja tudo ok. Alem do Social Connect, mexi em outras coisas, como por exemplo o formulário de comentários. Agora ele é um editor WYSIWYG.

Modifiquei também a forma de paginação do blog e algumas outras mexidas no menu lateral.

O Sux-O-Meter agora tem novamente a escala logarítmica como era antes.

Quem puder fazer testes de login nos comentários via os serviços disponíveis, e dizer qual serviço usou, se foi fácil ou não, eu agradeceria. ;-)

Edit 02/01/2012:

Mexi mais um pouco no template do blog, dessa vez, dei uma ajeitada na pagina de comentários, pois estava muito bagunçada e já era uma festa de remendos que dava medo de ver.

O MCE Comments foi desativo, estava dando problema de dizer que o comentário estava vazio na hora de postar, devo testar outras alternativas em breve.



   domingo, 18 de dezembro de 2011

Atualizando o WordPress



1 Star2 Stars3 Stars4 Stars5 Stars (Nenhum voto, seja o primeiro!)
Loading...

Atualizei essa bagaça aqui para a versão 3.3

Vamos ver se esta melhor. Todo caso fiz um backup da versão anterior.

Só apanhei de bobeira do plugin do sux-o-meter… nem lembrava que já tinha automatizado a instalação dele eheh.



  Melhor visualizado a
1024 x 768 True color
Proudly powered by WordPress. Theme developed with WordPress Theme Generator.
E altamente gambiarrado por mim mesmo :)
Copyright © 2010 by Crash Computer. All rights reserved.