É muito chato pensar em algo e não ter a mínima ideia de como programar isso. No meu caso, o “algo” era usar a famosa função include, do PHP, no IP.Board, para incluir um script simples, que randomiza os anúncios do Google AdSense entre os administradores. Como a renda proveniente dos anúncios do Guia do PC é dividida, é mais fácil e conveniente fazer com que o próprio servidor “divida” essa renda. Esse script básico pode ser feito com rand() e switch (ou if, se você preferir).
A programação do script é fácil. O problema é: como incluir esse script em uma skin do IP.Board? Frames não são aconselháveis porque, como os anúncios do AdSense são contextuais, colocá-los numa página diferente diminuiria a relevância desses anúncios. Após alguns minutos de pesquisa no oráculo, descobri a tag <php>, que pode ser inserida na skin, assim:
<php> echo 'Isto será interpretado pelo PHP'; include '/home/paulo/public_html/arquivo-qualquer.php'; </php>
O problema desse código é que ele será interpretado antes da própria skin, útil apenas em códigos que não retornam nada na tela. Sendo assim, não importa onde você colocar o echo(), por exemplo: ele sempre aparecerá no topo da página.
Nesse caso em específico, não consegui encontrar nada relevante no Google. Por sorte, a Invision Power mantém um suporte técnico na área de clientes. Eles me retornaram o seguinte código, que (adivinhem!) funcionou:
{parse include="/home/paulo/public_html/arquivo-qualquer.php"}
Para usá-lo em todas as páginas do fórum, basta acessar o Admin CP, entrar na aba ‘Look & Feel’ e usar a opção ‘Manage Templates & CSS’ na skin desejada. Em ‘Global Templates’, aba o template ‘globalTemplate’ e insira o código desejado. Para colocar o código logo após a barra de navegação e usuário, insira o código depois do trecho:
<div id='content' class='clear'>
…caso esteja usando o IP.Board 3.
Para os mais curiosos, as tags {parse} podem fazer mais, como mostrado na documentação do IP.Board. Um script simples para randomizar anúncios está logo abaixo.
<?php
$autores = rand(1,10); // depende do número de autores: caso sejam 3, utilize rand(1,3)
switch($autores){ // escolha entre os autores
case 1: // se o escolhido foi o autor 1...
echo 'Código do autor número 1'; // mostra o código
break; // termina o 'case'
case 2: // se o escolhido foi o autor 2...
echo 'Código do autor número 2'; // mostra o código
break; // termina o 'case'
// (...)
case 10: // se o escolhido foi o autor 10...
echo 'Código do autor número 10'; // mostra o código
break; // termina o 'case'
}
?>

