Koşullu olarak CSS öğeleri eklemek için “ifconfig” kullanın


10

ifconfigMagento 2'de, Magento 1'e benzer şekilde CSS varlıklarını koşullu olarak eklemek için kullanmanın bir yolu var mı ? Magento 1'den bir örnek:

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

Magento 2'de böyle bir şey denedim ama işe yaramıyor:

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

Sadece görüntüler ifconfigönyüzü üzerine niteliğini:

<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'de eşdeğeri var mı?

Yanıtlar:


3

Şu anda head.xsdgeliştirme dalındaki tanımlamaya bakmak mümkün değil gibi görünüyor :

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

Gerekli Js Modülü gibi bir şey yapabilirsiniz: https://github.com/magento/magento2/blob/develop/app/code/Magento/RequireJs/Block/Html/Head/Config.php

Burada, config.modu ve mixins, doğrudan requir.js dosyasından sonra eklenir.

Böyle bir koşulla css dosyalarınızı ekleyebilirsiniz.

Burada da benzer bir sorunla ilgili bir Sorun buldum, ancak bir cevap almadı: https://github.com/magento/magento2/issues/2004


1

Yapılandırmayla gövdeye bir sınıf ekleyebilirsiniz ve CSS stili yalnızca bu sınıfla çalışır.

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

Bu işe yaramadı mı?
— 00-BBB

0

Bu diğer konuya bir göz atın:

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

Eylem düğümü yerine blok düğüme uyguladı, belki çözebilir.

Not: Önbelleği boşalttığınızdan ve yeniden derlediğinizden emin olun.


blockType için aslında xsd'de tanımlanır: github.com/magento/magento2/blob/develop/lib/internal/Magento/… . @maginfortis ifconfig dosyasını css düğümüne eklemeye çalıştınız mı? Bir doğrulama hatası atarsa, cevabımda ifconfig dosyasını yalnızca xabe'ye eklemeyi unuttuysa veya aslında bu parametre uygulanmadıysa doğrulamak için cevabımda eklemek için deneyebilirsiniz;)
— David Verholen

Evet, haklısın, sadece CSS'de kontrol ediyordum. Belki bir seçenek, bir eklenti tanımlayarak bir "etrafında" yöntem sarıcı kullanmak olabilir.
— Phoenix128_RiccardoT

1
bu şu yöntem üzerinde çalışabilir: github.com/magento/magento2/blob/develop/lib/internal/Magento/… . Ancak, bu yöntemi dinleyen ve bu eklentiden sonra yürütülen diğer tüm eklentiler de yürütülmeyeceğinden (bu durumda yasal görünüyor olsa bile) ilerlemeyi yürütmemeye son derece dikkat etmelisiniz
— David Verholen

Başka bir seçenek, sadece bir sonradan eklenti kullanarak html çıktısında filtrelemek olabilir, ne düşünüyorsunuz?
— Phoenix128_RiccardoT

Bu tüm (ayrıca benim cevap) gerçekten "doğru" hissetmiyorum;) Bunu yapmak başka bir yol hakkında düşündüm ya da sadece yanlışlıkla yanlışlıkla ifconfig bıraktılar merak ediyorum
— David Verholen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.