Creați un plug-in personalizat stil - vederi în theming 8 drupal
modulul Vederi (reprezentare) este o componentă a miezului Drupal 8. știu despre toate ziua de azi. Twig - un nou motor de șablon în Drupal 8. Aceasta este ceea ce, de asemenea, este deja cunoscut. Dar cum poate interactiona cu modulul Vederi, pentru a tema View folosind crenguță? În plus față de suprapunere a modelelor, ca și în orice alte module ale sistemului, avem o alternativă mai puternică în forma de plug-in-uri Views (afișare, stil, rând și Field).
În acest articol ne uităm la modul de a crea un Drupal 8 Style Plugin pentru Views. Noi folosim file Bootstrap de marcare și de a pune în aplicare concluzii cu tab-uri cu rezultatele noastre Views. În configurația Vizualizări, setările de stil ne permit pentru a determina care câmp va fi folosit ca o copie de navigare cu tab-uri, și lasă vizibile în câmpurile filele rămase. În general, fiecare rezultat va fi o filă View, astfel încât acest exemplu nu este potrivit pentru prezentări cu prea multe rezultate. Scopul nostru - pentru a demonstra procesul de creare a propriului lor plugin Stil în Drupal 8.
Ce este un plug-in stil?
Stilul plugin este responsabil pentru transmiterea listelor. Exemple evidente Style plugin-uri sunt lista neformatat. Lista HTML. Tabel sau Grid. Afișaj lor folosește un plug-in, iar ei la rândul lor, utilizează pluginuri rând care reprezintă un element din listă.
În Drupal 8, toate punctele de vedere tipurile de plug-in-uri construite folosind noul sistem plug-in și au o funcțională comună (acestea sunt moștenite de la aceeași PluginBase).
Să ne creați același priza Style, care poate fi folosit de cele mai multe tipuri de afișare (pagina, Block, etc.) și care utilizează priza de câmp.
File Style plugin Bootstrap
Primul pas - este crearea de noastre plug-in clasa Plugin / opinii / stilul de dosar nostru modul:
Drupal plugin care va crea - este ViewsStyle cu unele dintre datele mele de bază despre aceasta, a trecut în rezumat. Ca să nu mai vorbim de datele cele mai evidente, avem o temă și cuvinte cheie display_types. Este demn de menționat. Tema declară ce funcția de fire va utiliza datele plug-in, și display_types anunță ce fel de plug-in-uri care pot fi folosite Stilul de afișare (în acest caz, toate tipurile de display, dacă nu se specifică altfel: normal). Dacă doriți să aflați mai multe informații despre toate configurațiile posibile, Adnotare, verifica Drupal \ vederi \ adnotarea \ ViewsStyle clasa adnotată.
Folosind două proprietăți ale clasei, am anunțat că pluginul utilizează pluginuri Row, dar nu permite gruparea. Asigurați-vă că ați verificat toate părintelui și să ia în considerare alte opțiuni similare. De exemplu, o clasă pe care le moștenesc, și-a anunțat deja că domeniile Vederile pot fi utilizate cu plug-in-Style.
Așa cum am spus mai devreme, folosind cele două metode, vom crea o opțiune de plug-in și un element de formular, care poate determina care domeniu ar trebui să fie invocate ca file de navigare. Folosind un manipulator al stadiului actual ($ this-> displayHandler), putem încărca toate câmpurile disponibile Vezi, care a adăugat software-ul motorului. Și acest element nou formular va fi disponibil sub forma de setări de stil:
![Creați un plug-in personalizat stil - vederi theming la 8 drupal (modulul) Creați un plug-in personalizat stil - vederi în theming 8 drupal](https://webp.images-on-off.com/25/900/434x127_iplqx29qmg85862vxcqt.webp)
Pentru că am moștenit de la clasa StylePluginBase. nu mai trebuie să facă nimic. Pentru a afișa markup ne putem baza pe demo_bootstrap_tabs. care primește variabilele corespunzătoare cu performanța de vedere. Dacă doriți insistent să putem redefini metodele și adăugați mai multe variabile pentru a schimba subiectul, etc. Dar setările implicite, suntem perfecte, mai ales pentru că noi implementăm un preprocesor pentru variabila de procesare care primește șablonul.
Este timpul pentru a defini demo_bootstrap_tabs subiect. cum putem face acest lucru este de obicei (în fișierul nostru .module):
Implicit Stil plugin trimite vizualizarea $ șablon de obiect, iar rezultatul este $ rânduri. Prelucrarea acestor variabile (dacă este necesar), înainte de a transfera modelul - acest preprocesor de locuri de muncă.
Ce se întâmplă aici? În primul rând, vom verifica setările de stil plugin dacă acesta a fost folosit de numele câmpului (cel care a fost selectat la configurarea View). Dacă nu, vom suna declarația de retur, dar numai după preprocesorul îndeplini funcția template_preprocess_views_view_unformatted. Mai mult, în funcție de rezultatele Views trece printr-un ciclu, și, ca urmare, o serie de conținut pentru navigare cu tab-uri noastre. Pentru a face acest lucru, vom folosi firele views_view_field pentru a transfera câmpul selectat. În cele din urmă, vom trece modelul de matrice și a alerga preprocesorul neformatată stil listă.
În Drupal 8 este nu mai functioneaza asa ca acum totul este procesat cu șabloane Twig. Să vedem cum fișierul demo-bootstrap-tabs.html.twig arată în dosarul nostru de șabloane module:
După cum puteți vedea, este necesar pentru marcare file Bootstrap. Desigur, aceasta nu va funcționa dacă nu ați descărcat în stilurile lor tema Bootstrap și script-uri.
Primul lucru pe care le trece - acesta arată file de navigare (de la variabile pentru nav). În cazul în care iterează bucla prin matrice, beneficiem, de asemenea, din seria de valori ale indicelui pentru a face primul element activ în mod implicit, și au avut posibilitatea de a viza conținutul filelor fereastra utilizând ID-ul unic. În ceea ce privește valoarea reală a elementelor, vom afișa pur și simplu matrice transmis, care a fost creat în preprocesorul, și Drupal este implicat în transmiterea acesteia. Având în vedere cele de mai sus, probabil, o idee bună pentru a vă asigura că domeniul pe care îl utilizați în prezent, relativ scurt, fără o referință și aspect de bază. Nume va funcționa, probabil, bine. Dar aici este în configurația View corespunzătoare.
În partea de jos a navigatiei, vom trece rândurile expirate, folosind același index ciclu pentru a seta implicit primul rând ca panoul filă activă și eticheta unică le-a creat de navigare de mai sus ar putea controla vizibilitatea acestora. În ceea ce privește conținutul, vom da pe deplin row.content variabilă (care a fost preparat în cadrul template_preprocess_views_view_unformatted), în care toate câmpul nostru View stocate. Și dacă nu vrem să includă un câmp pe care am folosit pentru navigare, putem pur și simplu elimina afișarea configurației View. Acest câmp va continua să apară în secțiunea de navigare (pentru că l-am pus acolo), dar nu va apărea în bara de tab-ul principal.
concluzie
Ei bine, asta-i tot. Vizualizare Stil plugin pentru a afișa rezultatele Vizualizarea unei file Bootstrap. Tot ceea ce avem nevoie acum - este să vă asigurați că Bootstrap descărcat și configurat în funcție Plug nostru View Style. Rețineți că această metodă nu este potrivită pentru vederile cu o mulțime de rezultate, și servește doar ca un exemplu de a crea un stil de plugin-uri.