Создание поля и сортировки по нему во views (помогите за вознагрождение)

Главные вкладки

Аватар пользователя gumk gumk 7 июня 2010 в 18:36

Добрый день. Такая проблема:
есть таблица (ex_table), такой структуры:
__________________________________
uid | a1 | a2 | b1 | b2 | c1 | c2
----------------------------------

нужно добавить поле и расширенный фильтр во views с сортировкой по возрастанию по убыванию, содержащие relev используя кусок запроса ниже

SELECT ((%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
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 не увидел, подскажите что я делаю не так, в чем ошибка?

Если кто-то готов реализовать задачу за денежку пишите в личку!