Bagaimana cara mengatur URL alias secara otomatis untuk jenis konten TANPA menggunakan Pathauto? Kait mana yang harus diterapkan?

11

Pathauto dapat melakukan pekerjaan dengan mudah untuk semua jenis konten, tetapi dalam kasus saya, saya hanya memiliki satu URL jenis konten yang perlu disesuaikan, dan saya lebih suka tidak menginstal Pathauto dan Token.

Adakah yang bisa menyarankan saya bagaimana melakukannya?

gilzero
sumber
2
Selamatkan diri Anda dari sakit kepala dan gunakan pathauto. Masalah ini sudah dipecahkan, mengapa harus diselesaikan? Pathauto hanya menyebabkan hit kinerja ketika Anda menyimpan node (dan bahkan kemudian, hanya minimal).
Matthew Scharley
4
Karena seseorang dapat menghasilkan url yang lebih bagus daripada pathauto dan jika semua yang Anda butuhkan adalah menghasilkan url untuk satu atau dua jenis, Anda dapat menyingkirkan dua modul dengan menerapkan satu kait. Juga, impor Massal cukup lambat (dan bahkan pecah secara pribadi, itu hanya menolak untuk mengimpor apa pun setelah 400 node), sedangkan skrip cron / bulk saya berhasil mengimpor 500 node per detik, yang cukup bagus ketika Anda memiliki 100rb node untuk menghasilkan alias untuk.
wildpeaks

Jawaban:

12
/**
 * Implements hook_node_insert()
 */
 function mymodule_node_insert($node) {
   if ($node->type == 'mytype') {
     $node->path['alias'] = 'mytype/' . $node->nid;
   }
 }

Selain itu, Anda dapat menambahkan kode ini ke hook_node_update ()

ya.teck
sumber
1

Lihat hal. 149 dari Pro Drupal Development, gunakan hook_insert (). Ketika simpul baru disimpan, hook_insert () dipanggil. Ini adalah tempat untuk menangani pemrosesan kustom dari konten node sebelum node disimpan. Lihat juga hal. 152-156 Pro Drupal Development yang berbicara tentang semua fungsi hook_node_xxxx () yang berbeda.

Saya pikir menggunakan hook_node_insert () seperti yang disarankan dalam jawaban sebelumnya akan menghasilkan hook ke SEMUA kreasi node yang tidak akan menjawab kebutuhan Anda untuk mengubah jenis konten tertentu.

DeeZone
sumber
Lihat apa yang dilaporkan dalam hook_insert () , yang berisi kalimat berikut: "Hook ini dipanggil hanya pada modul yang mendefinisikan jenis konten node (gunakan hook_node_insert()untuk bertindak pada semua penyisipan node)."
kiamlaluno