| 1 |
<?php |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
require_once(dirname(__FILE__).'/lib/engine.inc.php'); |
|---|
| 12 |
|
|---|
| 13 |
function elggadmin_init() { |
|---|
| 14 |
|
|---|
| 15 |
if (context() == 'elggadmin') { |
|---|
| 16 |
require_once(dirname(__FILE__).'/lib/elggadmin.inc.php'); |
|---|
| 17 |
|
|---|
| 18 |
elggadmin_add_rule('mod/elggadmin/?$', 'elggadmin_page'); |
|---|
| 19 |
elggadmin_add_rule('mod/elggadmin/(theme|frontpage|logs)$', 'elggadmin_page'); |
|---|
| 20 |
elggadmin_add_rule('mod/elggadmin/index.php/?(theme|frontpage|logs)?$', 'elggadmin_page'); |
|---|
| 21 |
|
|---|
| 22 |
elggadmin_add_function('elggadmin_page_before', 'elggadmin_actions'); |
|---|
| 23 |
|
|---|
| 24 |
elggadmin_add_rule('.*', 'elggadmin_404', 1000); |
|---|
| 25 |
} |
|---|
| 26 |
|
|---|
| 27 |
} |
|---|
| 28 |
|
|---|
| 29 |
function elggadmin_pagesetup() { |
|---|
| 30 |
|
|---|
| 31 |
global $CFG; |
|---|
| 32 |
if (user_flag_get('admin', $_SESSION['userid']) && |
|---|
| 33 |
!isset($CFG->elggadmin_installed)) { |
|---|
| 34 |
$CFG->elggadmin_installed = true; |
|---|
| 35 |
set_config('elggadmin_installed', true); |
|---|
| 36 |
header_redirect(get_url(null, 'elggadmin::config'), __gettext('Welcome to the Elgg configuration manager!')); |
|---|
| 37 |
} |
|---|
| 38 |
|
|---|
| 39 |
if (context() == 'admin') { |
|---|
| 40 |
if (!plugin_is_loaded('pages')) { |
|---|
| 41 |
elgg_messages_add(__gettext('Error: <code>elggadmin</code> plugin needs <code>pages</code> plugin to run')); |
|---|
| 42 |
} else { |
|---|
| 43 |
pages_submenu_add('elggadmin', __gettext('Site administration'), get_url(null, 'elggadmin::'), 10); |
|---|
| 44 |
} |
|---|
| 45 |
|
|---|
| 46 |
} elseif (context() == 'elggadmin') { |
|---|
| 47 |
|
|---|
| 48 |
if (!plugin_is_loaded('pages')) { |
|---|
| 49 |
elgg_messages_add(__gettext('Error: <code>elggadmin</code> plugin needs <code>pages</code> plugin to run')); |
|---|
| 50 |
header_redirect(get_url(null, 'admin::')); |
|---|
| 51 |
} |
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 |
pages_submenu_add('elggadmin', __gettext('Configuration manager'), get_url(null, 'elggadmin::')); |
|---|
| 55 |
pages_submenu_add('elggadmin:theme', __gettext('Default theme editor'), get_url(null, 'elggadmin::theme')); |
|---|
| 56 |
pages_submenu_add('elggadmin:frontpage', __gettext('Frontpage template editor'), get_url(null, 'elggadmin::frontpage')); |
|---|
| 57 |
pages_submenu_add('elggadmin:logs', __gettext('Error log'), get_url(null, 'elggadmin::logs')); |
|---|
| 58 |
|
|---|
| 59 |
sidebar_add(50, 'sidebar-'.elggadmin_currentpage(), elggadmin_sidebar()); |
|---|
| 60 |
|
|---|
| 61 |
$clear_sidebar[] = 'sidebar-profile'; |
|---|
| 62 |
$clear_sidebar[] = 'sidebar-' . elggadmin_currentpage(); |
|---|
| 63 |
sidebar_remove($clear_sidebar, true); |
|---|
| 64 |
|
|---|
| 65 |
if (elggadmin_is_404()) { |
|---|
| 66 |
header('HTTP/1.0 404 Not Found'); |
|---|
| 67 |
} |
|---|
| 68 |
} |
|---|
| 69 |
} |
|---|
| 70 |
|
|---|
| 71 |
function elggadmin_url($object_id, $object_type) { |
|---|
| 72 |
global $CFG; |
|---|
| 73 |
|
|---|
| 74 |
$url = null; |
|---|
| 75 |
|
|---|
| 76 |
switch ($object_type) { |
|---|
| 77 |
case 'elggadmin::': |
|---|
| 78 |
case 'elggadmin::config': |
|---|
| 79 |
$url = $CFG->wwwroot . 'mod/elggadmin/index.php'; |
|---|
| 80 |
break; |
|---|
| 81 |
case 'elggadmin::theme': |
|---|
| 82 |
$url = get_url(null, 'elggadmin::') . '/theme'; |
|---|
| 83 |
break; |
|---|
| 84 |
case 'elggadmin::frontpage': |
|---|
| 85 |
$url = get_url(null, 'elggadmin::') . '/frontpage'; |
|---|
| 86 |
break; |
|---|
| 87 |
case 'elggadmin::logs': |
|---|
| 88 |
$url = get_url(null, 'elggadmin::') . '/logs'; |
|---|
| 89 |
break; |
|---|
| 90 |
|
|---|
| 91 |
} |
|---|
| 92 |
|
|---|
| 93 |
return $url; |
|---|
| 94 |
} |
|---|
| 95 |
|
|---|
| 96 |
?> |
|---|
| 97 |
|
|---|