• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP get_plugin_list_with_function函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中get_plugin_list_with_function函数的典型用法代码示例。如果您正苦于以下问题:PHP get_plugin_list_with_function函数的具体用法?PHP get_plugin_list_with_function怎么用?PHP get_plugin_list_with_function使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了get_plugin_list_with_function函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: build_tree

 /**
  * Parse all callbacks and builds the tree.
  *
  * @param integer   $user ID of the user for which the profile is displayed.
  * @param bool      $iscurrentuser true if the profile being viewed is of current user, else false.
  * @param \stdClass $course Course object
  *
  * @return tree Fully build tree to be rendered on my profile page.
  */
 public static function build_tree($user, $iscurrentuser, $course = null)
 {
     global $CFG;
     $tree = new tree();
     // Add core nodes.
     require_once $CFG->libdir . "/myprofilelib.php";
     core_myprofile_navigation($tree, $user, $iscurrentuser, $course);
     // Core components.
     $components = \core_component::get_core_subsystems();
     foreach ($components as $component => $directory) {
         if (empty($directory)) {
             continue;
         }
         $file = $directory . "/lib.php";
         if (is_readable($file)) {
             require_once $file;
             $function = "core_" . $component . "_myprofile_navigation";
             if (function_exists($function)) {
                 $function($tree, $user, $iscurrentuser, $course);
             }
         }
     }
     // Plugins.
     $types = \core_component::get_plugin_types();
     foreach ($types as $type => $dir) {
         $pluginlist = get_plugin_list_with_function($type, "myprofile_navigation", "lib.php");
         foreach ($pluginlist as $function) {
             $function($tree, $user, $iscurrentuser, $course);
         }
     }
     $tree->sort_categories();
     return $tree;
 }
开发者ID:educakanchay,项目名称:campus,代码行数:42,代码来源:manager.php


示例2: block_course_overview_get_overviews

/**
 * Display overview for courses
 *
 * @param array $courses courses for which overview needs to be shown
 * @return array html overview
 */
function block_course_overview_get_overviews($courses)
{
    $htmlarray = array();
    if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
        foreach ($modules as $fname) {
            $fname($courses, $htmlarray);
        }
    }
    return $htmlarray;
}
开发者ID:JP-Git,项目名称:moodle,代码行数:16,代码来源:locallib.php


示例3: __construct

 /**
  * Gather a list of dndupload handlers from the different mods
  *
  * @param object $course The course this is being added to (to check course_allowed_module() )
  */
 public function __construct($course, $modnames = null)
 {
     global $CFG, $PAGE;
     // Add some default types to handle.
     // Note: 'Files' type is hard-coded into the Javascript as this needs to be ...
     // ... treated a little differently.
     $this->register_type('url', array('url', 'text/uri-list', 'text/x-moz-url'), get_string('addlinkhere', 'moodle'), get_string('nameforlink', 'moodle'), get_string('whatforlink', 'moodle'), 10);
     $this->register_type('text/html', array('text/html'), get_string('addpagehere', 'moodle'), get_string('nameforpage', 'moodle'), get_string('whatforpage', 'moodle'), 20);
     $this->register_type('text', array('text', 'text/plain'), get_string('addpagehere', 'moodle'), get_string('nameforpage', 'moodle'), get_string('whatforpage', 'moodle'), 30);
     // Loop through all modules to find handlers.
     $mods = get_plugin_list_with_function('mod', 'dndupload_register');
     foreach ($mods as $component => $funcname) {
         list($modtype, $modname) = normalize_component($component);
         if ($modnames && !array_key_exists($modname, $modnames)) {
             continue;
             // Module is deactivated (hidden) at the site level.
         }
         if (!course_allowed_module($course, $modname)) {
             continue;
             // User does not have permission to add this module to the course.
         }
         $resp = $funcname();
         if (!$resp) {
             continue;
         }
         if (isset($resp['files'])) {
             foreach ($resp['files'] as $file) {
                 $this->register_file_handler($file['extension'], $modname, $file['message']);
             }
         }
         if (isset($resp['addtypes'])) {
             foreach ($resp['addtypes'] as $type) {
                 if (isset($type['priority'])) {
                     $priority = $type['priority'];
                 } else {
                     $priority = 100;
                 }
                 if (!isset($type['handlermessage'])) {
                     $type['handlermessage'] = '';
                 }
                 $this->register_type($type['identifier'], $type['datatransfertypes'], $type['addmessage'], $type['namemessage'], $type['handlermessage'], $priority);
             }
         }
         if (isset($resp['types'])) {
             foreach ($resp['types'] as $type) {
                 $noname = !empty($type['noname']);
                 $this->register_type_handler($type['identifier'], $modname, $type['message'], $noname);
             }
         }
         $PAGE->requires->string_for_js('pluginname', $modname);
     }
 }
开发者ID:masaterutakeno,项目名称:MoodleMobile,代码行数:57,代码来源:dnduploadlib.php


示例4: block_course_overview_get_overviews

/**
 * Display overview for courses
 *
 * @param array $courses courses for which overview needs to be shown
 * @return array html overview
 */
function block_course_overview_get_overviews($courses)
{
    $htmlarray = array();
    if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
        // Split courses list into batches with no more than MAX_MODINFO_CACHE_SIZE courses in one batch.
        // Otherwise we exceed the cache limit in get_fast_modinfo() and rebuild it too often.
        if (defined('MAX_MODINFO_CACHE_SIZE') && MAX_MODINFO_CACHE_SIZE > 0 && count($courses) > MAX_MODINFO_CACHE_SIZE) {
            $batches = array_chunk($courses, MAX_MODINFO_CACHE_SIZE, true);
        } else {
            $batches = array($courses);
        }
        foreach ($batches as $courses) {
            foreach ($modules as $fname) {
                $fname($courses, $htmlarray);
            }
        }
    }
    return $htmlarray;
}
开发者ID:evltuma,项目名称:moodle,代码行数:25,代码来源:locallib.php


示例5: load_local_plugin_settings

 /**
  * This function gives local plugins an opportunity to modify the settings navigation.
  */
 protected function load_local_plugin_settings()
 {
     foreach (get_plugin_list_with_function('local', 'extend_settings_navigation') as $function) {
         $function($this, $this->context);
     }
 }
开发者ID:evltuma,项目名称:moodle,代码行数:9,代码来源:navigationlib.php


示例6: load_front_page_settings

 /**
  * This function loads all of the front page settings into the settings navigation.
  * This function is called when the user is on the front page, or $COURSE==$SITE
  * @param bool $forceopen (optional)
  * @return navigation_node
  */
 protected function load_front_page_settings($forceopen = false)
 {
     global $SITE, $CFG;
     $course = clone $SITE;
     $coursecontext = context_course::instance($course->id);
     // Course context
     $frontpage = $this->add(get_string('frontpagesettings'), null, self::TYPE_SETTING, null, 'frontpage');
     if ($forceopen) {
         $frontpage->force_open();
     }
     $frontpage->id = 'frontpagesettings';
     if ($this->page->user_allowed_editing()) {
         // Add the turn on/off settings
         $url = new moodle_url('/course/view.php', array('id' => $course->id, 'sesskey' => sesskey()));
         if ($this->page->user_is_editing()) {
             $url->param('edit', 'off');
             $editstring = get_string('turneditingoff');
         } else {
             $url->param('edit', 'on');
             $editstring = get_string('turneditingon');
         }
         $frontpage->add($editstring, $url, self::TYPE_SETTING, null, null, new pix_icon('i/edit', ''));
     }
     if (has_capability('moodle/course:update', $coursecontext)) {
         // Add the course settings link
         $url = new moodle_url('/admin/settings.php', array('section' => 'frontpagesettings'));
         $frontpage->add(get_string('editsettings'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
     }
     // add enrol nodes
     enrol_add_course_navigation($frontpage, $course);
     // Manage filters
     if (has_capability('moodle/filter:manage', $coursecontext) && count(filter_get_available_in_context($coursecontext)) > 0) {
         $url = new moodle_url('/filter/manage.php', array('contextid' => $coursecontext->id));
         $frontpage->add(get_string('filters', 'admin'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/filter', ''));
     }
     // View course reports.
     if (has_capability('moodle/site:viewreports', $coursecontext)) {
         // Basic capability for listing of reports.
         $frontpagenav = $frontpage->add(get_string('reports'), null, self::TYPE_CONTAINER, null, 'frontpagereports', new pix_icon('i/stats', ''));
         $coursereports = core_component::get_plugin_list('coursereport');
         foreach ($coursereports as $report => $dir) {
             $libfile = $CFG->dirroot . '/course/report/' . $report . '/lib.php';
             if (file_exists($libfile)) {
                 require_once $libfile;
                 $reportfunction = $report . '_report_extend_navigation';
                 if (function_exists($report . '_report_extend_navigation')) {
                     $reportfunction($frontpagenav, $course, $coursecontext);
                 }
             }
         }
         $reports = get_plugin_list_with_function('report', 'extend_navigation_course', 'lib.php');
         foreach ($reports as $reportfunction) {
             $reportfunction($frontpagenav, $course, $coursecontext);
         }
     }
     // Backup this course
     if (has_capability('moodle/backup:backupcourse', $coursecontext)) {
         $url = new moodle_url('/backup/backup.php', array('id' => $course->id));
         $frontpage->add(get_string('backup'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/backup', ''));
     }
     // Restore to this course
     if (has_capability('moodle/restore:restorecourse', $coursecontext)) {
         $url = new moodle_url('/backup/restorefile.php', array('contextid' => $coursecontext->id));
         $frontpage->add(get_string('restore'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/restore', ''));
     }
     // Questions
     require_once $CFG->libdir . '/questionlib.php';
     question_extend_settings_navigation($frontpage, $coursecontext)->trim_if_empty();
     // Manage files
     if ($course->legacyfiles == 2 and has_capability('moodle/course:managefiles', $this->context)) {
         //hiden in new installs
         $url = new moodle_url('/files/index.php', array('contextid' => $coursecontext->id));
         $frontpage->add(get_string('sitelegacyfiles'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/folder', ''));
     }
     // Let plugins hook into frontpage navigation.
     $pluginsfunction = get_plugins_with_function('extend_navigation_frontpage', 'lib.php');
     foreach ($pluginsfunction as $plugintype => $plugins) {
         foreach ($plugins as $pluginfunction) {
             $pluginfunction($frontpage, $course, $coursecontext);
         }
     }
     return $frontpage;
 }
开发者ID:nadavkav,项目名称:moodle-accessibility,代码行数:89,代码来源:navigationlib.php


示例7: remove_course_contents


//.........这里部分代码省略.........
                $moddeletecourse($course, $showfeedback);
            }
            if ($instances and $showfeedback) {
                echo $OUTPUT->notification($strdeleted . get_string('pluginname', $modname), 'notifysuccess');
            }
        } else {
            // Ooops, this module is not properly installed, force-delete it in the next block.
        }
    }
    // We have tried to delete everything the nice way - now let's force-delete any remaining module data.
    // Remove all data from availability and completion tables that is associated
    // with course-modules belonging to this course. Note this is done even if the
    // features are not enabled now, in case they were enabled previously.
    $DB->delete_records_select('course_modules_completion', 'coursemoduleid IN (SELECT id from {course_modules} WHERE course=?)', array($courseid));
    // Remove course-module data.
    $cms = $DB->get_records('course_modules', array('course' => $course->id));
    foreach ($cms as $cm) {
        if ($module = $DB->get_record('modules', array('id' => $cm->module))) {
            try {
                $DB->delete_records($module->name, array('id' => $cm->instance));
            } catch (Exception $e) {
                // Ignore weird or missing table problems.
            }
        }
        context_helper::delete_instance(CONTEXT_MODULE, $cm->id);
        $DB->delete_records('course_modules', array('id' => $cm->id));
    }
    if ($showfeedback) {
        echo $OUTPUT->notification($strdeleted . get_string('type_mod_plural', 'plugin'), 'notifysuccess');
    }
    // Cleanup the rest of plugins.
    $cleanuplugintypes = array('report', 'coursereport', 'format');
    foreach ($cleanuplugintypes as $type) {
        $plugins = get_plugin_list_with_function($type, 'delete_course', 'lib.php');
        foreach ($plugins as $plugin => $pluginfunction) {
            $pluginfunction($course->id, $showfeedback);
        }
        if ($showfeedback) {
            echo $OUTPUT->notification($strdeleted . get_string('type_' . $type . '_plural', 'plugin'), 'notifysuccess');
        }
    }
    // Delete questions and question categories.
    question_delete_course($course, $showfeedback);
    if ($showfeedback) {
        echo $OUTPUT->notification($strdeleted . get_string('questions', 'question'), 'notifysuccess');
    }
    // Make sure there are no subcontexts left - all valid blocks and modules should be already gone.
    $childcontexts = $coursecontext->get_child_contexts();
    // Returns all subcontexts since 2.2.
    foreach ($childcontexts as $childcontext) {
        $childcontext->delete();
    }
    unset($childcontexts);
    // Remove all roles and enrolments by default.
    if (empty($options['keep_roles_and_enrolments'])) {
        // This hack is used in restore when deleting contents of existing course.
        role_unassign_all(array('contextid' => $coursecontext->id, 'component' => ''), true);
        enrol_course_delete($course);
        if ($showfeedback) {
            echo $OUTPUT->notification($strdeleted . get_string('type_enrol_plural', 'plugin'), 'notifysuccess');
        }
    }
    // Delete any groups, removing members and grouping/course links first.
    if (empty($options['keep_groups_and_groupings'])) {
        groups_delete_groupings($course->id, $showfeedback);
        groups_delete_groups($course->id, $showfeedback);
开发者ID:riawarra,项目名称:moodle,代码行数:67,代码来源:moodlelib.php


示例8: get_activities_overview

 /**
  * Return activities overview for the given courses.
  *
  * @param array $courseids a list of course ids
  * @return array of warnings and the activities overview
  * @since Moodle 3.2
  * @throws moodle_exception
  */
 public static function get_activities_overview($courseids)
 {
     global $USER;
     // Parameter validation.
     $params = self::validate_parameters(self::get_activities_overview_parameters(), array('courseids' => $courseids));
     $courseoverviews = array();
     list($courses, $warnings) = external_util::validate_courses($params['courseids']);
     if (!empty($courses)) {
         // Add lastaccess to each course (required by print_overview function).
         // We need the complete user data, the ws server does not load a complete one.
         $user = get_complete_user_data('id', $USER->id);
         foreach ($courses as $course) {
             if (isset($user->lastcourseaccess[$course->id])) {
                 $course->lastaccess = $user->lastcourseaccess[$course->id];
             } else {
                 $course->lastaccess = 0;
             }
         }
         $overviews = array();
         if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
             foreach ($modules as $fname) {
                 $fname($courses, $overviews);
             }
         }
         // Format output.
         foreach ($overviews as $courseid => $modules) {
             $courseoverviews[$courseid]['id'] = $courseid;
             $courseoverviews[$courseid]['overviews'] = array();
             foreach ($modules as $modname => $overviewtext) {
                 $courseoverviews[$courseid]['overviews'][] = array('module' => $modname, 'overviewtext' => $overviewtext);
             }
         }
     }
     $result = array('courses' => $courseoverviews, 'warnings' => $warnings);
     return $result;
 }
开发者ID:dg711,项目名称:moodle,代码行数:44,代码来源:externallib.php


示例9: get_supported_reports

 /**
  * Get a list of reports that support the given store instance.
  *
  * @param string $logstore Name of the store.
  *
  * @return array List of supported reports
  */
 public function get_supported_reports($logstore)
 {
     $allstores = self::get_store_plugins();
     if (empty($allstores[$logstore])) {
         // Store doesn't exist.
         return array();
     }
     $reports = get_plugin_list_with_function('report', 'supports_logstore', 'lib.php');
     $enabled = $this->stores;
     if (empty($enabled[$logstore])) {
         // Store is not enabled, init an instance.
         $classname = '\\' . $logstore . '\\log\\store';
         $instance = new $classname($this);
     } else {
         $instance = $enabled[$logstore];
     }
     $return = array();
     foreach ($reports as $report => $fulldir) {
         if (component_callback($report, 'supports_logstore', array($instance), false)) {
             $return[$report] = get_string('pluginname', $report);
         }
     }
     return $return;
 }
开发者ID:sriysk,项目名称:moodle-integration,代码行数:31,代码来源:manager.php


示例10: course_section_cm


//.........这里部分代码省略.........
         }
         $assetrestrictions .= "<div class='text'>{$groupinfo}</div>";
     }
     // TODO - ask what this is...
     if (!empty($mod->groupingid) && $canmanagegroups) {
         // Grouping label.
         $groupings = groups_get_all_groupings($mod->course);
         $assetrestrictions .= "<div class='text text-danger'>" . format_string($groupings[$mod->groupingid]->name) . "</div>";
         // TBD - add a title to show this is the Grouping...
     }
     $canviewhidden = has_capability('moodle/course:viewhiddenactivities', $mod->context);
     // If the module isn't available, or we are a teacher (can view hidden activities) then get availability
     // info.
     $availabilityinfo = '';
     if (!$mod->available || $canviewhidden) {
         $availabilityinfo = $this->course_section_cm_availability($mod, $displayoptions);
     }
     if ($availabilityinfo !== '') {
         $conditionalinfo = get_string('conditional', 'theme_snap');
         $assetrestrictions .= "<div class='text text-danger'>{$conditionalinfo}.{$availabilityinfo}</div>";
     }
     $assetrestrictions = "<div class='snap-restrictions-meta'>{$assetrestrictions}</div>";
     $assetmeta .= $assetcompletionmeta . $assetrestrictions;
     // Build output.
     $postcontent = '<div class="snap-asset-meta" data-cmid="' . $mod->id . '">' . $mod->afterlink . $assetmeta . '</div>';
     $output .= $assetlink . $contentpart . $postcontent;
     // Bail at this point if we aren't using a supported format. (Folder view is only partially supported).
     $supported = ['folderview', 'topics', 'weeks', 'site'];
     if (!in_array($COURSE->format, $supported)) {
         return parent::course_section_cm($course, $completioninfo, $mod, $sectionreturn, $displayoptions) . $assetmeta;
     }
     // Build up edit actions.
     $actions = '';
     $actionsadvanced = array();
     $coursecontext = context_course::instance($mod->course);
     $modcontext = context_module::instance($mod->id);
     $baseurl = new moodle_url('/course/mod.php', array('sesskey' => sesskey()));
     if (has_capability('moodle/course:update', $modcontext)) {
         $str = get_strings(array('delete', 'move', 'duplicate', 'hide', 'show', 'roles'), 'moodle');
         // TODO - add snap strings here.
         // Move, Edit, Delete.
         if (has_capability('moodle/course:manageactivities', $modcontext)) {
             $movealt = get_string('move', 'theme_snap', $mod->get_formatted_name());
             $moveicon = "<img title='{$movealt}' aria-hidden='true' class='svg-icon' src='" . $this->output->pix_url('move', 'theme') . "' />";
             $editalt = get_string('edit', 'theme_snap', $mod->get_formatted_name());
             $editicon = "<img title='{$editalt}' alt='{$editalt}' class='svg-icon' src='" . $this->output->pix_url('edit', 'theme') . "'/>";
             $actions .= "<input id='snap-move-mod-{$mod->id}' class='js-snap-asset-move sr-only' type='checkbox'><label class='snap-asset-move' for='snap-move-mod-{$mod->id}'><span class='sr-only'>{$movealt}</span>{$moveicon}</label>";
             $actions .= "<a class='snap-edit-asset' href='" . new moodle_url($baseurl, array('update' => $mod->id)) . "'>{$editicon}</a>";
             $actionsadvanced[] = "<a href='" . new moodle_url($baseurl, array('delete' => $mod->id)) . "'>{$str->delete}</a>";
         }
         // Hide/Show.
         if (has_capability('moodle/course:activityvisibility', $modcontext)) {
             $actionsadvanced[] = "<a href='" . new moodle_url($baseurl, array('hide' => $mod->id)) . "' class='editing_hide js_snap_hide'>{$str->hide}</a>";
             $actionsadvanced[] = "<a href='" . new moodle_url($baseurl, array('show' => $mod->id)) . "' class='editing_show js_snap_show'>{$str->show}</a>";
             // AX click to change.
         }
         // Duplicate.
         $dupecaps = array('moodle/backup:backuptargetimport', 'moodle/restore:restoretargetimport');
         if (has_all_capabilities($dupecaps, $coursecontext) && plugin_supports('mod', $mod->modname, FEATURE_BACKUP_MOODLE2) && plugin_supports('mod', $mod->modname, 'duplicate', true)) {
             $actionsadvanced[] = "<a href='" . new moodle_url($baseurl, array('duplicate' => $mod->id)) . "' class='js_snap_duplicate'>{$str->duplicate}</a>";
         }
         // Asign roles.
         if (has_capability('moodle/role:assign', $modcontext)) {
             $actionsadvanced[] = "<a href='" . new moodle_url('/admin/roles/assign.php', array('contextid' => $modcontext->id)) . "'>{$str->roles}</a>";
         }
         // Give local plugins a chance to add icons.
         $localplugins = array();
         foreach (get_plugin_list_with_function('local', 'extend_module_editing_buttons') as $function) {
             $localplugins = array_merge($localplugins, $function($mod));
         }
         // TODO - pld string is far too long....
         $locallinks = '';
         foreach ($localplugins as $localplugin) {
             $url = $localplugin->url;
             $text = $localplugin->text;
             $class = $localplugin->attributes['class'];
             $actionsadvanced[] = "<a href='{$url}' class='{$class}'>{$text}</a>";
         }
     }
     $advancedactions = '';
     if (!empty($actionsadvanced)) {
         $moreicon = "<img title='" . get_string('more', 'theme_snap') . "' alt='" . get_string('more', 'theme_snap') . "' class='svg-icon' src='" . $this->output->pix_url('more', 'theme') . "'/>";
         $advancedactions = "<div class='dropdown snap-edit-more-dropdown'>\n                      <a href='#' class='dropdown-toggle snap-edit-asset-more' data-toggle='dropdown' aria-expanded='false' aria-haspopup='true'>{$moreicon}</a>\n                      <ul class='dropdown-menu'>";
         foreach ($actionsadvanced as $action) {
             $advancedactions .= "<li>{$action}</li>";
         }
         $advancedactions .= "</ul></div>";
     }
     // Add actions menu.
     if ($actions) {
         $output .= "<div class='snap-asset-actions' role='region' aria-label='actions'>";
         $output .= $actions . $advancedactions;
         $output .= "</div>";
     }
     $output .= "</div>";
     // Close .activityinstance.
     $output .= "</div>";
     // Close .asset-wrapper.
     return $output;
 }
开发者ID:pramithkm,项目名称:moodle-theme_snap,代码行数:101,代码来源:course_renderer.php


示例11: local_print_course_overview

/**
 * an adaptation of the standard print_course_overview()
 * @param array $courses a course array to print
 * @param boolean $return if true returns the string
 * @return the rendered view if return is true
 */
function local_print_course_overview($courses, $options = array())
{
    global $PAGE, $OUTPUT;
    $renderer = $PAGE->get_renderer('local_my');
    // Be sure we have something in lastaccess.
    foreach ($courses as $cid => $c) {
        $courses[$cid]->lastaccess = 0 + @$courses[$cid]->lastaccess;
    }
    $overviews = array();
    if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
        foreach ($modules as $fname) {
            $fname($courses, $overviews);
        }
    }
    $str = '';
    $str .= '<div class="courselist">';
    foreach ($courses as $cid => $c) {
        $str .= '<div>';
        if (empty($options['nocompletion'])) {
            $str .= $renderer->course_completion_gauge($c, 'div', $options['gaugewidth'], $options['gaugeheight']);
        }
        $str .= $renderer->course_simple_div($c);
        $str .= '</div>';
    }
    $str .= '</div>';
    return $str;
}
开发者ID:vfremaux,项目名称:moodle-local_my,代码行数:33,代码来源:lib.php


示例12: init_search_conditions

 /**
  * Initialize search conditions from plugins
  * local_*_get_question_bank_search_conditions() must return an array of
  * \core_question\bank\search\condition objects.
  */
 protected function init_search_conditions()
 {
     $searchplugins = get_plugin_list_with_function('local', 'get_question_bank_search_conditions');
     foreach ($searchplugins as $component => $function) {
         foreach ($function($this) as $searchobject) {
             $this->add_searchcondition($searchobject);
         }
     }
 }
开发者ID:Gavinthisisit,项目名称:Moodle,代码行数:14,代码来源:view.php


示例13: require_login

// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * On install, builds the search data for all existing content.
 *
 * @package local_ousearch
 * @copyright 2014 The Open University
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require __DIR__ . '/../../config.php';
// Check administrator or similar.
require_login();
require_capability('moodle/site:config', context_system::instance());
$url = new moodle_url('/local/ousearch/postinstall.php');
$PAGE->set_url($url);
$PAGE->set_context(context_system::instance());
echo $OUTPUT->header();
if ($_SERVER['REQUEST_METHOD'] === 'POST' && confirm_sesskey()) {
    require_once __DIR__ . '/searchlib.php';
    $plugins = get_plugin_list_with_function('mod', 'ousearch_update_all');
    foreach ($plugins as $plugin => $fn) {
        $fn(true);
    }
} else {
    echo $OUTPUT->box(get_string('postinstall', 'local_ousearch'));
    echo $OUTPUT->single_button($url, get_string('continue'));
}
echo $OUTPUT->footer();
开发者ID:profcab,项目名称:moodle-local_ousearch,代码行数:31,代码来源:postinstall.php


示例14: lti_extend_lti_services

/**
 * Extend the LTI services through the ltisource plugins
 *
 * @param stdClass $data LTI request data
 * @return bool
 * @throws coding_exception
 */
function lti_extend_lti_services($data)
{
    $plugins = get_plugin_list_with_function('ltisource', $data->messagetype);
    if (!empty($plugins)) {
        // There can only be one.
        if (count($plugins) > 1) {
            throw new coding_exception('More than one ltisource plugin handler found');
        }
        $data->xml = new SimpleXMLElement($data->body);
        $callback = current($plugins);
        call_user_func($callback, $data);
        return true;
    }
    return false;
}
开发者ID:evltuma,项目名称:moodle,代码行数:22,代码来源:servicelib.php


示例15: local_ltiprovider_call_hook

/**
 * Call a hook present in a subplugin
 *
 * @param  string $hookname The hookname (function without franken style prefix)
 * @param  object $data     Object containing data to be used by the hook function
 * @return bool             Allways false
 */
function local_ltiprovider_call_hook($hookname, $data)
{
    $plugins = get_plugin_list_with_function('ltiproviderextension', $hookname);
    if (!empty($plugins)) {
        foreach ($plugins as $plugin) {
            call_user_func($plugin, $data);
        }
    }
    return false;
}
开发者ID:OctaveBabel,项目名称:moodle-itop,代码行数:17,代码来源:lib.php


示例16: load_module_settings

 /**
  * This function calls the module function to inject module settings into the
  * settings navigation tree.
  *
  * This only gets called if there is a corrosponding function in the modules
  * lib file.
  *
  * For examples mod/forum/lib.php {@link forum_extend_settings_navigation()}
  *
  * @return navigation_node|false
  */
 protected function load_module_settings()
 {
     global $CFG;
     if (!$this->page->cm && $this->context->contextlevel == CONTEXT_MODULE && $this->context->instanceid) {
         $cm = get_coursemodule_from_id(false, $this->context->instanceid, 0, false, MUST_EXIST);
         $this->page->set_cm($cm, $this->page->course);
     }
     $file = $CFG->dirroot . '/mod/' . $this->page->activityname . '/lib.php';
     if (file_exists($file)) {
         require_once $file;
     }
     $modulenode = $this->add(get_string('pluginadministration', $this->page->activityname));
     $modulenode->force_open();
     // Settings for the module
     if (has_capability('moodle/course:manageactivities', $this->page->cm->context)) {
         $url = new moodle_url('/course/modedit.php', array('update' => $this->page->cm->id, 'return' => true, 'sesskey' => sesskey()));
         $modulenode->add(get_string('editsettings'), $url, navigation_node::TYPE_SETTING, null, 'modedit');
     }
     // Assign local roles
     if (count(get_assignable_roles($this->page->cm->context)) > 0) {
         $url = new moodle_url('/' . $CFG->admin . '/roles/assign.php', array('contextid' => $this->page->cm->context->id));
         $modulenode->add(get_string('localroles', 'role'), $url, self::TYPE_SETTING, null, 'roleassign');
     }
     // Override roles
     if (has_capability('moodle/role:review', $this->page->cm->context) or count(get_overridable_roles($this->page->cm->context)) > 0) {
         $url = new moodle_url('/' . $CFG->admin . '/roles/permissions.php', array('contextid' => $this->page->cm->context->id));
         $modulenode->add(get_string('permissions', 'role'), $url, self::TYPE_SETTING, null, 'roleoverride');
     }
     // Check role permissions
     if (has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:assign'), $this->page->cm->context)) {
         $url = new moodle_url('/' . $CFG->admin . '/roles/check.php', array('contextid' => $this->page->cm->context->id));
         $modulenode->add(get_string('checkpermissions', 'role'), $url, self::TYPE_SETTING, null, 'rolecheck');
     }
     // Manage filters
     if (has_capability('moodle/filter:manage', $this->page->cm->context) && count(filter_get_available_in_context($this->page->cm->context)) > 0) {
         $url = new moodle_url('/filter/manage.php', array('contextid' => $this->page->cm->context->id));
         $modulenode->add(get_string('filters', 'admin'), $url, self::TYPE_SETTING, null, 'filtermanage');
     }
     // Add reports
     $reports = get_plugin_list_with_function('report', 'extend_navigation_module', 'lib.php');
     foreach ($reports as $reportfunction) {
         $reportfunction($modulenode, $this->page->cm);
     }
     // Add a backup link
     $featuresfunc = $this->page->activityname . '_supports';
     if (function_exists($featuresfunc) && $featuresfunc(FEATURE_BACKUP_MOODLE2) && has_capability('moodle/backup:backupactivity', $this->page->cm->context)) {
         $url = new moodle_url('/backup/backup.php', array('id' => $this->page->cm->course, 'cm' => $this->page->cm->id));
         $modulenode->add(get_string('backup'), $url, self::TYPE_SETTING, null, 'backup');
     }
     // Restore this activity
     $featuresfunc = $this->page->activityname . '_supports';
     if (function_exists($featuresfunc) && $featuresfunc(FEATURE_BACKUP_MOODLE2) && has_capability('moodle/restore:restoreactivity', $this->page->cm->context)) {
         $url = new moodle_url('/backup/restorefile.php', array('contextid' => $this->page->cm->context->id));
         $modulenode->add(get_string('restore'), $url, self::TYPE_SETTING, null, 'restore');
     }
     // Allow the active advanced grading method plugin to append its settings
     $featuresfunc = $this->page->activityname . '_supports';
     if (function_exists($featuresfunc) && $featuresfunc(FEATURE_ADVANCED_GRADING) && has_capability('moodle/grade:managegradingforms', $this->page->cm->context)) {
         require_once $CFG->dirroot . '/grade/grading/lib.php';
         $gradingman = get_grading_manager($this->page->cm->context, $this->page->activityname);
         $gradingman->extend_settings_navigation($this, $modulenode);
     }
     $function = $this->page->activityname . '_extend_settings_navigation';
     if (!function_exists($function)) {
         return $modulenode;
     }
     $function($this, $modulenode);
     // Remove the module node if there are no children
     if (empty($modulenode->children)) {
         $modulenode->remove();
     }
     return $modulenode;
 }
开发者ID:nmicha,项目名称:moodle,代码行数:84,代码来源:navigationlib.php


示例17: cron_execute_plugin_type

/**
 * Executes cron functions for a specific type of plugin.
 *
 * @param string $plugintype Plugin type (e.g. 'report')
 * @param string $description If specified, will display 'Starting (whatever)'
 *   and 'Finished (whatever)' lines, otherwise does not display
 */
function cron_execute_plugin_type($plugintype, $description = null)
{
    global $DB;
    // Get list from plugin => function for all plugins
    $plugins = get_plugin_list_with_function($plugintype, 'cron');
    // Modify list for backward compatibility (different files/names)
    $plugins = cron_bc_hack_plugin_functions($plugintype, $plugins);
    // Return if no plugins with cron function to process
    if (!$plugins) {
        return;
    }
    if ($description) {
        mtrace('Starting ' . $description);
    }
    foreach ($plugins as $component => $cronfunction) {
        $dir = core_component::get_component_directory($component);
        // Get cron period if specified in version.php, otherwise assume every cron
        $cronperiod = 0;
        if (file_exists("{$dir}/version.php")) {
            $plugin = new stdClass();
            include "{$dir}/version.php";
            if (isset($plugin->cron)) {
                $cronperiod = $plugin->cron;
            }
        }
        // Using last cron and cron period, don't run if it already ran recently
        $lastcron = get_config($component, 'lastcron');
        if ($cronperiod && $lastcron) {
            if ($lastcron + $cronperiod > time()) {
                // do not execute cron yet
                continue;
            }
        }
        mtrace('Processing cron function for ' . $component . '...');
        cron_trace_time_and_memory();
        $pre_dbqueries = $DB->perf_get_queries();
        $pre_time = microtime(true);
        $cronfunction();
        mtrace("done. (" . ($DB->perf_get_queries() - $pre_dbqueries) . " dbqueries, " . round(microtime(true) - $pre_time, 2) . " seconds)");
        set_config('lastcron', time(), $component);
        @set_time_limit(0);
    }
    if ($description) {
        mtrace('Finished ' . $description);
    }
}
开发者ID:tyleung,项目名称:CMPUT401MoodleExams,代码行数:53,代码来源:cronlib.php


示例18: lti_extend_lti_services

/**
 * Extend the LTI services through the ltisource plugins
 *
 * @param stdClass $data LTI request data
 * @return bool
 * @throws coding_exception
 */
function lti_extend_lti_services($data)
{
    $plugins = get_plugin_list_with_function('ltisource', $data->messagetype);
    if (!empty($plugins)) {
        try {
            // There can only be one
            if (count($plugins) > 1) {
                throw new coding_exception('More than one ltisource plugin handler found');
            }
            $callback = current($plugins);
            call_user_func($callback, $data);
        } catch (moodle_exception $e) {
            $error = $e->getMessage();
            if (debugging('', DEBUG_DEVELOPER)) {
                $error .= ' ' . format_backtrace(get_exception_info($e)->backtrace);
            }
            $responsexml = lti_get_response_xml('failure', $error, $data->messageid, $data->messagetype);
            header('HTTP/1.0 400 bad request');
            echo $responsexml->asXML();
        }
        return true;
    }
    return false;
}
开发者ID:EmmanuelYupit,项目名称:educursos,代码行数:31,代码来源:servicelib.php


示例19: course_check_updates

/**
 * Check for course updates in the given context level instances (only modules supported right Now)
 *
 * @param  stdClass $course  course object
 * @param  array $tocheck    instances to check for updates
 * @param  array $filter check only for updates in these areas
 * @return array list of warnings and instances with updates information
 * @since  Moodle 3.2
 */
function course_check_updates($course, $tocheck, $filter = array())
{
    global $CFG, $DB;
    $instances = array();
    $warnings = array();
    $modulescallbacksupport = array();
    $modinfo = get_fast_modinfo( 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP get_plugin_page_hook函数代码示例发布时间:2022-05-15
下一篇:
PHP get_plugin_list_with_file函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap