Magento 2 için Tema - Sıfırdan başlayarak


27

Bazılarınız muhtemelen Magento 1 için sıfırdan konu ile ilgili konuyu okudu: Tema - sıfırdan başlayarak

Merak ediyorum, Magento 2 için sıfırdan bir tema geliştirmek için en iyi uygulama ne olurdu?

  • Yerli lumaveya blanktemayı kullanarak oluşturuyor musunuz ? Veya başka bir şey?
  • Temanızı geliştirmenize yardımcı olacak herhangi bir uzantı kullanıyor musunuz?
  • Sıfırdan bir tema geliştirirken hangi adımları izlersiniz?

Cevabımda bazı linkler veriyorum, lütfen gözden geçirin, Magento 2.0'ın ön mimarisi ve gelişimi hakkında bilgi sahibi olacaksınız.
Asheem Patro

Ön uç için tema oluşturmak üzere Magento docs devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/… adresindeki adımları izleyin .
Rishabh Rk Rai

Yanıtlar:


45

TP: DR

Yerel luma mı yoksa boş temayı mı kullanıyorsunuz? Veya başka bir şey?

Bu size bağlıdır, bir ana temayı bildirmek isteğe bağlıdır. Bir ebeveyn ilan etmezseniz, yine de XML ve şablon dosyaları sağlayan ancak stil içermeyen modüllere (örn. Magento_Catalog) geri döneceksiniz.

Temanızı geliştirmenize yardımcı olacak herhangi bir uzantı kullanıyor musunuz?

SCSS ve GULP ile çalışmayı tercih ederken, şimdi Frontools ve SCSS boş temasını kullanıyorum . Varsayılan Grunt / LESS worflow ile uğraşma stresinin çoğunu ortadan kaldırır.

Sıfırdan bir tema geliştirirken hangi adımları izlersiniz?

  1. Temayı ilan et
  2. Üst tema CSS'yi kaldırın (gerekirse)
  3. Kendi CSS / LESS / SCSS'nizi ekleyin

Benim kişisel görüşüm, kendi 'boş temanızı' sıfırdan yaratmanız en iyisidir, çünkü bunu tam olarak neye ihtiyacınız olacak şekilde düzenleyebilirsiniz.

Bu şekilde sıfırdan bir tema oluşturacağım, NewStore / default'ı satıcı ve tema adım olarak kullandım.

Şimdi daha ayrıntılı cevap için ...

Temayı oluşturun (resmi belgelere göre)

Resmi dokümanlar uyarınca temayı oluşturun

İsteğe bağlı olarak bir ebeveyn ilan etmek

İçinizde app/design/frontend/NewStore/default/theme.xmlbir ana tema bildirme seçeneğine sahipsiniz veya olmasın, bu örnekte satır 3 ( <parent>Vendor/theme</parent>) ' ü dışarıda bıraktım, böylece ana tema yok . Bu, tüm şablonların / düzen dosyalarının Boş veya Luma'dan değil modüllerin kendisinden geleceği ve boş temaya eklendiği için tema stilinin olmayacağı anlamına gelir.

Benim tema.xml şöyle görünür:

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>NewStore default</title>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

Stillendirmeyi kaldırın (bir üst tema belirlerseniz) ve kendi CSS’nizi ekleyin

Boş veya Luma'yı ebeveyn olarak ayarlarsanız, CSS dosyalarının yüklenmesini önlemeniz gerekir. Bunu yapmak app/design/frontend/NewStore/default/Magento_Theme/layout/default_head_blocks.xmliçin aşağıdaki XML'yi oluşturun ve ekleyin:

<?xml version="1.0" ?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>

        <!-- Remove blank/luma theme styling if you declared a parent -->
        <remove src="css/styles-m.css" />
        <remove src="css/styles-l.css" />
        <remove src="css/print.css" />

        <!-- Add your own CSS files -->
        <css src="css/styles.css" />
    </head>
</page>

Bu kaldırır styles-m.css, styles-l.cssve print.cssboş temaya göre ekledi. Ayrıca kendi CSS'iniz için üs olarak styles.css ekler.

Bir ebeveyn belirtmediyseniz <remove />, yukarıdaki koddaki 3 etiketi kaldırabilirsiniz .

Kendi CSS'inizi ekleyin

Şimdi temanızı biçimlendirebilirsiniz ancak lütfen LESS yerine Sass hayranıyım bu yüzden bu dosyayı ekledim - app/design/frontend/NewStore/default/web/css/styles.scss

Burada işe yaradığını ispatlamak için arka plan rengini değiştirdim, ideal olarak bu dosyayı sadece diğer Sass / Less dosyalarını almak için kullanacaktınız.

Sonuç

Az önce yaptığımın sonucu, Magento'nun (bazen üzerinde çalışılması zor olan) stillerle çalışmadan, stilinizi şekillendirmenize izin vermeyen (güzel yeşil arka planım dışında) bir tema.

görüntü tanımını buraya girin

İpuçları

  • SCSS ile çalışmayı tercih ediyorsanız ve sıfırdan bir tema oluşturmak için zamanınız yoksa, hem Snowdog Apps tarafından hem de Frontools ve SCSS blank temasını kullanmanızı öneririm .

  • Magento'nun ön koduyla çalışmanın en sinir bozucu yönünü kendi stilinin ne kadar belirgin olduğunu buluyorum, bunun önüne geçmek için BEM adlandırma kurallarını kendi stilinizi yazarken kullanmanızı tavsiye ederim .

  • Ayrıca faydalı yorumlar önemlidir, eğer Luma / Blank ile çalışmak için kullanılan bir cihaz sıfırdan inşa edilmiş bir tema üzerinde çalışmışsa, muhtemelen işleri beklediklerinden oldukça farklı buluyorlardı.


Talimatlarını kullanarak içinde belirtilen bir ana tema olmadan kendi boş temamı oluşturdum theme.xml. Ancak, ön uçta hala görülebilen çok çeşitli stiller var. Magento kurulumu developermodda ve tüm önbellekler silindi. Tüm bu stillerin nereden geldiğini bilmiyorum - bir fikrin var mı?
fritzmg

Kurulu eklenti / eklenti var mı? Eğer kuruluysa Varnish de olabilir, URL’den sonra bir soru işareti ve rastgele bir dize ekleyerek ?=123
Ben Crook

Evet, Varnish'i (veya benzerlerini) dışladım. Yüklü uzantı veya eklenti yok.
fritzmg

Tam tema stili mi yoksa sadece bir kısmı mı? Siteyi ve kod tabanını görmeden söylemek benim için zor. Belki yeni bir soru sorup bazı detayları burada gönderebilirsin? Eğer beni etiketlersen, çözüp çözemeyeceğimi göreceğim.
Ben Crook

Görebildiğim kadarıyla tam tema. Ayrıca dahil edilen CSS dosyasını kendi temamdan. Evet, bunun için yeni bir soru oluşturmak muhtemelen daha iyi olur :)
fritzmg

8

Magento 2.0'da bir temayı başlatmak için çok sayıda ders var. Magento 2.0'daki tema gelişimi hakkında iyi bilgi edinebileceğiniz bazı video linkleri ve bazı normal linkler veriyorum. video için buraya tıklayın

bu bağlantılardan da referans alın

http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-create.html

http://blog.magestore.com/how-to-create-custom-theme-on-magento-2-part-1/

Bu linkten magento 2.0'ın öncül mimarisini öğrenmiş olacaksınız.

http://inchoo.net/magento-2/frontend-theme-architecture/

ayrıca bu iki bağlantıyı da kontrol edin

http://www.webmull.com/magento-2-create-new-custom-theme/

http://www.slideshare.net/Magestorecom/how-to-create-theme-in-magento-2-part-1



3

Bir tema geliştirmeye başlamak için en iyi yol birinden miras ile başlamaktır lumaveya blank. Bunun nedeni, duyarlı olmaları için inşa edilmiş olmalarıdır (yani çoklu çözünürlük dostu). Ayrıca, farklı şablon dosyaları ve JS / CSS tanımları oluşturmak için yapmanız gereken işleri azaltır. Yapmanız gereken tek şey sadece kendinizle kişiselleştirmek istediğiniz parçaları geçersiz kılmak. Tema geliştirmeyle ilgili farklı talimatlar için aşağıdaki bağlantılara bakın.

Magento Dokümantasyon Bağlantıları:


Şablon dosyaları artık modüllerden geliyor ve boş / lumadan değil, bu yüzden stil / değişiklik gerektirmiyorsa bunları etkili bir şekilde atlayabilirsiniz. Örneğin, eğer app / design / frontend / Magento / blank / Magento_Catalog 'a bir göz atarsanız, tek yapmanız gereken bir elementi taşımak ve biraz stil eklemek, şablonlar app / code / Magento / Catalogue / view / frontend / templates ve app / kod / Magento / Katalog / görünüm / temel / şablonlar
Ben Crook
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.