Ist es möglich, URL-Argumente zu machen, z
http://mysite.com/arg1/arg2/arg3
verfügbar als Token in den Einstellungen zum Umschreiben der Ergebnisse für ein Feld in Ansichten, z. B. für die oben genannten, stehen diese zur Verwendung (neben anderen vorhandenen Token) zur Verfügung als:
[arg1] [arg2] [arg3]
Hintergrund
Ich entwickle Ansichten mithilfe von OpenLayers-Karten mit gefilterten Elementen, die in einer Überlagerung darauf platziert sind. Wenn der Benutzer mit der Karte interagiert, um Elemente zu entfernen, möchte ich die Position der Karte beibehalten (und nicht auf einen Standardzoom und eine Standardposition zurücksetzen), wenn die Seite neu geladen wird. Durch den Zugriff auf die URL-Argumente, dh Längen- und Breitengrad, kann ich die Filter-URL neu schreiben, sodass diese an die Seite zurückgesendet werden.
Aber ich bin mir sicher, dass es andere Szenarien gibt, in denen keine Karten verwendet werden, für die die Leute Antworten auf die Frage finden würden.
www.yourhost.com/some/path#latlong
das#latlong
ist, das tatsächlich an das Backend gesendet wird, das ein Ankertag ist, wird es einfach ignoriert, wenn es nicht auf dem Server vorhanden ist (aber es kann sicherlich von Drupal gesehen werden). Prost!Angenommen, die Argumente, die Sie verwenden möchten, sind keine Ansichtsargumente oder Kontextfilter. Wenn Sie sie als Token verwenden möchten, müssen Sie grundsätzlich ein Modul erstellen, das hook_tokens () und hook_token_info () implementiert , wie in der API beschrieben . Ich glaube nicht, dass es schon jemand getan hat.
So würde ich es machen:
Natürlich ist der obige Code nicht produktionsbereit , er ignoriert die ordnungsgemäße Typhandhabung, Sicherheitsprobleme und so weiter. Es soll Sie auf den richtigen Weg bringen, aber Sie müssen Ihre eigene Vernunft anwenden, bevor Sie es bereitstellen. Ich übernehme keine Verantwortung für Missbrauch. Lesen Sie die Gründe, aus denen es zuerst entfernt wurde, bevor Sie es wieder hinzufügen, und stellen Sie sicher, dass Sie nur das wiederherstellen, was Sie wirklich benötigen.
Wenn Sie möchten, dass Parameter
arg()
anstelle von $ _GET zugänglich sind, durchlaufen Sie diese natürlich in hook_tokens mitwhile
:Ändern Sie
yourmodule_token_info()
entsprechend.quelle
!2,
!3
beim Umschreiben verwenden können (ich ignoriere arg1, da dies nicht einfach dynamisch sein kann)