Используя выражения выбора или производное поле в Представлениях2 в качестве полей?


Можно ли использовать выражение select или производное поле в качестве поля в Views2 в Drupal 6?

Расширенная справочная документация , по-видимому, указывает на то, что, возможно, это возможно:

Хотя очень часто используется неполя для отображения данных, которые не находятся непосредственно в поле, таких как данные , полученные из формул...

Но они там не приводят примеров.

Я имею в виду, что я ищу какой-то способ укажите, что запрос должен быть

SELECT field1, CONCAT(field3, ', ', field4) AS alias1, IF( field5 > 10, 1, 0) AS alias2 FROM table ...

Могу ли я указать выражения alias1 и alias2 в собственных функциях views2? Если да, то каков синтаксис?

Или мне нужен отдельный модуль?

 1
Author: user1359, 2011-06-22

1 answers

Похоже, что мне нужно создать Пользовательский обработчик полей. Из связанной статьи, определение, подобное этому

<?php
class scheduler_handler_field_scheduler_countdown extends views_handler_field {
  function query() {
    $this->ensure_my_table();
    $this->node_table = $this->query->ensure_table('node', $this->relationship);
    $this->field_alias = $this->query->add_field(NULL,
      'IF(publish_on AND publish_on > UNIX_TIMESTAMP(),
        publish_on - UNIX_TIMESTAMP(), NULL)',
      $this->table_alias . '_' . $this->field);
  }
}
?>

Добавляет это в запрос

SELECT node.nid AS nid,
       node.title AS node_title,
       IF(publish_on AND publish_on > UNIX_TIMESTAMP(),
           publish_on - UNIX_TIMESTAMP(),
           NULL) AS scheduler_publish_countdown
    FROM node node
    LEFT JOIN scheduler scheduler ON node.nid = scheduler.nid
    WHERE node.status = 0
 2
Author: user1359, 2011-06-23 17:14:10