Bagaimana saya bisa membuat modul baru saya bergantung pada versi minimal Drupal 7 yang diperlukan agar berfungsi dengan baik?


10

Saya sedang mengembangkan modul baru (belum ada situs yang menggunakannya). Ini memerlukan versi Drupal tertentu, karena menggunakan hook_taxonomy_term_view()pengait yang diperkenalkan di Drupal core versi 7.17 .

Saya ingin menghindari modul saya diaktifkan di situs menggunakan, misalnya, Drupal 7.16 atau versi Drupal core sebelumnya. Versi Drupal yang lebih tinggi, di atas 7.17, harus baik-baik saja.

Pertanyaan Saya : Bagaimana saya bisa membuat modul saya bergantung pada versi Drupal 7.17, yang merupakan minimum untuk modul saya?

Catatan: Saya tidak perlu (harus khawatir tentang) solusi untuk situs di mana modul sudah diinstal. Jadi tidak perlu untuk dinonaktifkan entah bagaimana dalam versi Drupal pra-7.17 tersebut.


Pertanyaan ini ditandai dengan kait karena ini tentang kait yang harus saya gunakan dalam kode saya. kait tidak berarti saya mencari kait yang bisa saya gunakan; Saya terbuka untuk solusi apa pun yang memungkinkan saya menghindari modul yang dipasang di situs yang tidak menggunakan Drupal 7.17, atau lebih tinggi.
kiamlaluno

Anda dapat memerlukan versi minor dari beberapa modul lain dengan dependencies[] = mymodule (1.12)tetapi sepertinya ini tidak berfungsi untuk inti.
AyeshK

@AyeshK Uh! Sekarang, itu bisa menarik, jika Anda bisa mengarahkan saya ke modul inti Drupal yang selalu diaktifkan.
kiamlaluno

Saya mencobanya dengan dependencies[] = taxonomy (>7.17)dan beberapa nomor versi yang mungkin tetapi tidak berhasil.
AyeshK

Jawaban:


11

Caranya, tampaknya, adalah dengan menggunakan modul sistem seperti:

dependencies[] = system (>=7.17)

4
Ini yang benar. Sumber: dww dan saya menulis pemeriksa ketergantungan versi. Saya membuat blog tentang ini di drupal4hu.com/node/274 dan sekarang ditambahkan ke halaman buku pegangan yang relevan di drupal.org/node/542202 juga.

7

hook_requirements() ada untuk tujuan semacam itu.

Periksa persyaratan pemasangan dan lakukan pelaporan status.

Anda dapat memeriksa $phaseparameter untuk menentukan apakah modul sedang diinstal, periksa versi Drupal saat ini terhadap versi yang diperlukan, dan kembalikan parah REQUIREMENT_ERROR. Itu akan mencegah modul dari diinstal sampai persyaratan terpenuhi.

Dokumentasinya cukup menyeluruh, satu hal yang perlu disebutkan di sini adalah bahwa kail perlu diimplementasikan dalam file .install modul.


Ini bukan jawaban yang tepat. Saya tidak tahu mengapa itu sangat tervotasi.

@ chx Saya akan mengambil kata Anda untuk itu, tetapi dalam hal itu deskripsi fungsi "Periksa persyaratan instalasi dan lakukan pelaporan status." agak menyesatkan bukan? Kita semua berbicara secara khusus tentang memeriksa persyaratan modul setelah instalasi :)
Clive

1
@ Chapabu Tidak sesuai dengan dokumen :) Itu berbicara tentang modul khusus, dan pada dasarnya mengatakan untuk menggunakan kait itu untuk kembali REQUIREMENT_ERRORuntuk memastikan modul tidak diinstal jika gagal persyaratan. Saya berasumsi memeriksa versi Drupal adalah use case yang valid (dokumen tidak menyebutkan tidak melakukan itu) tapi saya kira saya telah melewatkan sesuatu. Mungkin hanya praktik buruk atau sesuatu yang tidak tahu
Clive

1
@Clive Weird, tidak tahu di mana saya mendapatkannya sejak saat itu..mungkin D8 seharusnya hanya menjadi upgrade dokumen ;-)
Chapabu

1
@ chx Anda harus memaafkan ketidaktahuan saya, tidak pernah melakukan ini sebelumnya ... apakah masalahnya bertentangan dengan D8 dan kemudian di-backport? Menurut Anda apakah seluruh teks perlu diubah atau hanya perlu catatan yang menyebutkan tidak menggunakan kait ini untuk memeriksa versi modul / inti, hanya persyaratan perpustakaan, dll (dengan tautan ke dokumen yang Anda sebutkan)? Terima kasih
Clive

2

Anda bisa menggunakan hook_enabled

Ini akan menyala setelah modul diinstal. Anda dapat memeriksa versi drupal yang diinstal dan jika itu bukan versi yang benar maka gunakan module_disable dan berikan pesan kesalahan yang diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.