2012-09-03 69 views
0

我使用的是Drupal Views模塊和PHP Views模塊。我設置的是5個使用PHP塊調用我在Drupal中創建的函數的字段。 PHP代碼確實工作並顯示我想要的數據。如何使用Drupal的PHP Views模塊中的全局變量

有「可用變量」可用於PHP代碼可以使用的地區,在我的情況下,它的「輸出代碼」。因此,例如,您有$ view,$處理程序,$靜態,$行等

我試圖訪問所有這些,我得到一個500內部錯誤或有時我什麼也得不到。錯誤日誌指向在行122「views_php /插件/視圖/ views_php_handler_field.inc」我已經查看過的文件和代碼包含行:

$function($this->view, $this, $this->php_static_variable); 

我已經打過電話這樣的代碼:

<?php 
global $view; 
print_r($view); 
?> 

注意我已經嘗試過沒有全局線。

如何在PHP視圖中訪問這些變量?我正在使用Drupal 6和最新版本的PHP Views模塊,它是views_php 6.x-1.x-dev。

我用var_dump調用了函數「get_defined_vars()」,並且使用或不使用全局關鍵字,所提及的變量對我來說都是不可用的。然而,我可以訪問像Drupal全局的$ user這樣的變量。

回答

0

在視圖中您有預覽選項。我大部分時間都在測試我的結果。即使您看到警報框中提示您擁有500 internal error,也可以轉到設置了該視圖的頁面(路徑)。您應該看到$view變量的輸出。請注意,$view變量顯示的數據與列相關。我正在尋找的是有關當前位置(行)的信息。您需要使用$static變量自己設置此代碼,它將數據從一行保留到另一行,以便您可以手動跟蹤數組或數據位置的位置。

的我如何使用的靜態確定在何處我是在當前位置和

實施例,其中我需要的是下一個:

if (!$static['isInitial']){ 
    /* Should only enter this condition on the first element. 
    IsInitial determines this. */ 

    //Count the total amount of issues in Redmine right now. 
    $static['totalRedmineIssues'] = count($getValue); 

    $index = 0; 
    $static['currentIndex'] = $index; 
    $static['isInitial'] = true; 

    print_r($static); 

} else { 
    $static['currentIndex'] = $static['currentIndex'] + 1; 
    $index = $static['currentIndex']; 
}