Si tenemos un campo field collection con campos como números decimales, números enteros, etc. es posible que queramos sumar esos valores en otro campo Computed.
Por ejemplo imaginemos que tenemos un campo field collection llamado: field_superf y este tiene campo de texto Nombre y un campo decimal llamado field_constr y tenemos los siguientes datos:
Sotano 50,00 m2
Planta baja 60,00 m2
Los valores del campo field_constr los podemos sumar en otro campo Computed escribiendo lo siguiente en el Computed Code (PHP):
$sum = 0; $wrapper = entity_metadata_wrapper($entity_type, $entity); foreach($wrapper->field_superf as $collection) { $sum += $collection->field_constr->value(); } $entity_field[0]['value'] = $sum;
Donde hemos puesto field_superf ponemos el nombre del campo field collection y donde hemos puesto field_constr ponemos el nombre del campo del que queremos sumar todos sus elementos.
En el Display Code (PHP) ponemos:
$display_output = $entity_field_item['value'];
Al ver el resultado obtendríamos en este caso: 110,00, que es la suma de 50,00 y 60,00 del ejemplo que hemos visto.
Este snippet de computed field aparece explicado por aquí y por allá en varios sitios, pero esta es la MEJOR explicación. Finalmente alguien se molesta en agregar un ejemplo COMPLETO con el nombre de los campos y los valores.
Muchísimas gracias Víctor.
Muchas gracias a ti Alejandro. La verdad que me costó un tiempo saber como funcionaba ya que no venía muy claro en ningún sitio.
Un saludo, Víctor