Source for file loginzone.php

Documentation is available at loginzone.php

  1. <?php
  2.     // This file is part of the Sloodle project (www.sloodle.org)
  3.  
  4.     /**
  5.     * This page allows users to get/check their LoginZone allocation.
  6.     * Should be directly accessed as an interface script.
  7.     *
  8.     * @package sloodle
  9.     * @copyright Copyright (c) 2008 Sloodle (various contributors)
  10.     * @license http://www.gnu.org/licenses/gpl-3.0.html GNU GPL v3
  11.     *
  12.     * @contributor Peter R. Bloomfield
  13.     *
  14.     */
  15.  
  16.     /** Sloodle/Moodle configuration script. */
  17.     require_once('../sl_config.php');
  18.     /** Main Sloodle API. */
  19.     require_once(SLOODLE_LIBROOT.'/sloodle_session.php');
  20.     
  21.  
  22.     // Fetch our request parameters
  23.     $id optional_param('id'0PARAM_INT)// Course Module instance ID
  24.         
  25.     // Attempt to fetch the course module instance
  26.     if ($id{
  27.         if (!$course get_record('course''id'$id)) {
  28.             error('Could not find course');
  29.         }
  30.     else {
  31.         error('Must specify a course ID');
  32.     }
  33.     
  34.     // Get the Sloodle course data
  35.     $sloodle_course new SloodleCourse();
  36.     if (!$sloodle_course->load($course)) error(get_string('failedcourseload','sloodle'));
  37.     
  38.     // Ensure that the user is logged-in to this course
  39.     require_login($course->id);
  40.     $course_context get_context_instance(CONTEXT_COURSE$course->id);
  41.     
  42.     // Do not allow guest access
  43.     if (isguestuser()) {
  44.         error(get_string('noguestaccess''sloodle'));
  45.         exit();
  46.     }
  47.     
  48.     // This is really a dummy Sloodle Session
  49.     $sloodle new SloodleSession(false);
  50.     $sloodle->user->load_user($USER->id);
  51.     $has_avatar $sloodle->user->load_linked_avatar();
  52.     
  53.     // Log the view
  54.     add_to_log($course->id'sloodle''view loginzone'"mod/sloodle/classroom/loginzone.php?id={$course->id}""$course->id");
  55.  
  56.     // Display the page header
  57.     $navigation "<a href=\"{$CFG->wwwroot}/mod/sloodle/classroom/loginzone.php?id={$course->id}\">".get_string('loginzone','sloodle')."</a>";
  58.     print_header_simple(get_string('loginzone','sloodle')""$navigation""""true''navmenu($course));
  59.     
  60.     echo '<h1 style="text-align:center;">'.get_string('loginzone','sloodle').'</h1>';
  61.     
  62. //------------------------------------------------------    
  63.  
  64.     // Loginzone information
  65.     print_box_start('generalbox boxaligncenter boxwidthnormal');
  66.     echo '<div style="text-align:center;"><h3>'.get_string('loginzonedata','sloodle').'</h3>';
  67.     
  68.     // Does the user have an avatar?
  69.     if ($has_avatar{
  70.         print_box_start('generalbox boxaligncenter boxwidthwide');
  71.         echo get_string('loginzone:alreadyregistered','sloodle').'<br><br>';
  72.         echo "<a href=\"{$CFG->wwwroot}/mod/sloodle/view/view_user.php?id={$USER->id}&course={$course->id}\">".get_string('viewmyavatar''sloodle')."</a><br>\n";
  73.         print_box_end();
  74.     }
  75.     
  76.     // Check we have all the data we need
  77.     $data_error array();
  78.     if ($sloodle_course->get_loginzone_position(== ''$data_error[get_string('position','sloodle');
  79.     if ($sloodle_course->get_loginzone_size(== ''$data_error[get_string('size','sloodle');
  80.     if ($sloodle_course->get_loginzone_region(== ''$data_error[get_string('region','sloodle');
  81.     
  82.     // Do we have all the data?
  83.     if (count($data_error0{
  84.         // No - display the error, and stop
  85.         echo '<span style="font-weight:bold;color:red;">'.get_string('loginzone:datamissing','sloodle').'</span><br><i>(';
  86.         $isfirst true;
  87.         foreach ($data_error as $de{
  88.             if ($isfirst$isfirst false;
  89.             else echo ", ";
  90.             echo "$de";
  91.         }
  92.         echo ')</i><br><br>';
  93.         print_string('loginzone:mayneedrez','sloodle');
  94.         print_box_end();
  95.         print_footer();
  96.         exit();
  97.     }
  98.     
  99.     // Store a string indicating the time/date of the last loginzone update
  100.     $lastupdated '('.get_string('unknown','sloodle').')';
  101.     if ($sloodle_course->get_loginzone_time_updated(0$lastupdated date('Y-m-d H:i:s'$sloodle_course->get_loginzone_time_updated());
  102.     
  103.     print_box_start('generalbox boxaligncenter boxwidthnarrow');
  104.     echo get_string('position','sloodle').': '.$sloodle_course->get_loginzone_position().'<br>';
  105.     echo get_string('size','sloodle').': '.$sloodle_course->get_loginzone_size().'<br>';
  106.     echo get_string('region','sloodle').': '.$sloodle_course->get_loginzone_region().'<br>';
  107.     echo get_string('lastupdated','sloodle').': '.$lastupdated.'<br>';
  108.     print_box_end();
  109.     echo '<br>';
  110.     
  111.     // How long ago was the loginzone rezzed?
  112.     $time_difference time($sloodle_course->get_loginzone_time_updated();
  113.     if ($time_difference 1800{
  114.         echo '<span style="font-weight:bold;color:red;">'.get_string('loginzone:olddata','sloodle').'</span><br>';
  115.         echo get_string('loginzone:mayneedrez','sloodle').'<br><br>';
  116.     }
  117.     
  118.     // If the user already had an avatar, then there's nothing else to do
  119.     if ($has_avatar{
  120.         print_box_end();
  121.         print_footer();
  122.         exit();
  123.     }
  124.     
  125.     // Make sure the user is allowed to register an avatar
  126.     require_capability('mod/sloodle:registeravatar'get_context_instance(CONTEXT_SYSTEM));
  127.     
  128.     // Has a new allocation been requested?
  129.     if (isset($_REQUEST['allocate_loginzone'])) {
  130.         // Yes - generate one
  131.         if ($sloodle_course->generate_loginzone_allocation($sloodle->user)) {
  132.             echo '<span style="font-weight:bold;color:green;">'.get_string('loginzone:allocationsucceeded','sloodle').'</span><br>';
  133.             echo get_string('loginzone:expirynote','sloodle').'<br>';
  134.         else {
  135.             echo get_string('loginzone:allocationfailed','sloodle').'<br>';
  136.         }
  137.         echo '<br>';
  138.     }
  139.     
  140.     // Does the user already have a loginzone?
  141.     $alloc $sloodle_course->get_loginzone_allocation($sloodle->user);
  142.     if ($alloc{
  143.         // Yes - show the teleport link
  144.         echo '<span style="font-size:150%; font-weight:bold;">';
  145.         echo '<a href="'.$alloc.'">'.get_string('loginzone:teleport','sloodle').'</a>';
  146.         echo '</span><br><br>';
  147.     else {
  148.         echo '<span style="color:orange; font-weight:bold;">';
  149.         print_string('loginzone:needallocation','sloodle');
  150.         echo '</span><br><br>';
  151.     }
  152.     
  153.     // Create a form
  154.     echo "<br><form action=\"loginzone.php\" method=\"GET\">\n";
  155.     echo "<input type=\"hidden\" name=\"id\" value=\"{$course->id}\">\n";
  156.     echo "<input type=\"hidden\" name=\"allocate_loginzone\" value=\"true\">\n";
  157.     
  158.     // Let the user opt to generate a new LoginZone allocation
  159.     echo "<input type=\"submit\" value=\"".get_string('loginzone:newallocation','sloodle')."\"/>\n";
  160.     
  161.     // Close the form
  162.     echo "</form>\n";
  163.     
  164.     
  165.     echo '</div>';
  166.     print_box_end();
  167.  
  168.     
  169.  
  170. //------------------------------------------------------
  171.     
  172.     print_footer($course);
  173.     
  174. ?>

Documentation generated on Mon, 07 Jul 2008 12:32:46 +0100 by phpDocumentor 1.4.0