Puncte:3

Cum pot suprascrie șablonul de nod pentru o instanță cu mai multe site-uri?

drapel gb

Am mai multe site-uri Drupal 9 pe mai multe site-uri. în prezent, toate aceste subsite-uri folosesc o singură temă plasată în folderul /themes/MyTheme.

acum trebuie să tema câteva noduri pe site-ul A și pe site-ul B și aceasta este doar diferența dintre toate site-urile. daca folosesc pagina--nod--x.html.twig convenție pentru a schimba aspectul nodului x pe site-ul A, schimbă aspectul nodului x pe toate site-urile.

care este cel mai simplu mod de a aplica pagina--nod--x.html.twig doar la site-ul A, dar nu la site-ul B?

este posibil să aveți o temă pe teme/MyTheme/ folder, dar numai pentru copiere pagina--nod--x.html.twig la site-uri/siteA/teme/dosar personalizat pentru a suprascrie acest aspect numai pentru site-ul A?

drapel cn
Nu puteți doar să copiați fișierul șablon, va trebui să creați o subtemă. Dar odată ce ați făcut asta, da, este la fel de simplu ca să copiați un singur fișier șablon peste
user780 avatar
drapel gb
Mulțumesc @Clive. subtema este singura cale? este posibil să injectați sau să aplicați aceste fișiere twig pentru site-ul specificat în mod programatic prin fișierul mytheme.theme?
Puncte:5
drapel ne

Am avut odată o întrebare despre cum să obțineți numele actual al instanței multi-site. Puteți folosi codul răspunsului acceptat pentru a adăuga o altă sugestie de șablon pe baza numelui, apoi:

/**
 * Implementează hook_theme_suggestions_HOOK_alter().
 */
function MYTHEME_theme_suggestions_node_alter(matrice &$sugestii, matrice $variabile) {
  $site_path = \Drupal\Core\DrupalKernel::findSitePath(\Drupal::request());
  $cale_site = explode('/', $cale_site);
  $site_name = $site_path[1];
  $site_specific_suggestions = [];
  foreach ($sugestii ca $suggestion) {
    $site_specific_suggestions[] = $sugestie . '__site_' . $site_name;
  }
  $suggestions = array_merge($sugestii, $site_specific_suggestions);
}

Inainte de:

<!-- FILE NAME SUGGESTIONS:
   * node--236--full.html.twig
   * node--236.html.twig
   x node--page--full.html.twig
   * node--page.html.twig
   * node--full.html.twig
   * node.html.twig
-->

După:

<!-- FILE NAME SUGGESTIONS:
   * node--236--full--site-default.html.twig
   * node--236--site-default.html.twig
   * node--page--full--site-default.html.twig
   * node--page--site-default.html.twig
   * node--full--site-default.html.twig
   * node--236--full.html.twig
   * node--236.html.twig
   x node--page--full.html.twig
   * node--page.html.twig
   * node--full.html.twig
   * node.html.twig
-->

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.