Вы здесь

Как сделать hook_views_pre_render в Views Search api

2

Задача:
Есть несколько типов товара. На каждый тип товара свой watermark. Созданы стили под каждый watermark. В обычном views я делаю так:

function custom_views_watermark_views_pre_render(&$view){
    if ($view->name == 'product') {
    foreach ($view->result as $row) {
        foreach ($row->field_uc_product_image as &$row_image) {
            if (isset($row_image['rendered']['#item']['is_default'])) {
                $row_image['rendered']['#image_style'] = 'medium_thumbnail';
                $defaul_image_ifo = image_get_info($row_image['rendered']['#item']['uri']);
                $row_image['rendered']['#item']['width'] = $defaul_image_ifo['width'];
                $row_image['rendered']['#item']['height'] = $defaul_image_ifo['height'];
            } else {
                switch ($row->node_type) {
                    case 'product':
                        $row_image['rendered']['#image_style'] = 'style1_list';
                        break;
                    case 'product2':
                        $row_image['rendered']['#image_style'] = 'style2_list';
                        break;
                    default:
                        break;
                }
            }
        }
    }
}
}

Но в Вьюхе которая показывает поисковый индекс в $view->result только вот это:
... (Object) stdClass
entity (Integer) 19013
_entity_properties (Array, 3 elements)
search_api_relevance (Float) 1.4130735
search_api_excerpt (String, 0 characters )
search_api_id (String, 5 characters ) 19013

Вопрос собственно как сделать как отальтерить поле в вьюхе Search api.
Или я изначально неправильно делаю, что использую views_pre_render.

Версия Drupal: 
7.x
Категория: 
Field APISearchTheming
Связанные проекты: 
Search APIViews
Вопрос задан 05.02.2015 - 15:09

я бы наверное подобную задачу решал в препроцессе для поля вьюхи
к примеру preprocess_views_view_field__VIEWNAME__DISPLAY__FIELDNAME
там будет поле в $vars['row']->_entity_properties['fieldname']

Комментарий оставлен 05.02.2015 - 16:11

dpm(dpm($vars['row']->_field_data['uc_product_image']['entity'])):
fid (String, 4 characters ) 1725
uid (String, 1 characters ) 0
filename (String, 46 characters ) avtomagnitola_pioneer_da-971_cvet_chyornij.jpg
uri (String, 66 characters ) public://rsp/images/avtomagnitola_pioneer_da-97...
filemime (String, 10 characters ) image/jpeg
filesize (String, 5 characters ) 79510
status (String, 1 characters ) 1
timestamp (String, 10 characters ) 1413221126
alt (String, 97 characters ) Купить автомагнитола Pioneer...
title (String, 64 characters ) Автомагнитола Pioneer DA-971, цв...
width (String, 3 characters ) 766
height (String, 3 characters ) 482
Все бы хорошо, но нету стилей '#image_style'.
Что нибудь еще посоветуешь?

Комментарий оставлен 07.02.2015 - 11:46

Ответы