dirroot .'/mod/sloodle/sl_config.php'); if (defined('SLOODLE_LIBROOT')) { /** Inlcude the current general Sloodle functionality. */ require_once(SLOODLE_LIBROOT.'/general.php'); /** Include the Sloodle course functionality. */ require_once(SLOODLE_LIBROOT.'/course.php'); } /** Include the old Sloodle configuration, in case the module is out-dated. */ if (!defined('SLOODLE_VERSION')) { @include_once($CFG->dirroot .'/mod/sloodle/config.php'); if (defined('SLOODLE_DIRROOT')) { /** Include the old general Sloodle functionality. */ require_once(SLOODLE_DIRROOT.'/lib/sl_generallib.php'); } } /** Define the Sloodle Menu Block version. */ define('SLOODLE_MENU_VERSION', 2.0); /** * Defines the block class. * @package sloodle */ class block_sloodle_menu extends block_base { /** * Perform block initialisation. * @return void */ function init() { global $CFG; $this->title = get_string('blockname', 'block_sloodle_menu'); $this->content_type = BLOCK_TYPE_TEXT; $this->version = 2010110311; } /** * Indicates whether or not this module has a global configuration page. * @return bool True if there is a global configuration page, or false otherwise. */ function has_config() { return false; } /** * Indicates whether or not to hide the header of this block. * @return bool True to hide the header, or false to show it. */ function hide_header() { return false; } /** * Defines *and* returns the content of this block. * @return object */ function get_content() { global $CFG, $COURSE, $USER; // Construct the content $this->content = new stdClass; $this->content->text = ''; $this->content->footer = ''; // If no course has been specified, then we are using the site course if (!isset($COURSE)) { $COURSE = get_site(); } // If the user is not logged in or if they are using guest access, then we can't show anything if (!isloggedin() || isguestuser()) { return $this->content; } // Get the context instance for this course $course_context = get_context_instance(CONTEXT_COURSE, $COURSE->id); // This version of the menu isn't compatible with older version of the Sloodle module if (defined('SLOODLE_VERSION') && SLOODLE_VERSION < 0.4) { $this->content->text = get_string('oldmodule', 'block_sloodle_menu'); return $this->content; } // Has the Sloodle activity module been installed? if (!(function_exists("sloodle_is_installed") && sloodle_is_installed())) { $this->content->text = get_string('sloodlenotinstalled', 'block_sloodle_menu'); return $this->content; } // Get the Sloodle course data $sloodle_course = new SloodleCourse(); if (!$sloodle_course->load((int)$COURSE->id)) { $this->content->text = get_string('failedloadcourse', 'block_sloodle_menu'); return $this->content; } // Add the Sloodle and Sloodle Menu version info to the footer of the block $this->content->footer = ''.get_string('sloodlemenuversion', 'block_sloodle_menu').': '.(string)SLOODLE_MENU_VERSION.''; $this->content->footer .= '
'.get_string('sloodleversion', 'block_sloodle_menu').': '.(string)SLOODLE_VERSION.''; // Attempt to find a Sloodle user for the Moodle user $dbquery = " SELECT * FROM {$CFG->prefix}sloodle_users WHERE userid = ? AND NOT (avname = '' AND uuid = '') "; $dbresult = sloodle_get_records_sql_params($dbquery, array($USER->id)); $sl_avatar_name = ""; if (!is_array($dbresult) || count($dbresult) == 0) $userresult = FALSE; else if (count($dbresult) > 1) $userresult = "Multiple avatars associated with your Moodle account."; else { $userresult = TRUE; reset($dbresult); $cur = current($dbresult); $sl_avatar_name = $cur->avname; } if ($userresult === TRUE) { // Success // Make sure there was a name if (empty($sl_avatar_name)) $sl_avatar_name = '('.get_string('nameunknown', 'block_sloodle_menu').')'; $this->content->text .= '
'.get_string('youravatar', 'block_sloodle_menu').':
'; // Make the avatar name a link if the user management page exists $this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=user&id={$USER->id}&course={$COURSE->id}\">$sl_avatar_name"; $this->content->text .= '
'; } else if (is_string($userresult)) { // An error occurred $this->content->text .= '
'.get_string('youravatar', 'block_sloodle_menu').':
ERROR ('.$userresult.')
'; } else { // No avatar linked yet $this->content->text .= '
('.get_string('noavatar', 'block_sloodle_menu').')
'; } // Add links to common Sloodle stuff $this->content->text .= '
'; // Add the Sloodle profile link $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/user.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=user&id={$USER->id}&course={$COURSE->id}\">".get_string('mysloodleprofile', 'block_sloodle_menu')."
"; // Show a link to all Sloodle activities on this course //TODO: possibly show number of visible Sloodle activities? $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/boxes.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/index.php?id={$COURSE->id}\">".get_string('sloodleactivities', 'block_sloodle_menu')."
"; // Do we have LoginZone data for this course? if ($sloodle_course->has_loginzone_data()) { // Show a link to the LoginZone for this course $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/loginzone.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/classroom/loginzone.php?id={$COURSE->id}\">".get_string('courseloginzone', 'block_sloodle_menu')."
"; } //$this->content->text .= '
'; // Add a link for avatars list $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/user_mng.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=users&course={$COURSE->id}\">".get_string('avatars', 'block_sloodle_menu')."
"; // Add a link to Sloodle course settings, if the user can update the course if (has_capability('moodle/course:update', $course_context)) { $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/page.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=course&id={$COURSE->id}\">".get_string('editcourse', 'block_sloodle_menu')."
\n"; } // Add a link to Sloodle logs, if the user can update the course //if (has_capability('moodle/course:update', $course_context)) { //$this->content->text .= "wwwroot}/blocks/sloodle_menu/img/notes.gif\" width=\"16\" height=\"16\"/> "; //$this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=logs&id={$COURSE->id}\">".get_string('logs:view', 'sloodle')."
\n"; //} // Add a link to Sloodle Backpack $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/coin.png\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}/mod/sloodle/view.php?_type=backpack&id={$COURSE->id}\">".get_string('backpack:view', 'sloodle')."
\n"; // Add a module configuration link if the user has authority to administer the module if (has_capability('moodle/site:config', $course_context)) { // The address of the configuration page depends on our version of Moodle if ($CFG->version < 2007101500) { // < 1.9 $address = "/admin/module.php?module=sloodle"; } else { // >= 1.9 $address = "/admin/settings.php?section=modsettingsloodle"; } $this->content->text .= "wwwroot}/blocks/sloodle_menu/img/configure.gif\" width=\"16\" height=\"16\"/> "; $this->content->text .= "wwwroot}$address\">".get_string('sloodleconfig', 'block_sloodle_menu')."
"; } $this->content->text .= '
'; return $this->content; } } ?>