Tutoriel : créer des champs extras depuis un plugin - commentaires Tutoriel : créer des champs extras depuis un plugin 2023-11-11T16:51:13Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514392 2023-11-11T16:51:13Z <p>Rho... nom d'un spip :-) C'est bien de faire des pauses des fois...</p> <p>Oui<small class="fine d-inline"> </small>;, c'était ça bien sûr et c'est pourtant bien écrit dans la doc d'<a href="https://programmer.spip.net/include_spip" class="spip_out" rel='nofollow external'>include_spip</a>.</p> <p>Merci et encore désolé pour le dérangement...</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-10T11:27:20Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514385 2023-11-10T11:27:20Z <p>Parce que c'est <code class="spip_code spip_code_inline" dir="ltr">include_spip('base/prefixe');</code> qu'il faudrait avoir<small class="fine d-inline"> </small>? sans le .php</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-10T10:46:02Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514384 2023-11-10T10:46:02Z <p>Merci, effectivement, j'ai :</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>PHP Fatal error: Uncaught Error: Call to undefined function prefixe_declarer_champs_extras() in /var/www/mon_site_spip/plugins/prefixe/prefixe_administrations.php:40 Stack trace: #0 /var/www/mon_site_spip/ecrire/plugins/installer.php(171): eg_prix_upgrade() .#1 /var/www/mon_site_spip/ecrire/plugins/installer.php(125): spip_plugin_install() #2 /var/www/mon_site_spip/plugins-dist/svp/inc/svp_actionner.php(1503): plugins_installer_dist() #3 /var/www/mon_site_spip/plugins-dist/svp/inc/svp_actionner.php(1365): Actionneur->installer_plugin() #4 /var/www/mon_site_spip/plugins-dist/svp/inc/svp_actionner.php(987): Actionneur->do_install() #5 /var/www/mon_site_spip/plugins-dist/svp/inc/svp_actionner.php(950): Actionneur->do_action() #6 /var/www/mon_site_spip/plugins-dist/svp/action/actionner.php(35): Actionneur->one_action() #7 /var/www/mon_site_spip/ecrire/public/aiguiller.php(80): action_actionner_dist() #8 /var/www/mon_site_spip/ecrire/index.php(64): traiter_appels_actions() #9 {main} thrown in /var/www/mon_site_spip/plugins/prefixe/prefixe_administrations.php on line 40, referer: https://mon_site_spip/ecrire/?exec=admin_plugin&action=actionner&redirect=mon_site_spip%2Fecrire%2F%3Fexec%3Dadmin_plugin</code></pre></div> <p>J'ai pourtant bien mon</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>include_spip('base/prefixe.php');</code></pre></div> <p>en début de fichier prefixe_administrations.php (et d'ailleurs les mises à jour du plugin ne plantent pas, donc cette inclusion semble bien prise en compte à ce moment).</p> <p>On dirait justement que l'include n'est pas pris en compte à l'installation et à la désinstallation du plugin. Mais pourquoi<small class="fine d-inline"> </small>?? Même en le plaçant à l'intérieur des fonctions ça plante...</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-09T13:17:24Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514370 2023-11-09T13:17:24Z <p>Erreur 500 -> PHP qui foire. Il faudrait que tu consulte les logs PHP pour en savoir plus.</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-09T12:51:04Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514369 2023-11-09T12:51:04Z <p>Ça plante sur une erreur 500 lorsque j'installe ou desinstalle le plugin.</p> <p>Et quand ça marche c'est comme il se doit : champs extras créés ou supprimés conformément aux lignes de commande cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['create']) ou cextras_api_vider_tables(prefixe_declarer_champs_extras()).</p> <p>Et comme je l'écrivais, quand on fait un refresh quelques secondes plus tard sur une erreur 500 à la désinstallation, celle-ci disparaît et le plugins est correctement desinstallé.</p> <p>En résumé, le pipeline prefixe_declarer_champs_extras() ne semble pas fonctionner à tous les coups.</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-09T11:49:04Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514366 2023-11-09T11:49:04Z <p>« Ca plante » «<small class="fine d-inline"> </small>ca marche<small class="fine d-inline"> </small>» faudrait préciser le « comment ca plante » et « comment ca marche ».</p> Tutoriel : créer des champs extras depuis un plugin 2023-11-09T11:47:09Z https://files.spip.org/Tutoriel-creer-des-champs-extras-depuis-un-plugin#comment514365 2023-11-09T11:47:09Z <p>Bonjour,</p> <p>SPIP 4.2.6 / Champs Extras 4.1.2</p> <p>Quand j'installe un plugin ($maj['create']) ou que je le désinstalle, j'ai une formidable erreur 500 avec cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['create']), de même qu'avec cextras_api_vider_tables(prefixe_declarer_champs_extras()).</p> <p>Si je met directement un tableau $champs_extras au lieu de prefixe_declarer_champs_extras(), ça fonctionne.</p> <p>De même que les mises à jour cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['x.y.z']) fonctionnent également.</p> <p>Enfin, lors d'une désinstallation du plugin, ça plante, mais un petit refresh au bout d'une dizaine de seconde... et ça marche<small class="fine d-inline"> </small>!</p> <p>On dirait qu'à priori, le pipeline prefixe_declarer_champs_extras fait planter tout ça uniquement à l'installation et à la désinstallation.</p> <p>Est-ce que c'est moi ou bien quelqu'un a déjà rencontré le même problème<small class="fine d-inline"> </small>? Je peux le contourner come expliqué (déclarer directement mes champs extras dans prefixe_upgrade() bien sûr, mais ce n'est pas très... moral<small class="fine d-inline"> </small>? :-)</p> <p>Merci pour vos lumières.</p>