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

Anzeige eines "Neu" Labels in Views, wenn der Node jünger als 5 Tage alt ist

Eingetragen von leda.ch (977)
am 22.06.2017 - 15:36 Uhr in
  • Views
  • Drupal 7.x

Hallo Zusammen,

Es gibt ja immer verschiedene Wege und hier wieder mal eine Frage: wie macht _Ihr_ das?

Ich habe eine simple Liste von Nodes in Views, sortiert vom neuesten zum ältesten. Die paar Nodes, die jünger sind als z.B. 5 Tage sollen beim Output
ein zusätzliches Symbol erhalten, im Stil von "Neu" (=Datum der Erstellung max 5 Tage zurück).

Man müsste also der Views-Row oder einem der Felder oder einem zusätzlichen Global-Feld eine Klasse mitgeben, damit man via CSS die jungen Nodes zusätzlich ansprechen
kann.

Ich würde nun also eines der Views-Templates anpassen und das ausprogrammieren.

Kennt Ihr einen andere Möglichkeit? Ist ja eigentlich eine wenig ungewöhnliche Anforderung...

Danke und Gruss
leda

‹ Views - weitere Beiträge laden in Drupal 8 (GELÖST) Views Page richtig klonen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,ich weiss nicht ob der

Eingetragen von Hyp1 (1463)
am 23.06.2017 - 09:51 Uhr

Hi,

ich weiss nicht ob der node is_new Parameter für dich optimal ist, denn er ist ein Boolean und enthält kein Datum!
Warum nimmt Du nicht einfach ein Datumsfeld und zeigst etwas an oder nicht wenn das Datum älter ist als 5 Tage?

MFG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, Den "Node_is_New

Eingetragen von leda.ch (977)
am 23.06.2017 - 10:25 Uhr

Hi,

Den "Node_is_New Parameter" im Zusammenhang mit Views kenne ich nicht. Und das Datumsfeld ist ja das Creation-Date, da brauch ich kein neues.
Der Knackpunkt in Deiner Antwort ist "oder nicht".

Wie gesagt, über ein Views-Field-Template kann ich das durchaus ausprogrammieren.

Ich siche nach einer Lösung "outofthebox", mit der man übers Views GUI den Node anders ausgeben könnte, wenn der Node nicht älter als 5 Tage seit Creationdate ist.
Man müsste in einem Viewsfeld das Alter des Nodes berechnen.... (aber Views-php will ich nicht nutzen).

Das einzige Bordmittel, das mir mittlerweile in den Sinn gekommen ist, ist ein Taxonomy-Feld auf dem Node einzuführen, und dieses über den Rules-Scheduler zu steuern. Damit liesse sich definitiv in Views dann etwas anfangen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, Du kannst doch in der

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

Hi,

Du kannst doch in der View einen Filter setzen, der das Feld creation filtert.
createion date soll grösser sein, als als heute -5 Tage.

https://www.drupal.org/node/2481343

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Robert. Aber es geht

Eingetragen von leda.ch (977)
am 23.06.2017 - 12:16 Uhr

Danke Robert. Aber es geht nicht ums filtern. Es geht darum, die jüngeren Nodes anders darzustellen.

Aber: man könnte die Anforderung auf zwei Views aufteilen. Die eine zeigt nur die neuesten, die andere den Rest.

PS: wie gesagt, ich selber habe kein Problem, die Anforderung umzusetzen, es geht mir in diesem Thread darum, Ideen zusammenzutragen, wie man das ohne Programmieren im Template erzielen kann....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,sorry aber"Danke Robert.

Eingetragen von Hyp1 (1463)
am 23.06.2017 - 15:24 Uhr

Hi,

sorry aber
"Danke Robert. Aber es geht nicht ums filtern. Es geht darum, die jüngeren Nodes anders darzustellen."
Genau dazu kann doch der Views Filter verwendet werden.
Da braucht es keine Templates oder weiteren Module die man Programmieren müsste.
Das kannst Du mit rein Views erledigen.

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

views_conditional

Eingetragen von marco.b (645)
am 25.06.2017 - 20:05 Uhr

Schau dir mal https://www.drupal.org/project/views_conditional an. Damit habe ich schon ähnliches umgesetzt. Nimm das Create date field in die view als quelle für die views_conditional Ausgabe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Marco, yop, das ist ein

Eingetragen von leda.ch (977)
am 25.06.2017 - 22:28 Uhr

Hi Marco, yop, das ist ein cooles Modul. Aber ich bin mir fast sicher, dass das mit der Zeitberechnung immer noch nicht geht - oder hast Du's geschafft?

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja, stimmt, für sowas habe

Eingetragen von marco.b (645)
am 26.06.2017 - 11:48 Uhr

ja, stimmt, für sowas habe ich zwar views_conditional genommen, aber noch php gebraucht, um die Datumswerte zu kriegen (https://www.drupal.org/node/2806757).

zuerst muss das relevante Datumsfeld (Node created oder updated) rein und als unix timestamp ausgegeben werden. dazu einfach ein datumsformat anlegen: 'U' zeigt den unix timestamp.
Dann wird das aktuelle datum abzüglich dem gewünschten NEU-Zeitraum in Sekunden als timestamp zum Vergleich gebraucht, z.b. mit views_php in die view holen.
Mit den beiden timestamp-Werten als Vergleichskriterien kann dann views_conditional versorgt und je nach Bedingung (neuer/älter => größer/kleiner) unterschiedliches ausgeben: [title] - NEU!! oder wenn älter, nur: [title]

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst das Creation Date

Eingetragen von pebosi (2645)
am 28.06.2017 - 08:16 Uhr

Du kannst das Creation Date als Feld hinzufügen und entsprechend formatieren, dann noch mit view_php ein Feld das das aktuelle Datum enthält und dann nimmst du ein Math Feld zum vergleichen und wenn der Vergleich kleiner 5 ist gibst du "neu" aus ansonsten nichts.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Pebosi, das ist

Eingetragen von leda.ch (977)
am 28.06.2017 - 10:50 Uhr

Danke Pebosi, das ist naheliegend, aber ich habe weiter oben bereits Views-Php für den Einsatz ausgeschlossen (aus Sicherheitsgründen).
Aber "man" könnte tatsächlich ein Modul im Stil von views_simple_math_field schreiben, welches die Aufgabe löst. Das werde ich mir mal genauer anschauen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gibt es einen Grund, warum du

Eingetragen von Zman (185)
am 28.06.2017 - 13:26 Uhr

Gibt es einen Grund, warum du eine Out-of-the-box Lösung möchtest?

Zitat:

Wie gesagt, über ein Views-Field-Template kann ich das durchaus ausprogrammieren.

Ich denke das ist sowohl die schnellste wie auch die sauberste Lösung. Letztendlich ist die Darstellung eines "New"-Labels auch eher Teil des Themes, also auch völlig richtig es themebasiert in einem Template File zu richten.

Als Alternative kannst du einen Views field handler implementierten, der dir abhängig vom einem anderen property (z.B. "created" timestamp) die Ausgabe generieren lässt. Funktioniert und kannst du flexibel zu jedem Node view als Feld hinzufügen. Das ist interessant; gerade für komplexere Anwendungsfälle, dauert jedoch um einiges länger, wenn du dich erst einmal reinfuchsen musst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für Deine Antwort. Ich

Eingetragen von leda.ch (977)
am 28.06.2017 - 14:16 Uhr

Danke für Deine Antwort.
Ich habs weiter oben bereits geschrieben - _ich kann_ das über ein Template ausprogrammieren und würde es auch so tun.
Da ich aber für die Lösung der Anforderung wie immer das Internet abgesucht habe, ob es bereits eine Lösung gibt, bin ich drauf gestossen, dass es sehr viele Anfragen für genau dieses Problem gibt, aber kaum einen Lösungsansatz.
Daher meine Umfrage hier im deutschsprachigen Forum. Man weiss ja nie, ob jemand etwas gescheiteres gefunden hat, das nicht mit Programmieren und php zu tun hat.

Wie wir in diesem Thread sehen, gibt es doch einige Möglichkeiten, ans Ziel zu kommen, aber kaum eine "outofthebox".
Danke Euch allen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ein weg ohne views_php

Eingetragen von marco.b (645)
am 28.06.2017 - 14:23 Uhr

wäre ein verstecktes Datum-Feld am node und eine Rule, die dieses nach Events wie Create oder update füllt mit [site:current-date] und einem - X Tage offset.
Dann kann man auch auf views_php verzichten. Der Rest steht oben …

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,also sorry, aber ich

Eingetragen von Hyp1 (1463)
am 28.06.2017 - 15:16 Uhr

Hi,

also sorry, aber ich verstehe nicht. was daran so schwierig sein
soll vor der Anzeige zu prüfen ob das created date eines nodes älter ist als 5 Tage?
Die node is_new variable ist der falsche Ansatz, das ist ein boolean und der wird nirgends gespeichert.
Drupal geht davon aus das eine node new ist, wenn sie noch keine nid hat oder das created date älter ist als 1 Tag
und setzt dann is_new.

MFG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

was dran schierig ein soll?

Eingetragen von marco.b (645)
am 28.06.2017 - 16:31 Uhr
Zitat:

Ich habe eine simple Liste von Nodes in Views, sortiert vom neuesten zum ältesten. Die paar Nodes, die jünger sind als z.B. 5 Tage sollen beim Output
ein zusätzliches Symbol erhalten, im Stil von "Neu" (=Datum der Erstellung max 5 Tage zurück).

Ich verstehe die Anforderung so, dass keine nodes ausgefiltert werden sollen, das wäre natürlich sehr einfach, sondern dass alle ausgegeben werden sollen, aber je nach Fall unterschiedlich. Deshalb mein Vorschlag mit views_conditional.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Marco,selbst dannist

Eingetragen von Hyp1 (1463)
am 28.06.2017 - 19:17 Uhr

Hallo Marco,

selbst dann ist es doch wenn man den created timestamp
in der Ausgabe hat, relativ einfach zu entscheiden ob dieser timestamp älter ist als
5 Tage?
Unabängig ob es in einem Modul im Theme oder einfach nur Javascript ist.

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 1 Tag
  • Hey danke
    vor 1 Woche 2 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 17 Stunden
  • Da scheint die Terminologie
    vor 2 Wochen 20 Stunden
  • Kannst doch auch alles direkt
    vor 2 Wochen 5 Tagen
  • In der entsprechenden View
    vor 2 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 5 Tagen
  • gelöst
    vor 5 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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