Friday, 20 January 2012

Enviar email diariamente com hook_cron para atualizar o status do facebook

Eu to querendo fazer uns posts automáticos no facebook!

Achei alguns sites ensinando coisas interessantes e uma coisa que gostei foi a parte de que o facebook permite que você envie um email pra sua página, onde esse email é a atualização de status do facebook.
http://www.blueglass.com/blog/update-facebook-page-schedule-automate/
http://mashable.com/2009/08/11/how-to-update-facebook/
http://www.99points.info/2010/04/how-to-update-facebook-status-using-php…

Muito bem.
Aí então eu queria que o meu app enviasse esses emails automaticamente. Entra o hook_cron do Drupal pra resolver isso =)

Coloquei aqui só a parte do código que faz o email ser enviado diariamente.

if (strtotime('now') > strtotime('+1 day', strtotime(variable_get('jdb_fb_last_email_sent', NULL)))) {
    //update your variable
    variable_set('jdb_fb_last_email_sent', date('Y-m-d H:i:s'));
    // It's been  a day since we last sent the email, so send it
    jdb_fb_sendmail();
}

strtotime(‘now’) Pega a data de AGORA!
 

strtotime(‘+1 day’, strtotime(variable_get(‘jdb_fb_last_email_sent’, NULL)))
Aqui o strtotime faz uma data no futuro. Exatamente 1 dia no futuro, com relação ao último dia registrado. Qual é o último dia registrado??
 

variable_get(‘jdb_fb_last_email_sent’, NULL) Isto pega o último registro. Mas onde é que eu adiciono esse registro??
 

variable_set(‘jdb_fb_last_email_sent’, date(‘Y-m-d H:i:s’)) Isto adiciona e atualiza o resgistro da última data enviada.
 

jdb_fb_sendmail() é uma função que eu criei pra enviar os emails =)

Você pode usar o que quiser no lugar de ‘+1 day’. Pode enviar emails ou executar alguma função a cada 6 horas: ‘+6 hours’. Ou mesmo a cada duas semanas: ‘+2 weeks’. Qualquer período que você quiser.

 

Mas como enviar o email??

http://api.drupal.org/api/drupal/includes–mail.inc/function/drupal_mail… (Depois vou tentar, eu disse TENTAR, postar algo a respeito)

 

Abraços.

Tuesday, 5 October 2010

Pegar o caminho de um módulo ou um tema no Drupal

Existe uma função muito útil da API do Drupal.

Sabe quando está difícil demais de achar o caminho para o seu módulo ou seu tema e você escreve um string gigante para incluir uma função para fotos por exemplo…

<?php

include('/var/www/html/sites/all/themes/meutema/fotos/photo.php'); 

?>

Ai dá erro, aí você esquece alguma coisa nesse caminho todo… enfim..

Use as funções abaixo e ganhe um tempo extra nos

 

Para o seu módulo:

<?php

  drupal_get_path('module', $module_name);

?>

Para o seu tema

<?php

  drupal_get_path('theme', $theme_name);

?>

Naquele caso comentado acima você faria assim:

<?php

  $theme_path = drupal_get_path('theme', 'meutema');
  include($theme_path .'/fotos/photo.php');

?>