ใช้“ ifconfig” เพื่อเพิ่มเนื้อหา CSS


10

มีวิธีใดบ้างที่จะใช้ifconfigใน Magento 2 เพื่อเพิ่มเนื้อหา CSS แบบมีเงื่อนไขคล้ายกับ Magento 1 นี่คือตัวอย่างจาก Magento 1:

<action ifconfig="config_path/group/field" method="addItem">
    <type>skin_css</type><name>css/styles.css</name>
</action>

ฉันลองอะไรแบบนี้ใน Magento 2 แต่มันไม่ทำงาน:

<head>
    <css src="css/styles.css"
        ifconfig="config_path/group/field" />
</head>

มันจะแสดงifconfigคุณลักษณะที่ส่วนหน้า:

<link rel="stylesheet" type="text/css" 
    ifconfig="config_path/group/field" 
    href="http://example.com/pub/static/frontend/Magento/luma/en_US/css/styles.css" />

Magento 2 มีอะไรที่เทียบเท่ากันไหม?

คำตอบ:


3

ดูเหมือนว่าขณะนี้มันเป็นไปไม่ได้ที่จะดูhead.xsdคำจำกัดความในการพัฒนาสาขา

https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/View/Layout/etc/head.xsd#L9

คุณสามารถทำเช่นต้องการโมดูล Js: https://github.com/magento/magento2/blob/develop/app/code/Magento/RequireJs/Block/Html/Head/Config.php

ที่นี่ต้องกำหนดค่าและมิกซ์อินจะถูกแทรกโดยตรงหลังจากไฟล์ require.js

คุณสามารถเพิ่มไฟล์ css ของคุณแบบนี้โดยมีเงื่อนไข

ฉันพบปัญหาที่นี่ด้วยปัญหาที่คล้ายกัน แต่ไม่ได้รับคำตอบ: https://github.com/magento/magento2/issues/2004


1

คุณสามารถเพิ่มคลาสให้กับเนื้อความด้วยการกำหนดค่าและสไตล์ CSS ใช้ได้กับคลาสนั้นเท่านั้น

<reference name="root">
    <action method="addBodyClass" ifconfig="section/group/isactive_full_homepage">
        <classname>home-full-page</classname>
    </action>
</reference>

ไม่สามารถใช้งานได้ใช่ไหม
00-BBB

0

ดูในหัวข้ออื่นนี้:

/programming/32582704/magento-2-get-scopeconfig-values

เขานำไปใช้ในบล็อกโหนดแทนการกระทำโหนดบางทีมันสามารถแก้ปัญหาได้

PS: ตรวจสอบให้แน่ใจว่าได้ล้างแคชและคอมไพล์ใหม่


สำหรับ blockType มันถูกกำหนดไว้จริงใน xsd นี้: github.com/magento/magento2/blob/develop/lib/internal/Magento/... @maginfortis คุณลองเพิ่ม ifconfig ไปยังโหนด css หรือไม่ หากมันมีข้อผิดพลาดในการตรวจสอบคุณสามารถลองเพิ่ม ifconfig ใน head.xsd กล่าวถึงในคำตอบของฉันเพียงเพื่อตรวจสอบว่าพวกเขาลืมที่จะเพิ่มสิ่งนี้ใน xsd หรือถ้าไม่มีพารามิเตอร์นี้ดำเนินการจริง)
David Verholen

ใช่คุณพูดถูกฉันเพิ่งตรวจสอบใน CSS บางทีตัวเลือกหนึ่งอาจใช้ wrapper วิธี "รอบ" โดยการกำหนดปลั๊กอิน
Phoenix128_RiccardoT

1
นี้สามารถทำงานในวิธีการนี้: github.com/magento/magento2/blob/develop/lib/internal/Magento/... แต่คุณควรระมัดระวังอย่างยิ่งที่จะไม่ทำการดำเนินการ (แม้ว่าจะดูเหมือนว่าถูกต้องในกรณีนี้) เพราะปลั๊กอินอื่น ๆ ทั้งหมดที่ฟังวิธีนี้และดำเนินการหลังจากปลั๊กอินนี้จะไม่ถูกดำเนินการ
David Verholen

ตัวเลือกอื่นอาจกรองออกในเอาต์พุต html โดยใช้ปลั๊กอินหลังจากคุณคิดอย่างไร
Phoenix128_RiccardoT

ทั้งหมดนี้ (เช่นเดียวกับคำตอบของฉัน) ไม่รู้สึก "ถูก" จริง ๆ ไม่ได้;) ฉันสงสัยว่าพวกเขาคิดเกี่ยวกับวิธีอื่นในการทำสิ่งนี้หรือเพียงแค่ปล่อย ifconfig ออกโดยไม่ตั้งใจ
David Verholen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.