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

[Gelöst] Node ID aus View zwischenspeichern

Eingetragen von PowerMan (274)
am 08.09.2009 - 10:17 Uhr in
  • Views
  • Drupal 5.x

Wie kann ich eine Node-ID aus einer View zwischenspeichern, damit ich diese weiter unten auf der Seite, bei einer weiteren View als Argument nutzen kann ?

Zur Erläuterung:
Ich habe eine Menge Artikel, die alle verwschiedenen Kategorien angehören. Nun wird auf meiner Startseite ganz oben der aktuellste Artikel mit Bild groß angezeigt. Dies wird mit dem "Oben in Listen" Strickly-Bit realisiert. (Eine Node mit dem aktuellsten Datum und Strikly-Bit)

Darunter werden weitere Blöcke durch Views ausgegeben. Jeder Block zeigt die 5 neuesten Artikel aus der entsprechenden Kategorie an.

Da ich aber unten in den Views nicht weiss, welcher Artikel als Top-Artikel ausgegeben wird, will ich dies über ein Argument ausschließen. In dem ich die 5 neuesten Artikel der entsprechenden Kategorie ausgebe, die aber nicht die Node-ID des Top-Artikels haben.

Wie kann man das umsetzen. Ach ja, die Views-Blöcke werden alle als Embed-Vies im Startseiten-Template fest verankert.

‹ Link mit Bild über CCK einbinden Birtday View erstellen ... aber kein Filter und Sortierkriterium? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nur unveröffentliche Nodes anzeigen lassen?

Eingetragen von Frank Ralf (2135)
am 08.09.2009 - 14:14 Uhr

Kannst du nicht einfach das Argument so formulieren, dass bei deinen Top-5 nur Nodes mit Status "nicht veröffentlicht" angezeigt werden? Das müsste doch mit Bordmitteln gehen.

Gruß
Frank

XING
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich denke das ist alles eine

Eingetragen von stebeg (463)
am 08.09.2009 - 14:26 Uhr

ich denke das ist alles eine Frage der richtigen Wahl der URL-Aliase. Folgendes Beispiel:

Du hast eine Kategorie names "CategorieX" und eine namens "CategorieY". Nun hast die mehrere Seite für die erste Kategorie mit den URL-Aliase CategorieX/Seite1 und CategorieX/Seite2. Da du die Views ja als Blöcke anzeigen lässt könntest du in den Block-Einstellungen festlegen, das der Block für die 5 neusten Artikel aus CategorieX nur auf den Seiten mit dem URL-Alias CategorieX/* und die aus CategorieY nur auf den Seite mit URL-Alias CategorieY/* angezeigt werden.

Der Block mit den 5 neusten Artikeln für CategorieX würde also nur auf den Seiten CategorieX/Seite1 und CategorieX/Seite2 zu sehen sein. Da müsste eigentlich das erfüllen, was du dir gedacht hast, oder?

Ich hoffe das war einigermaßen verständlich ausgedrückt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nein nein, da habt Ihr was

Eingetragen von PowerMan (274)
am 08.09.2009 - 17:26 Uhr

Nein nein, da habt Ihr was falsch verstanden. Habe ich vieleicht ein wenig bescheuert formuliert.

Ich habe viele Nodes vom Typ Artikel, welche mit Kategorien (15 an der Zahl) versehen sind.
Auf der Startseite lasse ich für jede Kategorie die neuesten 5 getrennt auflisten.

Ganz oben wird ähnlich wie beim Spiegel aus allen Nodes der absolute Top-Artikel ausgegeben. Der absolute Top-Artikel wird durch das Strickly-Bit mit dem neuesten Erstellungsdatum deklariert. Allerdings sollen ältere Artikel mit Strickly-Bit wieder unten in den Views angezeigt werden.

Technisch sieht das so aus, das für jede Kategorie eine View verantwortlich ist.
Diese wird im Template wie folgt ausgegeben:

<?php

    $view
= views_get_view('FrontNewsListe');
   
$out = views_build_view('embed', $view, $argumente, false, 5, 0, 1);
        print
$out;

?>

Das Ganze steht dort natürlich so oft drin wie es auch Kategorien gibt.
Durch dieses vorgehen, spare ich mir Panels und somit auch ein haufen Rechenleistung. Und ich kann diese einzelnen Views entsprechend gut themen.

Mein Problem ist nun, das ich die ID der
--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe mittlerweile selber

Eingetragen von PowerMan (274)
am 18.09.2009 - 10:30 Uhr

Ich habe mittlerweile selber eine Lösung gefunden für dieses Problem gefunden. Aber Danke nochmal an die User, die versucht haben mir dabei zu helfen.
Als erstes habe ich den Views, die für die unteren Blöcke (siehe Bild oben, grüne Blöcke) verantwortlich sind, ein zusätzliches Argument mit folgenden Eistellungen zugefügt:

Argument: Node: ID
Standard: Alle Werte anzeigen
Option: not equal
Platzhalter: *

Danach werden dann in dieser View alle Artikel angezeigt außer die als Argument übergebene Artikel-Node-ID. Oder wenn keine Node-ID übergeben wird, dann werden absolut alle Artikel angezeigt.

So weit so gut. Das Problem besteht nun darin die Node-ID aus dem obersten View, der ja den absoluten Top-Artikel anzeigt, auszulesen und auf die unternen Views als Argument anzuwenden.
Als erstes sollte mal erwähnt werden, dass alle Views in meinem Fall direkt im Template über folgenden Funktion aufgerufen werden:

<?php

$view
= views_get_view('VIEWNAME');
$out = views_build_view('embed', $view, $argumente, false, 5, 0, 0);
print
$out;
?>

Um nun die Node-ID des obersten Top-Artikel (siehe Bild oben, roter Block) aus zulesen, habe ich erst mal ein separates Template für diese Top-View erstellt. Das kann man recht einfach mit bem Theme-Wizard von Views erledigen. Dadurch kann ich in der Templatdatei auf das Node-Objekt des von der Top-View ausgelesenen Artikels zugreifen und über $node->nid die Node-ID auslesen.
Damit ich diese Node-ID nun auch in anderen Teilen Drupals benutzen kann, habe ich diese Variable in eine Globale Variable übergeben. Damit ist der Wert überall in Drupal verfügbar.
Folgender Code kommt dann in den oberen Bereich der Template-Datei des Top-Views, unter den Kommentar-Zeilen:

<?php
...

*
$link -- This will create a link to the node; fill the option field with the text for the link. If you want titles that link to the node, use Node: Title instead.
*
$link_label -- The assigned label for $link
*
*
This function goes in your views-list-StartContentBlock.tpl.php file
*/


//now we add the stylesheet...
//drupal_add_css(path_to_theme() .'/views-list-StartContentBlock.css');
 
$GLOBALS['start_top_content_id'] = $node->nid;

...
?>

Jetzt kann ich in diese globale Variable beim Aufrufen der Emmbed-View in den unteren Blöcken (grün) die Node-ID als Argument übergeben.

<?php

$view
= views_get_view('VIEWNAME');
$out = views_build_view('embed', $view, array($GLOBALS['start_top_content_id']), false, 5, 0, 0);
print
$out;
?>

Somit werden in den unteren Blöcken alle Artikel angezeigt, außer dem Artikel, der schon im oberen Top-Artikel-Block angezeigt wird. Nach diesem Schema kann man auch mit mehreren Top-Artikeln verfahren, nur das dann dann die Node-IDs in einem Array gesammelt werden müssen, bevor sie an übergeben werden.

Ich hoffe man kann mit der erklährung was anfangen.

--------
Active-Media-Production
Individual Web Development and Design

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250235
Registrierte User: 20463

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

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