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.