Alterar a imagem que aparece ao clickar no botão Like do Facebook

Botão Like do FacebookQuando se instala um botão de like do Facebook num site e um utilizador clicka nele, aparece um item no mural desse utilizador. Normalmente aparece o título da página, algum do texto do artigo, e uma imagem. Se não fizermos nenhuma alteração, a  imagem é escolhida aleatoriamente das que estão presentes na página. Para escolhermos qual a imagem a aparecer, é necessário adicionar uma meta-tag ao cabeçalho das nossas páginas. A tag é a seguinte:

Se instalarem um plugin no WordPress para que apareça o botão de like em cada artigo, pode ser necessário inserir algum código se o plugin não tratar disso automaticamente. O código seguinte deve ser colocado no ficheiro header.php do template do WordPress e procura no conteúdo do artigo por uma imagem. Caso não haja nenhuma, é utilizada uma imagem por defeito.

Podem alterar o nome da imagem “facebook_default.png” para a que quiserem. O Facebook aconselha utilizar uma imagem quadrada com uma largura maior que 50px.

Web scraping fácil com phpQuery

Suponho que uma grande maioria dos programadores já tiveram que fazer scraping a um website. Eu, pelo menos, já o tive que fazer várias vezes. Recentemente tive que exportar imagens e informação de um catálogo online e escolhi o PHP para o fazer. Uma das primeiras tentações é tentar extrair informação com substrings e outros hacks “fáceis”.

Quando começamos a ver a loucura que é utilizar abordagem, tentamos tirar partido da estrutura do DOM com bibliotecas que façam o parse de uma forma mais estruturada. Mesmo assim, a tarefa pode ser bastante desafiante e estas bibliotecas por vezes introduzem obstáculos que são difíceis de ultrapassar. Ao tentar resolver este problema, deparei-me com o phpQuery. A grande vantagem de usar esta biblioteca é que podemos aplicar os nossos conhecimentos de jQuery, visto que a sintaxe é idêntica.

Deixo aqui um exemplo que extrai o preço, ID, link e imagem dos templates no site TemplateMonster. O texto é exportado em CSV para o ecrã do browser. A parte de extrair as imagens apenas funciona para os templates de PrestaShop. Disclaimer: não sou grande “espingarda” a trabalhar com jQuery, por isso se tiverem alguma dica para tornar as queries mais bonitas, digam 🙂

ZCE: Certificação Zend PHP5

Zend Certified EngineerA Zend, para quem não conhece, intitula-se “The PHP Company“. São os autores da Zend Framework e alguns dos seus empregados são os criadores originais da linguagem de scripting PHP. Como parte dos seus serviços, a Zend oferece certificações tanto em PHP como na Zend Framework.

Este verão frequentei uma formação de PHP organizada pela Caixa Mágica Software: a PHP Summer School. Uma das componentes da formação era a preparação e oferta de um voucher para nos podermos tornar um ZCE – Zend Certified Engineer.

Quando a formação acabou, comecei a pensar na certificação e nas suas vantagens. Seria enriquecedora para o curriculum, apesar de haver muitas opiniões negativas em relação a estes pedaços de papel. Não tenho a noção do valor de uma certificação no mercado de trabalho português, e só por ter uma não significa que seja melhor que alguém que não a tenha: existem programadores muito bons que não pensam sequer nestes assuntos. A maior parte das vezes os projectos passados falam por si.
Encarei a situação como um desafio e, como não gosto de perder, achei que era melhor preparar-me bem.

O ESTUDO

Existem algumas referências no que toca ao estudo para esta certificação. Após alguma pesquisa, encontrei um livro que prometia preparar o candidato para enfrentar o exame: “php|architect’s Zend PHP5 Certification Study Guide” . São cerca de 250 páginas que cobrem todo um leque de assuntos como funções, programação orientada a objectos, design patterns, streams, XML, segurança, etc. Achei o livro bem estruturado e bastante rico em termos de conteúdo. Os assuntos são abordados de uma forma objectiva, sucinta e direccionada para os conteúdos que constam na prova.

Após a leitura do livro, há sempre a dúvida: “Será que estou pronto?”. Existem algumas maneiras de saber, umas melhores e outras piores. A primeira que tentei foi um outro livro com perguntas similares à do exame, “The Zend PHP Certification Practice Test Book“. O meu conselho é o seguinte: fujam! Apesar do livro ter uma grande quantidade de perguntas com um grande grau de semelhança às do exame, algumas respostas não estão correctas e podem influenciar pela negativa a aprendizagem de certos conceitos base.

A alternativa que arranjei foi a compra de um pack de 5 exames no site da Zend. Perdi o amor a 17€ e tive a hipótese de testar em primeira mão o meu conhecimento. Penso que o preço é comparativamente baixo à perspectiva de ter que repetir o exame de certificação: 125€. Acabei por fazer apenas 4, visto que muitas das perguntas se repetem de exame para exame. Recomendo esta abordagem, apesar de se poder encontrar muitas das perguntas que estão nestes exames com algum google-fu. A mais valia de usar os testes oficiais é que no fim podemos ver quais são as nossas áreas mais fracas para podermos intensificar o estudo das mesmas.

O EXAME

O próximo passo foi marcar o exame num dos centros Pearson Vue em Lisboa. A escolha acabou por recair pela Rumos, devido à proximidade com o ISCTE. Foi uma experiência tranquila: entrar, fazer o exame e sair. 70 perguntas de 3 tipos: resposta múltipla, resposta única e resposta por extenso.
Na minha opinião, há determinadas perguntas que são ridículas. Um bom programador não precisa de saber de cor todas as funções de uma linguagem, ou o 4º argumento de uma determinada função. Não é necessário ser-se um dicionário de funções para se ser eficaz e competente, pelo que penso que estas perguntas só constam do exame para inflacionar a dificuldade do mesmo e dar credibilidade à certificação. Por outro lado, concordo totalmente com a existência de outras que abordam boas práticas, generalidades e alguns casos específicos da sintaxe e comportamento da linguagem. Também achei que o grau de dificuldade era ligeiramente superior ao dos testes de treino.

A RETROSPECÇÃO

Após ter passado na certificação, tive algum tempo para pensar no que mudou desde que decidi tomar este caminho. O mais importante foi, sem sombra de dúvida, o que aprendi durante o estudo. Sinto-me muito mais confiante e mais produtivo em relação a programação em PHP. Também considero que será uma boa adição ao meu curriculum, principalmente nesta fase inicial em que a maioria da experiência é académica, fortalecendo as minhas competências profissionais.

Se estão a pensar em fazer esta certificação, o conselho que vos deixo é que estudem até estarem confiantes de que vão passar. Penso que não vale a pena o risco de fazer a certificação sem um estudo sólido. O livro que mencionei é um excelente guia de estudo, mas há certas perguntas nos exames que abordam conteúdo que não é apresentado directamente, pelo que não é suficiente. Se tiverem oportunidade, façam um ou dois testes para praticar. É o melhor benchmark que se pode ter.

PrestaShop: inserir imagens de categorias a partir dos produtos

Surgiu a necessidade de inserir imagens nas cerca de 750 categorias de uma loja PrestaShop. Obviamente que não era possível fazê-lo à mão, por isso fiz um pequeno script que percorre todas as categorias e usa uma imagem de um produto dentro dessa categoria (ou sub-categoria).

Assim, todas as categorias terão uma imagem relevante, evitando aparecer a imagem por defeito em todas as páginas. Se estiverem numa situação semelhante à minha, podem usar este script.

Instruções de uso:

  • Descomprimir o arquivo (ou copiar o script para um ficheiro chamado category_image.php)
  • Alterar, se necessário, a variável db_prefix
  • Colocar o ficheiro category_image.php na pasta principal da vossa loja
  • Executar o ficheiro através do browser (exemplo: http://example.com/category_image.php )

Se tudo correr bem, aparecerá uma mensagem a indicar quantas imagens de categoria foram alteradas.

Continuar a ler PrestaShop: inserir imagens de categorias a partir dos produtos