現在の日付を変数として使用して、Drupal 7のビューで数式を作成したいと考えています。ビュー内の数式内で現在の日付を参照する単純なトークンや方法は見つかりませんでした。Drupalビューの現在の日付トークン
誰でも効果的な方法を知っていますか?
現在の日付を変数として使用して、Drupal 7のビューで数式を作成したいと考えています。ビュー内の数式内で現在の日付を参照する単純なトークンや方法は見つかりませんでした。Drupalビューの現在の日付トークン
誰でも効果的な方法を知っていますか?
私はこれも探していました。これは私が一緒に投げたものです。
<?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);
}
}
次に、「グローバル:カスタムテキストとトークン置換」フィールドを追加し、テキストフィールドに[current-date:raw]を使用します。そのフィールドを使用して数式を追加することができます。 views_handler_field_mathクラスを拡張して同じことをすることができるかもしれませんが、試していません。
カスタムテキストフィールドでトークンを許可するというJonathanのアプローチが好きです。 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);
}
}
あなただけの利用可能なフォーマットのリストを参照して、トークンに現在の日付を使用する方法を知りたい場合は、次の