le module de mise à jour jQuery inclut ce script.
<script type="text/javascript" src="/sites/all/modules/jquery_update/replace/jquery.min.js?6"></script>
J'ai besoin de cela sur chaque page, à l'exception d'un certain fichier de modèle que j'utilise dans une boîte de fantaisie, et j'ai besoin d'une version ultérieure de jQuery.
J'ai besoin d'exclure la mise à jour jQuery de mettre le script ci-dessus dans le $scripts
variable UNIQUEMENT sur page-media-photos.tpl.php. Comment puis-je atteindre cet objectif?
Voici vos options:
$scripts
la variable y sera disponible et vous pourrez la modifier. Cela peut devenir un peu délicat. Vous pouvez également voir comment qmulti fait cela . jQuery Update procède également de la même manière.N'oubliez pas que le passage à une version jQuery supérieure peut casser certaines choses dans Drupal core et contrib, qui est le problème que jQuery Multi résout. Donc, si vous faites cela, assurez-vous de ne rien casser. l'avantage ici est que vous chargez simplement la jQuery dont vous avez besoin, tandis qu'avec jQuery Multi, vous chargez les deux.
Il y a un module jQuery multi . Ce module vous permet d'avoir multiple versions of jQuery run parallel
sur votre drupal. Il fournit un alias
pour chaque instance que vous pouvez utiliser pour appeler cette version de jquery.
Si vous avez des problèmes avec jqueryupdate et que vous affichez les pages d'administration (par exemple), essayez d'installer la version Dev de ctools et tout ira bien, venez de me tester.
Veuillez trouver ce code peut être utile, placez ce code dans votre template.php
function MYTHEME_preprocess_page(&$vars) {
$scripts = drupal_add_js();
if (in_array('page-media-photos', $vars['template_files'])) {
unset($scripts['all']['module']['PATH_OF_JS_NEED_TO_REMOVE']);
}
$vars['scripts'] = drupal_get_js('header', $scripts);
}
PATH_OF_JS_NEED_TO_REMOVE donne le chemin de js pour ex: sites/all/modules/og/og.js
Vous pouvez appeler jquery_update_jquery_replace()
sur une page spécifique (par exemple, dans hook_library_alter()
) comme illustré dans ici par drupalmoff :
<?php
/**
* Implements hook_module_implements_alter().
*/
function your_module_module_implements_alter(&$implementations, $hook){
if( $hook == 'library_alter' ){
$group = $implementations ['your_module'];
unset($implementations ['your_module']);
$implementations ['your_module'] = $group;
}
}
/**
* Implements hook_library_alter().
*/
function your_module_library_alter(&$javascript, $module) {
if( $module === 'system' && current_path() == 'path/to/page' ) {
// Make sure we inject either the minified or uncompressed version as desired.
$min = variable_get('jquery_update_compression_type', 'min') == 'none' ? '' : '.min';
$cdn = variable_get('jquery_update_jquery_cdn', 'none');
$path = drupal_get_path('module', 'jquery_update');
$version = '1.7';
jquery_update_jquery_replace($javascript, $cdn, $path, $min, $version);
}
}
?>
Ma solution était de changer JQUERY_UPDATE_REPLACE_PATH
constant avant jquery_update
le charge:
<?php
/**
* Replace jQuery files on specified paths (fix for IE 6&7 - jQuery bug: bugs.jquery.com/ticket/6498)
*/
// if (array_search($_GET['q'], array('my_page')) !== FALSE) {
if (arg(0) == 'node' && arg(1) == '123') {
define('JQUERY_UPDATE_REPLACE_PATH', 'sites/all/libraries/jquery/1.5.2');
}
?>
Il peut donc être ajouté au tout début du fichier .module (qui est chargé avant jquery_update
, ou essayez dans le fichier de paramètres.