Acredito que, nas últimas semanas, muitos internautas ficaram curiosos para saber como é possível “agendar posts no blog”, prevendo situações como a que eu estou passando agora: um longo período de inatividade. Particularmente, essa dúvida pintou pela primeira vez na minha cabeça em abril do ano passado, assim que migrei para a tecnologia Movable Type (se você usa blogger, weblogger, blig ou outro gratuito, certamente o restante do post será frustrante…).
Em busca de respostas, tive a orientação do mestre Fábio Sampaio, que me deu uma rápida aulinha: “MT é um publishing tool, que gera paginas estaticas – ao contrario de outros CMS em PHP/MySQL, que geram a página dinamicamente no instante do acesso, você é obrigado a regerar as pages índice sempre que publicar algo. A solução completa passaria por um script que seria executado todo dia automaticamente (via cron jobs, por exemplo), fazendo a geração da página somente com os posts até o dia atual”.
Traduzindo: o sistema não pode agendar posts, pois seria necessário alguém (ou um programa) para “clicar no publicar” todo dia.
Mas nem tudo está perdido: “existe um script em PHP que pode ser a solução para o que você deseja”, completou Fábio, indicando este endereço. Trata-se de um comandinho em PHP, que após instalado, faz com que o blog mostre apenas os posts publicados a partir da hora atual. Ou seja: se mudarmos a data do post, ele não aparece até o horário previsto!
A versão do comando PHP publicada no site é a seguinte:
<MTEntries>
<?
if (time() > strtotime ("<$MTEntryDate format="%B %e, %Y %I:%M%p"$>"))
{
?>
<!--- a seguir entram as tags normais do MT. Antes do "/MTEntries", adicione a próxima linha: -->
<? } ?>
</MTEntries>
Depois de mergulhar fundo na linguagem PHP, percebi que, na prática, o comando acima faz uma comparação entre a data e hora atual e a do post. Descobri ainda que a função strtotime reconhece apenas datas em inglês. Ou seja, dependendo do formato de data, a coisa não funcionaria bem no MMM. Assim sendo, fiz uma “alteração estúpida, porém funcional”:
<MTEntries>
<?
$hoje = date("Y-m-d H:i");
$post = "<$MTEntryDate format="%Y-%d-%e %H:%M"$>";
if ($hoje > $post)
{
?>
<!--- a seguir entram as tags normais do MT. Antes do "/MTEntries", adicione a próxima linha: -->
<? } ?>
</MTEntries>
Em tese, parece funcionar perfeitamente por aqui. Com exceção de alguns dados importantes: “tenha em mente que o fonte da página conterá todos os posts para o futuro, porém apenas aqueles até a data atual são mostrados no browser pela interferência do PHP. Outra falha da solução é o aparecimento desses posts do futuro na lista de resultados, caso alguém faça uma procura no blog com palavras que os mesmos contenham”. Realmente, quem fez isso por aqui quebrou a cara…
A idéia certamente vai ser aperfeiçoada para o ano que vem, quando provavelmente existirão plug-ins preparados para tal. Ou, de repente, simplesmente esqueço esta facilidade e ignoro solenemente a existência do blog nas férias.
Confesso que pra mim, falou grego!;)
Euzinha, como a Cacau, também não entendi nada.
O Sabbath que vai curtir esse post, ainda comentamos dia desses, “como será que o Marmota programou isso tudo?”.
Beijo no Fábio!!!
Beijo,
valeu pelas dicas, aí, brother! abraços!
Heimmmmmm… É de comer?!?!?!?!
Brincadeirinha!!!
Eu entendi tudinho…
…errado!
🙂
Falando sério: legal isso, eu não teria o dom. Só se fosse muito necessário para a minha sobrevivência (ãhmmmmm?!?!?!).
Aiaiai…
Beijos,
Obrigado pela gentil citação e bem-vindo de volta!
PS: Gostei do “vai assim mesmo” aí embaixo.