jenis bidang hosting drupal
Adakah anda pernah berada dalam situasi di mana anda perlu untuk mengumpul beberapa jenis data pada bentuk nod dan memaparkannya dengan cara yang tertentu yang tidak disokong oleh teras jenis bidang Drupal? Daripada menggunakan medan teks untuk memaparkan sesuatu seperti nombor telefon atau alamat e-mel, anda boleh mempertimbangkan untuk menggunakan telefon atau e-mel modul sebaliknya, kedua-duanya adalah contoh sempurna mengapa anda mungkin perlu untuk menentukan jenis bidang anda sendiri.
Demi contoh ini kita akan menentukan jenis medan untuk memasukkan nombor plat lesen kenderaan dan negeri (Saya tidak tahu mengapa anda perlu ini). Pertama, kita perlu menentukan jenis data disimpan di dalam bidang ini dalam fail .install menggunakan hook_schema.
Selanjutnya, modul bidang mengenai jenis medan baru anda menggunakan hook_field_info dalam fail .module anda. Widget ini adalah bentuk input dan Pemformat adalah paparan lapangan.
Buat jenis medan widget anda (s) menggunakan hook_field_widget_info. Anda akan memilih widget apabila menambah padang untuk jenis kandungan, yang akan membolehkan anda untuk menentukan format input berbilang untuk bidang ini. Dalam kebanyakan kes, anda mungkin hanya memerlukan salah satu (atau tiada jika anda menggunakan salah satu widget teras). Dalam kes ini, kerana kita sedang mengumpul nombor plat dan negeri sebagai keping berasingan data, kita perlu membuat widget dengan bidang tersebut.
Anda boleh menentukan bentuk tetapan bidang menggunakan hook_field_settings_form. Ini akan muncul dalam Tetapan Global bahagian halaman konfigurasi padang apabila menambah kepada nod dan akan terpakai kepada bidang ini di semua keadaan itu.
Anda juga boleh menggunakan hook_field_instance_settings_form untuk menentukan tetapan yang khusus untuk jenis entiti yang anda menambah medan untuk. Ini akan membolehkan anda untuk menggunakan bidang yang sama di seluruh jenis kandungan yang berbeza dan menukar tetapan ini.
Bentuk input (iaitu: widget) boleh dibina menggunakan hook_field_widget_form. Kes suis adalah perlu jika anda menentukan widget berbilang.
hook_field_presave boleh digunakan untuk menyediakan data dari widget yang hendak dimasukkan ke dalam pangkalan data. Sejak widget kami menggunakan pelbagai bidang bersarang di dalam fieldset, kita perlu memetakan nilai medan ke tempat yang betul dalam pelbagai data yang hendak bersarang di dalam pangkalan data.
Gunakan hook_field_is_empty untuk memberitahu Drupal bagaimana untuk memeriksa jika medan kosong dan mengendalikan dengan sewajarnya. Ini adalah perlu jika anda menandakan medan yang diperlukan.
Sekarang setup panggil balik pengesahan bidang dengan hook_field_validate. Dalam kes ini kita benar-benar tidak memerlukan pengesahan, tetapi dalam kes yang anda lakukan, di sini adalah bagaimana untuk melakukannya.
Sekarang anda perlu untuk menentukan Pemformat anda (s) dan menentukan output lapangan dengan menggunakan hook_field_formatter_info dan hook_field_formatter_view.
Dan VoilĂ ! baru jenis medan plat lesen berkilat untuk digunakan di mana-mana entiti anda, nod, dan pengguna.
Adalah jawatan ini membantu anda? Berkongsi komen anda di bawah!