2012-03-19 68 views
0

我正在尋找在Drupal 7中使用當前日期作爲變量在視圖中創建數學表達式。我還沒有找到任何簡單的標記或在視圖中的數學表達式中引用當前日期的方式。當前日期標記在Drupal視圖

有沒有人知道這樣做的有效方法?

回答

0

我只是在尋找這個。這就是我剛剛扔在一起。 「:與令牌替換自定義文本全球」字段,然後用[電流日期:原料]

<?php 
/** 
* Implements hook_views_api() 
*/ 
function mymodule_views_api() { 
    return array("version" => "3.0"); 
} 

/** 
* Implements hook_views_data_alter() 
*/ 
function mymodule_views_data_alter(&$data) { 
    $data['views']['nothing_token'] = array(
    'title' => t('Custom text with token replacement'), 
    'help' => t('Provide custom text or link with token replacement.'), 
    'field' => array(
     'handler' => 'views_handler_field_custom_token', 
    ), 
); 
} 

class views_handler_field_custom_token extends views_handler_field_custom { 
    function query() { 
    // do nothing -- to override the parent query. 
    } 

    function render($values) { 
    global $user; 

    $data = array(
     'user' => $user, 
     'view' => $this->view, 
    ); 
    // Return the text, so the code never thinks the value is empty. 
    return token_replace($this->options['alter']['text'], $data); 
    } 
} 

然後在您的視圖將添加在文本字段中。然後,您可以使用該字段添加數學表達式。您可能可以擴展views_handler_field_math類以在那裏做同樣的事情,但沒有嘗試過。

0

我喜歡喬納森在自定義文本字段中允許令牌的方法。雖然對我來說並不適合,因爲render()函數不是爲我輸出值的東西。我不得不使用render_text函數。這對我的班級有用。它對核心觀點行爲的破壞性也小一些。

class views_handler_field_custom_token extends views_handler_field_custom { 
    function render($values) { 
    global $user; 

    $data = array(
     'user' => $user, 
     'view' => $this->view, 
    ); 
    // Return the text, so the code never thinks the value is empty. 
    return token_replace(parent::render($values), $data); 
    } 

    function render_text($alter) { 
    global $user; 

    $data = array(
     'user' => $user, 
     'view' => $this->view, 
    ); 

    return token_replace(parent::render_text($alter), $data); 
    } 

}