Készítjük az egyéni plug-in stílust - branding nézeteket a drupal 8-ban

Hozzon létre egyéni stílusmintát - Temimization Views a Drupal 8 +6-ban

  • 12.06.17 08:27 •
  • helender •
  • # 330704 •
  • Habrahabr •
  • A homokozóból •
  • 2 •
  • 1100

- ugyanaz, mint Forbes, csak jobb.







A Views modul a Drupal 8 magjának része. Mindeddig mindenkinek tud róla. A Twig az új sablonkezelő a Drupal 8-ban. Már tudunk erről. De hogyan programozhatok meg interakciót a Views modulral annak érdekében, hogy megcímkézze a nézetet a Twig használatával? Az átfedő sablonok mellett, mint bármely más modulrendszerben, van egy sokkal erősebb alternatíva a Nézetek bővítmények (megjelenítés, stílus, sor és mező) formájában.

Ebben a cikkben meg fogjuk találni, hogyan hozzunk létre egy Stílus plug-in-t nézetekhez a Drupal 8-ban. A Bootstrap fül elrendezést használjuk, és végrehajtjuk nézeteink eredményeinek eredményét. A Nézetek konfigurációban a Stílus beállítások lehetővé teszik számunkra, hogy meghatározzuk melyik mezőt használjuk a navigációs navigáció másolataként, és hagyjuk a fennmaradó mezőket a megfelelő lapokon. Általában minden nézet eredmény egy fül, ezért ez a példa nem alkalmas olyan ábrázolásokra, amelyeknek túl sok eredménye van. Célunk bemutatni a saját Stílus plug-in létrehozását a Drupal 8-ban.

Mi a Style plugin?


A stílus-bővítmény felelős a listák átviteléért. A Stílus-bővítmények világos példái a nem formázott listák. HTML lista. Táblázat vagy rács. A Display beépülő modult használják, és a soros plug-ineket használják, amelyek egy listát tartalmaznak.

A Drupal 8-ban a Views plug-inek minden típusa új plug-in rendszerrel készül, és közös funkcióval rendelkeznek (mindegyikük ugyanabból a PluginBase-ből származik).

Hozzunk létre ugyanazt a Stílus-bővítményt, amelyet a legtöbb megjelenítési típushoz (oldal, blokk stb.) Használhatunk, és amely a Mező-bővítményt használja.

Style Plugin Bootstrap lapok


Az első lépés az, hogy létrehozzuk plugin osztályunkat a modul plugin / views / style mappájában:


A létrehozott Drupal plug-in a ViewsStyle, amelynek alapadatai a megjegyzésben szerepelnek. Nem is beszélve a legnyilvánvalóbb adatokról, a témakör kulcsszavai és megjelenítési típusai vannak. amelyeket érdemes megemlíteni. Téma kijelenti, milyen funkciót szálak fogja használni a plug-in adatok és display_types bejelenti, hogy milyen plug-inek, hogy lehet használni Display Style (ebben az esetben minden típusú kijelző, hacsak másként nem jelezzük: normál). Ha szeretne többet megtudni információkat az összes lehetséges, jegyzet, nézd meg a Drupal \ nézetek \ Jegyzet \ ViewsStyle osztály Jegyzet.

Két osztálytulajdonságot használva kijelentettük, hogy pluginunk soros plugineket használ, de nem teszi lehetővé a csoportosítást. Győződjön meg róla, hogy az összes szülőt ellenőrizte, és más hasonló lehetőségeket is figyelembe vett. Például az örökölt osztály már kijelentette, hogy a Nézetek mezők használhatóak a Stílus-bővítménnyel.







Ahogy korábban említettük, két módszer használatával létrehozunk egy plug-in opciót és egy űrlapelemet, amely meghatározza, melyik mezőt kell navigációs fülként használni. Az aktuális állapotkezelő ($ this-> displayHandler) használatával betölthetjük az összes elérhető View mezőt, amelyet a webhelymodell hozzáadott. És ez az új űrlapelem a Stílusban lesz elérhető:

Készítjük az egyéni plug-in stílust - branding nézeteket a drupal 8-ban

Mert örököltünk a StylePluginBase osztályból. semmi többet nem kell tennie. A jelölés megjelenítéséhez támaszkodhatunk a demo_bootstrap_tabs témára. amely megkapja a megfelelő változókat a végrehajtott nézetből. Ha tényleg szeretné, felülírhatjuk a módszereket, hozzáadhatunk több változót, megváltoztathatjuk a témát stb. De az alapértelmezett paraméterek nagyon alkalmasak számunkra, és különösen azért, mert egy előfeldolgozót implementálunk a sablonhoz tartozó változók feldolgozásához.


Itt az ideje, hogy meghatározza a téma demo_bootstrap_tabs. mint általában (a .module fájlunkon belül):


A Style plug-in alapértelmezés szerint átmásolja a $ view objektumot és a $ sorok eredményét a sablonra. Ezek a változók feldolgozása (ha szükséges) a sablon átvétele előtt egy előfeldolgozó feladat.


Mi folyik itt? Először ellenőrizzük a Style plugin beállításait, és megnézzük, hogy használt-e a mező nevét (a nézet konfigurálásakor kiválasztott nevet). Ha nem, visszahívjuk, de csak miután az előfeldolgozó végrehajtja a template_preprocess_views_view_unformatted függvényt. Ezután a Views egy hurokot eredményez, és végül egy sor tartalom jelenik meg navigációs navigációnk számára. Ehhez a view_view_field theme függvényt használjuk a kiválasztott mező átvitelére. Végül átmásoljuk a sablont a sablonra, és futtathatjuk a formázatlan listastílus-előfeldolgozót.


A Drupal 8 már nem tartalmaz témafunkciókat, most mindent a Twig sablonokban kezelnek. Lássuk, hogyan néz ki a demo-bootstrap-tabs.html.twig fájl a modul sablonok mappájában:


Amint látja, ez a szükséges jelzés a Bootstrap lapokon. Természetesen nem fog működni, ha nem töltötte be a megfelelő Bootstrap stílusokat és szkripteket a témába.

Az első dolog, amit átadunk, a lap navigációs elemek (a mi nav változó). Ha a ciklus végigmegy a tömb, akkor is részesülhetnek a sorozatból az index értéke annak érdekében, hogy az első elem alapértelmezés szerint aktív, és lehetősége volt arra, hogy megcélozza a tartalmát ablakcímkék segítségével egyedi azonosító. Ami az igazi értéke a terméket, egyszerűen megjeleníti a továbbított tömb jött létre az előfeldolgozó és Drupal foglalkozik továbbítja. Tekintettel a fentiekre, talán egy jó ötlet, hogy győződjön meg arról, hogy a mező amit jelenleg használ, viszonylag rövid, hivatkozás nélkül és az alapvető elrendezést. A nevek jól működhetnek. De itt van a megfelelő nézet konfigurációt.

A navigáció alján a tényleges sorokat ugyanazon ciklus indexen keresztül adjuk át, hogy beállítsuk az alapértelmezett sort az aktív lapsorként és egyedi módon azonosítsuk őket, hogy a fenti navigáció szabályozhassák láthatóságukat. Ami a tartalmat illeti, a változó row.content teljes egészében átmegyünk (amelyet template_preprocess_views_view_unformatted belül készítettünk), amelyben megtekintésünk összes mezőjét tároljuk. Ha nem szeretnénk megadni a navigációhoz használt mezőt, egyszerűen kizárhatjuk azt a nézet konfigurációjából. Ez a mező továbbra is megjelenik a navigációban (mert ott elhelyeztük), de nem jelenik meg a fõ lapon.

következtetés


Nos, ez minden. Nézetek Stílus plug-in az eredmények megjelenítéséhez Bootstrap fülként. Mindössze annyit kell tennünk, hogy meggyőződjünk arról, hogy a Bootstrap függőségek betöltődnek, és konfiguráljuk a Nézetünket a Stílus-bővítmény használatához. Ne feledje, hogy ez a módszer nem alkalmas a sok eredményt tartalmazó nézetekre, és csak mint példa a Stílus-bővítmények létrehozására.




Kapcsolódó cikkek