A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Joomla - Acessando uma base de dados externa

Seg

10

Nov

2008


22:54

(4 votos, média 5.00 de 5) 


Joomla

Neste tutorial vou explicar como usar o objeto database para acessar uma base de dados externa ao Joomla. No meu caso esta necessidade surgiu quando resolvi criar um módulo que mostrasse os post mais recentes dos Blogs Numaboa. Achei que seria a maior complicação e acabei descobrindo que é bico smile

Como surgiu a necessidade

Já faz um tempão que procuro um sistema de Blog para o Joomla. Experimentei alguns, mas nenhum deles me convenceu porque nunca chegaram a funcionar direito. Dava muita mão de obra ficar remendando o código fonte e o resultado era questionável. Das duas uma: ou teria que criar um sistema próprio ou procurar alguma coisa focada em blogs.

Como o tempo que tenho disponível não dá para criar um sistema tão complexo, resolvi pesquisar para ver se encontrava alguma coisa do tipo "prato pronto". Lembrei-me do WordPress e fui dar uma espiada. Da última vez em que havia testado este sistema, a coisa estava meio crua. Como este teste havia sido feito há alguns anos e o projeto do WP continuou em plena atividade este tempo todo, nada mais justo do que refazê-lo.

Dei uma espiada no site e fiquei surpresa com a documentação (aliás, bem melhor do que a do Joomla). Resolvi baixar o Wordpress e dar uma olhada na estrutura do sistema e no estilo da programação. GRATA SURPRESA!

Senti firmeza e resolvi instalar o WP num subdiretório do Joomla. Foi a instalação mais indolor de que tenho notícia: rápida (aliás, de uma rapidez meteórica) e extremamente fácil. Como era pra ser apenas um teste, criei uma base de dados exclusiva para o WP no MySQL - melhor não misturar as coisas, foi o que pensei. Comecei a brincar um pouco e, em pouco tempo, decidi ficar com o sistema. Bão, agora seria preciso criar um link no menu principal da Aldeia (Joomla) que chamasse os blogs (WP), coisa muito simples: bastou criar um item de menu do tipo URL com um endereço apontando para o subdiretório onde o WordPress havia sido instalado.

A coisa estava andando de vento em popa, mas... e o módulo do Joomla que mostrava as novidades? Mostrava o que havia de novo no Joomla, só que os posts no WordPress ficavam de fora. And now, pica-pau? Surgia a necessidade do Joomla poder "conversar" com uma base de dados externa wink

O pulo do gato (ou do pica-pau)

Eu poderia criar um monte de código PHP para acessar a base de dados do WordPress, só que achei por bem dar mais uma revisada no objeto database do Joomla antes de disparar um código do tipo

$db = mysql_connect("localhost", "usuario", "senha"); mysql_select_db("BaseDeDados", $db); ... mysql_close($db);

Fiquei feliz de ter dado esta chance ao objeto database. O resultado foi excelente e bem ao estilo Joomla. Aqui está o código para criar um novo objeto database com todas as mordomias que este objeto oferece:

$opcoes = array(); $opcoes['host'] = 'localhost'; $opcoes['user'] = 'usuario'; $opcoes['password'] = 'senha'; $opcoes['database'] = 'nomebasedados'; $opcoes['prefix'] = 'prefixo_'; $opcoes['driver'] = 'mysql'; $db =& JDatabase::getInstance( $opcoes );

Pronto, é só isto e o objeto database ($db) já está na mão. Se quisermos ser um pouco mais cuidadosos para que caso a conexão com a base de dados falhe, basta adicionar um pouquinho mais de código para receber possíveis mensagens de erro:

if ( JError::isError($db) ) { jexit('Database Error: ' . $db->toString() ); } if ($db->getErrorNum() > 0) { JError::raiseError(500 ,'JDatabase::getInstance: Falha na conexao<br />' . 'joomla.library:'.$db->getErrorNum().' - '.$db->getErrorMsg() ); }

Partindo para o abraço

De posse de uma instância do objeto database do Joomla, agora é só brincar com queries. Como a estrutura do banco de dados do WordPress é um capítulo à parte, não vai ser neste tutorial que vou entrar em detalhes. Afinal de contas, era só para mostrar como fazer uma conexão com uma base de dados externa. Mas, vá lá. Uma das queries poderia ser algo como:

$query = "SELECT DISTINCT post_parent FROM #__posts ORDER BY post_parent DESC"; $db->setQuery( $query ); $parents = $db->loadObjectList();

Como sempre, espero ter ajudado compartilhando minhas tentativas e experiências. Nos vemos uma outra hora quando eu contar algumas coisas que descobri no WP.

Valeu biggrin

mfx brokerкупить сайталександр лобановский харьковинтехбанк официальныйкликвью полигон ооо одесса лобановский депутат

Informações adicionais