Nếu tôi hiểu rõ câu hỏi của bạn, tại sao không hiển thị tập lệnh của bạn tích lũy bí danh của chế độ xem hoặc nút hoặc chế độ xem của bạn? (cũng có thể sử dụng ID nút)
Tôi đã thử nghiệm các chức năng này với _preprocess_node
(các nút) cũng với _preprocess_page
(đối với các khung nhìn và các nút) trong Drupal 6
và 7
.
đây là nút có ID với _preprocess_node
:
function seven_preprocess_node(&$vars) {
if(isset($_GET['q'])){
$nodeID = '9';
if(arg(1) == $nodeID){
drupal_add_js(path_to_theme() . '/test.js');
}
}
}
đây là nút có bí danh với _preprocess_node
:
function THEMENAME_preprocess_node(&$variables) {
if(isset($_GET['q'])){
$path = drupal_get_path_alias($_GET['q']);
if(preg_match('#test_page#', $path)){
drupal_add_js(path_to_theme() . '/test.js');
}
}
}
và chức năng này _preprocess_page
sẽ hữu ích cho các nút và / hoặc khung nhìn (bí danh):
function THEMENAME_preprocess_page(&$variables) {
if(isset($_GET['q'])){
$path = drupal_get_path_alias($_GET['q']);
if(preg_match('#test_page#', $path)){
drupal_add_js(path_to_theme() . '/test.js');
}
}
}
chức năng cuối cùng này chỉ để hiển thị một ví dụ về chức năng tìm kiếm bí danh của chế độ xem / nút hoặc ID nút của bạn:
function THEMENAME_preprocess_page(&$variables) {
if(isset($_GET['q'])){
$script = '/test.js';//script name
$currentPath = drupal_get_path_alias($_GET['q']);//current alias
$targetPath = '#test_view#';//alias to match (delimiter is #), is for example of your view's page.
$targetNodeID = '9';//node ID to match
if(arg(1) == $targetNodeID || preg_match($targetPath, $currentPath)){
drupal_add_js(path_to_theme() . $script);
}
}
}
Tôi hy vọng thông tin sẽ hữu ích.