Добрый день. Такая проблема:
есть таблица (ex_table), такой структуры:
__________________________________
uid | a1 | a2 | b1 | b2 | c1 | c2
----------------------------------
нужно добавить поле и расширенный фильтр во views с сортировкой по возрастанию по убыванию, содержащие relev используя кусок запроса ниже
FROM ex_table
модуль допустим называется ex_table
что я делал:
в корне модуля создал ex_table.views.inc.php
со следующим кодом:
<?phpfunction ex_table_views_data() {
$data['ex_table']['table']['group'] = t('Example table');
$data['ex_table']['table']['join'] = array(
'users' => array(
'left_field' => 'uid',
'field' => 'uid',
),
);
$data['ex_table']['uid'] = array(
'title' => t('Example content'),
'help' => t('Some example content that references a node.'),
'relationship' => array(
'base' => 'users',
'field' => 'uid',
'handler' => 'views_handler_relationship',
'label' => t('Example node'),
),
);
$data['ex_table']['numeric_field'] = array(
'title' => t('Numeric field'),
'help' => t('Just a numeric field.'),
'field' => array(
'handler' => 'ex_table_views_handler_relev',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'ex_table_views_handler_relev',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
return $data;
}
function ex_table_views_api() {
return array(
'api' => 2,
'path' => drupal_get_path('module', 'ex_table') . '/includes',
);
}?>
в дирректории includes
создаю файл:
ex_table_views_handler_relev.inc
с кодом:
<?php
class ex_table_views_handler_relev extends views_handler_field_numeric {
function query() {
{
$this->ensure_my_table();
// Add the field.
$this->real_field = '((%d IN (a1,a2)) + (%d IN (a1,a2)) + (%d IN (b1,b2)) + (%d IN (b1,b2)) + (%d IN (c1,c2)) + (%d IN (c1,c2))) AS relev';
$this->field_alias = $this->query->add_field($this->table_alias, $this->real_field);
$this->add_additional_fields();
}
}
}
?>
затем включил, выключил модуль но своих трудов во views не увидел, подскажите что я делаю не так, в чем ошибка?
Если кто-то готов реализовать задачу за денежку пишите в личку!