Kuinka lisätä luokan attribuutti lohkoon?

Kuinka voin lisätä luokan määritteen Drupal 8 -lohkoon?

Drupal-ytimessä on monia esimerkkejä, kuten ohjemoduulit joka asettaa lohkon rooli määritteet. Joten voin lisätä luokan onnistuneesti sen jälkeen.

/** * Implements hook_preprocess_HOOK() for block templates. */ function mymodule_preprocess_block(&$variables) { if ($variables["plugin_id"] == "mymodule_my_block") { $variables["attributes"]["class"][] = "my-nice-block"; } } 

Onko mahdollista lisätä luokka ilman esikäsittelykoukkua? Ihannetapauksessa lohkon laajennustiedostossa, joka sijaitsee src / Plugin / Block /?

Tämä auttaisi pitämään kaikki yhteen lohkoon liittyvät koodit yhdessä paikassa.

Vastaa

Oletko yrittänyt asettaa vain #attribuutit lohkolaajennuksen palauttamaan renderöintiryhmään?

$build["#attributes"]["class"][] = "my-nice-block"; 

Tarkasteltaessa BlockViewBuilder::preRender(), sen pitäisi toimia.

Vastaa

Voit tarkistaa Estä luokka -moduulin.

Lohkoluokka antaa käyttäjille mahdollisuuden lisätä luokkia mihin tahansa lohkoon lohkon määritysrajapinnan kautta. Lisäämällä hyvin lyhyt PHP-katkelma teemaan ”s block.tpl.php tiedosto, luokat voidaan lisätä lohkon pääelementtiin. Hurraa tehokkaammalle lohkoteemalle!

Vastaa

etsi oksa malli nimen ehdotus lohkollesi (käyttäen virheenkorjauskommentteja) ja ohittamalla sen

themes / templates / block – my-custom-block.html.twig

{% extends "block.html.twig" %} {# /** * @file * Theme override for tabs. */ #} {% block title %} {{ title_prefix }} {% if label %} <h2{{ title_attributes.addClass(title_classes, "accordion") }}{{ title_attributes.setAttribute("id", "campus") }}> {{ label }} <i class="fa fa-plus" aria-hidden="true"></i> </h2> {% endif %} {{ title_suffix }} {% endblock %} 

vastaus

1. Luo hello.config-tiedosto

 my_module_name/config/install/my_module_name.config content this code: color :"blue" color_red: "red" 

2. Liitä kirjastotiedosto my_module_name.libraries.yml

 // This function below is located on my_module_name.module file function my_module_name_page_attachments(array &$page){ $page["#attached"]["library"][]= "my_module_name/library_name"; } 

3. Aseta luokka my_module_name.module-tiedostossa

function my_module_name_preprocess_block (taulukko & $ muuttujat) {

// Get the value of my color content in my_module_name/config/install/my_module_name.config $class = \Drupal::config("my_module_name.config")->get("color"); 

// Hae lohkon tunnus

 $id= $variables["elements"]["#id"]; $block = Block::load($id); 

// Hanki alue, jolla on esto

 $region = $block->getRegion(); if($region == "name_of_the_block_id"){ // Set the class $variables["attributes"]["class"][] = $class ; } } 

4. my_module_name.libraries.yml

tässä, my_module_name on kirjastoni nimi

kirjoita kuvan kuvaus tähän

5. Luo css-tiedostosi css / my_module_name.css

.punainen {tausta: punainen! Tärkeä; }

.vihreä {tausta: vihreä! tärkeä; }

.keltainen {tausta: keltainen! tärkeä; }

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *