Пример #1
0
/** 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;
    }
}