/** * Loads the navigation structure for the given activity into the activities node. * * This method utilises a callback within the modules lib.php file to load the * content specific to activity given. * * The callback is a method: {modulename}_extend_navigation() * Examples: * * {@see forum_extend_navigation()} * * {@see workshop_extend_navigation()} * * @param cm_info|stdClass $cm * @param stdClass $course * @param navigation_node $activity * @return bool */ protected function load_activity($cm, stdClass $course, navigation_node $activity) { global $CFG, $DB; // make sure we have a $cm from get_fast_modinfo as this contains activity access details if (!$cm instanceof cm_info) { $modinfo = get_fast_modinfo($course); $cm = $modinfo->get_cm($cm->id); } $activity->make_active(); $file = $CFG->dirroot . '/mod/' . $cm->modname . '/lib.php'; $function = $cm->modname . '_extend_navigation'; if (file_exists($file)) { require_once $file; if (function_exists($function)) { $activtyrecord = $DB->get_record($cm->modname, array('id' => $cm->instance), '*', MUST_EXIST); $function($activity, $course, $activtyrecord, $cm); return true; } } $activity->nodetype = navigation_node::NODETYPE_LEAF; return false; }
/** * Loads the navigation structure for the given activity into the activities node. * * This method utilises a callback within the modules lib.php file to load the * content specific to activity given. * * The callback is a method: {modulename}_extend_navigation() * Examples: * * {@link forum_extend_navigation()} * * {@link workshop_extend_navigation()} * * @param cm_info|stdClass $cm * @param stdClass $course * @param navigation_node $activity * @return bool */ protected function load_activity($cm, stdClass $course, navigation_node $activity) { global $CFG, $DB; // make sure we have a $cm from get_fast_modinfo as this contains activity access details if (!$cm instanceof cm_info) { $modinfo = get_fast_modinfo($course); $cm = $modinfo->get_cm($cm->id); } $activity->nodetype = navigation_node::NODETYPE_LEAF; $activity->make_active(); $file = $CFG->dirroot . '/mod/' . $cm->modname . '/lib.php'; $function = $cm->modname . '_extend_navigation'; if (file_exists($file)) { require_once $file; if (function_exists($function)) { $activtyrecord = $DB->get_record($cm->modname, array('id' => $cm->instance), '*', MUST_EXIST); $function($activity, $course, $activtyrecord, $cm); } } // Allow the active advanced grading method plugin to append module navigation $featuresfunc = $cm->modname . '_supports'; if (function_exists($featuresfunc) && $featuresfunc(FEATURE_ADVANCED_GRADING)) { require_once $CFG->dirroot . '/grade/grading/lib.php'; $gradingman = get_grading_manager($cm->context, $cm->modname); $gradingman->extend_navigation($this, $activity); } return $activity->has_children(); }
/** * Loads the navigation structure for the given activity into the activities node. * * This method utilises a callback within the modules lib.php file to load the * content specific to activity given. * * The callback is a method: {modulename}_extend_navigation() * Examples: * * {@see forum_extend_navigation()} * * {@see workshop_extend_navigation()} * * @param stdClass $cm * @param stdClass $course * @param navigation_node $activity * @return bool */ protected function load_activity(stdClass $cm, stdClass $course, navigation_node $activity) { global $CFG, $DB; $activity->make_active(); $file = $CFG->dirroot . '/mod/' . $cm->modname . '/lib.php'; $function = $cm->modname . '_extend_navigation'; if (file_exists($file)) { require_once $file; if (function_exists($function)) { $activtyrecord = $DB->get_record($cm->modname, array('id' => $cm->instance), '*', MUST_EXIST); $function($activity, $course, $activtyrecord, $cm); return true; } } $activity->nodetype = navigation_node::NODETYPE_LEAF; return false; }