PHP Master | Membuat jenis nod Drupal baru
Drupal adalah sistem pengurusan kandungan yang sangat fleksibel untuk membina laman web. Ia menyediakan banyak ciri hebat dari kotak yang membolehkan kami membina tapak yang komprehensif tanpa menulis sebarang kod PHP. Ia juga menyediakan ciri -ciri untuk menambah lebih banyak fungsi melalui penggunaan modul.
Secara lalai, jenis nod Drupal adalah artikel dan halaman. Ini mungkin baik untuk tapak asas, tetapi jika kita merancang untuk mempunyai laman web yang lebih kompleks, kami akan mahu menambah jenis nod yang berbeza. Kita juga boleh menentukan mereka dengan menulis modul!
Dalam artikel ini, anda akan melihat cara menulis modul Drupal tersuai yang akan memasang jenis nod baru menggunakan Drupal Hooks dan API.
- Drupal adalah sistem pengurusan kandungan yang fleksibel yang membolehkan penciptaan jenis nod baru melalui menulis modul tersuai; Ini bermanfaat untuk membina laman web yang lebih kompleks di luar artikel lalai dan jenis nod halaman.
- Membuat jenis nod baru melibatkan membuat modul dengan tiga fail: Cangkuk Drupal yang digunakan oleh modul).
- Jenis nod baru dipasang menggunakan cangkuk Drupal dan API, dan medan seperti tajuk, keterangan, dan lain -lain, ditakrifkan. Modul ini juga harus memasukkan kod untuk membersihkan sebarang data atau jenis yang ditambah apabila ia tidak dipasang.
- Bidang tambahan boleh ditambah ke jenis nod baru dengan membuat contoh medan dan medan dalam fail .install modul. Ini membolehkan kandungan yang lebih disesuaikan, seperti harga produk dan kuantiti dalam jenis nod produk.
Mari kita mulakan dengan mewujudkan struktur asas modul di mana kita akan membuat jenis kandungan baru kita. Untuk membuat modul, di Direktori Laman/Semua/Modul Pemasangan Drupal anda buat direktori baru bernama ProductCustomType. Dalam folder itu, kemudian buat tiga fail:
- ProductCustomType.info - akan mengandungi maklumat mengenai modul supaya Drupal akan mengenalinya dan menunjukkannya dalam senarai.
- ProductCustomType.install - akan mempunyai butiran mengenai perkara yang akan anda pasang atau nyahpasang untuk modul.
- ProductCustomType.Module - akan mengandungi kod untuk melaksanakan cangkuk Drupal yang digunakan oleh modul.
- Sebaik sahaja anda telah membuat direktori, buka ProductCustomType.info dan tambahkan kod berikut kepadanya:
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
memasang dan menyahpasang nod
Sebaik sahaja kita mempunyai fail asas untuk modul di tempat, kita boleh mula menulis kod untuk memasang jenis nod tersuai. Cangkuk pertama yang perlu kita laksanakan ialah hook_node_info. Menggunakan cangkuk ini, modul boleh menentukan satu atau lebih jenis nod di Drupal. Pelaksanaan Hook mengembalikan array yang menentukan jenis nod baru yang modul akan ditambah.
Untuk melaksanakan cangkuk ini, tambahkan kod berikut ke ProductCustomType.Module:
name = productcustomtype
description = A new content type of Product
package = Product Custom node Type
core = 7.x
files[] = productcustomtype.install
files[] = productcustomtype.module
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implements hook_node_info()
</span></span><span><span> */
</span></span><span><span>function productcustomtype_node_info() {
</span></span><span> <span>return array(
</span></span><span> <span>'product' => array(
</span></span><span> <span>'name' => t('Product'),
</span></span><span> <span>'base' => 'product',
</span></span><span> <span>'description' => t('You can define new Products here'),
</span></span><span> <span>'has_title' => TRUE,
</span></span><span> <span>'title_label' => t('Product title')
</span></span><span> <span>)
</span></span><span> <span>);
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implement hook_form()
</span></span><span><span> */
</span></span><span><span>function product_form($node, $form_state) {
</span></span><span> <span>return node_content_form($node, $form_state);
</span></span><span><span>}</span></span>
Jika kita menambah produk baru, ia juga akan dilihat di halaman rumah Drupal.
Semua modul di Drupal harus membersihkan sebarang data yang mereka buat dalam pangkalan data atau mana -mana jenis yang telah mereka tambah apabila ia dipasang oleh pengguna. Untuk menyokong ini, kami perlu melaksanakan hook_uninstall dalam fail ProductCustomType.install kami seperti berikut:
name = productcustomtype
description = A new content type of Product
package = Product Custom node Type
core = 7.x
files[] = productcustomtype.install
files[] = productcustomtype.module
Mewujudkan bidang tambahan
Sebaik sahaja kami telah menambah jenis nod baru, kami mempunyai fungsi yang serupa dengan nod. Tetapi bagaimana jika kita mahu menambah lebih banyak medan bergantung pada jenis nod? Sebagai contoh, jika ia adalah jenis produk maka kita mungkin mahu menambah dua lagi bidang seperti harga dan kuantiti.
Untuk ini, kita perlu terlebih dahulu membuat medan dan kemudian membuat contoh medan pada jenis nod kita. Kami menulis dua fungsi baru dalam Fail ProductCustomType.Install untuk menentukan bidang dan contoh medan.
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implements hook_node_info()
</span></span><span><span> */
</span></span><span><span>function productcustomtype_node_info() {
</span></span><span> <span>return array(
</span></span><span> <span>'product' => array(
</span></span><span> <span>'name' => t('Product'),
</span></span><span> <span>'base' => 'product',
</span></span><span> <span>'description' => t('You can define new Products here'),
</span></span><span> <span>'has_title' => TRUE,
</span></span><span> <span>'title_label' => t('Product title')
</span></span><span> <span>)
</span></span><span> <span>);
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implement hook_form()
</span></span><span><span> */
</span></span><span><span>function product_form($node, $form_state) {
</span></span><span> <span>return node_content_form($node, $form_state);
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implements hook_install().
</span></span><span><span> */
</span></span><span><span>function productcustomtype_install() {
</span></span><span> <span>node_types_rebuild();
</span></span><span> <span>$types = node_type_get_types();|
</span></span><span> <span>node_add_body_field($types['product']);
</span></span><span><span>}</span></span>
<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Implements hook_uninstall().
</span></span><span><span> */
</span></span><span><span>function productcustomtype_uninstall() {
</span></span><span> <span>$ournewtype = 'product';
</span></span><span> <span>$sql = 'SELECT nid FROM {node} n WHERE n.type = :type';
</span></span><span> <span>$result = db_query($sql, array(':type' => $ournewtype));
</span></span><span> <span>$nodeids = array();
</span></span><span> <span>foreach ($result as $row) {
</span></span><span> <span>$nodeids[] = $row->nid;
</span></span><span> <span>}
</span></span><span> <span>node_delete_multiple($nodeids);
</span></span><span> <span>node_type_delete($ournewtype);
</span></span><span><span>}</span></span>
Selepas kita menyimpan nod dan melihatnya dalam pratonton, kita akan melihat bidang seperti berikut:
Kesimpulan
Drupal CMS menyediakan banyak cangkuk berguna dan API yang kuat yang membolehkan kami melakukan pelbagai penyesuaian. Dalam artikel ini, kami dapat mencipta jenis node yang baru yang akan muncul di bahagian kandungan Drupal. Dan menggunakan API Drupal, kami juga melampirkan medan ke jenis nod baru ini supaya sesiapa sahaja boleh menambah kandungan menggunakan jenis nod baru. Oleh itu, bersenang -senang membuat jenis nod baru anda untuk laman Drupal anda.
imej melalui Fotolia
soalan yang sering ditanya mengenai membuat jenis nod Drupal baru
Apakah jenis nod Drupal dan mengapa penting? oleh konteks maklumat. Ini boleh menjadi catatan blog yang mudah, artikel, cerita berita, topik forum, atau tutorial, antara lain. Jenis nod adalah penting kerana mereka menyediakan cara berstruktur untuk memasukkan, memaparkan, dan menguruskan kandungan dalam Drupal. Mereka membenarkan penyesuaian input data, pengesahan, dan tetapan paparan, yang dapat meningkatkan pengalaman pengguna dan fungsi keseluruhan tapak Drupal. >
Mewujudkan jenis nod baru dalam Drupal adalah proses yang mudah. Pertama, navigasi ke menu "Struktur" di Dashboard Drupal Admin anda, kemudian pilih "Jenis Kandungan". Klik pada butang "Tambah Jenis Kandungan". Anda akan diminta untuk mengisi nama, keterangan, dan tetapan untuk jenis nod baru anda. Sebaik sahaja anda telah mengisi maklumat yang diperlukan, klik pada butang "Simpan dan Urus Bidang" untuk menambah medan ke jenis nod baru anda. 🎜> Ya, anda boleh menyesuaikan medan dalam jenis nod Drupal anda. Selepas membuat jenis nod baru, anda boleh menambah, mengedit, atau memadam medan yang diperlukan. Ini membolehkan anda menyesuaikan jenis nod untuk keperluan kandungan khusus anda. Sebagai contoh, anda mungkin menambah medan teks untuk ringkasan artikel, medan imej untuk imej yang dipaparkan, atau medan tarikh untuk tarikh penerbitan.
Drupal menyediakan tab "Urus Paparan" untuk setiap jenis nod. Ini membolehkan anda mengawal bagaimana setiap medan dipaparkan apabila nod dilihat. Anda boleh menyesuaikan label, format, dan susunan setiap medan. Anda juga boleh mengumpulkan medan ke dalam mod paparan tersuai, seperti pandangan penggoda atau paparan kandungan penuh. Cara yang kuat untuk membuat, mengemas kini, dan memadam nod secara pemrograman. Ini berguna untuk tugas -tugas seperti mengimport kandungan dari sistem lain, menghasilkan data ujian, atau membuat aliran kerja tersuai. API Node adalah sebahagian daripada sistem teras Drupal, jadi ia boleh didapati dalam semua pemasangan Drupal.
Apakah jenis nod teras di Drupal? Ini menyediakan titik permulaan untuk menguruskan kandungan di Drupal. Walau bagaimanapun, anda juga boleh membuat jenis nod tersuai anda sendiri untuk memenuhi keperluan khusus anda.
Bagaimana saya boleh mengawal akses ke nod Drupal saya? Anda boleh menetapkan kebenaran berdasarkan peranan pengguna, membolehkan anda mengawal siapa yang boleh melihat, membuat, mengedit, dan memadam nod setiap jenis. Anda juga boleh menggunakan API akses nod Drupal untuk membuat peraturan akses yang lebih kompleks.
Bolehkah saya menggunakan modul pandangan Drupal untuk memaparkan nod saya? . Anda boleh membuat pandangan tersuai yang memaparkan nod berdasarkan pelbagai kriteria, seperti jenis nod, status penerbitan, atau pengarang. Anda juga boleh menyesuaikan format paparan, penyortiran, dan penomboran pandangan anda. Rasa nod anda. Anda boleh membuat templat tersuai untuk setiap jenis nod, dan anda boleh menggunakan API tema Drupal untuk menambah CSS dan JavaScript tersuai ke nod anda. > Ya, seni bina modular Drupal membolehkan anda melanjutkan fungsi nod anda dengan modul. Terdapat beribu -ribu modul yang disumbangkan yang boleh menambah ciri -ciri seperti galeri imej, komen, penilaian, dan integrasi media sosial kepada nod anda. Anda juga boleh membuat modul tersuai anda sendiri jika anda mempunyai keperluan khusus yang tidak dipenuhi oleh modul yang tersedia.
Atas ialah kandungan terperinci PHP Master | Membuat jenis nod Drupal baru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Prinsip reka bentuk Restapi termasuk definisi sumber, reka bentuk URI, penggunaan kaedah HTTP, penggunaan kod status, kawalan versi, dan benci. 1. Sumber harus diwakili oleh kata nama dan dikekalkan pada hierarki. 2. Kaedah HTTP harus mematuhi semantik mereka, seperti GET digunakan untuk mendapatkan sumber. 3. Kod status hendaklah digunakan dengan betul, seperti 404 bermakna sumber tidak wujud. 4. Kawalan versi boleh dilaksanakan melalui URI atau header. 5. Boots Operasi Pelanggan Hateoas melalui pautan sebagai tindak balas.

Dalam PHP, pengendalian pengecualian dicapai melalui percubaan, menangkap, akhirnya, dan membuang kata kunci. 1) blok percubaan mengelilingi kod yang boleh membuang pengecualian; 2) Blok tangkapan mengendalikan pengecualian; 3) Akhirnya Blok memastikan bahawa kod itu sentiasa dilaksanakan; 4) Lemparan digunakan untuk membuang pengecualian secara manual. Mekanisme ini membantu meningkatkan keteguhan dan mengekalkan kod anda.

Fungsi utama kelas tanpa nama dalam PHP adalah untuk membuat objek satu kali. 1. Kelas tanpa nama membenarkan kelas tanpa nama ditakrifkan secara langsung dalam kod, yang sesuai untuk keperluan sementara. 2. Mereka boleh mewarisi kelas atau melaksanakan antara muka untuk meningkatkan fleksibiliti. 3. Beri perhatian kepada prestasi dan kebolehbacaan kod apabila menggunakannya, dan elakkan berulang kali menentukan kelas tanpa nama yang sama.

Dalam PHP, perbezaan antara termasuk, memerlukan, termasuk_once, memerlukan_once adalah: 1) termasuk menghasilkan amaran dan terus melaksanakan, 2) memerlukan menghasilkan ralat maut dan berhenti pelaksanaan, 3) termasuk_once dan memerlukan_once mencegah kemasukan berulang. Pilihan fungsi ini bergantung kepada kepentingan fail dan sama ada perlu untuk mencegah kemasukan pendua. Penggunaan rasional dapat meningkatkan kebolehbacaan dan pemeliharaan kod.

Terdapat empat jenis kesilapan utama dalam PHP: 1.Notice: yang paling sedikit, tidak akan mengganggu program, seperti mengakses pembolehubah yang tidak ditentukan; 2. Amaran: Serius daripada notis, tidak akan menamatkan program, seperti tidak mengandungi fail; 3. FatalError: Yang paling serius, akan menamatkan program ini, seperti tidak memanggil fungsi; 4. ParseError: Kesalahan sintaks, akan menghalang program daripada dilaksanakan, seperti lupa untuk menambah tag akhir.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.
