Esse mês foi o mês da reviravolta no mercado de arquivos na Nuvem. O Google lançou há menos de 5 dias seu serviço de armazenamento na nuvem, o Drive. Ele veio para competir com o Dropbox e o SkyDrive da Microsoft.

Preparei uma tabela com os principais destaques de cada um dos programas/serviços.

DriveDropboxSkyDrive
DriveDropboxSkyDrive
FabricanteGoogleDropbox Inc.Microsoft
LançamentoAbril 2012Setembro 2008Agosto 2007
Espaço5 GB2 GB (+16GB)25 GB
Suporte S.O.Windows MAC Linux * AndroidWindows MAC Linux Muitos MobilesWindows
Apaga ArquivoNUNCA90 dias após inatividade90 dias após inatividade
Custo de 100GBUSD 5.00 ao mêsUSD 20.00 por mêsR$ 7,75 por mês

 

 

 

No desenvolvimento de módulos, sempre há a necessidade de se automatizar alguma atividade repetitiva. Neste caso, o cron do Drupal ajuda na realização de tarefas que devem ser realizadas com uma certa frequência.

Assim como o cron do S.O. que estamos acostumados a usar, temos também o cron da própria plataforma Drupal, que pode ser utilizada quando escrevemos módulos.

Veja neste caso: temos uma lista de RSS cadastrados no banco de dados e queremos varrer a lista de sites a fim de encontrar quais destes sites estão fornecendo novos posts por meio do RSS.

Para realizar esta tarefa, vamos usar o hook hook_cron(). Porém, o hook_cron() serve, em geral, para tarefas de curta duração. Em vez disso, recomenda-se o uso do hook_cron_queue_info() que cria fila de crons.

Vamos criar uma fila de crons, de acordo com a nossa API. Note que  a função é chamada a cada 120 segundos.

/**
* Implements hook_cron_queue_info().
*/
function MODULO_cron_queue_info(){
  $queues['NOME_DA_FILA'] = array(
    'worker callback' => 'NOME_FUNCAO',
    'time' => 120,
  );
  return $queues;
}

 

Uma vez com a fila implementada, vamos construir a nossa regra do cron();

/**
 * Implements hook_cron().
 * Setamos o cron baseado no sistema para varrer a
 * lista de RSS e cadastrar no banco de dados.
 */
function MODULO_cron(){
  $result = db_query('SELECT rssid, urlrss FROM {rss_links}');
  $queue = DrupalQueue::get('NOME_DA_FILA');
  foreach ($result as $item_rss) {
    $queue->createItem($item_rss);
  }
}

Por fim, declaramos a nossa função NOME_FUNCAO que irá executar o comando de captura dos rss’ na rede.

 

/**
 * Funcao para 'parsear' o RSS.
 * Cada vez que ele entra eh um item de RSS analisado.
 * Esse, por sua vez, pode conter N postagens no site.
 *
 * @object $data
 *
 */
function NOME_FUNCAO($data){
  $doc = new DOMDocument();
  $doc->load($data->urlrss);
  foreach ($doc->getElementsByTagName('item') as $node)
  {
    $itemRSS = array (
      'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
      'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
      'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
      'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
    );
    $quantidade = db_query('SELECT rsspid, url FROM {rss_posts} WHERE url = :url', array(':url' => $itemRSS['link']));
    // ja existe algo na tabela referente a este link. Passa para o proximo
    if( $quantidade->rowCount() )
      continue;
    // inserimos no banco
    $nid = db_insert('rss_posts')
    ->fields(array(
      'rssid' => $data->rssid,
      'titulo' => $itemRSS['title'],
      'conteudo' => $itemRSS['desc'],
      'data' => date('Y-m-d'),
      'url' => $itemRSS['link']
    ))
   ->execute();
  }
}

Este é um pequeno exemplo do poder que se tem em mãos com o uso do hook_cron().

Escolha do Software

O primeiro passo para nosso início, é escolher o Ambiente sobre o qual iremos programar. O PHP é uma linguagem multi-plataformas, ou seja, pode ser instalado no Windows, Unix e Mac. Cada SO tem sua particularidade; no nosso caso, iremos desenvolver esta série desenvolvendo no Windows.

Os aplicativos que iremos instalar são: um servidor http (usaremos o Apache). Um servidor de banco de dados (usaremos o MySQL) e o PHP como módulo do Apache. E, para facilitar, toda essa quantidade de ferramentas, instalaremos o programa XAMPP que já traz para nós esses 3 serviços sem muita dor de cabeça.

Para instalar, vamos baixar o XAMPP no site: http://www.apachefriends.org/pt_br/xampp-windows.html

Como software para edição de código, vamos usar um editor simples; o Notepad++: http://notepad-plus-plus.org/

 

Instalação do Drupal 7:

Uma vez com os softwares do ambiente instalados, vamos instalar o Drupal.

Execute o Apache e  o MySQL por meio do painel XAMPP encontrado em Iniciar->Programas.

Crie um banco de dados no seu servidor local, acessível via: http://localhost/phpmyadmin

Baixe a versão mais atual do site do Drupal (neste tutorial estamos na versão 7.12) e extraia-o na pasta htdocs da instalação do XAMPP.

Entre na URL: http://localhost/sua-pasta-extraida/ e inicie a instalação.

Vamos escolher Standard, a instalação Padrão.

 

Clique em Save and Continue.

Em seguida, vamos escolher a língua padrão. Em outro momento, iremos fazer uma instalação personalizada com uma língua diferente.

Vamos escolher o padrão em Inglês.

 

 

Continue com a instalação escolhendo MySQL e preenchendo os dados corretamente.

Preencha os dados requisitados

 

Por fim, faça as últimas escolhas na tela de Configure site.

Pronto. Temos o Drupal instalado e pronto para nossas futuras atividades.

Novos Tempos

Depois de um tempo (e bota tempo nisso) sem postar, resolvi então, que o ideal seria focar uma área do conhecimento de programação.

Após falar sobre diversos assunto, agora vou criar uma série sobre Drupal.

Nesta série faremos um tutorial e discutiremos muito a respeito de tudo o que este CMS pode oferecer, assim como suas vantagens, melhorias de versão em versão. Faremos hands-on. Tentarei fazer vídeos para ilustrar o uso de algumas particularidades.

Ao longo deste projeto, que, por ora, não terá fim, passaremos por estes tópicos listados abaixo.

  • Instalação
  • Configuração
  • Criação de Temas
  • Criação de Módulos
  • Drupal e AJAX
  • Documentação do Drupal
  • Comunidade Drupal (Mundo e Brasil)

Não haverá uma sequência cronológica entre eles ou de nível de dificuldade; apenas um pouco de PHP, lógica de programação, javascript e css poderão ajudar.

Às dúvidas que surgirem, fiquem à vontade de perguntar pelos comentários.

E para começar, vamos à simples pergunta:

O que é Drupal?

Drupal é um gerenciador de conteúdo. Depois que você o conhece, você diria que é um WordPress só que mais sofisticado. O Drupal foi criado por um holandês e significa gota em inglês (daí a logo ser o formato de uma gota). O CMS é feito em PHP e distribuído sob a licença GPL. Grande parte da Internet viu crescer o uso do WordPress pela sua facilidade de edição e postagem, por isso que o Drupal raramente é usado quando se trata de apenas um simples blog.

Para saber mais, dê uma passada na Wikipedia. No próximo tópico iremos instalar o nosso ambiente de trabalho para começarmos a botar a mão na massa no Drupal.

 

Este código é um oferecimento da XPDEV para você que gosta de ficar o dia todo no Twitter.

Com ele, você vai evitar de ficar clicando no link para ver os novos tweets.

Para adicionar este recurso, arraste este LINK para a sua barra de favoritos.
Ele está configurado para fazer a atualização de 5 em 5 segundos.

Fica a dica para seguir @XPDEVBRASIL também.

 

Até a próxima.

fzmaster