Block mit neueren Nodes als angezeigter Node erstellen
Eingetragen von batman1983 (189)
am 16.03.2008 - 17:51 Uhr in
am 16.03.2008 - 17:51 Uhr in
Hallo,
ich möchte einen Block ändern. Dieser zeigt bisher die letzten 5 Nodes an. Ich möchte einen Block haben, der Nodes anzeigt die neuer sind als der angezeigte. Z.B. angezeigter Node: 13.03.08 13:00:00. Nun sollen 3 Nodes angezeigt werden, die danach erstellt wurden. Z.B. 13.03.08 14:00:00, 15:00:00 und 16:00:00. Ein weiterer der z.B. um 18:00:00 erstellt wurde, soll nicht angezeigt werden.
Ich habe schon die Option gefunden "Node: Created Time" aber was muss ich da eintragen? "now" geht nicht, wie ich eigentlich gedacht habe.
MFG Batman1983
- Anmelden oder Registrieren um Kommentare zu schreiben
ich habe mir folgendes
am 16.03.2008 - 19:50 Uhr
ich habe mir folgendes Einfallen lassen:
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
}
// Laden der View
$view_name = 'project_more'; //Name des Views
$view = views_get_view($view_name);
//Einmal eine View neuer und eine älter als $node->created;
$view_1 = $view;
$view_2 = $view;
//Strfrtime, da Views den Filter mit strtotime() benutzt
$date = strftime("%c", $node->created);
$view_1->filter[] = array (
'tablename' => 'node',
'field' => 'created',
'operator' => '>',
'options' => '',
'value' => $date,
);
$view_2->filter[] = array (
'tablename' => 'node',
'field' => 'created',
'operator' => '<',
'options' => '',
'value' => $date,
);
//Zusammenbauen der beiden Views
$view1 = views_build_view('items', $view_1, array(), false, 3);
$view2 = views_build_view('items', $view_2, array(), false, 3);
$output .= '<ul>';
foreach ($view1['items'] as $item) {
$output .= '<li class="leaf">'. l($item->node_title, 'node/'. $item->nid);
}
foreach ($view2['items'] as $item) {
$output .= '<li class="leaf">'. l($item->node_title, 'node/'. $item->nid);
}
$output .= '</ul>';
print $output;
?>
das ganze funktioniert aber leider trotzdem nicht richtig
--------------
Mein Blog: www.freeblogger.org
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dereine@jabber.ccc.de Warum Jabber?
Das geht doch auch mit einer view
am 16.03.2008 - 20:34 Uhr
Das geht auch mit einer View und Argumenten:
Argument Type auf node id einstellen.
Option auf 'not equal'.
Und folgenden 'Argument Handling Code':
<?php
if($type == 'block' && arg(0) == 'node' && is_numeric(arg(1) ) ){
$nid = arg(1);
$args[] = $nid;
return $args;
}
?>
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Hey, ich weiß ned was der
am 16.03.2008 - 21:07 Uhr
Hey, ich weiß ned was der Code von dir machen soll, md.
View
am 16.03.2008 - 21:13 Uhr
Das ist der Argument Handling Code für eine View, welche die letzten 5 Nodes (als Link) in einem Block anzeigt. Aber nicht den Link zu dem Node, den man sich gerade anschaut. Das wolltest du doch erreichen - oder?
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Nein, ich will 3 ältere
am 16.03.2008 - 21:23 Uhr
Nein, ich will 3 ältere Nodes darstellen, als das angezeigte Node. Ähnlich dem Book Module mit dem Verweiß auf die nächste Seite.
Sprich, Link zum nächsten Node, aber 3 mal. Ich will ältere und neuere Nodes verlinken.
Aah
am 16.03.2008 - 21:36 Uhr
da hab ich mich zu sehr von der Option 'Created Time' die du in deiner Frage erwähnt hast, ablenken lassen.
Denn das würde gehen: now -> Option = - oder + 10.800 sec würde dir Nodes liefern, deren Erstellungsdatum 3 Stunden vor oder nach dem Erstellungsdatum des angezeigten Nodes liegt.
Und mein geposteter Code würde dafür sorgen, dass der angezeigte Node im Block nicht erscheint.
Aber, wenn du das nicht willst, ist vielleicht der Code von derReine die richtige Richtung.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
So in der Art hab ich mir
am 16.03.2008 - 22:17 Uhr
So in der Art hab ich mir das auch gedacht, aber irgendwie will das ned.
Ich hab nun folgendes eingestellt:
Is Greater Than, now, -2592000
Angezeigt wird dann garnix. Anderes:
Is Less Than, now, -2592000
Dann werden alle letzten Nodes angezeigt. Auch wenn ich nun z.b. die Node vom 13.3. aufrufe, steht noch die Node vom 15.3. drin und die vom 12.3.
Also das NOW ist Server
am 22.03.2008 - 19:45 Uhr
Also das NOW ist Server Time. Hab nun mal auf unserer Live Seite probiert, und da werden alle Nodes angezeigt, abhängig von der Serverzeit. Nicht von der Created Time.