Puncte:-3

Afișați același conținut cu adrese URL diferite

drapel th

Trebuie să arăt același conținut cu adrese URL diferite.

Aș dori să creez rute dinamice când salvez un nod în Drupal 9.

Vi se pare aceasta calea corecta?

O altă soluție sau un modul similar.

Un caz de utilizare specific:

node/1 -> „Cum să vă înscrieți”

url -> '/actor/how-to-sign-up', '/supporter/how-to-sign-up'

P.S. Am nevoie de prima parte a drumului (actor, susținător) pentru diverse verificări

NicklasF avatar
drapel us
Cred că trebuie să detaliezi cazul de utilizare. Aveți nevoie de mai multe rute dinamice pentru același nod? Ce ar trebui să determine adresele URL? Dar poți încerca să te uiți în [PathAuto](https://www.drupal.org/project/pathauto).
Puncte:1
drapel cn

Singurul exemplu din nucleul Drupal pentru o rută dinamică în funcție de datele salvate de utilizator este o Vizualizare cu afișare a paginii și salvarea durează mult timp. Vizualizările necesită rute pentru filtre contextuale. Cu excepția cazului în care aveți un astfel de caz de utilizare specific pentru conținut (vă rugăm să vă editați întrebarea dacă aveți unul), modalitatea corectă ar fi aliasurile. În formularul de editare a nodului puteți adăuga un singur alias, dar puteți adăuga mai multe /admin/config/search/path. Dacă doriți ca într-un singur loc, puteți modifica forma de editare a nodului pentru mai multe aliasuri.

Dacă nu doriți să creați fiecare alias manual și căile au un model, puteți utiliza un procesor de căi. Puteți crea schelele cu drush

drush gen drum-procesor

și puneți modelul regex în metoda inbound:

/modules/custom/mymodule/src/PathProcessor/PathProcessorMymodule.php

<?php

spațiu de nume Drupal\mymodule\PathProcessor;

utilizați Drupal\Core\PathProcessor\InboundPathProcessorInterface;
utilizați Symfony\Component\HttpFoundation\Request;

/**
 * Procesor de cale pentru a elimina un prefix.
 */
clasa PathProcessorMymodule implementează InboundPathProcessorInterface {

  /**
   * {@inheritdoc}
   */
  funcția publică proces Intrare($cale, Solicitare $cerere) {
    return preg_replace('#^/(autor|sprijinitor)/#', '/', $cale);
  }

}

Puteți obține calea originală mai târziu cu

\Drupal::request()->getPathInfo()

sau puteți stoca prefixul într-o proprietate de serviciu înainte de a-l elimina pentru a-l face disponibil la nivel global.

Dacă verificările dvs. produc rezultate randate, adăugați url.cale contextul cache.

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.