2011-11-15 18 views
0
// Bootstrap Drupal 
define('DRUPAL_ROOT', getcwd()); 
require_once 'includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
function deleteBillNodes() 
{ 
    $results = db_select('node', 'n') 
       ->fields('n', array('nid')) 
       ->condition('type', array('bill'), 'IN') 
       ->execute(); 
    foreach ($results as $result) 
    { 
    $nids[] = $result->nid; 
    } 

    if (!empty($nids)) 
    { 
    node_delete_multiple($nids); 
    } 
} 
echo "Removing bill nodes from database\n"; 
deleteBillNodes(); 

"定義されていない関数node_delete_multiple()"を呼び出しています。"未定義関数node_delete_multiple()"

これを動作させるにはどうすればよいですか?

答えて

0

Drupalでは、ブートストラップを実行する前に単一の定数を定義する必要があります(DRUPAL_ROOT)。ただ、drupal_bootstrap()にお電話する前にこれを置く:

define('DRUPAL_ROOT', getcwd()); 

これは、Drupalの自身がそれをしない方法で、index.phpで唯一のコード行は、次のとおりです。

define('DRUPAL_ROOT', getcwd()); 

require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
menu_execute_active_handler(); 
+0

私は忘れてしまったのですが、そこに定義されているのは忘れてしまいました。私はmenu_execute_active_handlerが必要ですか? –

+0

テストサイトであなたのコードを試したところ、うまくいきました。うまくいけば、 'node_delete_multiple'はうまく動作します。これは*インストールされた* Drupalサイトで実行されていますか? – Clive

+0

はいこれは完全に機能するサイトです。 Drupal 7.9 –

0

はのsettings.phpとクリアキャッシュからfast404を削除してください? これが解決策であれば、drupal.orgに投稿する時です。バグページには同じ問題がありましたlibristranieri.com