Доброго времени суток всем!
Сделал свой модуль, пишу хук для views, хочу создать автовычисляемое поле. Написал почти всё, но никак не могу найти, как мне обратиться к переменной в $views.
Вот код:
<?php
class calculated_field_views_views_handler_field_files_count extends views_handler_field_numeric {
function query() {
$this->field_alias = $this->query->add_field(
NULL,
'(SELECT pr.field_price_uchastok_value/(pl.field_ploshad_value*10000) FROM field_data_field_price_uchastok pr,field_data_field_ploshad pl WHERE pr.entity_id = pl.entity_id and pr.entity_id = ',
'Price by meter'
);
}
function click_sort($order) {
$this->query->add_orderby(NULL, NULL, $order, $this->field_alias);
}
}
?>
Сам sql запрос рабочий, писал и тестил его в phpmyadmin. Мне осталось вставить туда только nid записей, но никак не пойму как их получить.
Комментарии
Можно сделать проще - вытащить эти поля вьюсом, а нужное вычислить в hook_views_pre_render
Как получить данные из полей views я понял, но как добавить новое - нет.
<?php
function c_bootstrap_barrio_views_pre_render(&$view){
if ($view->name == 'map') {
foreach ($view->result as $row) {
$price = $row->field_price_uchastok/($row->field_ploshad*10000);
}
}
}
?>
Что теперь с этой переменной делать? Как вывести её вместо с остальными полями?
С добавлением полей не сталкивался, только с переопределением. В теории, можно же например в длину перезаписать площадь, если длину не нужно выводить.
Благодарю за быстрый ответ) Сейчас попробую и отпишусь)