Last Edit Action
In order to avoid clicking on
RecentChanges to know
who edited a page and
why,
here's an action which prints short lastedit infos in the page body:
Last edited by
JavaWoman:
Modified links pointing to docs server Mon, 28 Jan 2008 00:11 EST [
diff]
Usage {{lastedit}}
Optional parameter:
show
{{lastedit show="0"}}
show user only
{{lastedit}} or {{lastedit show="1"}}
show user and notes (default)
Last edited by
JavaWoman:
Modified links pointing to docs server
{{lastedit show="2"}}
show user, notes, date
Last edited by
JavaWoman:
Modified links pointing to docs server Mon, 28 Jan 2008 00:11 EST
{{lastedit show="3"}}
show user, notes, date and quickdiff link
Last edited by
JavaWoman:
Modified links pointing to docs server Mon, 28 Jan 2008 00:11 EST [
diff]
actions/lastedit.php
<?php
// Prints short infos on last edit
// Uses parameter: show
// 0 show user only
// 1 show user and notes
// 2 show user, notes, date
// 3 show user, notes, date and quickdiff link
// set default
if ($show ==
"") {$show=
"1";
}
if ($this->
method ==
"show") {
$page =
$this->
page;
$pagetag =
$page["tag"];
$user =
($this->
LoadUser($page["user"]))?
$this->
Link($page["user"]) :
"anonymous";
if (!
($show ==
0)) {
$note =
($page["note"])?
":<br/><span class=\"notes\">".
$page["note"].
"</span>" :
"";
}
if ($show ==
2 ||
$show ==
3) {
list
($day,
$time) =
explode(" ",
$page["time"]);
$dateformatted =
date("D, d M Y",
strtotime($day));
$timeformatted =
date("H:i T",
strtotime($page["time"]));
}
if ($show ==
3) {
$oldpage =
$this->
LoadSingle("SELECT * FROM ".
$this->
config["table_prefix"].
"pages WHERE tag='".
$this->
GetPageTag().
"' AND latest = 'N' ORDER BY time desc LIMIT 1");
$newid =
$page["id"];
$oldid =
$oldpage["id"];
$difflink =
" [<a title=\"Show differences from last version\" href=\"".
$this->
Href("diff",
$pagetag,
"a=".
$page["id"].
"&b=".
$oldpage["id"].
"&fastdiff=1").
"\">diff</a>]";
}
$output =
"<div class=\"lastedit\">Last edited by ".
$user.
$note.
"<br /> ".
$dateformatted.
" ".
$timeformatted.
$difflink.
"</div>";
print $output;
}
?>
Mods by
JsnX:
- Removed the line that loaded the current page. The current page is already loaded and stored in $this->page.
- Moved test for show method to beginning. There's no point in running through the code if we're not going to do anything.
- Oops, thanks: I had made both corrections on my machine and forgot to post the modifications :)
CategoryDevelopmentActions