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.

victor

Hola!. Me llamo Víctor Reyes y soy Ingeniero Agrónomo de formación y programador web de profesión (desde el año 2006). Por otra parte me gusta, entre otras aficiones, el senderismo, jugar al futbol y al FIFA en la PS3. Te animo a participar en mi web www.biolucas.com

This Post Has 2 Comments

  1. Alejandro Ríos

    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.

    1. victor
      victor

      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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*

CommentLuv badge