我主题的每个页面都需要使用jquery UI。我知道它已经包含在Drupal 7中,但是我无法真正解读Drupal的技术文档。看起来唯一的方法是使用template.php文件。但是由于我不了解该文件,因此我试图避免这样做。
还有另一种方法,还是应该只尝试template.php文件?
我主题的每个页面都需要使用jquery UI。我知道它已经包含在Drupal 7中,但是我无法真正解读Drupal的技术文档。看起来唯一的方法是使用template.php文件。但是由于我不了解该文件,因此我试图避免这样做。
还有另一种方法,还是应该只尝试template.php文件?
Answers:
即使您需要使用php,将JS添加到页面上也并不难。
对于普通的JS文件,您可以执行以下操作
drupal_add_js($path_to_js)
但是,Drupal已将jQuery UI注册到库中,这使得为某些jQuery UI插件添加JS和CSS文件更加容易。这可以使用
drupal_add_library($module, $library);
所有jQuery UI插件都存在于系统模块中,因此您可以
drupal_add_library('system', 'ui');
要么
drupal_add_library('system', 'ui.accordion');
其中一些插件具有依赖性,因为它们使用其他插件。Drupal非常巧妙地处理了这一问题,并将包括所需的组件。
您可以在此处查看jQuery插件的完整列表。它的格式为PHP数组,但通常的命名约定为ui.PLUGIN-NAME。
如果您需要在每个页面上添加JS,则只需添加一个预处理页面挂钩并将其添加到该页面即可。在template.php文件中看起来像这样。
function NAME_OF_THEME_preprocess_page(&$variables) {
drupal_add_library('system', 'ui');
drupal_add_library('system', 'ui.accordion');
drupal_add_library('system', 'effects.highlight');
}
function nocturnal_preprocess_page(&$variables) { drupal_add_library('system', 'ui'); drupal_add_library('system', 'ui.datepicker'); }
drupal_add_library('system', 'ui');
和drupal_add_library('system', 'ui.accordion');
?是第一个获取所有内容还是仅获取核心内容?我使用的每个插件都需要一行吗?
您是否尝试过date_popup模块?与表单API一起使用时效果很好
我最近有这个问题。有人给了我他们的自定义模块,以强制在每个页面上加载JQuery UI。您可以简单地重新创建它。首先,安装jquery_update并确保其正常工作。然后,创建并启用此模块:
在名为“ jquery_force”的路径/至/模块中创建一个文件夹。
在里面,添加两个文件:
jquery_force.info:
name = JQuery UI Force
description = Forces JQuery UI to always load
dependencies[] = jquery_update
package = User Interface
core = 7.x
files[] = jquery_force.module
jquery_force.module:
<?php
/**
* @file jquery_force.module
* TODO: Enter file description here.
*/
/**
* Implements hook_init().
*/
function jquery_force_init() {
drupal_add_library('system', 'ui');
}