Belirli bir modül için güncellemeleri kontrol etmekten nasıl kaçınırım?


35

Mevcut bir projede hayatı birkaç modülden (düğüm hiyerarşisi, tezgah erişimi ve birkaç tane daha) yamalamak zorunda kaldım. Bu modüller artık projenin ihtiyaçları için kesinlikle mükemmel ve gelecekteki güncellemelerden kaynaklanacak gibi görünmüyor.

Uygulama müşterilere teslim edildiğinde, sisteme tam (kullanıcı 1) erişebilecek ve bu nedenle bu modüller mevcut güncellemeler olduğunda uyarılacaktır. Ve onlar olacak olursa olsun ben onları yalvarıyorum kaç kez, onları güncellemek (oh müşteriler olmadan ne kadar kolay hayat olurdu!).

.infoGüncelleme yöneticisini bu modüllerin güncellemelerini kontrol etmemeye ikna etmenin (belki de modül dosyalarında) bir yolu var mı ?

DÜZENLE

Dosya project status urliçin mevcut olan anahtarın farkındayım, bu .infoyüzden var olmayan bir URL'ye ayarlayabilirdim, ancak mümkünse bunu temiz bir şekilde yapmayı tercih ederim.

Yanıtlar:


31

Uygulaman gerek hook_update_projects_alter().

Veri toplamadan ve sürümleri karşılaştırmadan önce projeler listesini değiştirin.

Çoğu modül bu kancayı asla uygulamaya ihtiyaç duymaz. Güncelleme durum modülü ile gelişmiş etkileşim içindir: sadece ölümlülerin uygulanması gerekmez. Bu kanca için birincil kullanım durumu, örneğin, devre dışı bırakılmış modüller ve temalar üzerinde güncelleme durumu verilerini sağlamak için listeye projeler eklemektir. Katkıda bulunan bir modül, listeden projeleri gizlemek isteyebilir, örneğin, resmi sürümleri olmayan siteye özgü bir modül varsa, bu sürümde "Uygun sürüm bulunamadı" uyarısını önlemek için bu modül kendisini bu listeden kaldırabilir. mevcut güncellemeler raporu. Nadir durumlarda, bir modül, zaten bir listede bulunan bir projeyle ilişkili verileri değiştirmek isteyebilir.


19

projectAnahtar .info dosyasından modülü dan hangi projelerine tespit etmek drupal.org üzerinde ambalaj komut dosyası tarafından eklenir. Birincil kullanım, durum güncellemesinin kurulu paketlerin sürümlerini izlemesi ve yöneticilere yeni sürümler mevcut olduğunda uyarmasıdır.

Sadece bu satırı .info dosyasından kaldırın ya da yorumlayın ve Drupal bu modülün güncellemelerini kontrol etmeyi durdurun.


Bu yanlış mıydı, yoksa yanlış mı, yoksa başka bir sebep mi?
mpdonadio

Bu IMO, en iyi ve en kolay yol!
AyeshK

1
@MPD projectDokümanlarda manuel olarak kullanılması tavsiye edilmez - bu aşağı oylamaların nedeni olabilir.
Moot

Bu, bir Temanın özelleştirilmiş bir versiyonunu kontrol etmekten vazgeçmeyi bulabilmemin tek yoluydu. Ben, elbette, "doğru yolu" yapmak isterdim, ancak bu çalıştı ve npc kodlarını yeniden kullanarak ama THEMENAME_update_projects_alter yapmadı.
nedwardss

3
@nedwardss kullanarak MYMODULE_veya THEMENAME_sadece bu kodun yerleştirilmesi gereken yeri belirtir. Bu kodu özel bir modül yerine bir tema fonksiyon dosyasında kullanarak, farklı bir aşamada işlenebilir ve beklendiği gibi çalışmayabilir. Temalar $projectsdeğişkene dahil edilmelidir .
EMC

14

Sadece seçilen cevaba yardımcı olmak için bir kod örneği sağlamak:

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

Devre $projects[]dışı bırakılacak değişkene modül adını girin . Sümüklübenin ne olduğundan emin değilseniz (küçük harf ve altı çizili), bu dsm()çağrıyı kullanın veya print_r()modüllerin listesini yazdırın.


1
Bir not - slugsadece modül .infodosyasının adıyla aynı olan modülün teknik bir ismidir . Böylece, sadece dizinin içine bakıp projeler dizisini boşaltmanıza gerek kalmaz. Çoğu durumda ad, modül klasörünün adıyla aynıdır.
Nux

1
@Nux "Çoğu durumda" sümüklüböcek o birkaç kez ters etki etmez modül isim aynı. Sümüklü böcekleri ilk kez görüntüleyip kullanarak, geliştiriciyi eğitiyoruz ve olası sorunların sayısını azaltıyoruz.
emc

Drupal'dan kullanılan terimler sümüklü böcek değil, makine ismidir . Slug bazı
CMS'lerde

12

Bunu iki şekilde yapabilirsiniz.

  • drush pm-updatecode --lock = module_to_ignore
  • Update_advanced modülünü kullanın . Modül yönetim sayfasında yok saymak istediğiniz modülleri işaretlemenizi sağlar.

Özellikle, belirli projeleri görmezden gelmek için proje başına ayarları, hatta belirli sürümleri, modülün çekirdek sürümünde yoktur. "Durum gelişmiş ayarları güncelle" modülü bu ayarları geri yükler ve sonunda çekirdek "Durum güncelle" modülü için ek işlevler sağlayabilir.


sarhoş komut tam olarak aradığım şeydi, çok teşekkürler!
Waqar Lim,

Yardım için drush help upcbunu verecektir --lock: --lock = <foo, bar> Güncellemeler sırasında belirtilen projeleri dikkate almak için kalıcı bir kilit ekleyin. --Unlock parametresiyle kilitler kaldırılabilir veya projeyi özel olarak pm-update veya pm-updatecode olarak parametre olarak adlandırarak geçersiz kılınabilir. Kilit pm-download etkilemez.
Yzmir Ramirez 12:16

2

Modül güncellemelerinde de aynı sorunu yaşıyorum, Güncelleştirmeleri Devre Dışı Bırak modülünün iyi çalıştığını gördüm .

Bu, site yöneticilerinin güncelleme ayarları formunda (/ admin / report / updates / settings) işlevini açıklayarak belirli temalar ve modüllerdeki güncellemeleri kontrol etmesini devre dışı bırakan küçük bir yönetimsel modüldür. Özel modüllerin, yamalanmış modüllerin ve sahaya özgü özellikler modüllerinin otomatik algılanmasının yanı sıra temaların ve modüllerin keyfi seçimine izin verir.

görüntü tanımını buraya girin


0

Temel olarak bir çatal yaptın, değil mi? Öyleyse yapmalısın:

  1. Çatal işaretinizi eklemek için yeniden adlandırın
  2. Bilgi dosyasında, project status urlbu modülün havuzuna ayarlayın .

Sonuncusu, fakat en az değil, desteklenmiyor ancak başka bir modül lehine itiraz edilmediyse, ortak olmayı ve düzeltmelerinizi toplulukla paylaşmayı isteyin.


2
Donschoe: burada kaleci. İsterseniz hızlanmanıza yardımcı olmak için çok istekli olurum.
berkes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.