Làm cách nào để đặt bí danh URL tự động cho loại nội dung KHÔNG sử dụng Pathauto? Móc nào để thực hiện?


11

Pathauto có thể thực hiện công việc dễ dàng cho tất cả các loại nội dung, nhưng trong trường hợp của tôi, tôi chỉ có một loại URL nội dung cần được tùy chỉnh và tôi không muốn cài đặt Pathauto và Token.

Ai có thể tư vấn cho tôi làm thế nào?


2
Hãy tự cứu mình khỏi cơn đau đầu và chỉ cần sử dụng pathauto. Vấn đề này đã được giải quyết, tại sao giải quyết nó? Pathauto chỉ gây ra một cú đánh hiệu suất khi bạn đang lưu các nút (và thậm chí sau đó, chỉ ở mức tối thiểu).
Matthew Scharley

4
Bởi vì người ta có thể tạo ra các url đẹp hơn pathauto và nếu tất cả những gì bạn cần là tạo các url cho một hoặc hai loại, bạn có thể thoát khỏi hai mô-đun bằng cách thực hiện một hook. Ngoài ra, nhập hàng loạt khá chậm (và thậm chí đã bị phá vỡ tại một số điểm cá nhân, nó chỉ đơn giản từ chối nhập bất cứ thứ gì sau 400 nút), trong khi tập lệnh cron / số lượng lớn nhẹ của tôi quản lý để nhập 500 nút mỗi giây, khá tốt khi bạn có 100k các nút để tạo bí danh cho.
wildpeaks

Câu trả lời:


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

Ngoài ra, bạn có thể thêm mã này vào hook_node_update ()


1

Xem p. 149 của Pro Drupal Development, sử dụng hook_insert (). Khi một nút mới được lưu, hook_insert () được gọi. Đây là nơi xử lý mọi xử lý tùy chỉnh nội dung của nút trước khi nút được lưu. Cũng nhìn vào p. 152-156 Pro Drupal Development nói về tất cả các hàm hook_node_xxxx () khác nhau.

Tôi nghĩ rằng việc sử dụng hook_node_insert () như được đề xuất trong câu trả lời trước sẽ dẫn đến một kết nối vào TẤT CẢ các sáng tạo nút sẽ không giải quyết nhu cầu của bạn để thay đổi một loại nội dung cụ thể.


Xem những gì được báo cáo trong hook_insert () , trong đó có câu sau: "Hook này chỉ được gọi trên mô-đun xác định loại nội dung của nút (sử dụng hook_node_insert()để hành động trên tất cả các lần chèn nút)."
kiamlaluno
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.