it-swarm.asia

كيف يمكن تجاوز بعض قواعد CSS لموضوع المشرف؟

هل هناك طريقة لتجاوز بعض قواعد CSS التي يستخدمها موضوع المشرف فقط ، دون لمس موضوع المشرف نفسه (عبر بعض وظائف السمة أو ربط الوحدة النمطية)؟ على سبيل المثال ، أود إضافة text-align: right لكل حقل عدد صحيح في نماذج الإدارة (وفي عُقد التحرير أيضًا).

20
Claudio

فعلت ذلك فقط باستخدام:

function mymodule_preprocess_html(&$variables) {

  global $theme;

  if ($theme === variable_get('admin_theme', 'seven')) {

    // Reference your custom stylesheet.
    drupal_add_css(drupal_get_path('module', 'mymodule') . '/css/mymodule.css', array('weight' => CSS_THEME));
  }
}

هذا أكثر قراءة بالنسبة لي.

15
Sebastian

هناك عدد من الطرق للقيام بذلك ولكن ليست كل الطرق متساوية من حيث التأثير على أداء موقع الويب الخاص بك. فمثلا:

  1. إذا قمت بنسخ سمة المشرف أو إنشاء موضوع فرعي قائم على أساس موضوع المشرف (ملاحظة ، لن يعمل هذا مع Drupal ، حيث يحتوي بالفعل على موضوع فرعي قائم على Shiny) - و ثم قم بإضافة ملف css عبر مكالمة .info ، ستقوم بتحميل CSS في كل صفحة.
  2. إذا قمت بنسخ سمة المشرف ، أو أنشأت موضوعًا فرعيًا بناءً على سمة المشرف ، فيمكنك استخدام الخطاف drupal_add_css () في ملف template.php . سيسمح لك هذا باستدعاء ورقة الأنماط بشروط ، على صفحات معينة فقط على سبيل المثال ، أو لمتصفحات معينة. يعمل هذا بشكل جيد ولكنك تقوم بالفعل بطلب ملفات أكثر من اللازم.
  3. قم بإنشاء الوحدة الخاصة بك ، واستدعاء drupal_add_css () منها. على حد علمي ، هذه هي الطريقة "الأخف" لتغيير موضوع المشرف دون لمس الأصل وستعمل إذا كان موضوع المشرف الخاص بك بالفعل موضوعًا فرعيًا (على سبيل المثال Drupal Commerce Kickstart Admin السمة موضوع فرعي لـ Shiny). أستخدم هذه الطريقة لأنها ستعمل في جميع الظروف. انظر أدناه للحصول على مثال:

قم بإنشاء دليل يسمى "mymodule" (استخدم أي اسم تريده) ، وأنشئ هذه الملفات بداخله ، ثم ضعه داخل مواقعك/all/modules/custom directory. لقد أضفت تعليقات إلى الرمز أدناه حتى تتمكن من رؤية ما يحدث.

  • mymodule.info
  • mymodule.module
  • css/mymodule.css

يحتوي mymodule.info على:

name = mymodule
description = Custom alterations for admin pages on my website
core = 7.x

تحتوي mymodule.module على:

function mymodule_preprocess_html(&$variables) {
  // Add conditional stylesheets for admin pages on admin theme.
  if (arg(0) === "admin") {
    // Reference your current admin theme.
    $theme_path = drupal_get_path('theme', 'commerce_kickstart_admin');
    // Reference your own stylesheet.
    drupal_add_css(drupal_get_path('module', 'mymodule') . '/css/mymodule.css', array('weight' => CSS_THEME));
  }
}

سيحتوي css/mymodule.css على أنماطك التي تتم إضافتها إلى مظهر المشرف. قم بمسح ذاكرة التخزين المؤقت الخاصة بك ، وتمكين هذه الوحدة وأنت في السباقات! اعرف المزيد عن drupal_add_css هنا .

11
PWM

ما أفعله هو إنشاء موضوع فرعي لأي موضوع مشرف أستخدمه باستخدام .info ، ملف CSS فريد (يسمى عادةً overrides.css) و template.php الملف إذا لزم الأمر.

9
Brian Altenhofel

ماذا عن CSS Injector ؟

لا أعرف ما إذا كانت تسمح بقاعدة تكوين تعتمد على السمة ، لكنني أفترض أنها تسمح بقاعدة استنادًا إلى المسار (لذلك المسؤول/ ، العقدة/إضافة/ ، العقدة/*/تحرير يجب أن تفعل خدعة).

2
Berdir