沃梦达 / 编程问答 / php问题 / 正文

Drupal 7 在自定义主题中覆盖 jquery js 文件

Drupal 7 override jquery js file in custom theme(Drupal 7 在自定义主题中覆盖 jquery js 文件)

本文介绍了Drupal 7 在自定义主题中覆盖 jquery js 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Is it possible to rewrite/override a default Drupal 7.26 jquery used in custom template scripts variable ?

I mean one of the js files:

<script type="text/javascript" src="http://drupal.dev/misc/jquery.js?v=1.4.4"></script>

by one which comes by custom theme ?

I tried this in sites/all/MYTPL/template.php but it doesn't work:

$scripts['misc/jquery.js']['data'] = $base_theme . '/js/packages/jquery-2.1.0.min.js';

I would like to know if someone managed it without using any modules such as jQuery Update ?

=== UPDATED ===

Actually I solved it by help of accepted answer with some modifications based on @cojomojo 's answer:

function THEMEname_js_alter(&$javascript) {
    // Swap out jQuery to use an updated version of the library.
    $javascript['misc/jquery.js']['data'] = drupal_get_path('theme', 'THEMEname') . '/js/packages/jquery-2.1.0.min.js';
}

解决方案

Use this code inside your theme's template.php file, in hook_js_alter.

function [YOUR_THEME]_js_alter(&$js)
{
    $jqKey = "my-new-jquery"; // a key for new jquery file entry
    $js[$jqKey] = $js['misc/jquery.js']; // copy the default jquery settings, so you don't have to re-type them.
    $js[$jqKey]['data'] = "https://code.jquery.com/jquery-2.1.0.min.js"; // the path for new jquery file.
    $js[$jqKey]['version'] = '2.1.0'; // your jquery version.

    unset($js['misc/jquery.js']); // delete drupal's default jquery file.
}

这篇关于Drupal 7 在自定义主题中覆盖 jquery js 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Drupal 7 在自定义主题中覆盖 jquery js 文件

基础教程推荐