Ressources généralistes sur le sujet :
Supprimer les CSS Core :
Peut se faire par le biais du hook_css_alter
via le fichier template.php
du thème.
Attention: dans le cas ou certaines CSS sont déclarées comme étant des dépendances du module contrib
, il ne faut pas déclarer le module contrib
mais ce qui semblent être des sous-modules… (en commentaires dans l’exemple ci-dessous, les déclarations qui ne fonctionnent pas) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// unset($css[drupal_get_path('module', 'contrib').'/date/date_api/date.css']); // unset($css[drupal_get_path('module', 'contrib').'/date/date_popup/themes/datepicker.1.7.css']); unset($css[drupal_get_path('module', 'date').'/date_api/date.css']); unset($css[drupal_get_path('module', 'date').'/date_popup/themes/datepicker.1.7.css']); // unset($css[drupal_get_path('module', 'contrib').'/logintoboggan/logintoboggan.css']); unset($css[drupal_get_path('module', 'logintoboggan').'/logintoboggan.css']); // unset($css[drupal_get_path('module', 'contrib').'/css/views.css']); // unset($css[drupal_get_path('module', 'contrib').'/css/ckeditor.css']); // unset($css[drupal_get_path('module', 'contrib').'/media/modules/media_wysiwyg/css/media_wysiwyg.base.css']); // unset($css[drupal_get_path('module', 'contrib').'/admin_menu/admin_menu.css']); // unset($css[drupal_get_path('module', 'contrib').'/admin_menu/admin_menu.uid1.css']); unset($css[drupal_get_path('module', 'views').'/css/views.css']); unset($css[drupal_get_path('module', 'ckeditor').'/css/ckeditor.css']); unset($css[drupal_get_path('module', 'media_wysiwyg').'/css/media_wysiwyg.base.css']); unset($css[drupal_get_path('module', 'admin_menu').'/admin_menu.css']); unset($css[drupal_get_path('module', 'admin_menu').'/admin_menu.uid1.css']); // unset($css[drupal_get_path('module', 'contrib').'/css/ctools.css']); unset($css[drupal_get_path('module', 'ctools').'/css/ctools.css']); // unset($css[drupal_get_path('module', 'contrib').'/adminimal_admin_menu/adminimal_admin_menu.css']); // unset($css[drupal_get_path('module', 'contrib').'/adminimal_admin_menu/js/slicknav/slicknav.css']); unset($css[drupal_get_path('module', 'adminimal_admin_menu').'/adminimal_admin_menu.css']); unset($css[drupal_get_path('module', 'adminimal_admin_menu').'/js/slicknav/slicknav.css']); |
…ce qui nous donne au propre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function my_theme_css_alter(&$css) { /** * Drupal Tutorial: Remove System CSS and JS files * https://www.jnorton.co.uk/drupal-tutorial-remove-system-css-js-files */ unset($css[drupal_get_path('module', 'system').'/system.base.css']); unset($css[drupal_get_path('module', 'system').'/system.menus.css']); unset($css[drupal_get_path('module', 'system').'/system.messages.css']); unset($css[drupal_get_path('module', 'system').'/system.theme.css']); unset($css[drupal_get_path('module', 'contextual').'/contextual.css']); unset($css[drupal_get_path('module', 'comment').'/comment.css']); unset($css[drupal_get_path('module', 'date').'/date_api/date.css']); unset($css[drupal_get_path('module', 'date').'/date_popup/themes/datepicker.1.7.css']); unset($css[drupal_get_path('module', 'field').'/theme/field.css']); unset($css[drupal_get_path('module', 'logintoboggan').'/logintoboggan.css']); unset($css[drupal_get_path('module', 'node').'/node.css']); unset($css[drupal_get_path('module', 'search').'/search.css']); unset($css[drupal_get_path('module', 'user').'/user.css']); unset($css[drupal_get_path('module', 'views').'/css/views.css']); unset($css[drupal_get_path('module', 'ckeditor').'/css/ckeditor.css']); unset($css[drupal_get_path('module', 'media_wysiwyg').'/css/media_wysiwyg.base.css']); unset($css[drupal_get_path('module', 'admin_menu').'/admin_menu.css']); unset($css[drupal_get_path('module', 'admin_menu').'/admin_menu.uid1.css']); unset($css[drupal_get_path('module', 'ctools').'/css/ctools.css']); unset($css[drupal_get_path('module', 'adminimal_admin_menu').'/adminimal_admin_menu.css']); unset($css[drupal_get_path('module', 'adminimal_admin_menu').'/js/slicknav/slicknav.css']); } |
Charger/Ne pas charger certaines ressources CSS/JS si l’utilisateur est anonyme/connecté:
Avec les hooks user_is_anonymous
et user_is_logged_in
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function my_theme_css_alter(&$css) { // On dégage la CSS suivante, peu importe le statut anonyme/connecté de l'utilisateur : unset($css[drupal_get_path('module', 'system').'/system.base.css']); // On dégage la CSS suivante si l'utilisateur est anonyme : if(user_is_anonymous()) { unset($css[drupal_get_path('module', 'contextual').'/contextual.css']); } // On dégage la CSS suivante si l'utilisateur est connecté : if(user_is_logged_in()) { unset($css[drupal_get_path('module', 'comment').'/comment.css']); } } |
Remplacer la version de jQuery par défaut (via CDN)
- [Doc officielle Drupal 7] Using Newer Versions of jQuery
- Drupal 7 override jquery js file in custom theme
Peut se faire par le biais du hook_js_alter
via le fichier template.php
du thème :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/** * Drupal 7 override jquery js file in custom theme * https://stackoverflow.com/questions/22900307/drupal-7-override-jquery-js-file-in-custom-theme#answer-22931513 */ function my_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. } |