web-dev-qa-db-fra.com

Comment éviter de rechercher des mises à jour pour un module spécifique?

Dans un projet en cours, j'ai dû patcher la vie de quelques modules (hiérarchie des nœuds, accès au plan de travail et quelques autres). Ces modules sont maintenant absolument parfaits pour les besoins du projet et sont très peu susceptibles de rompre avec les futures mises à jour du noyau.

Cela dit, lorsque l'application est remise, les clients auront un accès complet (utilisateur 1) au système et seront donc avertis lorsque ces modules auront des mises à jour disponibles. Et ils les mettront à jour , peu importe combien de fois je les en prie (oh comme la vie serait facile sans clients!).

Existe-t-il un moyen (peut-être dans les modules '.info fichiers) pour persuader le gestionnaire de mise à jour de ne pas rechercher les mises à jour de ces modules?

MODIFIER

Je connais le project status url clé disponible pour le .info fichier, donc je suppose que je pourrais définir cela sur une URL inexistante, mais je préfère de loin le faire de manière propre si possible.

35
Clive

Vous devez implémenter hook_update_projects_alter() .

Modifiez la liste des projets avant de récupérer les données et de comparer les versions.

La plupart des modules n'auront jamais besoin d'implémenter ce hook. Il s'agit d'une interaction avancée avec le module de mise à jour du statut: les simples mortels n'ont pas besoin de postuler. Le principal cas d'utilisation de ce hook consiste à ajouter des projets à la liste, par exemple, pour fournir des données de mise à jour sur les modules et les thèmes désactivés. Un module contribué peut vouloir masquer des projets de la liste, par exemple, s'il existe un module spécifique au site qui n'a pas de versions officielles, ce module peut se retirer de cette liste pour éviter les avertissements "Aucune version disponible trouvée" sur le rapport des mises à jour disponibles. Dans de rares cas, un module peut vouloir modifier les données associées à un projet déjà dans la liste.

32
Chapabu

La clé project du fichier . Info est ajoutée par le script d'empaquetage sur drupal.org pour identifier de quel projet provient le module. L'utilisation principale est que le module d'état de mise à jour surveille les versions des packages installés et informe les administrateurs lorsque de nouvelles versions sont disponibles.

Vous venez de supprimer ou de commenter cette ligne dans le fichier . Info et Drupal arrêtez de rechercher les mises à jour de ce module.

19
smartinm

Fournir simplement un exemple de code pour aider la réponse choisie:

function MYMODULE_update_projects_alter(&$projects){
    unset($projects['slug_of_the_module_you_want_to_disable']);
    //dsm($projects);  // view a list of projects
}

Saisissez le nom du module dans la variable $projects[] À désactiver. Si vous n'êtes pas sûr de ce qu'est le slug (il sera en minuscules et souligné), utilisez cet appel dsm() ou print_r() pour imprimer la liste des modules.

14
emc

Vous pouvez le faire de deux manières.

  • drush pm-updatecode --lock = module_to_ignore
  • Utilisez le module update_advanced . Il vous permet de marquer les modules que vous souhaitez ignorer sur la page d'administration des modules.

En particulier, les paramètres par projet pour ignorer certains projets ou même des versions spécifiques, sont absents dans la version principale du module. Le module "Mettre à jour les paramètres avancés de l'état" restaure ces paramètres et peut éventuellement fournir des fonctionnalités supplémentaires pour le module principal "Mettre à jour l'état".

12
4life

J'ai le même problème avec les mises à jour du module, j'ai installé le module Disable Updates semble bien fonctionner.

Il s'agit d'un petit module administratif qui permet aux administrateurs du site de désactiver la vérification des mises à jour sur certains thèmes et modules, en exposant la fonctionnalité de hook_update_projects_alter () sur le formulaire des paramètres de mise à jour (/ admin/reports/updates/settings). Il permet une sélection arbitraire des thèmes et des modules ainsi qu'une détection automatique des modules personnalisés, des modules corrigés et des modules de fonctionnalités spécifiques au site.

enter image description here

2
Krishna Mohan

En gros, vous avez fait une fourchette, non? Donc tu devrais:

  1. Renommez-le pour inclure votre marque de fourche
  2. Dans le fichier d'informations, définissez project status url à votre référentiel de ce module.

Enfin et surtout, s'il n'est pas pris en charge mais n'a pas été déprécié au profit d'un autre module, pensez à demander à devenir co-responsable et à partager vos correctifs avec la communauté.

0
Mołot