Resolviendo el cambio de alias con views_customfield
Views Custom Field es un módulo que permite colocar PHP como contenido de un campo de una vista.
Normalmente, uno usa la variable $data para acceder a los valores de los campos que se hayan definido.
Por ejemplo,
Pero hay un problema con los valores de los campos CCK. El nombre de los campos que contienen sus valores en $data corresponden a aliases que no son constantes. Por ejemplo, cuando usa filtros expuestos, podrá encontrar que ese nombre de campo en $data cambia según qué filtro esté aplicando.
Una forma de solucionar esto es usar
Este es un ejemplo real:
Referencias
Normalmente, uno usa la variable $data para acceder a los valores de los campos que se hayan definido.
Por ejemplo,
$data->nid
permite obtener el valor de nodo y haciendo print_r($data)
uno puede explorar otros valores que usar.Pero hay un problema con los valores de los campos CCK. El nombre de los campos que contienen sus valores en $data corresponden a aliases que no son constantes. Por ejemplo, cuando usa filtros expuestos, podrá encontrar que ese nombre de campo en $data cambia según qué filtro esté aplicando.
Una forma de solucionar esto es usar
$this->view
, también disponible, para obtener el alias adecuado en cada caso. Es decir, en lugar de usar $data->some_field_alias
usar $data->{$this->view->field['field_id']->field_alias}
Este es un ejemplo real:
<?php $cliente_nid = $data->{$this->view->field['field_client_nid']->field_alias}; $pieza = $data->{$this->view->field['field_job_pieza_value']->field_alias}; $descuento = $data->{$this->view->field['field_job_descuento_value']->field_alias}; $factor = $data->{$this->view->field['field_job_factor_value']->field_alias}; $cantidad = $data->{$this->view->field['field_job_cantidad_value']->field_alias}; return mymodule_get_tarifa_final($cliente_nid, $pieza, $descuento, $factor, $cantidad); ?>
Referencias
Comentarios
Publicar un comentario