web-dev-qa-db-fra.com

Quel est le problème avec ce fichier d'installation de package XML? Joomla ne peut pas trouver XML sur un paquet

Je suis tout sur: https://docs.joomla.org/Package

Et toujours l'erreur: JInstaller:: Installer: Impossible de trouver le fichier d'installation XML Joomla.

Le fichier XML a le nom correct.

Le fichier Zip du paquet est pkg_mtpackage.Zip qui contient

  • pkg_mtpackage.xml
  • / packages (dossier avec les deux fichiers d'extension)

Le fichier XML est:

<?xml version="1.0" encoding="UTF-8" ?>
 <extension type="package" version="3.x" method="upgrade">
 <name>MTPackage</name>
 <author>John Doe</author>
 <creationDate>April 2017</creationDate>
 <packagename>mtpackage</packagename>
 <version>1.0.0</version>
 <description>Installation of the main MT Custom extensions.</description>
 <files folder="packages">
   <file type="module" id="mod_mt" client="site">mod_mt.Zip</file>
   <file type="module" id="mod_mt_mc" client="site">mod_mt_mc.Zip</file>
 </files>
 </extension>

Et oui, les extensions sont correctes, elles s’installent toutes les deux individuellement. Je crois que l’identité est correcte mais j’ai essayé de les remplacer par mtpackage sans succès.

Et oui, la structure Zip est également correcte, XML est à la racine du fichier Zip et les paquets de dossiers sont à la racine aussi ... Je suis perdu, c'est tellement simple ... qu'est-ce qui ne va pas?

Vous avez la même erreur sur les versions bêta 3.6.5 et 3.7 de Joomla

1
user1967509

J'ai testé avec votre code, et cela fonctionne pour moi.

Pour essayer d'isoler le bogue, je commencerais probablement par supprimer le nœud <files> Et le dossier packages, puis de voir si vous recevez un message d'erreur Package Update: There were no files to install!. Si vous continuez à recevoir le message d'erreur Can't find Joomla XML setup file., Cela confirmera que le problème provient du fichier manifeste de votre package.

Si tel est le cas, il peut être intéressant de mettre à jour votre question en téléchargeant ce package simplifié d'un fichier dans l'espoir que les autres utilisateurs puissent reproduire le problème.

Pour isoler davantage le problème, vous souhaiterez peut-être obtenir des détails plus précis de l'échec que le message d'erreur ne fournit.

Il existe deux endroits possibles où cette erreur peut être appelée \libraries\cms\installer\helper.php - à laquelle la fonction detectType (ligne 250) appelle le code JLog::add(JText::_('JLIB_INSTALLER_ERROR_NOTFINDJOOMLAXMLSETUPFILE'), JLog::WARNING, 'jerror'); si elle ne peut pas trouver le type de package qu'elle est, et libraries\cms\installer\installer.php où il crée le même message d'erreur s'il ne peut pas trouver un fichier manifeste dans la fonction findManifest() (ligne 1885).

Si vous vous sentez à la hauteur, vous pourrez peut-être vider les variables à l'écran pour voir à quel moment ces fonctions échouent et qui pourraient fournir des informations utiles.

Évidemment, annulez les modifications principales par la suite.

2
Richard B

Ok, j'ai découvert quel était le problème .. C'était juste quelque chose de très ridicule.

Le problème était que le XML sur le paquet commence par:

 <?xml version="1.0" encoding="UTF-8" ?>

Et le XML sur l'une des extensions commence par:

 <?xml version="1.0" encoding="utf-8"?>

Remarqué la différence? Le paramètre d'encodage ITS CASE SENSITIVE! Je ne suis pas sûr que l'équipe de Joomla ait pu prédire une telle erreur (XML n'est qu'un langage maladroit, après tout).

Mais si vous avez ce type de problème, vérifiez simplement si toutes les valeurs XML (des extensions et bien sûr du paquet XML) sont en minuscules.

<?xml version="1.0" encoding="utf-8"?>
3
user1967509