Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

"lesbare" URL für t("read more") mit PHP-Feld in Views3 erzeugen

Eingetragen von tetri999 (153)
am 17.10.2012 - 15:22 Uhr in
  • Views
  • Drupal 7.x

also der Reihe nach:

1. wenn ich in einem pageView den "Content" ausgeben lasse, bekomme ich auf den listing-Seiten den teaserText mit einem "read more"-Link zur Detailansicht des node (zusätzlich zum verlinkten Titel).
2. wenn ich stattdessen als Ausgabe "Felder" festlege, und dann "Inhalt:Title" und "Inhalt:Body" ausgebe, bekomme ich den Titel und den Teaser, aber keinen more-Link mehr (ist offenbar ein D7-Bug ?).
3. das Feld "Inhalt:Link" liefert zwar einen Link zum node, aber mit dem Label "Ansicht"
  - das kommt aus $text = !empty($this->options['text']) ? $this->options['text'] : t('view'); in der "views_handler_field_node_link.inc",
   wenn ich hier t("read more") eintrage, geht's wie gewünscht, ABER das soll man ja nicht !
4. also ein "Global:PHP"-Feld, dort als Output Code:
echo "<a href ='".$GLOBALS['base_url']."/node/".$row->nid."'>".t("read more")."</a>";
  damit geht's (das $row->nid kommt aus dem zusätzlich angelegten "Inhalt:Nid"-Feld), ALLERDINGS hat die Verlinkung jetzt keine lesbare URL mehr, obwohl "pathauto" aktiviert ist, und sonst auch funktioniert.
5. die Lösung hab ich hier gefunden:
"Global:PHP", Output Code:

$link = $GLOBALS['base_url']."/node/".$row->nid;
echo "<a href ='".drupal_lookup_path('alias',$link)."'>".t("read more")."</a>";
das funktioniert soweit.

jetzt das Problem:

Ich habe einen Hauptmenü-Punkt (sagen wir "mainmenu_2") zu diesem View verlinkt, wo alle Inhalte eines bestimmten Content-Types ("XXX") aufgelistet werden - funktioniert wie oben beschrieben.
Zu diesem Hauptmenü-Punkt gibt es nun mehrere Unterpunkte, welche nur Inhalte dieses Typs auflisten sollen, die einem bestimmten Term aus verschiedenen Taxonomien zugeordnet sind.
Dazu hab ich für diese Unterpunkte jeweils einen weiteren View mit entsprechendem Filter angelegt, z.B. so:
  Inhalt Typ (= XXX)
  Inhalt Tax_1(=aaa)
Diese Untermenü-Views haben als Pfadangabe sowas wie "/mainmenu_2/submenu_1", damit das im breadcrumb auftaucht.
Das Problem ist nun, das die wie oben beschriebenen "read more"-Links auf nodes zeigen wie "[baseURL]/mainmenu_2/nodeName", die natürlich nicht existieren,
- beim Hauptmenü-View wird dagegen richtig "[baseURL]/nodeName" ausgegeben (der Hauptmenü-View hat den Pfad "/mainmenu_2").
Und seltsam ist: wenn ich bei der Erzeugung des "read more"-Links die Umwandlung mit drupal_lookup_path('alias',$link) weglasse, werden die Links richtig ausgegeben, aber eben nur als "[baseURL]/node/nid" - was ja nicht sein sollte.

In der Hoffnung, daß sich jemand hier durchfindet und einen Rat hat -
mfG, Michael

‹ [gelöst] Ursache, dass beim "Hinzufügen" eines "Neuen Feldes" als Felddtyp in der Auswahl nur "Text" und "File" aufscheint? Drupal 7:Computed Field und better Exposed filters ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ohje. Die Lösungsansätze 1-5

Eingetragen von pebosi (2645)
am 17.10.2012 - 21:45 Uhr

Ohje. Die Lösungsansätze 1-5 sind ja gruselig. Views bietet dir was du sucht als Feld "Inhalt: Pfad" schon direkt an. Dein Problem hat sich damit auch erledigt, da der Pfad absolut zum Drupalverzeichnis erzeugt wird und nicht wie in deinem Beispiel relativ ist. Hättest du vor deinem drupal_lookup_path noch einen "/" eingebaut hätte es wohl auch funtkioniert aber die Lösung über das Feld ist definitiv zu empfehlen.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Achso, um den Link dann auch

Eingetragen von pebosi (2645)
am 17.10.2012 - 22:09 Uhr

Achso, um den Link dann auch als Link zu nutzen musst du bei dem Pfad Feld die Ausgabe überschreiben und zwar in etwa so: <a href="[path]">weiterlesen</a>

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank, aber

Eingetragen von tetri999 (153)
am 18.10.2012 - 08:43 Uhr

das Problem ist, daß ich da nicht "weiterlesen" reinschreiben will, sondern die PHP-Funktion t("read more") - für die Mehrsprachigkeit, und das geht ja wohl in dem Rewrite-Output-Feld nicht, sondern nur in einem PHP-Feld.

Aber der Hinweis mit dem vorangestellten "/" vor dem drupal_lookup_path() war wichtig - ich hatte es vorher statt mit der baseURL so versucht:
href = drupal_lookup_path("alias", "/node/".$row->nid)
was natürlich auch nicht ging.

$link = "node/".$row->nid;
echo "<a href ='/".drupal_lookup_path('alias',$link)."'>".t("read more")."</a>";

so funktioniert es jetzt - vielen Dank also.

mfG, Michael

Was ist an dieser Vorgehensweise eigentlich gruselig?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 21 Stunden 20 Minuten
  • Inzwischen sind wir bei
    vor 1 Woche 4 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 5 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 2 Tagen
  • Hey danke
    vor 9 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 10 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 10 Wochen 5 Tagen
  • In der entsprechenden View
    vor 10 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250237
Registrierte User: 20464

Neue User:

  • ocvk2810
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 34 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association