มีวิธีการแทนที่กฎ CSS เพียงบางส่วนที่ใช้โดยธีมผู้ดูแลระบบโดยไม่ต้องแตะที่ธีมของผู้ดูแลระบบเอง (ผ่านฟังก์ชั่นธีมหรือโมดูลตะขอ)? ตัวอย่างเช่นฉันต้องการเพิ่มtext-align: right
เขตข้อมูลจำนวนเต็มในฟอร์มผู้ดูแลระบบ (และในโหนดแก้ไขด้วย)
มีวิธีการแทนที่กฎ CSS เพียงบางส่วนที่ใช้โดยธีมผู้ดูแลระบบโดยไม่ต้องแตะที่ธีมของผู้ดูแลระบบเอง (ผ่านฟังก์ชั่นธีมหรือโมดูลตะขอ)? ตัวอย่างเช่นฉันต้องการเพิ่มtext-align: right
เขตข้อมูลจำนวนเต็มในฟอร์มผู้ดูแลระบบ (และในโหนดแก้ไขด้วย)
คำตอบ:
ฉันทำมันโดยใช้:
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));
}
}
นั่นเป็นสิ่งที่อ่านได้มากขึ้นสำหรับฉัน
มีหลายวิธีที่จะทำเช่นนี้ แต่วิธีการทั้งหมดไม่เท่ากันในแง่ของผลกระทบต่อประสิทธิภาพของเว็บไซต์ของคุณ ตัวอย่างเช่น:
สร้างไดเรกทอรีที่เรียกว่า 'mymodule' (ใช้ชื่ออะไรก็ได้ที่คุณต้องการ) สร้างไฟล์เหล่านี้จากนั้นวางไว้ในไดเรกทอรีไซต์ / ทั้งหมด / modules / ที่กำหนดเองของคุณ ฉันได้เพิ่มความคิดเห็นในรหัสด้านล่างเพื่อให้คุณสามารถเห็นสิ่งที่เกิดขึ้น
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 ที่นี่
$theme_path
ตัวแปรหากคุณใช้เส้นทางโมดูลปัจจุบัน ... และCSS_THEME
ไม่ได้เป็นน้ำหนัก แต่เป็นกลุ่ม:array('group' => CSS_THEME)
สิ่งที่ฉันทำคือสร้างธีมย่อยสำหรับธีมผู้ดูแลระบบใดก็ตามที่ฉันใช้ด้วย.info
ไฟล์ CSS ที่ไม่ซ้ำกัน (โดยปกติจะมีชื่อoverrides.css
) และtemplate.php
ไฟล์หากจำเป็น
แล้วCSS Injectorล่ะ?
ผมไม่ทราบว่ามันจะช่วยให้กฎการตั้งค่ารูปแบบขึ้นอยู่กับ แต่ผมถือว่ามันไม่ให้หนึ่งขึ้นอยู่กับเส้นทาง (เพื่อให้ผู้ดูแลระบบ / โหนด / เพิ่ม /โหนด / * / แก้ไขควรทำเคล็ดลับ)