Anzeige "zuletzt geändert von user xy"
Eingetragen von Micha1111 (290)
am 17.04.2008 - 19:07 Uhr in
am 17.04.2008 - 19:07 Uhr in
Standardmäßig wird im Node angezeigt wann und von wem der Artikel erstellt (submitted) wurde.
Wie bekomme darunter eine zusätzliche Zeile hin, in der steht
"zuletzt geändert am Date/Time von User/XY",
natürlich soll diese Zeile nur erscheinen, wenn es schon eine Änderung gegeben hat ?
Mit Revisionen lässt sich das zwar auch lösen, mir wäre aber eine direkte Anzeige lieber.
- Anmelden oder Registrieren um Kommentare zu schreiben
"node.tpl.php" ist Dein Kumpel
am 17.04.2008 - 19:15 Uhr
Die Datei "node.tpl.php" ist fuer Dein Problem der dickste Kumpel.
<div class="submitted">
<?php print $submitted; ?>
</div>
An dieser Stelle kannst Du im Template ansetzen. Das Nodeobject stellt ein Aktualisierungsdatum zur Verfuegung.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Sorry, aber hilft mir nicht
am 17.04.2008 - 21:17 Uhr
Sorry, aber hilft mir nicht wirklich weiter.
Kann ich denn jetzt $submitted durch $changed ersetzen ?
Du kannst $submitted
am 17.04.2008 - 21:23 Uhr
Du kannst $submitted ersetzen mit was immer Du willst.
Nur hast Du von einer 2. Zeile nach $submitted gesprochen. Den Nodeobjct-Parameter Aktulisiert (ein Datumswert) kann man abfragen. Ist er gefuellt wird eben dieser Parameter als Aktualisierungsdatum ausgegeben bzw. mit weiteren Texten ergaenzt.
Wieso hilft Dir das nicht weiter?
Kann es sein das Du nicht weisst was das Nodeobject ist und was Du damit anfangen kannst?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
So ist es wohl, ich bin
am 17.04.2008 - 21:28 Uhr
So ist es wohl, ich bin immer noch dabei, die Grundprinzipien zu verstehen, daher meine Hilfeschreie !!
OK, wollen wir Beide ein
am 17.04.2008 - 21:30 Uhr
OK, wollen wir Beide ein wenig mit dem Nodeobject rummachen? Hast Du Lust und Nerven dazu?
Und hast Du ein Minimum an PHP drauf?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Gut, die neue Zeile wird
am 17.04.2008 - 21:34 Uhr
Gut, die neue Zeile wird eigentlich automatisch erzeugt, wenn man div verwendet (gleiche Zeile, wenn man span verwendet).
Was das Nodeobjekt alles kann , ist mir allerdings noch ein Rätsel.
Das Nodeobject ist
am 17.04.2008 - 21:44 Uhr
Das Nodeobject ist gewissermassen des Pudels Kern von JEDER Node.
Der Inhalt des Nodeobject ist nicht starr oder feststehend. Er aendert sich. Es koennen unterschiedlich viele Parameter im Object enthalten sein. Die sind auf gewisse Weise global und stehen immer an den Stellen zur Verfuegung wenn eine Node aufgerufen/verwendet wird.
Man muss das Object nur Ansprechen. Du wirst ueber das Prinzip des Nodeobjectes staunen und laecheln wenn Du weisst wie es geht - ansprechen und verwenden.
Waehrend eine Node zur Anzeige kommt spricht Drupal im Hintergrund das Nodeobject an. Was Du als Node angezeigt bekommst sind die Inhalte der Parameter des Nodeobject - ABER fast immer nicht alle.
Soll ich weiter machen? Konkret auf Dein Problem bezogen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Hast Du ein Minimum an PHP
am 17.04.2008 - 21:48 Uhr
Hast Du ein Minimum an PHP drauf?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
$node->uid, $node->changed
am 17.04.2008 - 22:11 Uhr
Das Nodeobject bzw. seinen Inhalt sichtbar machen. In "node.tpl.php" oder irgendeinem anderen Template eines Nodetypes mal das Einfuegen:
<div class="submitted">
<?php print $submitted; ?>
</div>
<pre>
<?php print_r($node); ?>
<pre>
Du siehst alle in diesem Moment vorhandenen, gefuellten und auch nicht gefuellten Parameter des Nodeobjectes.
Inhalte/Parameter des Nodeobjectes werden so angesprochen.
Die ID einer Node:
$node->nid
Die ID des User's der eine Node erstellt hat:
$node->uid
Ist eine Node aktualisiert worden dann ist der entsprechende Parameter des Objectes gefuellt.
$node->changed
Die Parameter $node->nid und $node->uid sind im Nodeobject immer vorhanden und gefuellt.
Was Dich interessiert ist die ID des Users der die Node erstellt hat und somit die ID wenn er sie aktualisiert hat.
Anmerkung:
Wenn ein Admin eine Node eines User aendert ist die ID des Admin nicht sichtbar weil nicht im Object enthalten.
Wie Du die von Dir benoetigten Nodeobject-Parameter ansprechen kannst steht voran.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Da $node->changed ein PHP
am 17.04.2008 - 22:15 Uhr
Da $node->changed ein PHP Timestamp ist kannst Du $node->changed nicht direkt ausgeben.
Um aus dem Timestamp ein normales Datum zu erzeugen wird am einfachsten eine von Drupals Funktionen verwendet. Welches Datumsformat fuer die Anzeige des Aktualisierungsdatums willst Du verwenden?
Gib ein Datumsbeispiel.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
quiptime schrieb . Was Dich
am 01.05.2008 - 17:48 Uhr
.
Was Dich interessiert ist die ID des Users der die Node erstellt hat und somit die ID wenn er sie aktualisiert hat.
Anmerkung:
Wenn ein Admin eine Node eines User aendert ist die ID des Admin nicht sichtbar weil nicht im Object enthalten.
Sorry, bin erst jetzt wieder dazu gekommen.
Aber das zitierte stimmt inhaltlich auch nicht ganz:
Wer den Node erstellt hat, ist bekannt (UID).
In meinem Fall, ändert aber nicht nur derjenige, der diesen Node erstellt hat, sondern unter Umständen auch andere dazu berechtigte User. Das dieser Node geändert wurde, ist an der vid (Node) erkennbar, auch wann das geschehen ist, wird in der Datenbank gespeichert (zumindest stellt Views so ein Feld zur Verfügung). Es scheint aber nicht gespeichert zu werden, wer die Änderung vorgenommen hat.
Andererseits habe ich festgestellt, dass doch irgendwo die UID des Bearbeiters festgehalten wird, denn sonst würde die Funktionalität der Anzeige von Revisionen eines Artikels nicht klappen.
Weder um Modul contemplates noch in Views wird aber das Feld zur Verfügung gestellt.
Kann mir jemand helfen ?
Sorry dass ich diesen
am 17.06.2010 - 00:17 Uhr
Sorry dass ich diesen hornalten Thread reaktiviere, aber ich bin auch auf der Suche nach einer Ausgabe desjenigen, der einen Node geändert hat.
Auf drupal.org gibts beispielsweise ein Snippet, um anzuzeigen WANN ein node geändert wurde:
?php
function phptemplate_node_submitted($node) {
$time_unit = 86400; // number of seconds in 1 day => 24 hours * 60 minutes * 60 seconds
$threshold = 1;
if ($node->changed && (round(($node->changed - $node->created) / $time_unit) > $threshold)){ // difference between created and changed times > than threshold
return t('Last updated on @changed. Originally submitted by !username on @created.', array(
'@changed' => format_date($node->changed, 'medium'),
'!username' => theme('username', $node),
'@created' => format_date($node->created, 'small'),
));
}
else{
return t('Submitted by !username on @datetime',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
));
}
}
?>
Das ist zwar schon sehr schön, aber ich persönlich würde es noch schöner finden wenn man erfahren würde wer sich da zuschaffen gemacht hat.
Kann ja eigentlich nicht viel sein, oder?