1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11:
12: $plugin_is_filter = 980 | ADMIN_PLUGIN;
13: $plugin_description = gettext('Allows only users with Admin or Manage All rights to change the publish state of objects.');
14: $plugin_author = "Stephen Billard (sbillard)";
15:
16: zp_register_filter('save_album_utilities_data', 'admin_approval::publishZenphoto');
17: zp_register_filter('save_image_utilities_data', 'admin_approval::publishZenphoto');
18: zp_register_filter('new_page', 'admin_approval::Zenpage');
19: zp_register_filter('update_page', 'admin_approval::Zenpage');
20: zp_register_filter('new_article', 'admin_approval::Zenpage');
21: zp_register_filter('update_article', 'admin_approval::Zenpage');
22: zp_register_filter('new_article', 'admin_approval::Zenpage');
23: zp_register_filter('update_article', 'admin_approval::Zenpage');
24:
25: class admin_approval {
26:
27: static function publish_object($object) {
28: $msg = '';
29: if (!zp_loggedin($object->manage_rights)) {
30: $data = $object->getData();
31: if (isset($data['show'])) {
32: $show = $data['show'];
33: } else {
34: $show = 0;
35: }
36: $newshow = $object->getShow();
37: $object->setShow($show);
38: if ($newshow != $show) {
39: $msg = gettext('You do not have rights to change the <em>publish</em> state.');
40: }
41: }
42: return $msg;
43: }
44:
45: static function publishZenphoto($object, $i) {
46: global $_admin_approval_error;
47: $msg = admin_approval::publish_object($object);
48: if ($msg) {
49: $_admin_approval_error = $msg;
50: zp_register_filter('edit_error', 'admin_approval::post_error');
51: }
52: return $object;
53: }
54:
55: static function Zenpage($report, $object) {
56: $msg = admin_approval::publish_object($object);
57: if ($msg) {
58: $msg = '<p class="errorbox fade-message">' . $msg . '</p>';
59: }
60: return $report . $msg;
61: }
62:
63: static function post_error() {
64: global $_admin_approval_error;
65: return $_admin_approval_error;
66: }
67:
68: }
69:
70: ?>