Arquivo da tag: mediaWiki

Limpando histórico de edições dos artigos da mediaWiki

Quando um site mediaWiki começa a receber visitantes diversos problemas começam a aparecer, os principais deles são o spam e o vandalismo.

O administrador passará horas removendo propaganda indesejada e recuperando artigos apagados por vândalos. O problema é que muitas vezes um artigo é editado diversas vezes, dificultando através do histórico de atualizações descobrir qual a última versão correta para que possa ser possível restaurá-lo.

Por esse motivo, é importante criar uma rotina de limpeza. Eu após revisar todos artigos, faço uma limpeza das versões antigas deixando no sistema apenas a última versão revisada pelo administrador. Assim, no outro dia, para efetuar a nova limpeza, basta restaurar os artigos vandalizados para a versão mais antiga ainda armazenada no sistema (que é a última versão revisada pelo Administrador).

Para efetuar esta limpeza é necessário que você tenha acesso a linha de comando do seu servidor, e execute o comando abaixo no diretório de manutenção do sistema mediaWiki (diretório “maintenance”):

php deleteOldRevisions.php --delete

Você tem uma outra abordagem para tratar vandalismo em seu site mediaWiki?

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Instalando mediaWiki – Como usar url: examplo.com/Artigo

Após instalar o software mediaWiki, ao contrário do que acontecia na versão anterior, o padrão de URL para os artigos passou a ser http://www.exemplo.com.br/index.php/Página_principal. Mas como fazer para que o mediaWiki volte a utilizar o padrão antigo (http://www.exemplo.com.br/Página_principal)?

01) No servidor, na raiz da instalação do mediawiki, coloque um arquivo chamado ".htaccess", e no seu conteúdo coloque:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?title=$1 [NC,L,QSA] 

Modifique o arquivo LocalSettings.php, também localizado na raiz do software. Onde tiver a variável, $wgScriptExtension = ".php"; adicione:

 $wgArticlePath = "/$1"; $wgUsePathInfo = true; $wgScriptPath       = ""; $wgScriptExtension  = ".php"; 

Observe que a instalação utilizada neste exemplose localiza na raiz do servidor. Além disso, o módulo modRewrite deve estar habilitado no apache!

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Warning: Cannot modify header information – headers already sent by (output started at /LocalSettings.php:1) in /includes/WebResponse.php on line 16

Hoje tentei modifcar a configuração de um site criado no mediaWiki, e após o acréscimo de uma nova opção, ele passou a exibir a seguinte mensagem de erro:

Warning: Cannot modify header information – headers already sent by (output started at /LocalSettings.php:1) in /includes/WebResponse.php on line 16

Quem trabalha com PHP sabe que esse é um problema clássico de envio de dados antes de efetuar um redirecionamento. O problema é que o script não tinha dados algum sendo enviado antes do início do script, muito menos no final.

O script iniciava assim:

<?php
# This file was automatically generated by the MediaWiki installer.
# If you make manual changes, please keep track in case you need to
# recreatachee them later.

Então o que poderia estar causando este problema? A codificação do arquivo, claro! Sempre ela…

O problema é que em alguns editores (principalmente na versão Windows) quando salvam os arquivos no formato UTF-8 adicionam uma marcação ao inicio do arquivo chamada Unicode Signature (BOM), por esse motivo o interpretador do PHP acredita que existem dados antes do inicio do script que está sendo enviado ao servidor.

No Dreamweaver CS5, esta configuração pode ser modificada no menu “Preferências” e então na categoria “NewDocument”. Desmarque a opção “Include Unicode Signature (BOM)”. Pronto! todos os novos arquivos serão criados sem esta marcação; e para os arquivos já existentes, basta selecionar a opção “Salvar Como” e escolher a opção de não utilizar o “BOM”, que estará presente nessa caixa de diálogo também.

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como descobrir qual skin a instalação do mediaWiki está utilizando?

Se você instalou o software open source mediaWiki, e não sabe qual skin você está utilizando, este post tentará ajudá-lo.

Abra o arquivo LocalSettings.php, localizado na raiz de sua instalação e tente localizar a variável $wgDefaultSking. Você encontrará o seguinte código

## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'vector', 'monobook':
$wgDefaultSkin = 'vector';

Como pode ser observado, a minha instalção está utilizando o skin “Vector”, a mesma utilizada pelo site Wikipedia.

Simples, não?

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Configurando um site MediaWiki para utilizar o Facebook Comments

Você é um usuário do sistema Open Source mediaWiki? Algum dia já pensou em adicionar a plataforma de comentários do Facebook em seus artigos? Se a resposta é sim, você provavelmente já se deparou com alguns problemas típicos da instalação deste plugin no mediaWiki. O objetivo deste artigo é fornecer um passo-a-passo para que você configure esta incrível ferramenta sem perder tempo!

A instalação do Facebook Comments deve ser feita em 4 etapas:

  • Instalação do Código do Plugin fornecido pelo Facebook;
  • Obtenção do Facebook App ID;
  • Obtenção do ID de usuário do Facebook;
  • Instalação dos META TAGS, que lhe permitirão administrar os comentários, inclusive adicionando moderação.

Passo 01 – Instalação do Código do Plugin fornecido pelo Facebook

Visite o site http://developers.facebook.com/docs/reference/plugins/comments/, configure o plugin de acordo com as opções desejadas e clique sobre o botão “Get Code”. Estes dados deverão ser colados no Skin utilizado por sua instalação do mediaWiki. Se você não sabe qual o skin está utilizando, visite o post “Como descobrir qual skin a instalação do mediaWiki está utilizando?“. Edite o arquivo nomedoskin.php (no meu caso vector.php) que se encontra na pasta /skins. localize dentro do arquivo o seguinte código:

<?php $this->html( 'bodytext' ); ?>

Abaixo desta linha, adicione o seguinte código (Este é o mesmo código fornecido pelo facebook, com algumas modificações):

  <script type="text/javascript">// <![CDATA[
  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=247261365335953";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
  // ]]>
  </script>
  <h2>
  <span class="mw-headline" id="Comentários">Comentários</span>
  </h2>
  <div class="fb-comments" data-href="<?php echo $lstr_URL; ?>" data-num-posts="4" data-width="600"></div>

Observe que a variável adicionada $lstr_URL contém o endereço da URL que usuário está utilizando. Este código foi adicionado para que cada página possa ter o seu próprio botão Like. Para saber como obter o endereço da URL que o usuário está abrindo visite o post “Como descobrir a URL do script que está sendo executado, utilizando PHP?

Pronto!

Passo 02 – Obtenção do Facebook APP ID

Para obter o seu APP ID, cadastre-se em https://developers.facebook.com/apps

Passo 03 – Obtenção do ID de usuário do Facebook;

Você pode descobrir seu ID, visitando o post “Como descobrir o ID do meu usuário do Facebook?

Passo 04 – Instalação dos Meta Tags

Esta é a parte mais complicada, pois as extensões do mediaWiki disponíveis adicionam apenas meta tags com o comando NAME e não com o comando PROPERTY exigido pelo Facebook. Assim, tive que customizar uma extensão chamada AddMetas (desenvolvida por Luis diaz), para que ela adiciona as Meta tags aceitas pela API do Facebook. Assim surgiu o código:

<?php

if( !defined( 'MEDIAWIKI' ) ) {
    echo( "This file is an extension to the MediaWiki software and cannot be used standalone.n" );
    die( 1 );
}
 
$wgExtensionCredits['other'][] = array( 
    'name' => 'AddFacebookCommentsMetas', 
    'status' => 'experimental',
    'author' => 'Paulo A. Costa (Based on work of Luiz Dias - AddMetas)',
    'version' => '0.1',
    'url' => 'http://www.pauloacosta.com/blog',
    'description' => 'Add required Facebook comments Meta Properties.',
);
 
$wgHooks['OutputPageBeforeHTML'][] = 'wfAddMetas';
 
function wfAddMetas( &$out, &$text ) {
  global $wgTitle, $wgParser, $wgRequest, $action;
  if(
          $action !== 'edit'
       && $action !== 'history'
       && $action !== 'delete'
       && $action !== 'watch'
       && strpos( $wgParser->mTitle->mPrefixedText, 'Special:' ) === false
       && $wgParser->mTitle->mNamespace !== 8
  )
  {
    $name = $wgTitle->getPrefixedDBKey();
 
    $out->addHeadItem("meta:property:"."fb:admins", Html::element( 'meta', array( 'property' => "fb:admins", 'content' => 'FACEBOOK_USER_ID') ) );	 
    $out->addHeadItem("meta:property:"."fb:app_id", Html::element( 'meta', array( 'property' => "fb:app_id", 'content' => 'FACEBOOK_APP_ID') ) );
	        
  }
  return true;
}
?>

Salve o código acima (sem esquecer de substituir os valores para FACEBOOK_USER_ID, FACEBOOK_APP_ID – Obtidos nos passos anteriores) no arquivo /extensions/addMetaTags/addMetaTags.php, e adicione o código abaixo no /LocalSettings.php

# Extension: addMetaTags
require_once( "$IP/extensions/addMetaTags/addMetaTags.php" );

Salve!

O trabalho foi finalizado, e você já pode visualizar o artigo em seu site mediaWiki contendo uma área de comentários. Além disso, você também poderá moderar os comentários que seus visitantes deixam antes de que os outros visitantes leiam, para isso visite o endereço http://developers.facebook.com/tools/comments

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).