Los campos del tipo ghost son válidos, para mostrar algo más que el simple dato que ofrece el campo. Se pueden concatenar diversos campos, o diréctamente definir el HTML que se verá en el lugar del campo.
fieldName:
type: ghost
dirty: true
source:
class: Application_klear_Ghost_Item
method: getData
orderMethod: getOrderBy
searchMethod: getSearchConditionsForItem
field: modelId
cache:
campo: true
conditions:
campo: valor
dirty: para que interprete el código HTML devuelto. Por defecto el false.
class: clase encargada de servir los datos.
Se recibe el $model en la función.
Para ordenar por un campo de una tabla relacionada, tendremos que calcular el orden deseado y devolver los valores del campo de la tabla principal de la siguiente manera:
return "FIELD(campo,".implode(',',valoresOrdenados).")";
<?php
class Application_Klear_Ghost_Item extends KlearMatrix_Model_Field_Ghost_Abstract
{
public function getData($model)
{
# Tenemos el $model para trabajar
# Nuestro código para generar el resultado,
# Se puede devolver HTML si se ha definido dirty:true
return $resultado;
}
public function getSearchConditionsForItem($values, $searchOps, $model)
{
# Tenemos un array de valores de búsqueda
# También tenemos el $model
# y las $searchOps
# Nuestro código para generar el WHERE que se requiera
# Devolvemos el WHERE que hemos generado
return $where;
}
public function getOrderBy($model)
{
# En esta función también se recibe el $model
# Devolvemos el valor generado para el ORDER BY
return "FIELD(campo,".implode(',',valoresOrdenados).")";
}
}
Nota
Todas las clases que generemos del tipo Ghost, deberán implementar KlearMatrix_Model_Field_Ghost_Abstract.
Las funciones dentro de la clase no tienen porque llamarse igual, ya que se definen en el model.yaml.