Puncte:-2

De ce se ridică o excepție când inserez un token ca valoare a unui atribut html src

drapel sa

Cum să ridici excepția:

În orice câmp text_area folosind ckeditor, introduceți următorul cod <img src="[node:my_custom_token]"> și salvați formularul.

Veți primi următoarea eroare: (presupunând că formularul editat a fost http://mysite/fr/node/8/edit)

pagina nu a fost găsită|127.0.0.1|http://mysite/fr/node/8/[node:my_custom_token]

Acesta este un NotFoundHttpException aruncat inauntru RouterListener

Iata urma

Apel intern PHP Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Symfony\Component\HttpKernel\Event\GetResponseEvent $event)
<ROOT>/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php:142 call_user_func($function_name, $parameters)
<ROOT>/vendor/symfony/http-kernel/HttpKernel.php:134 Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch($event)
<ROOT>/vendor/symfony/http-kernel/HttpKernel.php:80 Symfony\Component\HttpKernel\HttpKernel->handleRaw(Symfony\Component\HttpFoundation\Request $request, int $type = 1)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/Session.php:57 Symfony\Component\HttpKernel\HttpKernel->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php:47 Drupal\Core\StackMiddleware\Session->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/modules/page_cache/src/StackMiddleware/PageCache.php:106 Drupal\Core\StackMiddleware\KernelPreHandle->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/modules/page_cache/src/StackMiddleware/PageCache.php:85 Drupal\page_cache\StackMiddleware\PageCache->pass(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php:47 Drupal\page_cache\StackMiddleware\PageCache->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php:52 Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23 Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/lib/Drupal/Core/DrupalKernel.php:716 Stack\StackedHttpKernel->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
Baud avatar
drapel sa
Te superi să explici voturile negative. Cred că este valoros pentru oricine să înțeleagă procesul din spatele „validării” (de către ckeditor?) a url-ului în atributele html precum src.
Jaypan avatar
drapel de
Jetonul tău nu este înlocuit. Nu pot să vă spun de ce nu. Poate că filtrul de text pe care îl utilizați nu înlocuiește jetoanele. Totuși, nu va avea nimic de-a face cu editorul tău.
Baud avatar
drapel sa
Mulțumesc @Jaypan. Întrebarea mea nu este despre înlocuirea simbolului, dar aș dori să înțeleg care/unde este procesul/codul care validează adresa URL a unui atribut src de imagine. Aceasta nu este o întrebare legată de simbol: excepția este ridicată dacă înlocuiți simbolul cu un șir de caractere precum „i_am_not_a_token”
Kevin avatar
drapel in
Indicatorul nu este înlocuit atunci când șablonul/pagina este randat, astfel încât browserul solicită o adresă URL care nu există. Practic asta este. Fie filtrul nu procesează token-uri, fie este ceva greșit în logica personalizată a token-ului.
Jaypan avatar
drapel de
Kevin a completat motivul pentru care răspunsul pe care l-am dat are ca rezultat eroarea pe care o vedeți.
Puncte:3
drapel us

Dacă editați o entitate și salvați entitatea, sunteți redirecționat către pagina care arată entitatea.
Ca și în conținutul entității pe care l-ați adăugat <img src="[node:my_custom_token]">, browserul încearcă să acceseze http://your-site-domain/[node:my_custom_token] pentru a obține datele de imagine pentru imaginea pe care ar trebui să o afișeze. Drupal nu găsește nicio rută asociată cu acea adresă URL și înregistrează a Pagina nu a fost gasita eroare și aruncă o excepție.

Acest lucru nu are legătură cu utilizarea token-urilor, deoarece asta s-ar putea întâmpla dacă introduceți o adresă URL pentru site-ul dvs. care nu există, pentru src atribut.

Dacă vă întrebați de ce acel token nu este înlocuit, asta se datorează faptului că câmpul formularului de entitate nu este setat să înlocuiască jetonele, ceea ce se poate întâmpla și atunci când câmpul de entitate este un Text (formatat, lung) câmp pentru care niciunul dintre filtrele de intrare nu este setat pentru simbolurile de gestionare de format.

Baud avatar
drapel sa
Mulțumesc!! Ceea ce este ciudat, este faptul că site-ul nu redirecționează către pagina care arată entitatea (personalizată); deci nu știu unde are loc randarea... Oricum, referitor la „Drupal nu găsește nicio rută asociată cu acea adresă URL și înregistrează o eroare Pagina negăsită și aruncă o excepție”. Este posibil să o evite? [FYI: Aceasta este o entitate de configurare care stochează șabloane (html + tokens) pentru a produce pdf în altă parte a site-ului]
apaderno avatar
drapel us
Întrebarea spune că formularul era pe http://mysite/fr/node/8/edit. Aceasta este o entitate nod, nu o entitate de configurare.
Baud avatar
drapel sa
Ai dreptate, a fost sa nu complic prea mult intrebarea... o idee foarte proasta!!! Calea reală este `admin/structure/token_templates/pdf_aw_card_body/edit` unde `pdf_aw_card_body` este id-ul entității mele de configurare (Înainte de a pune întrebarea aici, am testat cu o rută obișnuită a nodului de editare și a fost ridicată și excepția... )

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.