예제 #1
0
/**
 * Return a list of page types
 * @param string $pagetype current page type
 * @param stdClass $parentcontext Block's parent context
 * @param stdClass $currentcontext Current context of block
 */
function question_pagetypelist($pagetype, $parentcontext, $currentcontext) {
    global $CFG;
    $types = array(
        'question-*'=>get_string('page-question-x', 'question'),
        'question-edit'=>get_string('page-question-edit', 'question'),
        'question-category'=>get_string('page-question-category', 'question'),
        'question-export'=>get_string('page-question-export', 'question'),
        'question-import'=>get_string('page-question-import', 'question')
    );
    if ($currentcontext->contextlevel == CONTEXT_COURSE) {
        require_once($CFG->dirroot . '/course/lib.php');
        return array_merge(course_pagetypelist($pagetype, $parentcontext, $currentcontext), $types);
    } else {
        return $types;
    }
}
예제 #2
0
파일: blocklib.php 프로젝트: nottmoo/moodle
/**
 * Generates a page type list for plugins
 *
 * @param string $pagetype
 * @param stdClass $parentcontext
 * @param stdClass $currentcontext
 * @return array
 */
function plugin_pagetypelist($pagetype, $parentcontext = null, $currentcontext = null) {
    global $CFG;

    // for modules
    $bits = explode('-', $pagetype);
    $plugintype = $bits[0];
    $pluginname = $bits[1];
    $directory = get_plugin_directory($plugintype, $pluginname);
    if (empty($directory)) {
        return array();
    }
    $libfile = $directory.'/lib.php';
    require_once($libfile);
    $function = $pluginname.'_pagetypelist';
    if (!function_exists($function)) {
        return array();
    }
    $patterns = $function($pagetype, $parentcontext, $currentcontext);
    if ($parentcontext->contextlevel == CONTEXT_COURSE) {
        // including course page type
        require_once("$CFG->dirroot/course/lib.php");
        $patterns = array_merge(course_pagetypelist($pagetype, $parentcontext, $currentcontext), $patterns);
    }
    return $patterns;
}