2010-06-15 65 views
1

我想要定製一個Drupal 6.x模塊。原始模塊不會對數據庫進行任何調用,但自定義版本需要從數據庫中提取一些數據。查詢應該通過AJAX調用進行。所以我試圖讓數據提供者接收調用,查詢數據庫並返回結果(某些json)。在Drupal中訪問數據庫

對於數據提供者,我需要一個鏈接到數據庫,但我不想在腳本中創建鏈接,而是想要查找存儲數據庫連接值的腳本幷包含該文件。但我似乎沒有找到該文件的任何成功。它位於典型的Drupal安裝位置?

P.S.我不想讓它成爲Drupal模塊,並遵循所有約定來創建_hook()函數。我想讓它直線前進,老派。

+0

沒有使用鉤子,模塊的代碼沒有機會從Drupal中調用。至少,模塊應該定義'hook_menu()',它定義了模塊所具有的菜單回調(換句話說,它暴露了模塊使用的菜單)。 用戶不能使用沒有菜單的模塊;沒有鉤子的模塊不會被Drupal調用。 – kiamlaluno 2010-06-15 19:47:35

+0

如果你想做oldschool,而不是使用drupal框架,你最好使用'php'和'ajax'標籤而不是drupal標籤。畢竟,如果你要去上學,那麼這個網站是否基於drupal並不重要。 – 2010-06-15 19:49:21

+0

@barraponto - 那麼drupal標籤就是爲了引起那些熟悉drupal的人的注意。我的問題不是如何對查詢進行編碼,我知道我在問的是在drupal安裝中可以找到哪些特定信息。 – 2010-06-15 19:54:26

回答

0

數據庫設置應該在sites/default/settings.php

+0

謝謝。看起來他們不能直接做任何事情,現在我應該從URL中獲取值! – 2010-06-15 19:46:51

+0

如果你問我,你堅持以這種方式做到這一點很困難,這就是爲什麼事情似乎並不簡單。 – ceejayoz 2010-06-15 20:09:43

2

「P.S.我不想把它做成一個Drupal模塊,並遵循所有的約定來創建_hook()函數,我想讓它變得簡單和老派。

爲什麼?這是最簡單的方法,您仍然可以在其中定義外部數據庫連接並使用Drupal數據庫層,並且您可以從您正在定製的模塊中執行此操作。

如果您不使用外部數據庫(不是Drupal),那麼您可以使用數據庫API。

http://api.drupal.org/api/group/database/6

其他設置可以存儲在settings.php配置,但由於要自定義模塊,我將有它的模塊內的權利,使您不必以後打獵下來。

+0

如果您已經具備框架的工作知識,那麼可能會最簡單。我對它並不熟悉,我試圖達到的是相當微不足道的。 – 2010-06-15 19:49:29

7

一個簡單的方法,如果你直接調用這個文件是引導Drupal。例如,你可以做到以下幾點:

<?php 
// Bootstrap Drupal 
require 'includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
?> 

這將允許您訪問的全方位的Drupal的API包括db_query()。爲了您的使用,您可能只想將DRUPAL_BOOTSTRAP_DATABASE而不是DRUPAL_BOOTSTRAP_FULL轉換爲drupal_boostrap()。請參閱http://api.drupal.org/api/function/drupal_bootstrap/6以供參考。

+0

這看起來很簡單,我會嘗試。謝謝。 – 2010-06-15 19:51:14

+0

代碼需要放在Drupal根目錄下的PHP文件中;如果將它放在不同的目錄中,則需要更改用於引導文件的路徑。 然後需要獨立於Drupal調用該文件。 – kiamlaluno 2010-06-15 20:15:37