/** main entry point for tools (called from /program/main_admin.php) * * this routine dispatches the tasks, If the specified task * is not recognised, the default task TASK_TOOLS_INTRO * is executed. * * @param object &$output collects the html output * @return void results are returned as output in $output * @todo fix permissions for backup tool! perhaps another bit? */ function job_tools(&$output) { global $CFG, $WAS_SCRIPT_NAME, $USER; $output->set_helptopic('tools'); $task = get_parameter_string('task', TASK_TOOLS_INTRO); switch ($task) { case TASK_TOOLS_INTRO: show_tools_intro($output); show_tools_menu($output); break; case TASK_TRANSLATETOOL: if ($USER->has_job_permissions(JOB_PERMISSION_TRANSLATETOOL)) { include $CFG->progdir . '/lib/translatetool.class.php'; $mgr = new TranslateTool($output); if ($mgr->show_parent_menu()) { show_tools_menu($output, $task); } } else { $output->add_content("<h2>" . t('access_denied', 'admin') . "</h2>"); $output->add_content(t('job_access_denied', 'admin')); $output->add_message(t('job_access_denied', 'admin')); show_tools_menu($output, $task); } break; case TASK_BACKUPTOOL: if ($USER->has_job_permissions(JOB_PERMISSION_BACKUPTOOL)) { task_backuptool($output); } else { $output->add_content("<h2>" . t('access_denied', 'admin') . "</h2>"); $output->add_content(t('job_access_denied', 'admin')); $output->add_message(t('job_access_denied', 'admin')); show_tools_menu($output, $task); } break; case TASK_LOGVIEW: if ($USER->has_job_permissions(JOB_PERMISSION_LOGVIEW)) { task_logview($output); } else { $output->add_content("<h2>" . t('access_denied', 'admin') . "</h2>"); $output->add_content(t('job_access_denied', 'admin')); $output->add_message(t('job_access_denied', 'admin')); show_tools_menu($output, $task); } break; default: $s = utf8_strlen($task) <= 50 ? $task : utf8_substr($task, 0, 44) . ' (...)'; $message = t('task_unknown', 'admin', array('{TASK}' => htmlspecialchars($s))); $output->add_message($message); logger('tools: unknown task: ' . htmlspecialchars($s)); show_tools_intro($output); show_tools_menu($output); break; } }