Wo ist der Denkfehler? Views Page & URL-Alias

am 27.07.2012 - 19:22 Uhr in
Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht: Ich möchte sowohl Alias/1 als auch Alias/all als Views-Darstellung ausgeben. Geht aber nicht. Ist doof.
Das Szenario
Es gibt:
node/1 mit dem Alias Beiträge/Text1
node/2 mit dem Alias Beiträge/Text2
eine View-Page mit dem Pfad:
/Beiträge/%
und dem
Kontextfilter: Beitrags-ID -> Vorgabewert bereitstellen & Beitrags-ID aus URL + Ausnahmewert: all + Spezifizieren eines Validationskriteriums & Basisvalidierung & Alle Ergebnisse für das gewählte Feld anzeigen
Einen Menüpunkt, der auf Beiträge/all zeigt
Das Ziel:
bei URL: Beiträge/Text1 möchte ich die Node als Views-Darstellung sehen und analog
bei URL: Beiträge/all eine Liste aller Nodes als Views-Darstellung.
Das klappt auch wie geschnitten Brot in der Views-Vorschau!
Aber:
Sobald ich aber die URL www.dings.de/Beiträge/Text1 aufrufe, sehe ich die Node nur in der "normalen" Node-Darstellung, nicht als View.
Wenn ich jedoch www.dings.de/Beiträge/1 aufrufe, sehe ich es so wie gewünscht. Irre, was?
Daher die Frage:
Wie fange ich's an auch die einzelne Node als Views-Darstellung anzuzeigen?
Wer kann mir den jetzt-versteh-auch-ich-es-Klapps auf den Hinterkopf geben? Danke & Grüße.
- Anmelden oder Registrieren um Kommentare zu schreiben
Alias "Beiträge/Text1" auf "Beiträge/1" zeigen lassen
am 27.07.2012 - 23:15 Uhr
Dein Path Alias zeigt auf node/1 (dem core internen Page View Deines Nodes). Somit ist es logisch, daß Du beim Aufruf des URL-Aliases, das gleiche Ergebnis bekommst, wie beim Node view (node/1).
Der Views-Page dynamische Pfad ist aber wie Du schreibst auf "Beiträge/%", quasi Deinem Ersatz für "node/%" des Node-Moduls im Core. Wenn Du möchtest, daß bei "Beiträge/Text1" von Views über dessen dynamischen Pfad "Beiträge/%" angesprochen wird, musst Du Deinen Alias "Beiträge/Text1" auf "Beiträge/1" zeigen lassen anstatt auf "node/1".
Kleiner Tipp: Wenn man mit den dynamischen Pfaden in Views sein Spaß haben möchte, sollte man sich ein wenig mit dem Menu-System des Cores beschäftigen, das sich um um Pfade inkl. den Dynamischen-%-Pfaden kümmert.
Nachtrag: Nicht verwirrt sein, daß es auch im Kern-System einen View des Nodes gibt. Es gibt zur alltäglichen node/%-Ansicht auch noch einen internen Alias, der "node/%/view" heißt. Sie z.B. http://drupal.org/node/1 und http://drupal.org/node/1/view
Ha! - Guter Witz: "nicht verwirren lassen" :-)
am 28.07.2012 - 00:29 Uhr
Zuerst: lieben Dank für die schnelle Antwort! Irgendwie habe ich das indifferente Gefühl, daß ich mir die Lösung meines Problemes etwas simpler vorgestellt habe.
Offenbar habe ich die Systematik des Views-Modules nicht ganz bzw. nicht ganz richtig verstanden: ich hab mir naiv vorgestellt, daß sich eine Views-Page-Ansicht beim rendern der Ausgabe quasi "vordrängelt". Wenn ich ohne Views eine URL Beiträge/Text1 habe, so wird Core-Darstellung gezeigt. Mit Views aber, so mein Verständnis, wird diese Darstellung "abgefangen" und durch die Views-Darstellung ersetzt: URL bleibt (auch als Alias) nur die Darstellung ändert sich.
Immerhin hatte ich ja zumindest endeckt, daß die URL Beiträge/1 zum gewünschten Ergebnis führt! Nur, daß ich dafür keine Erklärung hatte. (Nu' hab' ich eine, verstehe sie aber (noch) nicht)
Aber jetzt noch zwei eher praktischen Fragen:
1) ist es überhaupt möglich den URL-Alias in der Adressleiste stehen zu haben ("Beiträge/Text1") und dennoch die Views-Page zu sehen?
und bei "nein", bzw. "für mich zu hoch":
2) wie bitteschön erkläre ich dem Gerät, daß ich einen URL-Alias auf "Beiträge/1" setzen will? Mit dem URL-Alias-Modul bewerkstellige ich eine VON node ZU Alias, aber doch keine VON Alias ZU dynamisch-anzeigbare-URL-für-Views-Oder-wie-auch-immer (Beiträge/1)
Das ist hier sicher nicht die Aufforderung ein seitenlanges Tuorial zu texten! Zu 1) freue ich mich über ein schlichtes ja/nein und ggf. das ein oder andere googlebare Schlüsselwort.
Bei 2) fürchte ich, daß die Lösung in Deinem "Kleinen Tip" und dem "Nachtrag" zu finden ist. So'n paar Schlüsselwörter wären hier auch toll!
Habe nämlich noch keine Ahnung ob ich mehr Richtung Core, URL-Alias oder Views gucken soll. Sicher sagst Du mir nun: ja, genau - in der Reihenfolge! - Und das mir! Dem Freund schneller Erfolge... :-(
Beste Grüße aus Westfalen. Hier regnet's grad. Petrus sieht mich und weint mit!
in Views irritiert der Name
am 28.07.2012 - 10:23 Uhr
Views ist KEIN Darstellungsmodul, sondern ein Datenbankabfragemodul.
Die Darstellung übernimmt die Templateengine.
Views stellt lediglich die Inhalte zur Verfügung.
Um ein besseres Verständnis für Views zu bekommen, empfielt es sich, sich ein paar Tage mit der Videotutorialserie "Taming The Beast" zu befassen.
Naja, das war schon vorher klar
am 28.07.2012 - 10:42 Uhr
Von der Darstellung ist hier ja im Grunde auch nicht die Rede gewesen. Eher von der Ausgabe. Mir ist kein Weg bekannt eine URL über ein Template zu beinflussen.
Auch node/% lässt sich überschreiben
am 28.07.2012 - 10:45 Uhr
Wenn Du als Page-Pfad in views node/% eingibst, wird der Pfad des Node-Moduls überschrieben. Das heißt, das "Vordrängeln" funktioniert. Dabei hast Du aber keine Steuermöglichkeiten. Eine Lösung z.B. mit dem Panels-Modul ist da wahrscheinlich interessanter, um dieses Überschreiben z.B. nur auf bestimmte Content-Types anzuwenden. Auch in Panel Pages lassen sich Views einbinden.
zu 1) ja
zu 2) Du kannst mit admin/config/search/path/add Aliase auf alle Pfade zeigen lassen. Auch wie oben beschrieben.
Views ist nicht ausschließlich ein "Datenbankabfragemodul"
am 28.07.2012 - 11:01 Uhr
Views ist KEIN Darstellungsmodul, sondern ein Datenbankabfragemodul.
Die Darstellung übernimmt die Templateengine.
Views stellt lediglich die Inhalte zur Verfügung.
Da es hier im Thread um dynamische Pfade geht und nicht nur um Darstellung, kann man Views einsetzen. Es gibt da z.B. ja auch den alten Trick die dynamische Liste "/node", die der Core bereit stellt, von Views überschreiben zu lassen. Oder auch Term-Pages zu zu überschreiben. Ob Views allerdings im vorliegenden Fall die geeignete Lösung ist, bezweifle ich auch. Panels habe ich ja schon erwähnt. Und die Template-Engine für alle Layout-Aufgaben zu benutzen ist dank Modulen wie "Panels" und "Display Suite" heutzutage auch immer seltener notwendig. "Darstellung" ist hier auch sehr mehrdeutig.
Panels - DAS war's!
am 28.07.2012 - 11:05 Uhr
Ich Schaf. Panels war der Baum im Wald, den ich nicht auf'm Schirm hatte! Danke für den Klapps auf den Hinterkopf! Im Bemühen so wenig Module wie möglich zu installieren, ab ich dieses Modul völlig verdrängt.
Und 2) sollte auch ein sehr, sehr guter Tip sein...
Lieben Dank für die Mühe!! Schönes Wochenende.