web-dev-qa-db-fra.com

Quelle est l'utilisation appropriée de la balise de nom dans le fichier manifeste?

Dans la dernière version de J! 3.4, lors de l’installation d’une extension de type 'fichier' (ou d’autres types sont également concernés), il existe une différence en ce qui concerne le contenu du champ element de la table _extensions.

Quelques extraits de \libraries\cms\installer\adapter\file.php

J! 3.3.4:

$element = preg_replace('/\.xml/', '', basename($manifestPath));

On dirait que le nom de fichier va être stocké dans le champ element.

J! 3.4.1:

$element = (string) $this->getManifest()->name;
$element = str_replace('files_', '', JFilterInput::getInstance()->clean($element, 'cmd'));

Nous avons maintenant la balise name dans le champ element.

Le problème vient lors de la désinstallation d'une telle extension. Dans les deux cas, Joomla recherche un nom de fichier manifeste dans le champ element. Dans le second cas, vous trouverez le nom de la page ici. Depuis Joomla documentation dit:

<name> – raw component name (e.g. com_banners).

il ne devrait y avoir aucun problème, excepté les noms laids dans Extension Manager. Mais certaines anciennes extensions ne fonctionnent tout simplement plus, car elles n’ont pas de noms de fichiers purs dans la balise name.

Parce que nous avons un autre exemple dans Joomla Docs:

Put anything into here, name is only shown in extension manager. 
  <name>Kunena Language Pack</name>

Alors, que faut-il écrire dans la balise name lors de la création de fichiers manifest?

3
pl71

Pour une meilleure compréhension, vous devriez vérifier com_banners _ composant. Comme vous l'avez dit de deux manières d'ajouter <name> tag, les deux sont corrects à utiliser et fonctionnent bien. Dans <name> balise, vous pouvez écrire ce que vous préférez, mais selon le document, il doit s'agir de "com_ {compoentname}". Laissez-moi vous donner deux exemples:

Si vous écrivez comme ceci:

<name>what ever</name>

whate ever sera le nom de votre composant et l’affichera de la même manière dans le gestionnaire d’extensions ainsi que dans le menu des composants (ici j’ai délibérément ignoré <menu> tag, c'est hors de la discussion pour le moment.)

Où comme si vous écrivez comme ci-dessous:

<name>com_componentname</name>

com_componentname sera le nom du composant dans le gestionnaire d’extensions ainsi que dans le menu des composants.

Mais ici si vous avez utilisé le fichier de langue en-GB.com_componentname.sys.ini avec ci-dessus com_componentname utilisation. Vous pouvez spécifier une chaîne de langue pour com_componentname. Joomla recherche automatiquement ce nom dans le fichier de langue relative.

COM_COMPONENTNAME="My whatever component"

et maintenant cette nouvelle chaîne de langue My whatever component s'affiche sur le gestionnaire d'extensions ainsi que sur le menu Composants. Voilà comment cela fonctionne.

Le fichier de langue n'autorise pas la séparation de la clé de langue par white-space. Et je pense que c'est pourquoi l'utilisation de <name>what ever</name> est affiché tel quel.

J'espère que je suis assez descriptif. :)

2
SD.

Je n'ai jamais essayé avec un fichier, mais je vous suggère de procéder comme suit:

<name>files_helloworld</name>

Puis, dans le fichier ". Sys" de votre langage administrateur, ajoutez ce qui suit:

HELLOWORLD="Hello World"

Vous voyez que je n'ai pas utilisé FILES_ dans la chaîne de langue à mesure que celle-ci est supprimée.

Remarque, je n'ai pas testé cela mais je pense que cela fonctionnera. Laissez-moi savoir quel est le résultat.

0
Lodder