Grav-plugin-admin: Propriété non définie: stdClass :: $ image dans la version 1.8.2

Créé le 28 mai 2018  ·  8Commentaires  ·  Source: getgrav/grav-plugin-admin

J'obtiens l'erreur Undefined property: stdClass::$image lors du téléchargement d'une image dans un modèle de page. Le gestionnaire d'erreurs fait spécifiquement référence à la ligne 722 dans adminbasecontroller.php . Le plan spécifique à l'image est ici:

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

L'image est téléchargée indépendamment de l'erreur, mais l'en-tête n'est pas mis à jour ...

Revenir à 1.8.1 l'a corrigé pour le moment.

bug

Commentaire le plus utile

Le problème peut être résolu en modifiant la ligne 722 dans adminbasecontroller.php pour avoir isset() :

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

Tous les 8 commentaires

Ne faites pas cela, le champ pagemedia est déjà téléchargé dans le dossier de la page. Le champ de fichier est destiné à être utilisé dans d'autres plans non-page.

Alors, quelle serait la bonne façon d'y parvenir, en termes de plan directeur?

Pareil ici. Depuis la mise à jour vers Grav 1.4.5 et Admin 1.8.2, je ne peux pas télécharger d'images, ce qui entraîne la même erreur signalée par @superDuperCyberTechno .

Mon extrait de plan est le suivant:

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

Cela a fonctionné jusqu'à présent sans problème. La mise à jour l'a cassé.

S'il y a des changements de rupture, il serait avantageux de les connaître avant la mise à jour. S'il existe des meilleures pratiques, il serait bon de les connaître au lieu de simplement obtenir une réponse comme

Ne faites pas cela, le champ pagemedia est déjà téléchargé dans le dossier de la page. Le champ de fichier est destiné à être utilisé dans d'autres plans non-page.

sans aucun indicateur quant à pourquoi. J'ai créé le plan selon la documentation de l'époque et cela a fonctionné. Soit il s'agit d'un bogue, soit d'un changement majeur non documenté.

Mise à jour: la mise à niveau vers Admin 1.8.1 a également résolu ce problème pour moi. Cela renforce mon impression qu'il s'agit probablement d'un bogue introduit dans la 1.8.2.

De plus, j'ai découvert que lors de la suppression d'un message avec cette configuration, toutes les images du dossier assets sont supprimées. Cela semble être un bug assez important dans le fonctionnement interne de l'interface d'administration et m'a causé des tonnes de frustration aujourd'hui.

Nous n'avions pas réalisé qu'il s'agissait d'un changement radical car ce champ n'est pas vraiment destiné à remplacer le sélecteur de pagemedia. Maintenant, nous avons quelques rapports de personnes utilisant le champ de fichier en conjonction avec le sélecteur de pagemedia, nous allons étudier et trouver une solution. Désolé pour ça!

Pour info, l'approche recommandée est d'utiliser le champ pagemedia standard pour télécharger des images dans une page et un sélecteur de fichiers pour les sélectionner pour des variables d'en-tête spécifiques

Pour info, l'approche recommandée est d'utiliser le champ pagemedia standard pour télécharger des images dans une page et un sélecteur de fichiers pour les sélectionner pour des variables d'en-tête spécifiques

Cette approche recommandée me paraît contre-intuitive. Télécharger et attribuer un fichier / une image à un champ doit être une action, pas deux. Apprendre aux utilisateurs à le faire en deux étapes serait frustrant et ne devrait pas être nécessaire.

Dans tous les cas, merci de l'avoir examiné.

Le problème peut être résolu en modifiant la ligne 722 dans adminbasecontroller.php pour avoir isset() :

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

Ce problème a été résolu dans Admin 1.8.3

Cette page vous a été utile?
0 / 5 - 0 notes