Acesso externo a base do drupal

Após eu publicar meu primeiro post no drupal-br sobre objeto user recebi uma sugestão para escrever sobre acesso externo ao drupal.

vamos lá:

primeiro vamos precisar fazer o include do arquivo bootstrap.inc, arquivo que contém as funções necessárias para as requisições.

include_once('./blog/includes/bootstrap.inc');

drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);

após fazer o include podemos chamar a função drupal_bootstrap passando a frase DRUPAL_BOOTSTRAP_DATABASE para inicilializar a base de dados padrão, com isso já teremos uma conexão ativa.

outros valores possíveis são:

* A constant. Allowed values are:
* DRUPAL_BOOTSTRAP_CONFIGURATION: initialize configuration.
* DRUPAL_BOOTSTRAP_EARLY_PAGE_CACHE: try to call a non-database cache fetch routine.
* DRUPAL_BOOTSTRAP_DATABASE: initialize database layer.
* DRUPAL_BOOTSTRAP_ACCESS: identify and reject banned hosts.
* DRUPAL_BOOTSTRAP_SESSION: initialize session handling.
* DRUPAL_BOOTSTRAP_LATE_PAGE_CACHE: load bootstrap.inc and module.inc, start
* the variable system and try to serve a page from the cache.
* DRUPAL_BOOTSTRAP_PATH: set $_GET['q'] to Drupal path of request.
* DRUPAL_BOOTSTRAP_FULL: Drupal is fully loaded, validate and fix input data.

após isso podemos começar a executar nossas sql. vou mostrar um exemplo que lista os títulos dos meus blogs e a data de criação. Lembre de configurar o path pois o drupal irá fazer includes de outros arquivos relativamente.

no meu caso, estou no raiz do meu domínio e o drupal está instalado no diretório blog.

<?php
chdir('./blog/');
include_once "includes/bootstrap.inc";
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);
$result = db_query("SELECT title, created FROM {node} WHERE TYPE = '%s' AND status = %d ", 'blog', 1);
while ($blog = db_fetch_object($result)) {
print $blog->title." em ".date('d/m/Y H:i:s', $blog->created)."";
}
?>

// minha saída:

Minha expectativa com este blog em 28/07/2007 20:05:59
Instalação do Drupal 5.2 em 28/07/2007 20:12:38
Meu projeto de pesquisa em 01/08/2007 22:42:59
Alteração do tema do projeto em 07/08/2007 22:50:02

e pronto, fácil né! :)