Neue Posts seit letztem Login
am 22.11.2007 - 21:13 Uhr in
Hallo zusammen,
ich habe eine kleine Studentencommunity-Seite mit Drupal erstellt [1] und bisher alle neuen Beiträge und Kommentar mit Views und einem angepassten tracker dargestellt. Dort sind immer alle Beiträge zu sehen, sortiert nach Änderungsdatum.
Ich möchte jetzt in einer View die Beiträge angezeigt bekommen, die seit dem letzten Login des Users, der die Ansicht öffnet geändert wurden... Gibt es hierzu eine Standardfunktion? Der Viewfilter Content is new ist zwar ganz vielversprechend, allerdings müsse ich die Beiträge öffnen um sie als gelesen zu markieren. Es sollten aber wirklich nur die Beiträge angezeigt werden, die seit dem letzten Login neu sind.
Idee wäre sonst einen Menü-Eintrag per PHP zu bauen, der per Argument an eine View das letzte Login-Datum des Users übergibt.
Bin auf Eure Ideen gespannt,
Mirko
- Anmelden oder Registrieren um Kommentare zu schreiben
so etwas wie es hier bei
am 22.11.2007 - 22:09 Uhr
so etwas wie es hier bei drupalcenter mit dem forum gibt?
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
Facebook Gruppe Schweiz-CH: http://www.facebook.com/group.php?gid=5683015414
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Hallo Raphael, was genau
am 23.11.2007 - 06:27 Uhr
Hallo Raphael,
was genau meinst du denn? Die "Neue Beiträge"-Seite? Das ist doch eigentlich "nur" der Tracker... Ich möchte aber nur die Beiträge anzeigen, die seit meinem letzten Login erstellt oder geändert wurden.
Logout um 10 Uhr
erneuter Login um 10 Uhr 30: Alle Beiträge, die in der Zeit von 10 Uhr bis 10 Uhr 30 erstellt oder geändert wurden.
Wenn ich mich dann auslogge und um 12 Uhr wieder einlogge, sollen eben nur die Einträge von 10 Uhr 30 bis 12 Uhr angezeigt werden, egal ob ich die Älteren gelesen habe oder nicht.
Wo gibt es hier die Funktion?
Schöne Grüße,
Mirko
Mir wäre jetzt gerade nicht
am 23.11.2007 - 06:36 Uhr
Mir wäre jetzt gerade nicht bekannt, wie man diese Funktion mit Views & co. bauen könnte. Allerdings wäre das doch eine relative einfacher Block Snippet.
Du könntest in der Tabelle user den letzten Login feststellen (ich würde meinen das wäre wohl die Spalte access, bin mir aber nicht ganz sicher). Und dann kannst du diesen Wert in der Tabelle nodes einsetzen um.
Falls jemand eine andere Idee, hat, dann soll er es hier posten.
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
Facebook Gruppe Schweiz-CH: http://www.facebook.com/group.php?gid=5683015414
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Hmm. Ok, es ist wohl die
am 23.11.2007 - 08:28 Uhr
Hmm. Ok, es ist wohl die Spalte login der Tabelle users und die kriege ich ja damit ganz gut raus.
<?php
global $user;
$res = db_query ("SELECT login FROM {users} where uid='%d'", $user->uid);
if (mysql_num_rows($res) > 0) {
$row = mysql_fetch_object ($res);
print_r($row);
}
?>
Daraus bastel ich mir einen Link der das Datum als Argument an eine Ansicht gibt. Aber wie kann ich in der Ansicht das Argument als Filter weiterbenutzen?!?
So.. Lösung gefunden und hier für alle:
am 23.11.2007 - 14:10 Uhr
Ich habe keinen Link und keinen Block gebastelt, sondern die Argument-Handling-Funktion genutzt:
Dort wird immer der letzte login des Users ausgewertet und der in der Ansicht an Stelle 3 definierte Filter (letztes Kommentardatum) mit dem Wert überschrieben. Klappt wunderbar!
global $user;
$res = db_query ("SELECT login FROM {users} where uid='%d'", $user->uid);
if (mysql_num_rows($res) > 0) {
$row = mysql_fetch_object ($res);
$view->filter[2]['value'] = date("Y-m-d H:i:s",$row->login);
}
$view->is_cacheable = 0;
return $args;
Schöne Grüße,
Mirko
aka McGo
Ich weiß der Thread ist
am 20.04.2009 - 13:23 Uhr
Ich weiß der Thread ist schon sehr alt, aber genau diese Funktion benötige ich auch.
Könnt ihr das nochmal etwas genauer erklären? Was ist eine Argument-Handling-Funktion? Brauche ich dafür ein bestimmtes Modul? Und wo genau muss ich diesen Code reinkopieren?
Danke!
views
am 20.04.2009 - 15:41 Uhr
Moin!
Du benötigst das Modul Views.
Dort kannst Du dann verschiedene Argumente angeben. Und falls die Standard-Argumente nicht ausreichen, kannst Du Dir mit PHP eigene Argumente und Argumentfunktionen zusammenbauen.
Mehr dazu erfährst Du unter Anderem im Handbuch des Moduls.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Super, danke für die
am 20.04.2009 - 15:46 Uhr
Super, danke für die Aufklärung!
Dann werd ich damit mal ein wenig rumspielen :-)
LG