Ayuda con modulo Field Reference

fmilland's picture

Hola Drupaleros, tengo un problemilla con un modulo, ojalá puedan echar la mano.

El caso es el siguiente,

Hice dos tipos de contenido:
1.- Equipo (Fields: nombre, logo (.jpg))
2.- Partido (Fields: fecha, logo Equipo A, Logo Equipo B)

En el tipo de contenido "Partido" use un campo con Field Reference para "llamar" el .jpg del Equipo A y del Equipo B.

Cuando genero la View con el Formato de Tabla, todo se despliega correctamente y no manda error, sin embargo, cuando paso al front-end aparece lo siguiente:

Strict warning: Only variables should be passed by reference in field_reference_field_formatter_view() (line 316 of /Users/*****/sites/all/modules/field_reference/field_reference.module).

Esta es parte del codigo donde esta la linea 316

  if (!empty($item['revision_id']) && !empty($entity_type_info[$field_entity_type]['entity keys']['revision'])) {
      $field_entity_id = !empty($item['entity_id']) ? $item['entity_id'] : $entity->{$entity_type_info[$field_entity_type]['entity keys']['id']};
      $field_revision_key = $entity_type_info[$field_entity_type]['entity keys']['revision'];
      $field_entity = reset(entity_load($field_entity_type, $field_entity_id, array($field_revision_key => $item['revision_id'])));
    }
    else {
316>>     $field_entity = !empty($item['entity_id']) ? reset(entity_load($field_entity_type, array($item['entity_id']))) : $entity;
    }

Creo que el error se genera por el hecho de que el Field Reference es un .jpg y que formateador de la imagen en views que aparece como "default" "full" o "teaser", en vez de "image" o algo así, pero no encuentro que hacer?

Alguna idea??

gracias por su ayuda.

Comments

Has tenido suerte?

georch's picture

Hola,

Cómo te ha ido con este problema? Le he estado echando un ojo al módulo que usaste pero parece que tiene muy poco uso, quizá te convenga cambiar de estrategia, por ejemplo usar entity reference.

Saludos,

georch

es PHP, no drupal

naringas's picture

Me parece que es un problema con la configuración de PHP más que con drupal...

el problema es que PHP reporta los errores en modo estricto (E_STRICT)
tendrías dos opciones si quisieras seguir usando ese modulo: corregirlo para que sea compatible con modo estricto o reconfigurar PHP para que ignore las advertencias estrictas (strict warnings)

reconfigurar php: cambia el valor de error_reporting a E_ALL & ~E_NOTICE & ~E_STRICT en el php.ini... más info y fuente http://stackoverflow.com/questions/9983286/disabling-strict-standards-in...

tal vez la solucion más "correcta" sea arreglar el origen del warning
así sin probar, se me ocurre que cambiando la line 316 a estas dos lineas puede funcionar:

$loaded_entity = entity_load($field_entity_type, array($item['entity_id']));
$field_entity = !empty($item['entity_id']) ? reset($loaded_entity) : $entity;

el problema (a mi entender) es que la funcion reset espera una variable como referencia (según la documentacion de PHP), si le pasas el resultado de una funcion, recibe un valor, no una referencia, por lo tanto al crear la variable temporal $loaded_entity, la funcion reset puede recibir la referencia a esta variable y ya no debe de emitir el warning.

Hola naringas, Muchas gracias

fmilland's picture

Hola naringas,

Muchas gracias por la explicación y tu ayuda.

Reemplacé la linea 316 por las que facilitaste y el mensaje de error ha desaparecido, aún no he realizado mas pruebas o creado vistas, pero así tal cual todo funcionó bien.

De nuevo muchas gracias!

+Francisco Milland
@pacomilland

@fmilland, has reportado el

Ale.bcn's picture

@fmilland,

has reportado el fix al desarrollador? sería interesante así lo agregan al modulo ;)

Mexico

Group organizers

Group categories

Grupos locales

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week