Đây là một hơn-mạnh mẽ cách nhận ID nút:
<?php
// Check that the current URL is for a specific node:
if(arg(0) == 'node' && is_numeric(arg(1))) {
return arg(1); // Return the NID
}
else { // Whatever it is we're looking at, it's not a node
return NULL; // Return an invalid NID
}
?>
Phương thức này hoạt động ngay cả khi bạn có đường dẫn tùy chỉnh cho nút của bạn ith các mô-đun path
và/hoặc pathauto
.
Chỉ để tham khảo, nếu bạn không bật mô-đun path
, URL mặc định mà Drupal tạo được gọi là "đường dẫn hệ thống" trong tài liệu. Nếu bạn làm bật mô-đun path
, bạn có thể đặt đường dẫn tùy chỉnh được gọi là "bí danh" trong tài liệu.
Vì tôi luôn bật mô-đun path
, một điều khiến tôi nhầm lẫn là liệu chức năng arg
có thể trả lại một phần của bí danh thay vì một phần của đường dẫn hệ thống hay không.
Khi nó quay ra, chức năng arg
sẽ luôn trả về đường dẫn hệ thống vì the arg
function is based on $_GET['q']
... Sau một chút nghiên cứu, dường như $_GET['q']
sẽ luôn trả về đường dẫn hệ thống.
Nếu bạn muốn nhận đường dẫn từ yêu cầu trang thực tế, bạn cần sử dụng $_REQUEST['q']
. Nếu mô-đun path
được bật, $_REQUEST['q']
có thể trả lại bí danh hoặc đường dẫn hệ thống.
Tôi hơi bối rối về ý nghĩa của từ 'xem' ở đây - ý của bạn là lượt xem từ mô-đun lượt xem? Nếu vậy, tại sao họ chỉ có một nút ID? (Hầu hết các khung nhìn là các tập hợp các nút, nhưng có thể bạn có một kịch bản sử dụng đặc biệt) –
Hiya - bạn nói đúng - tôi đang sử dụng mô-đun lượt xem để tra cứu các nút và sau đó định dạng chúng một cách chính xác. Tất cả các thông tin về các quan điểm này liên quan đến một nút mặc dù - tôi chỉ cần có được NID đó. – MrFidge