Grav-plugin-admin: Propiedad no definida: stdClass :: $ image en 1.8.2

Creado en 28 may. 2018  ·  8Comentarios  ·  Fuente: getgrav/grav-plugin-admin

Recibo el error Undefined property: stdClass::$image al cargar una imagen en una plantilla de página. El controlador de errores hace referencia específicamente a la línea 722 en adminbasecontroller.php . El plano específico de la imagen está aquí:

            header.image:
                type: file
                label: Screenshot
                limit: 1
                destination: 'self@'
                multiple: false
                style: vertical
                accept:
                  - image/*

La imagen se carga independientemente del error, pero el encabezado no se actualiza ...

Regresar a 1.8.1 lo solucionó por ahora.

bug

Comentario más útil

El problema se puede solucionar cambiando la línea 722 en adminbasecontroller.php para tener isset() :

if (isset($obj->header()->{$init_key})) {

Todos 8 comentarios

No hagas esto, el campo pagemedia ya se carga en la carpeta de la página. El campo de archivo está diseñado para usarse en otros planos que no sean de página.

Entonces, ¿cuál sería la forma correcta de lograr esto, en cuanto a los planos?

Aquí igual. Desde la actualización a Grav 1.4.5 y Admin 1.8.2, no puedo cargar imágenes, lo que resultó en el mismo error que informó @superDuperCyberTechno .

El extracto de mi plano es el siguiente:

[...]
header.images:
  type: file
  label: Images
  random_name: true
  multiple: true
  limit: 2
  destination: 'assets'
  filesize: 10
  accept:
    - image/*
[...]

Hasta ahora, esto ha funcionado sin problemas. La actualización lo rompió.

Si hay cambios importantes, sería conveniente conocerlos antes de la actualización. Si existen las mejores prácticas, sería genial conocerlas en lugar de simplemente obtener una respuesta como

No hagas esto, el campo pagemedia ya se carga en la carpeta de la página. El campo de archivo está diseñado para usarse en otros planos que no sean de página.

sin ningún indicio de por qué. Creé el plano de acuerdo con la documentación en ese momento y funcionó. O se trata de un error o de un cambio rotundo y no documentado.

Actualización: la degradación a Admin 1.8.1 también resolvió esto para mí. Esto refuerza mi impresión de que lo más probable es que se trate de un error introducido en 1.8.2.

Además, descubrí que al eliminar una publicación con esta configuración, se eliminan todas las imágenes de la carpeta assets . Esto parece ser un error bastante grande en el funcionamiento interno de la interfaz de administración y me ha causado mucha frustración hoy.

No nos dimos cuenta de que se trataba de un cambio importante porque este campo no pretende reemplazar el selector de medios de página. Ahora tenemos un par de informes de personas que utilizan el campo de archivo junto con el selector de medios de página, investigaremos y encontraremos una solución. ¡Perdón por esto!

Para su información, el enfoque recomendado es utilizar el campo pagemedia estándar para cargar imágenes en una página y un selector de archivos para seleccionarlas para variables de encabezado específicas

Para su información, el enfoque recomendado es utilizar el campo pagemedia estándar para cargar imágenes en una página y un selector de archivos para seleccionarlas para variables de encabezado específicas

Este enfoque recomendado me parece contrario a la intuición. Cargar y asignar un archivo / imagen a un campo debe ser una acción, no dos. Enseñar a los usuarios a hacerlo en dos pasos sería frustrante y no debería ser necesario.

En cualquier caso, gracias por investigarlo.

El problema se puede solucionar cambiando la línea 722 en adminbasecontroller.php para tener isset() :

if (isset($obj->header()->{$init_key})) {

Este problema se ha solucionado en Admin 1.8.3

¿Fue útil esta página
0 / 5 - 0 calificaciones