Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1149989
module_revisions_browser.inc.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
module_revisions_browser.inc.php
View Options
<?php
/**
* module_revisions_browser.inc.php
* Module for browsing through revisions of a page
*
* Copyright Gottfried Haider, Danja Vasiliev 2010.
* This source code is licensed under the GNU General Public License.
* See the file COPYING for more details.
*/
@
require_once
(
'config.inc.php'
);
require_once
(
'common.inc.php'
);
require_once
(
'controller.inc.php'
);
require_once
(
'html.inc.php'
);
require_once
(
'modules.inc.php'
);
// module glue gets loaded on demand
require_once
(
'util.inc.php'
);
// module_image.inc.php has more information on what's going on inside modules
// (they can be easier than that one though)
function
controller_revisions
(
$args
)
{
page_canonical
(
$args
[
0
][
0
]);
$page
=
$args
[
0
][
0
];
if
(!
page_exists
(
$page
))
{
http_404
();
}
// get all revisions of page and determine the current revision's index
load_modules
(
'glue'
);
$a
=
expl
(
'.'
,
$page
);
$revs
=
revisions_info
(
array
(
'pagename'
=>
$a
[
0
],
'sort'
=>
'time'
));
$revs
=
$revs
[
'#data'
];
$cur_rev
=
false
;
for
(
$i
=
0
;
$i
<
count
(
$revs
);
$i
++)
{
if
(
$revs
[
$i
][
'revision'
]
==
$a
[
1
])
{
$cur_rev
=
$i
;
break
;
}
}
if
(
$cur_rev
===
false
)
{
// we didn't find the current revision
http_500
();
}
default_html
(
true
);
html_add_css
(
base_url
().
'modules/revisions_browser/revisions_browser.css'
);
html_add_js
(
base_url
().
'modules/revisions_browser/revisions_browser.js'
);
html_add_js_var
(
'$.glue.page'
,
$page
);
$bdy
=
&
body
();
elem_attr
(
$bdy
,
'id'
,
'revisions'
);
render_page
(
array
(
'page'
=>
$page
,
'edit'
=>
false
));
body_append
(
'<div id="revisions_browser_ctrl">'
);
body_append
(
'<div id="revisions_browser_prev">'
);
if
(
$cur_rev
+
1
<
count
(
$revs
))
{
body_append
(
'<a href="'
.
base_url
().
'?'
.
htmlspecialchars
(
urlencode
(
$revs
[
$cur_rev
+
1
][
'page'
]),
ENT_COMPAT
,
'UTF-8'
).
'/revisions">prev</a>'
);
}
body_append
(
'</div><div id="revisions_browser_cur">'
);
if
(
substr
(
$revs
[
$cur_rev
][
'revision'
],
0
,
5
)
==
'auto-'
)
{
body_append
(
date
(
'd M y H:i'
,
$revs
[
$cur_rev
][
'time'
]));
}
else
{
body_append
(
htmlspecialchars
(
$revs
[
$cur_rev
][
'revision'
],
ENT_NOQUOTES
,
'UTF-8'
));
}
body_append
(
'<br>'
);
if
(
$a
[
1
]
!=
'head'
)
{
body_append
(
'<a id="revisions_browser_revert_btn" href="#">revert</a>'
);
}
body_append
(
'</div><div id="revisions_browser_next">'
);
if
(
0
<
$cur_rev
)
{
body_append
(
'<a href="'
.
base_url
().
'?'
.
htmlspecialchars
(
urlencode
(
$revs
[
$cur_rev
-
1
][
'page'
]),
ENT_COMPAT
,
'UTF-8'
).
'/revisions">next</a>'
);
}
body_append
(
'</div>'
);
body_append
(
'</div>'
);
echo
html_finalize
();
}
register_controller
(
'*'
,
'revisions'
,
'controller_revisions'
,
array
(
'auth'
=>
REVISIONS_NEED_AUTH
));
function
revisions_browser_render_page_early
(
$args
)
{
if
(
$args
[
'edit'
])
{
html_add_js
(
base_url
().
'modules/revisions_browser/revisions_browser-edit.js'
);
}
}
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, Aug 8, 18:06 (3 d, 20 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
21913
Default Alt Text
module_revisions_browser.inc.php (2 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment