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

(gelöst) Inhaltstyp mit unterschiedlichem Inhalt & CSS je nach View

Eingetragen von pyretta (171)
am 11.12.2015 - 10:36 Uhr in
  • Views
  • Drupal 7.x oder neuer

Hallo,

ich habe heute ein recht spezielles Problem.
Ich habe einen bestimmten Inhaltstyp den ich aus zwei unterschiedlichen Views ansteuern möchte.
Allerdings sollte der Inhalt (Felder) des Inhaltstyps und die CSS anders sein, wenn er von View A angesprochen wird, anstatt von View B.

Ist sowas möglich?
Falls ja, was muss ich dafür wie konfigurieren? Oder gibt es ein Modul das sowas steuern könnte?

Grund für dieses außergewöhnliche Vorgehen: Zugriff auf (fast) gleichen Inhalt ohne "Double Content" zu erzeugen von unterschiedlichen Quellen.

Vielen Dank schon mal im Voraus für eure Hilfe und Vorschläge.

Gruß,
pyretta

PS: Ich nutze Drupal 7.41.

PPS: Im Moment löse ich das mit einem jQuery Workaround relativ unelegant mit der Abfrage des Referrers. Weil das unelegant ist, wollte ich einfach wissen ob es eine bessere Lösung innerhalb Drupal gibt.

‹ Link zu Anchor funktioniert nicht 100% (gelöst) Inhaltstyp mit unterschiedlichem Inhalt & CSS je nach View ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Pyretta,Du kannst die

Eingetragen von Hyp1 (1463)
am 11.12.2015 - 11:04 Uhr

Hallo Pyretta,

Du kannst die entsprechenden View Templates in Deinen Theme Ordner kopieren
und Sie mit den entprechenden Namen versehen.
ggf(Node Template):

Zitat:

node--view--[VIEW-NAME].tpl.php

Sie hier: https://api.drupal.org/api/views/theme!theme.inc/group/views_templates/7

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Hyp1,vielen Dank für

Eingetragen von pyretta (171)
am 11.12.2015 - 13:33 Uhr

Hallo Hyp1,
vielen Dank für deine Antwort.

Ich bin ja leider noch kein Drupal-Profi, deshalb verstehe ich evtl. deine Antwort falsch, und man kann das was ich wollte damit erreichen.

Ich könnte mir aber vorstellen, dass mein Post zu Missverständnissen geführt hat, weil ich mich etwas kurz gehalten habe.

Nur zur Sicherheit nochmal etwas ausführlicher:
Ich möchte nicht die Anzeige des Inhaltstyps innerhalb der jeweiligen View ändern - sondern folgendes:

2 Views: View A & View B. Beide zeigen eine Liste aller Beiträge eines Inhaltstyps an und zwar jeweils des gleichen Inhaltstyps.
Wenn ich nun auf den Titel eines bestimmten Beitrags klicke, gelange ich in die "vollständige Ansicht" dieses Beitrags.
Dort sind im Inhaltstyp spezielle Felder für die Anzeige definiert.

Und diese Einstellung möchte ich abhängig von der jeweiligen View ändern.
Klicke ich also auf den Titel des Inhaltstyps aus View A heraus - soll beispielsweise der Hintergrund des angezeigten Beitrags grün sein und die Felder "Feld XY" und "Feld AB" angezeigt werden.
Mache ich das selbe aus View B heraus - soll der Hintergrund des angezeigten Beitrags blau sein und die Felder "Feld Z" und "Feld C" angezeigt werden.

Geht sowas?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, ja das geht mit diesen

Eingetragen von Hyp1 (1463)
am 11.12.2015 - 14:55 Uhr

Hallo,

ja das geht mit diesen Templates.
Du hast dann 2 Templates, eins für View A und eins für View B.

Zitat:

f you want to theme for "Content" (what is really a node), copy the node.tpl.php to a file name that fits the mask "node--view--[VIEW-NAME].tpl.php. Refresh your cache. You're done!

Wird View A aufgerufen, dann wird das entprechende Template node--view--[VIEWNAME].tpl.php,
bei View B das das Template mit dem Namen von View B benutzt.
In diesen Templates kannst Du die Ausgabe der jeweiligen Nodes im View beeinflussen
und somit für jede View eine andere Ausgabe erzwingen.

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh ok, ich dachte immer dass

Eingetragen von pyretta (171)
am 11.12.2015 - 16:26 Uhr

Oh ok, ich dachte immer dass ich die View verlasse sobald ich auf den Titel eines Inhaltstyps klicke und dann den Inhaltstyp selbst anzeige, da die URL wechselt.
Also beispiel URL View: www.beispiel.de/view
Beispiel URL Inhaltstyp Vollansicht: www.beispiel.de/inhaltstyp_beitragsname

Naja, schon wieder was gelernt :-D. Danke.
Werde deinen Lösungsvorschlag gleich ausprobieren und dann das Ergebnis veröffentlichen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Entschuldige, dass ich so

Eingetragen von pyretta (171)
am 14.12.2015 - 11:37 Uhr

Entschuldige, dass ich so spät antworte.
Ich habe jetzt deinen Lösungsvorschlag wie beschrieben ausprobiert, allerdings hat es leider nicht funktioniert.

Als Name der View habe ich den Wert von "/admin/structure/views/view/viewname/export" > "$view->name" genommen.
Als Test habe ich einfach eine weitere Klasse dem HTML-Element "article" hinzugefügt.
Nach Erstellung der "node--view--[VIEW-NAME].tpl.php" habe ich den vollständigen Cache geleert.
Dann bin ich in die betreffende View (Browser aktualisiert) und habe einen Beitrag aufgerufen (Klick auf Titel).
Leider habe ich nicht die hinzugefügte Klasse gefunden.

Habe ich etwas vergessen oder falsch gemacht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Du kannst im Template

Eingetragen von Hyp1 (1463)
am 14.12.2015 - 12:26 Uhr

Hallo,

Du kannst im Template entweder ein eigenes div mit Deinen Klassen einfügen.
Oder schau mal im node.tpl.php

<div id="<?php print $node_id; ?>" class="<?php print $classes; ?> <deine Klasse>">
....
</div>

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank, aber das weiß

Eingetragen von pyretta (171)
am 14.12.2015 - 12:32 Uhr

Vielen Dank, aber das weiß ich sogar schon :-D
Wie gesagt habe ich bereits eine eigene Klasse hinzugefügt - nur wird diese nicht angezeigt, was mir sagt, dass dein Lösungsvorschlag entweder bei mir nicht funktioniert oder ich bei der Umsetzung einen Fehler gemacht habe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, bist Du sicher, dass

Eingetragen von Hyp1 (1463)
am 14.12.2015 - 14:13 Uhr

Hallo,

bist Du sicher, dass die Templates aufgerufen werden?
Füge mal:
<h1><?php print __FILE__; ?></h1>
einfach im Template ein und leere den Cache.

In den View Einstellungen hat es eine einstellung Templates,
dort kannst Du nachsehen, wie Du die Templates benennen musst.

Grüsse

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Also so wie ich das

Eingetragen von leda.ch (977)
am 16.12.2015 - 09:02 Uhr

Hallo,

Also so wie ich das verstehe, hat das Anzeigeproblem eigentlich nicht direkt mit Views zu tun.
Es geht drum, die Standardansicht des einzelnen Nodes mal so, mal anders zu haben, richtig?
D.h. wenn Du in der Lage bist, den Node auf zwei unterschiedliche Weisen anzuzeigen, kannst Du das letztlich auch von irgendeiner View her tun.

Schau Dir mal dieses Modul an. Damit kannst Du einzelne Viewmodes der Node mit separatem Pfad versehen.
Damit kannst du in den Views den Link zum Node überschreiben und mal den einen oder den anderen Pfad nutzen (node/%/teaser). Beim % setzt du in der View einfach das Token für
die Node-Id, das Du bekommst, wenn Du die Nid am Anfang der Feldliste unsichtbar einfügst.

Ich habs nicht ausprobiert, sieht aber machbar aus, und Du ersparst Dir die Arbeit mit Templates. Hope it helps.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Hyp1: Also die Templates

Eingetragen von pyretta (171)
am 16.12.2015 - 10:28 Uhr

@Hyp1: Also die Templates werden im allgemeinen geladen. Nutze das bereits in anderen Bereichen. Nur hier wird dieses Template nicht aufgerufen, vermutlich verlasse ich eben doch die View beim Aufruf des Inhaltstyps/Nodes und dadurch kann es das View-Template auch nicht verwenden. Bin da auf diesem Gebiet wirklich Neuling.

@leda.ch: Na das klingt doch mal ziemlich perfekt nach dem was ich gesucht habe. Vielen Dank, werde ich gleich mal ausprobieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, klar, wenn Du auf einen

Eingetragen von Hyp1 (1463)
am 16.12.2015 - 11:05 Uhr

Hi,
klar, wenn Du auf einen Node klickst verlässt Du natürlich das View Template.
Wenn du einen bestimmten Node Themen möchtest schau mal in node.tpl.php

<div id="node-<?php print $node->nid; ?>

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo leda.ch, ich habe jetzt

Eingetragen von pyretta (171)
am 18.12.2015 - 12:05 Uhr

Hallo leda.ch,

ich habe jetzt das Modul "View Mode Page" ausprobiert.
Aber leider erhalte ich immer nur eine 404 Error Seite.

Habe die URL so aufgebaut: [node path/node alias]/[view mode url]
bzw.: http://www.beispieldomain.de/de/node_alias_name/view_mode_url_name

Ist das soweit korrekt?
Melde mich natürlich als Admin auf der Seite an, habe aber trotzdem die Berechtigungen gecheckt und alles zum "View Mode Page Modul" für Administratoren aktiviert. Habe auch den Durpal Cache gelöscht. Brachte aber beides keinen Erfolg.

Ich habe zusätzlich auch das Modul "Display Suite" installiert und davon folgendes "Untermodul" aktiviert: Display Suite UI.
Könnte es daran liegen?

Was könnte es noch sein?

Vielen Dank im Voraus für die Hilfe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Wie gesagt, das Modul

Eingetragen von leda.ch (977)
am 18.12.2015 - 13:21 Uhr

Hallo,

Wie gesagt, das Modul habe ich nicht ausprobiert.
Hast Du auf der Modulseite, wo Du das Modul runtergeladen hast, die Dokumentation dazu studiert?
Mir scheint, da gibts einige Beispiele.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hyp1 schriebggf(Node

Eingetragen von caw (2762)
am 19.12.2015 - 14:01 Uhr
Hyp1 schrieb

ggf(Node Template):

Zitat:

node--view--[VIEW-NAME].tpl.php

Sie hier: https://api.drupal.org/api/views/theme!theme.inc/group/views_templates/7

das wäre neu für mich, daß man das node template mit einem view steuern kann. steht dort auch so nicht in der api!

du kannst aber im node template die aufrufende url abfragen und dann entsprechend dort zwei verschiedene ausgaben machen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also mit View Mode Page

Eingetragen von Stefan.Korn (286)
am 19.12.2015 - 15:45 Uhr

Also mit View Mode Page kannst Du unterschiedliche View Modes für einen Inhaltstyp über jeweils eine eigene URL ansteuern, also z.B. node/x/anzeigeA für Ansicht A und node/x/anzeigeB für Ansicht B (x steht für die Node-ID). In den Einstellungen des Inhaltstyps musst Du bei View Mode Pages den URL Pattern entsprechend setzen, hier z. B. node/%/anzeigeA in Ansicht A und node/%/anzeigeB in Ansicht B. Dann kannst Du in deinem View den entsprechenden Link zum Inhaltstyp verwenden und so die von Dir gewünschte unterschiedliche Augabe erhalten.

Display Suite verträgt sich mit View Mode Page.

Und bezüglich des von Hyp1 genannten Templates gebe ich CAW recht, dieses Template gibt es nicht. Vielleicht ließe sich ein entsprechendes Template mit Template Suggestions generieren, aber dann auch nur über den Weg der URL-Erkennung des Referers, denn der aufgerufene Node hat ja sonst keine Beziehung zum dem View aus dem er aufgerufen wird.

Ein bisschen verwirrend in der Begrifflichkeit in dem Zusammenhang finde ich Views und die View Modes. Obwohl die Begrifflichkeit einen Zusammenhang suggeriert sind das unabhängige Bereiche.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Uups,sorryZitat:node--vie

Eingetragen von Hyp1 (1463)
am 19.12.2015 - 16:17 Uhr

Uups,

sorry

Zitat:

node--view--[VIEW-NAME].tpl.php

war in Drupal 6.
In 7 gibt es dieses Template nicht mehr.

Grüsse

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es gibt aber noch einen viel

Eingetragen von wla (9461)
am 19.12.2015 - 16:58 Uhr

Es gibt aber noch einen viel einfacheren Ansatz. Statt den Node als Node-Ansicht auszugeben, gibst Du die Felder des Nodes aus. Die kannst Du dann ein einer eigenen HTML-Struktur direkt im View ausgeben. Dazu alle Felder außer dem letzten von der Anzeige ausschließen und beim letzten Feld die Ausgabe neu definieren. Darin dann die Felder in einer eigenen Strukrur (incl. eigener Klassen) entsprechend Deinen Wünschen ausgeben. Jedem so aufgebauten View kannst Du damit einfach ein anderes Aussehen verpassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir fällt gerade auf, dass

Eingetragen von Stefan.Korn (286)
am 19.12.2015 - 17:16 Uhr

Mir fällt gerade auf, dass View Mode Pages ggf. auch Double Content im Sinne von SEO liefert, weil ggf. gleicher Inhalt unter zwei URLs verfügbar ist. Also wenn das nicht akzeptabel ist, dann muss man wohl den Referer auslesen und dann z. B. aus dem Referer den View-Teil extrahieren und darauf basierend z. B. dem Body eine zusätzliche Klasse verpassen.

@wla: Der TO will ja den den jeweiligen Node aus dem View in der Einzelausgabe ansteueren und dann in der Node-Ausgabe eine unterschiedliche Ausgabe in Abhängigkeit vom aufrufenden View erreichen. Da hilft jetzt ein Rewrite im View nicht weiter bzw. könnte man vielleicht über Kontextfilter den View so gestalten, dass der View jeweils nur einen einzigen Node ausgibt. Aber das wäre doch Views arg verborgen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo zusammen,nach

Eingetragen von Hyp1 (1463)
am 20.12.2015 - 11:52 Uhr

Hallo zusammen,

nach nochmaligem Überlegen bin ich zum Schluss gekommen,
dass diese Anforderung schlecht umsetzbar ist.
Man kann einfach nicht garantieren, dass der Node nur durch eine View aufgerufen wird.
Er könnte zwar im jeweiligen View/Viewtemplate Parameter mitgeben und diese im node.tpl.php
auslesen, aber eine Node kann auch direkt aufgerufen werden: http://site.com/node/x
Soll heissen, der Referrer auf einen Node muss nicht zwingend eine View sein, er
kann eben auch von google kommen.
Der Node sollte dann mindestes 3 verschiedene Ausgaben haben:
View A
View B
keine View

Grüsse

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo alle zusammen und

Eingetragen von pyretta (171)
am 11.01.2016 - 17:11 Uhr

Hallo alle zusammen und nachträglich noch ein frohes neues Jahr. Ich hoffe ihr seid alle gut rein gekommen.

@Stefan.Korn: Vielen Dank für deine sehr guten Hinweise. Ich habe es nun weiter versucht den View Mode per URL anzusprechen, aber leider immernoch ohne Erfolg. Ich erhalte weiterhin nur eine 404 Seite. Habe mir auch die Doku Seite des Moduls mehrfach durchgelesen und einige Patternzusammenstellungen ausprobiert - sowohl in der Ansicht des Inhaltstyps als auch in den Einstellungen von pathauto.

Vielleicht kannst du mir da ja weiterhelfen?

Die Nodes dieses speziellen Inhaltstyps werden aktuell wie folgt angesprochen (ohne speziellen View Mode):
www.beispieldomain.de/[node:title]

also habe ich folgendes als Pattern in der Ansicht "my-view-mode" des Inhaltstyps ausprobiert:
/%/my-view-mode

Demnach müsste der View Mode wie folgt erreichbar sein:
www.beispieldomain.de/[node:title]/my-view-mode

Ist er aber nicht...

Habe es auch mit dem Token "[node:title]" anstatt der Wildcard versucht.
Zuvor (Kommentar vom 18.12.2015) habe ich einfach versucht vorne leer zu lassen - also den Pattern direkt mit "/my-view-mode" anzufangen - was ja auch nicht funktioniert hatte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

möp... sorry, habe gerade

Eingetragen von pyretta (171)
am 11.01.2016 - 17:26 Uhr

möp...

sorry, habe gerade selbst die Lösung gefunden.
Man darf scheinbar nicht wie gewohnt die Seite mit dem Token [node:title] ansprechen, sondern so als hätte man keine Suchmaschinenfreundliche URL, also mit "node/NID".

Also lautet meine URL:
www.beispieldomain.de/node/1234/my-view-mode

Und der URL-Pattern:
node/%/my-view-mode

die Wildcard steht also immer für die NID, nicht wie in der Doku für [node:title] oder so.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • [gelöst]Vermaledeite Feeds
  • кракен сайт кто владелец
  • 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
Weiter

Neue Kommentare

  • кракен маркетплейс форум
    vor 17 Minuten 8 Sekunden
  • Rollen
    vor 7 Stunden 13 Minuten
  • Inzwischen sind wir bei
    vor 1 Woche 4 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 4 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 1 Tag
  • Hey danke
    vor 9 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 18 Stunden
  • Da scheint die Terminologie
    vor 10 Wochen 21 Stunden
  • Kannst doch auch alles direkt
    vor 10 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250239
Registrierte User: 20464

Neue User:

  • Tawer3sowar
  • ocvk2810
  • marouane.blel

» 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 33 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