機能にcssを適切に追加するにはどうすればよいですか?


7

いくつかのビューのみが含まれる機能があります。スタイルシートを適切に追加するにはどうすればよいですか?

回答:


13
  1. cssファイルをモジュールに追加します。
  2. drupal_add_csscssファイルをに含めるために使用します.module。これはで行うことができ、hook_init次のようになります。

    module_name_init() {
      if (arg(0) == 'views_path') {
        drupal_add_css(drupal_get_path('module', 'module_name') . '/path_to.css');
      }
    }

それも私の最初の考えでしたが、恐怖がエクスポートされるたびにこのコードを手動で追加しなければならないという欠点があります。
BetaRide 2012年

5
それは真実ではない。エクスポートした機能は、カスタムファイルとコードを保持します。今日、私は実際には機能モジュール内に関連するカスタムコードを書くことを好み.installます。
wizonesolutions 2012年

上記のコードで空白の画面が表示されました。しかし、これはうまくいきました。この方法で何か問題はありますか?:module_name_init() { drupal_add_css(drupal_get_path('module', 'module_name') . '/path_to.css'); }
nigel

@nigel私が投稿したのはサンプルコードです。それを機能させるには編集する必要があります。空白の画面が表示される場合は、Webサーバーのログを確認すると、問題が何であるかがわかります。
googletorp

最近のプロジェクトでは、hook_views_pre_render()を使用しました。サンプルコードスニペットはここにありますgist.github.com/1675931
Sivaji

3

CSSスタイル情報を追加するだけの場合は、それをテーマに追加します。新しいCSSファイルを作成し、テーマフォルダーに保存して、テーマの.infoファイルに追加します。

生成されたHTMLも調整する必要がある場合は、テーマ開発者モジュールをインストールします。アクティブにすると、Drupalサイトの任意の部分を指すことができ、テーマを実行している関数と、それらをオーバーライドする場合に独自の関数に名前を付ける方法が示されます。

変更を表示するには、キャッシュを更新することを忘れないでください。


これは通常cssファイルに適していますが、モジュールの移植性を使用する場合は機能しません(同じモジュールを多くのサイトで使用できます)。
googletorp

2

hook_views_pre_render()最近のプロジェクトで使用しました。サンプルコードスニペットはこちらhttps://gist.github.com/1675931

/**
 * Implements hook_views_pre_render().
 */
function example_views_pre_render(&$view) {
  $deals_view = array('deals', 'previous_deals');
  if (in_array($view->name, $deals_view)) {
    drupal_add_js(drupal_get_path('module', 'td_deals') . '/td_deals.js');
    $contextual_module_path = drupal_get_path('module', 'contextual');
    drupal_add_js($contextual_module_path . '/contextual.js');
    drupal_add_css($contextual_module_path . '/contextual.css');
  }
}

1

前述のように、移植性はテーマのcssフォルダーに追加するときに問題になります。私は、エクスポートされた機能のルートで新しく作成されたフォルダー(css)内に.cssファイルを配置し、次のように機能の.infoファイル内で参照することをお勧めします。

stylesheets[all][] = css/styles.css

モジュールが有効になると、スタイルシートが含まれます。機能を再生成するときに良い点は、この追加が保持されることです。


機能の作成は、その.infoファイルで行われたカスタム変更を上書きするため、機能を更新するまでのみ機能します。
Bobík

間違いです、@ボビック。フィーチャーを再作成するときに問題の問題を経験していません。.infoおよび.moduleファイルへのすべての変更は保持されます。機能のドキュメントを見る
knice

私が目にした唯一の欠点は、CSSがすべてのページに含まれることです。それでよければ、解決策は大丈夫です。
ドンキホーテ2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.