web-dev-qa-db-fra.com

Comment déboguer une erreur Bootstrap vide générée par un champ Balises non vide dans un composant personnalisé?)

Découlant de ma question précédente sur l'écriture de mon premier composant (maintenant appelé com_picture ), qui est presque un clone exact de la com_contact répertoire, j’ai eu du mal à essayer de sauvegarder une nouvelle "image" avec une balise.

Lorsque j'enregistre une image sans valeur dans le champ balises, tout est doux.

enter image description here


Cependant, lorsque j'essaie d'enregistrer une image avec une valeur dans le champ balises (je veux dire la jolie petite bulle bleue avec la valeur de balise est générée dans le champ de balises dans le coin inférieur droit de la fenêtre), je reçois un message vague/inutile bootstrap erreur:

Erreur d'enregistrement a échoué avec l'erreur suivante:

enter image description here

Si j'apporte des modifications au nom, alias, catégorie, langue, etc., toutes ces modifications sont conservées après avoir cliqué sur Enregistrer. C’est SEUL le champ de balises qui échoue.

J'ai défini la configuration globale - Serveur - Rapport d'erreurs sur: "Développement" et j'ai lu toutes les requêtes, mais il n'y a pas de requête INSERT (ce que je m'attendais à voir lors de l'ajout d'une nouvelle balise) et les 2 requêtes UPDATE ne sont pas liées. à la table des balises. En gros, il n’ya aucun indice dans les 37 requêtes consignées.

Si quelqu'un, pour des raisons étranges, sait réellement ce que j'ai fait de travers, partagez-le. Sinon, je demande simplement comment je peux générer des messages d'erreur/indices informatifs sur ce que j'ai fait de mal.

Pour vous donner un peu plus de fond, j'ai cloné le répertoire com_contact puis effectué un remplacement sensible à la casse sur toutes les occurrences de contact, Contact et CONTACT avec picture, Picture et PICTURE: c’était la voie la plus simple pour ce prototype car il gérait de manière transparente les versions singulier/pluriel du mot clé pour les noms de fichier, les classes, les fonctions, les variables, etc. J'ai également copié et ajusté toutes les lignes de toutes les tables (je crois) qui font référence à com_contact afin que com_picture soit représenté et que tous les identifiants pointent vers les bonnes lignes.

Et au cas où cela aiderait à lever certaines suspicions, je peux générer un message d'erreur complet lorsque j'essaie d'enregistrer une photo en double dans la même catégorie:

Erreur d'enregistrement a échoué avec l'erreur suivante: Une autre image de cette catégorie a le même alias (rappelez-vous qu'il peut s'agir d'un élément supprimé).

Je pense donc que cela élimine la possibilité que j'ai oublié un fichier .ini de langue. (peut-être peut-être pas)

Je cours Joomla 3.8.12 Je suis heureux de mettre en œuvre toutes les suppositions sauvages pour que je puisse avancer.

J'ai déjà mis à jour le #__content_types table en copiant la ligne Contact et en effectuant contact -> picture remplacements.

(15, 'Picture Category', 'com_picture.category', '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "core_xreference":"null", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'PictureHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/models\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}');
1
mickmackusa

Pour prendre en charge les balises dans votre composant, vous devez ajouter votre type de contenu à #__content_types table.

Documentation: tilisation de balises dans une extension

Vous avez copié la ligne où:

`type_title` = 'Contact Category' AND `type_alias` = 'com_contact.category'

Pour créer une nouvelle ligne pour:

`type_title` = 'Picture Category' AND `type_alias` = 'com_picture.category'

mais vous n'avez pas copié la ligne où:

`type_title` = 'Contact' AND `type_alias` = 'com_contact.contact'

être une nouvelle ligne pour:

`type_title` = 'Picture' AND `type_alias` = 'com_picture.picture'
2
Sharky