Token für Node-Theming verwenden [gelöst]
am 03.06.2010 - 15:56 Uhr in
Hallo,
ich habe viel im Internet gesucht und auch hier im Forum, aber eine richtige Antwort habe ich nicht gefunden. Und zwar geht es darum, dass ich bestimmte Token im Node-Theming verwenden möchte, genauer gesagt geht es um Node-Title und Term-Title.
Diese möchte ich als Alias und Lowercase ausgeben und in eine URL einbinden, allerdings scheitert es schon daran den Title Alias zu bekommen. Durch diverse Suchen im Netz bin ich letztlich im token_node.inc hängen geblieben doch die Ausgabe gelingt mir nicht.
$node->title['title-raw']
sollte doch eigentlich den Raw Title ausgeben, aber es wird nur der erste Buchstabe des Titles ausgegeben und dazu noch in Großbuchstaben. Die Übernahme des Beispiels wie in token_node.inc angegeben
$values['title-raw'] = $node->title;
Gibt nur den Title ohne Raw und ohne Lowercase aus. Bei Pathauto bin ich noch auf [termalias] gestoßen, dies gibt es allerdings nicht für [titlealias].
Also lange Reder kurzer Sinn, ich möchte ganz gern den TitleAlias auslesen und dann im Node-Theming verwenden um URL´s zu setzen. (z.B. Original: Dies ist ein Titel | Alias: dies-ist-ein-titel)
Hat jemand eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Module "Transliteration" und "Extended Path Aliases"
am 03.06.2010 - 18:38 Uhr
Hallo Aspri,
mir ist zwar nicht ganz klar, wozu das Ganze gut sein soll und warum du mit Pathauto nicht auskommst, aber hier zwei Module, die du dir mal angucken solltest:
Transliteration und Extended Path Aliases. (Dort lohnt auch immer ein Blick auf die "Related Modules".) Eine weitere Möglichkeit wäre auch, mit dem Token-Modul eigene Token zu schreiben, aber das scheint mir Kanonen auf Spatzen zu sein.
Also erstmal danke für die
am 03.06.2010 - 19:15 Uhr
Also erstmal danke für die Antwort, aber das scheint nicht so ganz das zu sein, was ich suche. Mit Path-Auto komme ich gut aus, aber mal zur Erklärung wozu ich das ganze brauche.
Ich habe mit Hilfe von Rules festgelegt, dass, wenn ein Inhalt eines bestimmten Typs erstellt wird, in einigen Taxonomy Kategorien, Begriffe angelegt werden, die den exakten Namen des Beitrages haben. Nun möchte ich über das Node-Theming automatisches Cross-Linking zu eben diesen angelegten Kategorien setzen.
Titel des Beitrages -> via Rules wird nun z.B. in der Taxonomy Kategorie Bilder "Titel des Beitrages" erstellt.
Über path auto existieren nun:
testsite.com/titel-des-beitrages und
testsite.com/bilder/titel-des-beitrages
Jetzt würde ich gern den String "titel-des-beitrages" genau in dieser Form auslesen um eben im Node-Theme den Link zu
testsite.com/bilder/$title
setzen zu können.
Das müsste doch irgendwie möglich sein, denn die Tokens existieren ja und werden ja z.B. bei den Breadcrumbs auch automatisch verwendet. So etwas wie [titlealias] scheint aber nicht zu existieren, so dass man den [title-raw] nehmen müsst und dann darauf die PathAuto Regeln anwenden müsste. Vielleicht ist das auch weniger ein Drupal-Problem sondern mehr eine PHP Verständnis Frage.
drupal_get_path_alias
am 03.06.2010 - 20:38 Uhr
Hallo.
Kennst Du [api:drupal_get_path_alias]? Wenn nicht, schau Dir das mal an. Diese Funktion liefert Dir den Alias zu einem Systempfad (z.B. node/1).
hth,
Stefan
Danke, dass kommt der Sache
am 04.06.2010 - 17:00 Uhr
Danke, dass kommt der Sache schon näher. Werde mich daran mal probieren und muss mir mal Gedanken machen, wie ich nur den Titel aus dem Pfad ziehe.
Regulärer Ausdruck?
am 05.06.2010 - 11:52 Uhr
muss mir mal Gedanken machen, wie ich nur den Titel aus dem Pfad ziehe.
Das dürfte ggf. mit einem regulären Ausdruck per PHP nicht allzu schwierig sein.
wird ja immer abstruser: wenn
am 05.06.2010 - 12:00 Uhr
wird ja immer abstruser:
wenn performance keine rolle spielt kannst du per node_load() einfach dir das node objekt laden und da nachschauen.
wenn performance eine rolle spielt solltest du einfach eine custom query schreiben die nur die title row aus dem table node gefilted mit der nid holt.
Naja ich finde die
am 07.06.2010 - 15:32 Uhr
Naja ich finde die Problemstellung jetzt nicht so weit her geholt, aber egal. Performance spielt in jeden Fall eine Rolle und das per node_load zu lösen scheint mir ein wenig zu kompliziert.
Das ganze funktioniert wunderbar via get_path_alias über die Variable $path. Per substr kann man sich dann das ganze so zurecht schneiden wie man es braucht.
Danke