Drupalテーマ(6.xバージョン)からcssおよびjsの不要な包含をカットする方法

こんにちは、Habra-同志!

既に準備されたスタイルを妨害し、コーダーを妨害する追加のDrupal cssインクルージョン(system.css、defaults.css、node.cssなどのファイル)がDrupalテーマに平和に住んでいるという報告をよく見ます。

実際、これらの傾向を正しく取り除く方法を今すぐお伝えします(このソリューションは、何らかの理由でサイトのトピックで管理パネルを見ることを好む人には適していません。これらのアクションを開始しないでください!!!)。

まず、目的のトピックにあるtemplate.phpファイルを開きます。

次に、好きな場所に次のコードを追加します(YOURFUNCTIONNAMEをテーマの名前に置き換えます)。

function YOURFUNCTIONNAME_preprocess_page(&$vars) {

if( request_uri() != '/admin/build/block' ){

// css
$css = drupal_add_css();

//
unset($css['all']['module']['modules/system/system.css']);
unset($css['all']['module']['modules/system/defaults.css']);
unset($css['all']['module']['modules/system/system-menus.css']);
unset($css['all']['module']['modules/node/node.css']);
unset($css['all']['module']['modules/views/css/views.css']);

//
$vars['styles'] = drupal_get_css($css);

}

}


それだけです-不要な不要なスタイルはページの読み込みを遅くせず、スタイルがユーザーの目への正しいパスを見つけるのが簡単です。 条件 " if(request_uri()!= '/ Admin / build / block'){} "がここにあるため、ブロック編集ページ(管理パネルの一部ですが、サイトデザインに表示されたまま)に必要なものが残っています機能的。

cssを削減するため、同様にJavaScriptの包含を採用します。 同じ関数YOURFUNCTIONNAME_preprocess_pageに追加します:
if(drupal_is_front_page()){

// jQuery
drupal_add_js('misc/jquery_new.js');

// JS
$js = drupal_add_js();

// jQuery
unset($js['core']['misc/jquery.js']);

// JS
$vars['scripts'] = drupal_get_js('header', $js);

}


これは、メインページで2008年から何らかのひげを生やしたバージョン1.2.6の通常のJS jQuery呼び出しを簡単に取り除くことができる方法です(メインバージョンで多くの複雑なJSを実行する必要がありました置換)。

JSの切断には注意してください-Drupalの機能を損なわないでください:)

以上です! これが誰かに役立つことを願っています。

更新 AnonymとRazunterのアドバイスで、jQueryバージョンを更新するだけの場合は、 パッチまたはjQuery Updateモジュールを使用することをお勧めします。 JavaScriptのインクルードを手動で切断すると、問題が発生する可能性があります。

Source: https://habr.com/ru/post/J87497/


All Articles