cvsimport fixups
authorMartin Langhoff <martin@catalyst.net.nz>
Sat, 7 Jul 2007 02:18:30 +0000 (14:18 +1200)
committerMartin Langhoff <martin@catalyst.net.nz>
Sat, 7 Jul 2007 02:18:30 +0000 (14:18 +1200)
205 files changed:
admin/index.php
auth/README2 [deleted file]
auth/cas/auth_ldap_sync_users.php [deleted file]
auth/cas/forbidden.html [deleted file]
auth/cas/forbidden.php [deleted file]
auth/cas/index_form.html [deleted file]
auth/cas/login.php [deleted file]
auth/cas/logout.php [deleted file]
auth/nologin/auth.php
backup/db/mysql.sql [deleted file]
backup/db/postgres7.sql [deleted file]
blocks/blog_tags/block_blog_tags.php
blocks/db/mysql.sql [deleted file]
blocks/db/postgres7.sql [deleted file]
blocks/news_items/block_news_items.php
blocks/online_users/block_online_users.php
blocks/rss_client/db/mysql.sql [deleted file]
blocks/rss_client/db/postgres7.sql [deleted file]
course/grades.php
course/group-edit.html [deleted file]
course/group.php [deleted file]
course/groups-edit.html [deleted file]
course/groups.php [deleted file]
course/moodleform_mod.php
enrol/authorize/db/mysql.sql [deleted file]
enrol/authorize/db/postgres7.sql [deleted file]
enrol/paypal/db/mysql.sql [deleted file]
enrol/paypal/db/postgres7.sql [deleted file]
group/db/mysql.sql [deleted file]
group/db/postgres7.sql [deleted file]
group/edit.php
group/edit_form.php
group/grouping.php
group/groupui/addgroupstogrouping-form.html [deleted file]
group/groupui/addgroupstogrouping-form.js [deleted file]
group/groupui/addgroupstogrouping-xml.php [deleted file]
group/groupui/addmembers-form.html [deleted file]
group/groupui/addmembers-form.js [deleted file]
group/groupui/addmembers-xml.php [deleted file]
group/groupui/ajax.js [deleted file]
group/groupui/connection.js [deleted file]
group/groupui/createautomaticgrouping-form.html [deleted file]
group/groupui/createautomaticgrouping-form.js [deleted file]
group/groupui/createautomaticgrouping-xml.php [deleted file]
group/groupui/creategroup-form.html [deleted file]
group/groupui/creategroup-form.js [deleted file]
group/groupui/creategroup-xml.php [deleted file]
group/groupui/creategrouping-form.html [deleted file]
group/groupui/creategrouping-form.js [deleted file]
group/groupui/creategrouping-xml.php [deleted file]
group/groupui/deletegroup-xml.php [deleted file]
group/groupui/deletegroup.js [deleted file]
group/groupui/deletegrouping-xml.php [deleted file]
group/groupui/deletegrouping.js [deleted file]
group/groupui/editgroupingpermissions-form.html [deleted file]
group/groupui/editgroupingpermissions-form.js [deleted file]
group/groupui/editgroupingpermissions-xml.php [deleted file]
group/groupui/editgroupingsettings-form.html [deleted file]
group/groupui/editgroupingsettings-form.js [deleted file]
group/groupui/editgroupingsettings-xml.php [deleted file]
group/groupui/editgroupsettings-form.html [deleted file]
group/groupui/editgroupsettings-form.js [deleted file]
group/groupui/editgroupsettings-xml.php [deleted file]
group/groupui/form.css [deleted file]
group/groupui/form.html [deleted file]
group/groupui/getgroupingpermissions-xml.php [deleted file]
group/groupui/getgroupings-xml.php [deleted file]
group/groupui/getgroupingsettings-xml.php [deleted file]
group/groupui/getgroupsettings-xml.php [deleted file]
group/groupui/getgroupsingrouping-xml.php [deleted file]
group/groupui/getgroupsnotingrouping-xml.php [deleted file]
group/groupui/getmembers-xml.php [deleted file]
group/groupui/getnonmembers-xml.php [deleted file]
group/groupui/index.php [deleted file]
group/groupui/main-buttons-form.js [deleted file]
group/groupui/main-form.html [deleted file]
group/groupui/main-init-form.js [deleted file]
group/groupui/main-selects-form.js [deleted file]
group/groupui/printgrouping.php [deleted file]
group/groupui/removegroupfromgrouping-xml.php [deleted file]
group/groupui/removegroupfromgrouping.js [deleted file]
group/groupui/removemembers-xml.php [deleted file]
group/groupui/removemembers.js [deleted file]
group/groupui/util-form.js [deleted file]
group/groupui/yahoo.js [deleted file]
group/index.php
group/lib/legacylib.php
lib/cas/CAS.php [deleted file]
lib/cas/PGTStorage/pgt-db.php [deleted file]
lib/cas/PGTStorage/pgt-file.php [deleted file]
lib/cas/PGTStorage/pgt-main.php [deleted file]
lib/cas/client.php [deleted file]
lib/cas/domxml-php4-php5.php [deleted file]
lib/cas/languages/english.php [deleted file]
lib/cas/languages/french.php [deleted file]
lib/cas/languages/greek.php [deleted file]
lib/cas/languages/languages.php [deleted file]
lib/db/mysql.sql [deleted file]
lib/db/postgres7.sql [deleted file]
lib/db/upgrade.php
lib/editor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js
lib/editor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
lib/editor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js
lib/editor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js
lib/editor/tinymce/jscripts/tiny_mce/tiny_mce_gzip.php
lib/editor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js
lib/editor/tinymce/jscripts/tiny_mce/utils/form_utils.js
lib/editor/tinymce/jscripts/tiny_mce/utils/mclayer.js
lib/editor/tinymce/jscripts/tiny_mce/utils/mctabs.js
lib/editor/tinymce/jscripts/tiny_mce/utils/validate.js
lib/moodlelib.php
lib/pear/HTML/QuickForm/Rule/Compare.php
lib/soap/nusoap.php
login/index.php
mod/assignment/db/mysql.sql [deleted file]
mod/assignment/db/postgres7.sql [deleted file]
mod/chat/db/mysql.sql [deleted file]
mod/chat/db/postgres7.sql [deleted file]
mod/chat/gui_header_js/index.php
mod/chat/view.php
mod/choice/db/mysql.sql [deleted file]
mod/choice/db/postgres7.sql [deleted file]
mod/choice/lib.php
mod/data/db/mysql.sql [deleted file]
mod/data/db/postgres7.sql [deleted file]
mod/exercise/db/mysql.sql [deleted file]
mod/exercise/db/postgres7.sql [deleted file]
mod/forum/db/mysql.sql [deleted file]
mod/forum/db/postgres7.sql [deleted file]
mod/glossary/db/mysql.sql [deleted file]
mod/glossary/db/postgres7.sql [deleted file]
mod/hotpot/db/mysql.sql [deleted file]
mod/hotpot/db/postgres7.sql [deleted file]
mod/journal/db/mysql.sql [deleted file]
mod/journal/db/postgres7.sql [deleted file]
mod/label/db/mysql.sql [deleted file]
mod/label/db/postgres7.sql [deleted file]
mod/lams/db/mysql.sql [deleted file]
mod/lams/db/postgres7.sql [deleted file]
mod/lesson/db/mysql.sql [deleted file]
mod/lesson/db/postgres7.sql [deleted file]
mod/quiz/db/mysql.sql [deleted file]
mod/quiz/db/postgres7.sql [deleted file]
mod/quiz/report/analysis/report.php
mod/quiz/tabs.php
mod/resource/db/mysql.sql [deleted file]
mod/resource/db/postgres7.sql [deleted file]
mod/resource/fetch.php [deleted file]
mod/resource/mod.html [deleted file]
mod/resource/type/common.html [deleted file]
mod/resource/type/common_end.html [deleted file]
mod/resource/type/directory/directory.html [deleted file]
mod/resource/type/file/file.html [deleted file]
mod/resource/type/file/localfile.php
mod/resource/type/html/html.html [deleted file]
mod/resource/type/ims/ims.html [deleted file]
mod/resource/type/repository/repository.html [deleted file]
mod/resource/type/text/text.html [deleted file]
mod/scorm/db/mysql.sql [deleted file]
mod/scorm/db/postgres7.sql [deleted file]
mod/survey/db/mysql.sql [deleted file]
mod/survey/db/postgres7.sql [deleted file]
mod/wiki/db/mysql.sql [deleted file]
mod/wiki/db/postgres7.sql [deleted file]
mod/workshop/db/mysql.sql [deleted file]
mod/workshop/db/postgres7.sql [deleted file]
question/showbank.php [deleted file]
question/tabs.php
question/type/calculated/db/mysql.sql [deleted file]
question/type/calculated/db/postgres7.sql [deleted file]
question/type/datasetdependent/categorydatasetdefinitions.php [deleted file]
question/type/match/db/mysql.sql [deleted file]
question/type/match/db/postgres7.sql [deleted file]
question/type/multianswer/db/mysql.sql [deleted file]
question/type/multianswer/db/postgres7.sql [deleted file]
question/type/multichoice/db/mysql.sql [deleted file]
question/type/multichoice/db/postgres7.sql [deleted file]
question/type/numerical/db/mysql.sql [deleted file]
question/type/numerical/db/postgres7.sql [deleted file]
question/type/randomsamatch/db/mysql.sql [deleted file]
question/type/randomsamatch/db/postgres7.sql [deleted file]
question/type/rqp/db/install.xml [deleted file]
question/type/rqp/db/mysql.php [deleted file]
question/type/rqp/db/mysql.sql [deleted file]
question/type/rqp/db/postgres7.php [deleted file]
question/type/rqp/db/postgres7.sql [deleted file]
question/type/rqp/db/upgrade.php [deleted file]
question/type/rqp/editquestion.html [deleted file]
question/type/rqp/editquestion.php [deleted file]
question/type/rqp/lib.php [deleted file]
question/type/rqp/questiontype.php [deleted file]
question/type/rqp/remote.php [deleted file]
question/type/rqp/rqp.php [deleted file]
question/type/rqp/types.php [deleted file]
question/type/rqp/version.php [deleted file]
question/type/shortanswer/db/mysql.sql [deleted file]
question/type/shortanswer/db/postgres7.sql [deleted file]
question/type/truefalse/db/mysql.sql [deleted file]
question/type/truefalse/db/postgres7.sql [deleted file]
question/upgrade.php
theme/cornflower/styles_color.css [deleted file]
theme/cornflower/styles_fonts.css [deleted file]
theme/cornflower/styles_layout.css [deleted file]
theme/cornflower/styles_moz.css [deleted file]
version.php

index af41e66..6bfba86 100644 (file)
 
 /// Check if the guest user exists.  If not, create one.
     if (! record_exists("user", "username", "guest")) {
-        $guest->auth        = "manual";
-        $guest->username    = "guest";
-        $guest->password    = md5("guest");
-        $guest->firstname   = addslashes(get_string("guestuser"));
-        $guest->lastname    = " ";
-        $guest->email       = "root@localhost";
-        $guest->description = addslashes(get_string("guestuserinfo"));
-        $guest->mnethostid  = $CFG->mnet_localhost_id;
-        $guest->confirmed   = 1;
-        $guest->lang        = $CFG->lang;
-        $guest->timemodified= time();
-
-        if (! $guest->id = insert_record("user", $guest)) {
+        if (! $guest = create_guest_record()) {
             notify("Could not create guest user record !!!");
         }
     }
diff --git a/auth/README2 b/auth/README2
deleted file mode 100644 (file)
index 2934800..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-AUTHENTICATION PLUGINS
-----------------------
-Each authentication plugin is now contained in a subfolder as a class definition
-in the auth.php file. For instance, the LDAP authentication plugin is the class
-called auth_plugin_ldap defined in:
-
-   /auth/ldap/auth.php
-
-To instantiate the class, there is a function in lib/moodlelib called
-get_auth_plugin() that does the work for you:
-
-   $ldapauth = get_auth_plugin('ldap');
-
-Auth plugin classes are pretty basic. They contain the same functions that were
-previously in each plugin's lib.php file, but refactored to become class
-methods, and tweaked to reference the plugin's instantiated config to get at the
-settings, rather than the global $CFG variable.
-
-Configuration
------------------
-
-All auth plugins must have a config property that contains the name value pairs
-from the config_plugins table. This is populated using the get_config() function
-in the constructor. The settings keys have also had the "auth_" prefix, as well
-as the auth plugin name, trimmed. For instance, what used to be
-
-   echo $CFG->auth_ldapversion;
-
-is now accessed as
-
-   echo $ldapauth->config->version;
-
-Authentication settings have been moved to the config_plugins database table,
-with the plugin field set to "auth/foo" (for instance, "auth/ldap").
-
-Method Names
------------------
-
-When the functions from lib.php were ported to methods in auth.php, the "auth_"
-prefix was dropped. For instance, calls to
-
-   auth_user_login($user, $pass);
-
-now become
-
-   $ldapauth->user_login($user, $pass);
-
-this also avoids having to worry about which auth/lib file to include since
-Moodle takes care of it for you when you create an instance with
-get_auth_plugin().
-
-Code Use
------------------
-
-Code calling auth plugins can use method_exists() to determine plugin
-functionality, much in the same way that function_exists() was used until now.
-In addition, auth plugins provide some methods by default that can be called:
-
-user_login($username, $password)
-   This is the primary method that is used by the authenticate_user_login()
-   function in moodlelib.php. This method should return a boolean indicating
-   whether or not the username and password authenticate successfully.
-   Both parameter must have magic quotes applied.
-
-is_internal()
-   Returns true if this authentication plugin is "internal" (which means that
-   Moodle stores the users' passwords and other details in the local Moodle
-   database).
-
-can_change_password()
-   Returns true if the plugin can change the users' passwords.
-
-change_password_url()
-   Returns the URL for changing the users' passwords, or false if the default
-   URL can be used.
-
-Other Methods
------------------
-
-get_userinfo($username)
-   This method should return an array of fields from the authentication source
-   for the given username. Username parameter must have magic quotes applied.
-   The returned array does not have magic quotes applied.
-
-Upgrading from Moodle 1.7
------------------------------
-
-Moodle will upgrade the old auth settings (in $CFG->auth_foobar where foo is the
-auth plugin and bar is the setting) to the new style in the config_plugin
-database table.
-
diff --git a/auth/cas/auth_ldap_sync_users.php b/auth/cas/auth_ldap_sync_users.php
deleted file mode 100644 (file)
index e4caec4..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/** auth_ldap_sync_users.php
- *  Modified for cas Module
- *
- * This script is meant to be called from a cronjob to sync moodle with the LDAP
- * backend in those setups where the LDAP backend acts as 'master'.
- *
- * Recommended cron entry:
- * # 5 minutes past 4am
- * 5 4 * * * /usr/bin/php -c /etc/php4/cli/php.ini /var/www/moodle/auth/ldap/auth_ldap_sync_users.php
- *
- * Notes:
- *   - If you have a large number of users, you may want to raise the memory limits
- *     by passing -d momory_limit=256M
- *   - For debugging & better logging, you are encouraged to use in the command line:
- *     -d log_errors=1 -d error_reporting=E_ALL -d display_errors=0 -d html_errors=0
- *
- * Performance notes:
- * We have optimized it as best as we could for Postgres and mySQL, with 27K students
- * we have seen this take 10 minutes.
- *
- */
-
-
-if (isset($_SERVER['REMOTE_ADDR'])) {
-    error_log("should not be called from web server!");
-    exit;
-}
-
-$nomoodlecookie = true; // cookie not needed
-
-require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); // global moodle config file.
-
-require_once($CFG->dirroot.'/course/lib.php');
-require_once($CFG->dirroot.'/lib/blocklib.php');
-require_once($CFG->dirroot.'/mod/resource/lib.php');
-require_once($CFG->dirroot.'/mod/forum/lib.php');
-require_once($CFG->dirroot.'/lib/moodlelib.php');
-
-if (!is_enabled_auth('cas')) {
-    echo "Plugin not enabled!";
-    die;
-}
-
-$casauth = get_auth_plugin('cas');
-$casauth->sync_users(1000, true);
-
-?>
\ No newline at end of file
diff --git a/auth/cas/forbidden.html b/auth/cas/forbidden.html
deleted file mode 100644 (file)
index fb4674b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<table width="90%" border="0" cellspacing="10" cellpadding="5" align="center" style="font-size: small">
-  <tr>
-    <td width="50%" class="required" class="headingblock">
-      <p align="center"><b><font size="3"><?php formerr($errormsg) ?></font></b></p>
-    </td>
-  </tr>
-</table>
-
diff --git a/auth/cas/forbidden.php b/auth/cas/forbidden.php
deleted file mode 100644 (file)
index 918261e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-// version $Id$
-// Page for forbidden access from CAS
-    require("../../config.php");
-
-    if (!$site = get_site()) {
-        print_error('nosite', '', '', NULL, true);
-    }
-
-    $loginsite = get_string("loginsite");
-    $errormsg = get_string("auth_cas_invalidcaslogin", "auth");
-
-    print_header("$site->fullname: $loginsite", $site->fullname, $loginsite);
-    include("forbidden.html");
-    print_footer();
-    exit;
-?>
-
diff --git a/auth/cas/index_form.html b/auth/cas/index_form.html
deleted file mode 100644 (file)
index 5a1c85e..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<table width="90%" border="0" cellspacing="10" cellpadding="5" >
-  <tr>
-<?php if ($show_instructions) { ?>
-    <td width="50%" class="headingblock">
-      <p><b><?php  print_string("returningtosite") ?></b></p>
-    </td>
-    <td width="50%" class="headingblock">
-      <p><b><?php  print_string("firsttime") ?></b></p>
-    </td>
-<?php } ?>
-  </tr>
-  <tr>
-    <td width="50%" align="center" valign="top" class="generalbox">
-      <p><?php print_string("loginusing") ?>:<br />
-        (<?php print_string("cookiesenabled");?>)
-         <?php helpbutton("cookies", get_string("cookiesenabled"))?><br /><?php formerr($errormsg) ?>
-      </p>
-      <form action="index.php" method="post" id="login">
-        <div>
-        <table border="0" style="font-size: small">
-        <tr>
-          <td width="100%">
-            <input type="hidden" name="username" id="username" value="cas" />
-            <input type="hidden" name="password" id="password" value="cas" />
-            <input type="submit" value="<?php print_string("auth_cas_logincas", "auth") ?>" />
-          </td>
-        </tr>
-        </table>
-        </div>
-      </form>
-<?php if ($CFG->guestloginbutton) {  ?>
-      <hr width="80%" />
-      <p><?php print_string("someallowguest") ?>:</p>
-        <form action="index.php" method="post" id="guestlogin">
-          <div>
-          <input type="hidden" name="username" value="guest" />
-          <input type="hidden" name="password" value="guest" />
-          <input type="submit" value="<?php print_string("loginguest") ?>" />
-          </div>
-        </form>
-<?php } ?>
-
-<?php if (is_internal_auth() ) {
-    $changepassword = "forgot_password.php";
-    $changebuttonname = get_string("senddetails");
-?>
-      <hr width="80%" />
-      <p><?php print_string("forgotten") ?></p>
-        <form action="<?php p($changepassword) ?>" method="get" id="changepassword">
-          <div><input type="submit" value="<?php p($changebuttonname) ?>" /></div>
-        </form>
-<?php } ?>
-
-    </td>
-
-<?php if ($show_instructions) { ?>
-    <td width="50%" valign="top" class="generalbox">
-<?php     switch ($CFG->auth) {
-              case "email":
-                 print_string("loginsteps", "", "signup.php");
-?>
-                   <form action="signup.php" method="get" id="signup">
-                       <div><input type="submit" value="<?php print_string("startsignup") ?>" /></div>
-                   </form>
-<?php            break;
-               case "none":
-                 print_string("loginstepsnone");
-                 break;
-               default:
-                 $authplugin = get_auth_plugin($CFG->auth);
-                 echo format_text($CFG->auth_instructions);
-                 if (!empty($authplugin->config->user_create) and method_exists($authplugin, 'user_create')) {
-?>
-
-                    <form action="signup.php" method="get" id="signup">
-                       <div><input type="submit" value="<?php print_string("startsignup") ?>" /></div>
-                    </form>
-
-<?php            }
-          }
-?>
-    </td></tr>
-<?php } ?>
-</table>
-
diff --git a/auth/cas/login.php b/auth/cas/login.php
deleted file mode 100644 (file)
index 7551bc8..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-<?php
-// $Id$
-// author: romualdLorthioir $
-//CHANGELOG:
-//05.03.2005 replace /login/index.php
-defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
-
-    //Define variables used in page
-    if (!$site = get_site()) {
-        print_error('nosite', '', '', NULL, true);
-    }
-
-    if (empty($CFG->langmenu)) {
-        $langmenu = "";
-    } else {
-        $currlang = current_language();
-        $langs    = get_list_of_languages();
-        if (empty($CFG->loginhttps)) {
-            $wwwroot = $CFG->wwwroot;
-        } else {
-            $wwwroot = str_replace('http:','https:',$CFG->wwwroot);
-        }
-        $langmenu = popup_form ("$wwwroot/login/index.php?lang=", $langs, "chooselang", $currlang, "", "", "", true);
-    }
-
-    $loginsite = get_string("loginsite");
-    $casauth = get_auth_plugin('cas');
-    $ldapauth = get_auth_plugin('ldap');
-
-
-    $frm = false;
-    $user = false;
-    if ((!empty($SESSION->wantsurl) and strstr($SESSION->wantsurl,'username=guest')) or $loginguest) {
-        /// Log in as guest automatically (idea from Zbigniew Fiedorowicz)
-        $frm->username = 'guest';
-        $frm->password = 'guest';
-    } else if (!empty($SESSION->wantsurl) && file_exists($CFG->dirroot.'/login/weblinkauth.php')) {
-        // Handles the case of another Moodle site linking into a page on this site
-        include($CFG->dirroot.'/login/weblinkauth.php');
-        if (function_exists(weblink_auth)) {
-            $user = weblink_auth($SESSION->wantsurl);
-        }
-        if ($user) {
-            $frm->username = $user->username;
-        } else {
-            $frm = data_submitted();
-        }
-    } else {
-        $frm = data_submitted();
-    }
-
-    if ($frm and (get_moodle_cookie() == '')) {    // Login without cookie
-
-        $errormsg = get_string("cookiesnotenabled");
-
-    } else if ($frm) {                             // Login WITH cookies
-
-        $frm->username = trim(moodle_strtolower($frm->username));
-
-        if (($frm->username == 'guest') and empty($CFG->guestloginbutton)) {
-            $user = false;    /// Can't log in as guest if guest button is disabled
-            $frm = false;
-        } else if (!$user) {
-            if ($CFG->auth == "cas" && $frm->username != 'guest') { /// Cas SSO case
-               $user = $casauth->authenticate_user_login($frm->username, $frm->password);
-            }else{
-               $user = authenticate_user_login($frm->username, $frm->password);
-            }
-        }
-        update_login_count();
-
-        if ($user) {
-            if (! $user->confirmed ) {       // they never confirmed via email
-                print_header(get_string("mustconfirm"), get_string("mustconfirm") );
-                print_heading(get_string("mustconfirm"));
-                print_simple_box(get_string("emailconfirmsent", "", $user->email), "center");
-                print_footer();
-                die;
-            }
-
-            $USER = $user;
-            if (!empty($USER->description)) {
-                $USER->description = true;   // No need to cart all of it around
-            }
-            $USER->loggedin = true;
-            $USER->site     = $CFG->wwwroot; // for added security, store the site in the session
-            sesskey();                       // for added security, used to check script parameters
-
-            if ($USER->username == "guest") {
-                $USER->lang       = $CFG->lang;               // Guest language always same as site
-                $USER->firstname  = get_string("guestuser");  // Name always in current language
-                $USER->lastname   = " ";
-            }
-
-            if (!update_user_login_times()) {
-                error("Wierd error: could not update login records");
-            }
-
-            set_moodle_cookie($USER->username);
-
-            unset($SESSION->lang);
-            $SESSION->justloggedin = true;
-
-            // Restore the calendar filters, if saved
-            if (intval(get_user_preferences('calendar_persistflt', 0))) {
-                include_once($CFG->dirroot.'/calendar/lib.php');
-                calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
-            }
-
-            //Select password change url
-            $userauth = get_auth_plugin($USER->auth);
-            if (method_exists($userauth, 'can_change_password') and $userauth->can_change_password()) {
-                $passwordchangeurl=$CFG->wwwroot.'/login/change_password.php';
-            }
-
-            // check whether the user should be changing password
-            if (get_user_preferences('auth_forcepasswordchange', false)) {
-                if (isset($passwordchangeurl)) {
-                    redirect($passwordchangeurl);
-                } else {
-                    print_error('auth_cas_broken_password','auth');
-                }
-            }
-
-
-            add_to_log(SITEID, "user", "login", "view.php?id=$user->id&course=".SITEID, $user->id, 0, $user->id);
-
-            if (user_not_fully_set_up($USER)) {
-                $urltogo = $CFG->wwwroot.'/user/edit.php?id='.$USER->id.'&amp;course='.SITEID;
-                // We don't delete $SESSION->wantsurl yet, so we get there later
-
-            } else if (isset($SESSION->wantsurl) and (strpos($SESSION->wantsurl, $CFG->wwwroot) === 0)) {
-                $urltogo = $SESSION->wantsurl;    /// Because it's an address in this site
-                unset($SESSION->wantsurl);
-
-            } else {
-                $urltogo = $CFG->wwwroot.'/';      /// Go to the standard home page
-                unset($SESSION->wantsurl);         /// Just in case
-            }
-
-            // check if user password has expired
-            // Currently supported only for ldap-authentication module
-            if ($ldapauth->config->expiration == 1) {
-                    $days2expire = $ldapauth->password_expire($USER->username);
-                    if (intval($days2expire) > 0 && intval($days2expire) < intval($CFG->{$USER->auth.'_expiration_warning'})) {
-                        print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
-                        notice_yesno(get_string('auth_passwordwillexpire', 'auth', $days2expire), $passwordchangeurl, $urltogo);
-                        print_footer();
-                        exit;
-                    } elseif (intval($days2expire) < 0 ) {
-                        print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
-                        notice_yesno(get_string('auth_passwordisexpired', 'auth'), $passwordchangeurl, $urltogo);
-                        print_footer();
-                        exit;
-                    }
-            }
-
-            reset_login_count();
-
-            load_all_capabilities();     /// This is what lets the user do anything on the site  :-)
-
-            redirect($urltogo);
-
-            exit;
-
-        } else {
-          if ($CFG->auth == "cas" ) { /// CAS error login
-            $errormsg = get_string("invalidcaslogin");
-            phpCAS::logout("$CFG->wwwroot/auth/cas/forbidden.php");
-          }else{
-            $errormsg = get_string("invalidlogin");
-          }
-        }
-    }
-    $user = $casauth->automatic_authenticate($user);
-    if ($user) {
-        if (! $user->confirmed ) {       // they never confirmed via email
-            print_header(get_string("mustconfirm"), get_string("mustconfirm") );
-            print_heading(get_string("mustconfirm"));
-            print_simple_box(get_string("emailconfirmsent", "", $user->email), "center");
-            print_footer();
-            die;
-        }
-
-        $USER = $user;
-        if (!empty($USER->description)) {
-            $USER->description = true;   // No need to cart all of it around
-        }
-        $USER->loggedin = true;
-        $USER->site     = $CFG->wwwroot; // for added security, store the site in the session
-        sesskey();                       // for added security, used to check script parameters
-
-        if ($USER->username == "guest") {
-            $USER->lang       = $CFG->lang;               // Guest language always same as site
-            $USER->firstname  = get_string("guestuser");  // Name always in current language
-            $USER->lastname   = " ";
-        }
-
-        if (!update_user_login_times()) {
-            error("Wierd error: could not update login records");
-        }
-
-        set_moodle_cookie($USER->username);
-
-        unset($SESSION->lang);
-        $SESSION->justloggedin = true;
-
-        // Restore the calendar filters, if saved
-        if (intval(get_user_preferences('calendar_persistflt', 0))) {
-            include_once($CFG->dirroot.'/calendar/lib.php');
-            calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
-        }
-
-        //Select password change url
-        $userauth = get_auth_plugin($USER->auth);
-        if (method_exists($userauth, 'can_change_password') and $userauth->can_change_password()) {
-            $passwordchangeurl=$CFG->wwwroot.'/login/change_password.php';
-        }
-
-        // check whether the user should be changing password
-        if (get_user_preferences('auth_forcepasswordchange', false)) {
-            if (isset($passwordchangeurl)) {
-                redirect($passwordchangeurl);
-            } else {
-                print_error('auth_cas_broken_password','auth');
-            }
-        }
-
-
-        add_to_log(SITEID, "user", "login", "view.php?id=$user->id&course=".SITEID, $user->id, 0, $user->id);
-
-        if (user_not_fully_set_up($USER)) {
-            $urltogo = $CFG->wwwroot.'/user/edit.php?id='.$USER->id.'&amp;course='.SITEID;
-            // We don't delete $SESSION->wantsurl yet, so we get there later
-
-        } else if (isset($SESSION->wantsurl) and (strpos($SESSION->wantsurl, $CFG->wwwroot) === 0)) {
-            $urltogo = $SESSION->wantsurl;    /// Because it's an address in this site
-            unset($SESSION->wantsurl);
-
-        } else {
-            $urltogo = $CFG->wwwroot.'/';      /// Go to the standard home page
-            unset($SESSION->wantsurl);         /// Just in case
-        }
-
-        // check if user password has expired
-        // Currently supported only for ldap-authentication module
-        if ($ldapauth->config->expiration == 1) {
-                $days2expire = $ldapauth->password_expire($USER->username);
-                if (intval($days2expire) > 0 && intval($days2expire) < intval($CFG->{$USER->auth.'_expiration_warning'})) {
-                    print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div class=\"langmenu\">$langmenu</div>");
-                    notice_yesno(get_string('auth_passwordwillexpire', 'auth', $days2expire), $passwordchangeurl, $urltogo);
-                    print_footer();
-                    exit;
-                } elseif (intval($days2expire) < 0 ) {
-                    print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div class=\"langmenu\">$langmenu</div>");
-                    notice_yesno(get_string('auth_passwordisexpired', 'auth'), $passwordchangeurl, $urltogo);
-                    print_footer();
-                    exit;
-                }
-        }
-
-        reset_login_count();
-
-        load_all_capabilities();     /// This is what lets the user do anything on the site  :-)
-
-        redirect($urltogo);
-
-        exit;
-    } else {
-       if (!$CFG->guestloginbutton) {
-           $errormsg = get_string("invalidcaslogin");
-           phpCAS::logout("$CFG->wwwroot/auth/cas/forbidden.php");
-       }
-    }
-
-    if (empty($errormsg)) {
-        $errormsg = "";
-    }
-
-    if (empty($SESSION->wantsurl)) {
-        $SESSION->wantsurl = array_key_exists('HTTP_REFERER',$_SERVER) ? $_SERVER["HTTP_REFERER"] : $CFG->wwwroot.'/';
-    }
-
-    if (get_moodle_cookie() == '') {
-        set_moodle_cookie('nobody');   // To help search for cookies
-    }
-
-    if (empty($frm->username)) {
-        $frm->username = get_moodle_cookie() === 'nobody' ? '' : get_moodle_cookie();
-        $frm->password = "";
-    }
-
-    if (!empty($frm->username)) {
-        $focus = "login.password";
-    } else {
-        $focus = "login.username";
-    }
-
-    if ($CFG->auth == "email" or $CFG->auth == "none" or chop($CFG->auth_instructions) <> "" ) {
-        $show_instructions = true;
-    } else {
-        $show_instructions = false;
-    }
-
-    print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
-    include($CFG->dirroot.'/auth/cas/index_form.html');
-    print_footer();
-
-    exit;
-
-    // No footer on this page
-
-?>
diff --git a/auth/cas/logout.php b/auth/cas/logout.php
deleted file mode 100644 (file)
index 5f0a5cc..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-// $Id$
-// logout the user from CAS server (destroy the ticket)
-defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
-
-       global $CFG;
-       if ($CFG->cas_logout) {
-         require_once($CFG->dirroot.'/config.php');
-         include_once($CFG->dirroot.'/lib/cas/CAS.php');
-         phpCAS::client($CFG->cas_version,$CFG->cas_hostname,(int)$CFG->cas_port,$CFG->cas_baseuri);
-         $backurl = $CFG->wwwroot;
-         phpCAS::logout($backurl);
-       }
-
-?>
\ No newline at end of file
index f91ec9c..9107059 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * @author Martin Dougiamas
+ * @author Petr Skoda
  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  * @package moodle multiauth
  *
@@ -19,7 +19,7 @@ if (!defined('MOODLE_INTERNAL')) {
 require_once($CFG->libdir.'/authlib.php');
 
 /**
- * Plugin for no authentication.
+ * Plugin for no authentication - disabled user.
  */
 class auth_plugin_nologin extends auth_plugin_base {
 
@@ -32,10 +32,10 @@ class auth_plugin_nologin extends auth_plugin_base {
     }
 
     /**
-     * Do not allow any login
+     * Do not allow any login.
      *
      */
-    function user_login ($username, $password) {
+    function user_login($username, $password) {
         return false;
     }
 
@@ -47,18 +47,17 @@ class auth_plugin_nologin extends auth_plugin_base {
     }
 
     /**
-     * Returns true if this authentication plugin is 'internal'.
+     * No external data sync.
      *
      * @return bool
      */
     function is_internal() {
         //we do not know if it was internal or external originally
-        return false;
+        return true;
     }
 
     /**
-     * Returns true if this authentication plugin can change the user's
-     * password.
+     * No changing of password.
      *
      * @return bool
      */
@@ -67,21 +66,10 @@ class auth_plugin_nologin extends auth_plugin_base {
     }
 
     /**
-     * Prints a form for configuring this authentication plugin.
-     *
-     * This function is called from admin/auth.php, and outputs a full page with
-     * a form for configuring this plugin.
-     *
-     * @param array $page An object containing all the data for this page.
-     */
-    function config_form($config, $err, $user_fields) {
-    }
-
-    /**
-     * Processes and stores configuration data for this authentication plugin.
+     * No password resetting.
      */
-    function process_config($config) {
-        return true;
+    function can_reset_password() {
+        return false;
     }
 
 }
diff --git a/backup/db/mysql.sql b/backup/db/mysql.sql
deleted file mode 100644 (file)
index 66c9359..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# Table structure for table `prefix_backup_files`
-#
-
-CREATE TABLE `prefix_backup_files` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `backup_code` int(10) unsigned NOT NULL default '0',
-  `file_type` varchar(10) NOT NULL default '',
-  `path` varchar(255) NOT NULL default '',
-  `old_id` int(10) unsigned NOT NULL default '0',
-  `new_id` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `backup_files_uk` (`backup_code`,`file_type`,`path`)
-) TYPE=MyISAM COMMENT='To store and recode ids to user and course files.';
-# --------------------------------------------------------
-
-#
-# Table structure for table `prefix_backup_ids`
-#
-
-CREATE TABLE `prefix_backup_ids` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `backup_code` int(12) unsigned NOT NULL default '0',
-  `table_name` varchar(30) NOT NULL default '',
-  `old_id` int(10) unsigned NOT NULL default '0',
-  `new_id` int(10) unsigned NOT NULL default '0',
-  `info` mediumtext NOT NULL default '',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `backup_ids_uk` (`backup_code` ,`table_name`,`old_id`)
-) TYPE=MyISAM COMMENT='To store and convert ids in backup/restore';
-# --------------------------------------------------------
-
-#
-# Table structure for table `prefix_backup_config`
-#
-
-CREATE TABLE `prefix_backup_config` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `name` varchar(255) NOT NULL default '',
-  `value` varchar(255) NOT NULL default '',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `name` (`name`)
-) TYPE=MyISAM COMMENT='To store backup configuration variables';
-# --------------------------------------------------------
-
-#
-# Table structure for table `prefix_backup_courses`
-#
-
-CREATE TABLE `prefix_backup_courses` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `laststarttime` int(10) unsigned NOT NULL default '0',
-  `lastendtime` int(10) unsigned NOT NULL default '0',
-  `laststatus` varchar(1) NOT NULL default '0',
-  `nextstarttime` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `courseid` (`courseid`)
-) TYPE=MyISAM COMMENT='To store every course backup status';
-
-# --------------------------------------------------------
-
-#
-# Table structure for table `prefix_backup_log`
-#
-
-CREATE TABLE `prefix_backup_log` (
-  `id` int(10) unsigned NOT NULL auto_increment, 
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `time` int(10) unsigned NOT NULL default '0',
-  `laststarttime` int(10) unsigned NOT NULL default '0',
-  `info` varchar(255) NOT NULL default '',
-  PRIMARY KEY  (`id`)
-) TYPE=MyISAM COMMENT='To store every course backup log info';
-# --------------------------------------------------------
diff --git a/backup/db/postgres7.sql b/backup/db/postgres7.sql
deleted file mode 100644 (file)
index d39f764..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Table structure for table prefix_backup_files
-#
-
-CREATE TABLE prefix_backup_files (
-  id SERIAL PRIMARY KEY,
-  backup_code integer NOT NULL default '0',
-  file_type varchar(10) NOT NULL default '',
-  path varchar(255) NOT NULL default '',
-  old_id integer default NULL,
-  new_id integer default NULL,
-  CONSTRAINT prefix_backup_files_uk UNIQUE (backup_code, file_type, path)
-);
-
-
-#
-# Table structure for table prefix_backup_ids
-#
-
-CREATE TABLE prefix_backup_ids (
-  id SERIAL PRIMARY KEY,
-  backup_code integer NOT NULL default '0',
-  table_name varchar(30) NOT NULL default '',
-  old_id integer NOT NULL default '0',
-  new_id integer default NULL,
-  info text,
-  CONSTRAINT prefix_backup_ids_uk UNIQUE (backup_code, table_name, old_id)
-);
-
-
-#
-# Table structure for table prefix_backup_config
-#
-
-CREATE TABLE prefix_backup_config (
-   id SERIAL PRIMARY KEY,
-   name varchar(255) UNIQUE NOT NULL default '',
-   value varchar(255) NOT NULL default ''
-);
-
-
-#
-# Table structure for table prefix_backup_courses
-#
-
-CREATE TABLE prefix_backup_courses (
-    id SERIAL PRIMARY KEY,
-    courseid integer UNIQUE NOT NULL default '0',
-    laststarttime integer NOT NULL default '0',
-    lastendtime integer NOT NULL default '0',
-    laststatus varchar(1) NOT NULL default '0',
-    nextstarttime integer NOT NULL default '0'
-);
-
-
-
-#
-# Table structure for table prefix_backup_log
-#
-
-CREATE TABLE prefix_backup_log (
-    id SERIAL PRIMARY KEY,
-    courseid integer NOT NULL default '0',
-    time integer NOT NULL default '0',
-    laststarttime integer NOT NULL default '0',
-    info varchar(255) NOT NULL default ''
-);
index f69aa8b..c257e10 100644 (file)
@@ -132,7 +132,7 @@ class block_blog_tags extends block_base {
 
                     case BLOG_GROUP_LEVEL:
                         $filtertype = 'group';
-                        $filterselect = get_current_group($this->instance->pageid);
+                        $filterselect = get_and_set_current_group($COURSE, groupmode($COURSE));
                     break;
 
                     case BLOG_COURSE_LEVEL:
diff --git a/blocks/db/mysql.sql b/blocks/db/mysql.sql
deleted file mode 100644 (file)
index 8aafe1b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# $Id$
-# 
-# Table structure for table `blocks`
-# 
-
-CREATE TABLE `prefix_block` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `name` varchar(40) NOT NULL default '',
-  `version` int(10) NOT NULL default '0',
-  `cron` int(10) unsigned NOT NULL default '0',
-  `lastcron` int(10) unsigned NOT NULL default '0',
-  `visible` tinyint(1) NOT NULL default '1',
-  `multiple` tinyint(1) NOT NULL default '0',
-  PRIMARY KEY  (`id`)
-) TYPE=MyISAM;
-
-CREATE TABLE `prefix_block_instance` (
-  `id` int(10) not null auto_increment,
-  `blockid` int(10) not null default '0',
-  `pageid` int(10) not null default '0',
-  `pagetype` varchar(20) not null default '',
-  `position` varchar(10) not null default '',
-  `weight` tinyint(3) not null default '0',
-  `visible` tinyint(1) not null default '0',
-  `configdata` text not null default '',
-  PRIMARY KEY(`id`),
-  INDEX pageid(`pageid`),
-  INDEX pagetype(`pagetype`)
-) TYPE=MyISAM;
-
-CREATE TABLE `prefix_block_pinned` (
-  `id` int(10) not null auto_increment,
-  `blockid` int(10) not null default '0',
-  `pagetype` varchar(20) not null default '',
-  `position` varchar(10) not null default '',
-  `weight` tinyint(3) not null default '0',
-  `visible` tinyint(1) not null default '0',
-  `configdata` text not null default '',
-  PRIMARY KEY(`id`),
-  INDEX pagetype(`pagetype`)
-) TYPE=MyISAM;
-
-
-
-# --------------------------------------------------------
diff --git a/blocks/db/postgres7.sql b/blocks/db/postgres7.sql
deleted file mode 100644 (file)
index 352774c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-# 
-# Table structure for table blocks
-# 
-
-CREATE TABLE prefix_block (
-  id SERIAL8 PRIMARY KEY,
-  name varchar(40) NOT NULL default '',
-  version INT8 NOT NULL default '0',
-  cron INT8  NOT NULL default '0',
-  lastcron INT8  NOT NULL default '0',
-  visible int NOT NULL default '1',
-  multiple int NOT NULL default '0'
-) ;
-
-CREATE TABLE prefix_block_instance (
-  id SERIAL8 PRIMARY KEY,
-  blockid INT8 not null default '0',
-  pageid INT8 not null default '0',
-  pagetype varchar(20) not null default '',
-  position varchar(10) not null default '',
-  weight int not null default '0',
-  visible int not null default '0',
-  configdata text not null default ''
-) ;
-CREATE INDEX prefix_block_instance_pageid_idx ON prefix_block_instance (pageid);
-CREATE INDEX prefix_block_instance_pagetype_idx ON prefix_block_instance (pagetype);
-
-CREATE TABLE prefix_block_pinned ( 
-  id SERIAL8 PRIMARY KEY,
-  blockid INT8 NOT NULL default 0,
-  pagetype varchar(20) NOT NULL default '',
-  position varchar(10) NOT NULL default '',
-  weight INT NOT NULL default 0,
-  visible INT NOT NULL default 0,
-  configdata text NOT NULL default 0
-) ;
-      
-CREATE INDEX prefix_block_pinned_pagetype_idx ON prefix_block_pinned (pagetype);
-
-# --------------------------------------------------------
index 8f46dfa..a4d7f3e 100644 (file)
@@ -29,46 +29,29 @@ class block_news_items extends block_base {
             $text = '';
 
             if (!$forum = forum_get_course_forum($COURSE->id, 'news')) {
-                return $this->content;
+                return '';
             }
 
+            if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $COURSE->id)) {
+                return '';
+            }
 
-        /// First work out whether we can post to this group and if so, include a link
+            $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
-            if (has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_COURSE, $COURSE->id))) {     /// Teachers can always post
-                $visiblegroups = -1; 
+        /// First work out whether we can post to this group and if so, include a link
+            $groupmode    = groupmode($COURSE, $cm);
+            $currentgroup = get_and_set_current_group($COURSE, $groupmode);
+            
 
+            if (forum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context)) {
                 $text .= '<div class="newlink"><a href="'.$CFG->wwwroot.'/mod/forum/post.php?forum='.$forum->id.'">'.
                           get_string('addanewtopic', 'forum').'</a>...</div>';
-
-            } else {                              /// Check the group situation
-                $currentgroup = get_current_group($COURSE->id);
-
-                if (forum_user_can_post_discussion($forum, $currentgroup)) {
-                    $text .= '<div align="center" class="newlink"><a href="'.$CFG->wwwroot.'/mod/forum/post.php?forum='.$forum->id.'">'.
-                              get_string('addanewtopic', 'forum').'</a>...</div>';
-                }
-
-                if (!$cm = get_coursemodule_from_instance('forum', $forum->id, $COURSE->id)) {
-                    $this->content->text = $text;
-                    return $this->content;
-                }
-    
-                $groupmode = groupmode($COURSE, $cm);
-    
-                /// Decides if current user is allowed to see ALL the current discussions or not
-    
-                if (!$currentgroup and ($groupmode != SEPARATEGROUPS) ) {
-                    $visiblegroups = -1;
-                } else {
-                    $visiblegroups = $currentgroup;
-                }
             }
 
         /// Get all the recent discussions we're allowed to see
 
             if (! $discussions = forum_get_discussions($forum->id, 'p.modified DESC', 0, false, 
-                                                       $visiblegroups, $COURSE->newsitems) ) {
+                                                       $currentgroup, $COURSE->newsitems) ) {
                 $text .= '('.get_string('nonews', 'forum').')';
                 $this->content->text = $text;
                 return $this->content;
index 389c900..fc01986 100644 (file)
@@ -43,7 +43,7 @@ class block_online_users extends block_base {
                              && !has_capability('moodle/site:accessallgroups', $context));
 
         //Get the user current group
-        $currentgroup = $isseparategroups ? get_current_group($COURSE->id) : NULL;
+        $currentgroup = $isseparategroups ? get_and_set_current_group($COURSE, groupmode($COURSE)) : NULL;
 
         $groupmembers = "";
         $groupselect = "";
@@ -51,7 +51,7 @@ class block_online_users extends block_base {
         //Add this to the SQL to show only group users
         if ($currentgroup !== NULL) {
             $groupmembers = ', '.groups_members_from_sql(); //TODO: ", {$CFG->prefix}groups_members gm ";
-            $groupselect .= groups_members_where_sql($currentgroup, 'u.id'); //" AND u.id = gm.userid AND gm.groupid = '$currentgroup'";
+            $groupselect = ' AND '.groups_members_where_sql($currentgroup, 'u.id'); //" AND u.id = gm.userid AND gm.groupid = '$currentgroup'";
         }
 
         if ($COURSE->id == SITEID) {  // Site-level
diff --git a/blocks/rss_client/db/mysql.sql b/blocks/rss_client/db/mysql.sql
deleted file mode 100644 (file)
index fd41951..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id$
-# This file contains a complete database schema for all the 
-# tables used by this module, written in SQL
-
-# It may also contain INSERT statements for particular data 
-# that may be used, especially new entries in the table log_display
-
-# --------------------------------------------------------
-
-#
-# Table structure for table `prefix_block_rss_client`
-#
-
-CREATE TABLE prefix_block_rss_client (
- `id` int(11) NOT NULL auto_increment,
- `userid` int(11) NOT NULL default '0',
- `title` text NOT NULL default '',
- `preferredtitle` varchar(64) NOT NULL default '',
- `description` text NOT NULL default '',
- `shared` int(2) NOT NULL default '0',
- `url` varchar(255) NOT NULL default '',
-PRIMARY KEY  (`id`)
-) TYPE=MyISAM  COMMENT='Remote news feed information. Contains the news feed id, the userid of the user who added the feed, the title of the feed itself and a description of the feed contents along with the url used to access the remote feed. Preferredtitle is a field for future use - intended to allow for custom titles rather than those found in the feed.';
\ No newline at end of file
diff --git a/blocks/rss_client/db/postgres7.sql b/blocks/rss_client/db/postgres7.sql
deleted file mode 100644 (file)
index 7cd0a87..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-# This file contains a complete database schema for all the 
-# tables used by this module, written in SQL
-
-# It may also contain INSERT statements for particular data 
-# that may be used, especially new entries in the table log_display
-
-#
-# Table structure for table `block_rss_client`
-#
-
-CREATE TABLE prefix_block_rss_client (
- id SERIAL PRIMARY KEY,
- userid INTEGER NOT NULL default '0',
- title text NOT NULL default '',
- preferredtitle varchar(64) NOT NULL default '',
- description text NOT NULL default '',
- shared INTEGER NOT NULL default '0',
- url varchar(255) NOT NULL default ''
-);
index 64c9307..33928b1 100644 (file)
     $stractivityreport = get_string("activityreport");
 
 /// Check to see if groups are being used in this course
-    if ($groupmode = groupmode($course)) {   // Groups are being used
-        $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup);
-    } else {
-        $currentgroup = false;
-    }
+    $groupmode = groupmode($course);
+    $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup);
 
 /// Get a list of all students
     if ($currentgroup) {
         $options["download"] = "xls";
         print_single_button("grades.php", $options, get_string("downloadexcel"));
         echo "<td>";
-        $options = array();
         $options["download"] = "txt";
         print_single_button("grades.php", $options, get_string("downloadtext"));
         echo "</table>";
diff --git a/course/group-edit.html b/course/group-edit.html
deleted file mode 100644 (file)
index 2c3cd95..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<form method="post" enctype="multipart/form-data" action="group.php">
-<table cellpadding="9" cellspacing="0" align="center">
-<tr valign="top">
-    <td align="right"><?php print_string("name") ?>:</td>
-    <td><input type="text" name="name" size="30" value="<?php p($group->name) ?>" />
-    <?php if (isset($err["name"])) formerr($err["name"]); ?>
-    </td>
-</tr>
-<tr valign="top">
-    <td align="right"><?php print_string("description") ?>:<br />
-        <?php helpbutton("text", get_string("helptext")) ?>
-    </td>
-    <td><?php 
-        print_textarea($usehtmleditor, 8, 35, 660, 200, "description", $group->description);
-        if (isset($err["description"])) formerr($err["description"]); 
-    ?>
-    </td>
-</tr>
-
-<tr valign="top">
-    <td align="right"><?php print_string('enrolmentkey') ?>:</td>
-    <td><input type="text" name="password" size="25" value="<?php echo $group->password ?>" alt="<?php print_string('enrolmentkey') ?>" /></td>
-</tr>
-
-<tr valign="top">
-    <td align="right"><?php print_string("hidepicture") ?>:</td>
-    <td><?php 
-        $options = NULL;
-        $options[0] = get_string("no");
-        $options[1] = get_string("yes");
-        choose_from_menu ($options, "hidepicture", $group->hidepicture, "");
-    ?>
-    </td>
-</tr>
-
-<?php 
-    $maxbytes = get_max_upload_file_size($CFG->maxbytes, $course->maxbytes);
-    if (!empty($CFG->gdversion) and $maxbytes) {  
-?>
-<tr valign="top">
-    <td align="right"><?php print_string("newpicture") ?>:<br />(<?php
-       print_string("maxsize", "", display_size($maxbytes));
-       echo ') '; 
-       helpbutton("picture", get_string("helppicture"));
-    ?></td>
-    <td>
-    <?php
-       require_once($CFG->dirroot.'/lib/uploadlib.php');
-       upload_print_form_fragment(1,array('imagefile'),null,false,null,0,0,false);
-       if (isset($err["imagefile"])) formerr($err["imagefile"]);
-    ?>
-    </td>
-</tr>
-<?php }  ?>
-<tr>
-    <td></td>
-    <td><input type="submit" value="<?php print_string("savechanges") ?>" /></td>
-</table>
-
-<input type="hidden" name="group" value="<?php p($group->id) ?>" /> 
-<input type="hidden" name="id" value="<?php p($course->id) ?>" /> 
-<input type="hidden" name="sesskey" value="<?php p(sesskey()) ?>" /> 
-</form>
diff --git a/course/group.php b/course/group.php
deleted file mode 100644 (file)
index 96e14e4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php // $Id$
-
-/// Shows current group, and allows editing of the group 
-/// icon and other settings related to that group
-
-/// This script appears within a popup window
-
-    require_once('../config.php');
-    require_once('lib.php');
-
-    $id    = required_param('id', PARAM_INT);          // Course id
-    $group = optional_param('group', 0, PARAM_INT);    // Optionally look at other groups
-
-    if (! $course = get_record('course', 'id', $id) ) {
-        error("That's an invalid course id");
-    }
-
-    require_login($course->id);
-    
-    if (! $group = get_record("groups", "id", $group, "courseid", $course->id)) {
-        notice('Specified group could not be found!', "#");
-        close_window_button();
-    }  
-    
-    // this is fine since group inherits course settings, this allows 1) teacher to edit all groups
-    // 2 someone with a role with a cap to modify a specific group
-    $context = get_context_instance(CONTEXT_GROUP, $group->id);
-
-    // this is really weird
-    if (!has_capability('moodle/course:managegroups', $context)) {
-        close_window();
-    }
-
-/// Print the headers of the page
-
-    print_header(get_string('groupinfoedit').' : '.$group->name);
-
-
-/// If data submitted, then process and store.
-
-    if ($form = data_submitted() and confirm_sesskey()) { 
-
-        if (empty($form->name)) {
-            $err['name'] = get_string("missingname");
-
-        } else {
-            require_once($CFG->dirroot.'/lib/uploadlib.php');
-
-            $um = new upload_manager('imagefile',false,false,null,false,0,true,true);
-            if ($um->preprocess_files()) {
-                require_once("$CFG->libdir/gdlib.php");
-                
-                if (save_profile_image($group->id, $um, 'groups')) {
-                    $group->picture = 1;
-                } 
-            }
-
-            // Setting a new object in order to avoid updating other columns for the record,
-            // which could lead to SQL injection vulnerabilities.
-
-            // Be VERY sure to sanitize all parameters that go into $dataobj!
-
-            $dataobj = new stdClass;
-            $dataobj->id          = $group->id;
-            $dataobj->name        = clean_text($form->name);
-            $dataobj->description = clean_text($form->description);
-            $dataobj->hidepicture = empty($form->hidepicture) ? 0 : 1;
-            $dataobj->password    = required_param('password', PARAM_ALPHANUM);
-            $dataobj->picture = $group->picture;
-            if (!update_record('groups', $dataobj)) {
-                notify("A strange error occurred while trying to save");
-            } else {
-                notify(get_string('changessaved'));
-            }
-            close_window(3);
-        }
-    }
-
-
-    $usehtmleditor = false;
-
-    include('group-edit.html');
-
-    echo "</body></html>";
-?>
diff --git a/course/groups-edit.html b/course/groups-edit.html
deleted file mode 100755 (executable)
index 6d43f92..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-<script type="text/javascript">
-//<![CDATA[
-<?php 
-    $roleoptions = array(0 => get_string('all'));
-    $roles = get_all_roles();
-    foreach ($roles as $rolex) {
-        $roleoptions[$rolex->id] = $rolex->name;
-    }
-
-    foreach ($listmembers as $groupid => $listmember) {
-        echo "group$groupid = new Object();\n";
-        $useridstring = "group$groupid.userid = new Array(";
-        $usernamestring = "group$groupid.username = new Array(";
-        $max = count($listmember);
-        $count = 0;
-        foreach ($listmember as $userid => $username) {
-            $count++;
-            $useridstring .= "\"$userid\"";
-            $usernamestring .= '"'.addslashes($username).'"';
-            if ($count < $max) {
-                $useridstring .= ', ';
-                $usernamestring .= ', ';
-            }
-        }
-        $useridstring .= ");\n";
-        $usernamestring .= ");\n";
-
-        echo $useridstring;
-        echo $usernamestring;
-    }
-?>
-
-function updateGroup() {
-    document.getElementById("form1").groupid.value = document.getElementById("form2").groups.value;
-    document.getElementById("form3").groupid.value = document.getElementById("form2").groups.value;
-}
-
-
-function updateMembers(selectgroup) {
-    eval('group=group'+selectgroup.value); 
-
-    username = group.username;
-    userid = group.userid;
-
-    document.getElementById("form3")['members[]'].length = username.length;
-
-    for (i=0;i<username.length;i++) {
-        document.getElementById("form3")['members[]'].options[i].value = userid[i];
-        document.getElementById("form3")['members[]'].options[i].text  = username[i];
-    }
-
-    updateGroup();
-}
-
-function userWindow(selectuser) {
-    num = 0;
-    for (var i=0; i<selectuser.options.length; i++) {
-        if (selectuser.options[i].selected) {
-            num++;
-            user = selectuser.options[i].value;
-            openpopup('/user/view.php?id='+user+'&course=<?php echo $courseid ?>','userinfo'+num,'','');
-        }
-    }
-    return false;
-}
-
-function groupWindow(selectgroup) {
-    num = 0;
-    for (var i=0; i<selectgroup.options.length; i++) {
-        if (selectgroup.options[i].selected) {
-            num++;
-            group = selectgroup.options[i].value;
-            openpopup('/course/group.php?id=<?php echo $courseid ?>&group='+group,'groupinfo'+num,'menubar=0,directory=0,location=0,scrollbars,resizable,width=600,height=480','');
-        }
-    }
-    return false;
-}
-
-
-//]]>
-</script>
-
-        <form id="rolesform1" action="groups.php" method="get">
-        <input type="hidden" name="id" value="<?php echo $courseid ?>" />
-        <div align="center"><?php echo get_string('currentrole', 'role') ?>: 
-            <?php choose_from_menu ($roleoptions, 'roleid', $roleid, '', 'document.getElementById(\'rolesform1\').submit()') ?>
-        </div></form>
-
-  <table cellspacing="0" cellpadding="10" align="center" class="generaltable generalbox">
-    <tr align="center" valign="top">
-      <td class="generalboxcontent">
-        <label for="nonmembers"><?php p($strmemberincourse) ?></label>
-        <form id="form1" method="post" action="groups.php">
-          <input type="hidden" name="id" value="<?php p($course->id) ?>" />
-          <input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
-          <input type="hidden" name="sesskey" value="<?php p($sesskey) ?>" />
-          <input type="hidden" name="roleid" value="<?php p($roleid) ?>" />
-          
-          <select name="nonmembers[]" size="15" id="nonmembers" multiple="multiple">
-            <?php 
-                if (!empty($nonmembers)) {
-                    foreach ($nonmembers as $id => $nonmembername) {
-                        if (!is_array($ugroups = user_group($course->id, $id))) {
-                            $numgroups = 0;
-                        }
-                        else {
-                            $numgroups = count($ugroups);
-                        }
-                        echo "<option value=\"$id\" title=\"$nonmembername is in $numgroups groups\">$nonmembername ($numgroups)</option>\n";
-                    }
-                }
-            ?>
-          </select>
-          <br />
-            <input type="submit" name="nonmembersadd" value="<?php p($strgroupaddusers) ?> -&gt;" 
-                   onclick="updateGroup()" />
-          <br />
-          <!--
-            <input type="submit" name="nonmembersrandom" value="<?php p($strgrouprandomassign) ?> -&gt;" />
-          <br /> -->
-            <input type="submit" name="nonmembersinfo" value="<?php p($strgroupinfopeople) ?>" 
-                   onclick="return userWindow(document.getElementById('form1')['nonmembers[]']);" />
-        </form>
-      </td>
-      <td class="generalboxcontent">
-        <label for="groups"><?php p($strgroups) ?></label>
-        <form id="form2" method="post" action="groups.php">
-          <input type="hidden" name="id" value="<?php p($course->id) ?>" />
-          <input type="hidden" name="sesskey" value="<?php p($sesskey) ?>" />
-          <input type="hidden" name="roleid" value="<?php p($roleid) ?>" />
-          <select name="groups" size="15" id="groups" onchange="updateMembers(this)">
-            <?php 
-                if (!empty($listgroups)) {
-                    foreach ($listgroups as $id => $listgroup) {
-                        $selected = '';
-                        if ($id == $selectedgroup) {
-                            $selected = 'selected="selected"';
-                        }
-                        echo "<option $selected value=\"$id\">$listgroup</option>";
-                    }
-                }
-            ?>
-          </select>
-        <br />
-          <input type="submit" name="groupsinfo" value="<?php p($strgroupinfoedit) ?>" 
-                 onclick="return groupWindow(document.getElementById('form2').groups);" />
-        <br />
-          <input type="submit" name="groupsremove" value="<?php p($strgroupremove) ?>" />
-        <br />
-          <label for="groupadd" class="accesshide"><?php p($strgroupadd) ?></label>
-          <input name="newgroupname" id="groupadd" type="text" size="10" />
-          <input type="submit" name="groupsadd" value="<?php p($strgroupadd) ?>" />
-        </form>
-      </td>
-
-
-      <td class="generalboxcontent">
-        <label for="members"><?php p($strgroupmembersselected) ?></label>
-        <form id="form3" method="post" action="groups.php">
-          <input type="hidden" name="id" value="<?php p($course->id) ?>" />
-          <input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
-          <input type="hidden" name="sesskey" value="<?php p($sesskey) ?>" />
-          <input type="hidden" name="roleid" value="<?php p($roleid) ?>" />
-          <select name="members[]" size="15" id="members" multiple="multiple">
-            <?php 
-                if (!empty($members)) {
-                    foreach ($members as $id => $membername) {
-                        echo "<option value=\"$id\">$membername</option>";
-                    }
-                }
-            ?>
-          </select>
-        <br />
-          <input type="submit" name="membersinfo" value="<?php p($strgroupinfomembers) ?>"
-                 onclick="return userWindow(document.getElementById('form3')['members[]']);" />
-        <br />
-          <input type="submit" name="membersremove" value="<?php p($strgroupremovemembers) ?>" 
-                 onclick="updateGroup()" />
-        </form>
-      </td>
-    </tr>
-  </table>
diff --git a/course/groups.php b/course/groups.php
deleted file mode 100644 (file)
index 30bd4d0..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-<?php // $Id$
-
-///////////////////////////////////////////////////////////////////////////
-//                                                                       //
-// NOTICE OF COPYRIGHT                                                   //
-//                                                                       //
-// Moodle - Modular Object-Oriented Dynamic Learning Environment         //
-//          http://moodle.org                                            //
-//                                                                       //
-// Copyright (C) 1999-2004  Martin Dougiamas  http://dougiamas.com       //
-//                                                                       //
-// This program is free software; you can redistribute it and/or modify  //
-// it under the terms of the GNU General Public License as published by  //
-// the Free Software Foundation; either version 2 of the License, or     //
-// (at your option) any later version.                                   //
-//                                                                       //
-// This program is distributed in the hope that it will be useful,       //
-// but WITHOUT ANY WARRANTY; without even the implied warranty of        //
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //
-// GNU General Public License for more details:                          //
-//                                                                       //
-//          http://www.gnu.org/copyleft/gpl.html                         //
-//                                                                       //
-///////////////////////////////////////////////////////////////////////////
-
-/// Editing interface to edit all the groups in a course
-
-    require_once('../config.php');
-    require_once('lib.php');
-
-    $courseid      = required_param('id', PARAM_INT);           // Course id
-    $selectedgroup = optional_param('group', NULL, PARAM_INT);  // Current group id
-    $roleid        = optional_param('roleid', 0, PARAM_INT);    // Current role id
-
-    if (! $course = get_record('course', 'id', $courseid) ) {
-        error("That's an invalid course id");
-    }
-
-    require_login($course->id);
-    $context = get_context_instance(CONTEXT_COURSE, $course->id);
-
-    if (!has_capability('moodle/course:managegroups', $context)) {
-        redirect("group.php?id=$course->id");   // Not allowed to see all groups
-    }
-
-/// Get the current list of groups and check the selection is valid
-
-    $groups = get_groups($course->id);
-
-    if ($selectedgroup and !isset($groups[$selectedgroup])) {
-        $selectedgroup = NULL;
-    }
-
-
-/// Print the header of the page
-
-    $strgroup = get_string('group');
-    $strgroups = get_string('groups');
-    $streditgroupprofile = get_string('editgroupprofile');
-    $strgroupmembers = get_string('groupmembers');
-    $strgroupmemberssee = get_string('groupmemberssee');
-    $strparticipants = get_string('participants');
-
-    print_header("$course->shortname: $strgroups",  $course->fullname, 
-                 "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ".
-                 "-> <a href=\"$CFG->wwwroot/user/index.php?id=$course->id\">$strparticipants</a> ".
-                 "-> $strgroups", "", "", true, '', user_login_string($course, $USER));
-
-
-/// First, process any inputs there may be.
-
-    if ($data = data_submitted() and confirm_sesskey()) {
-
-        // Clean ALL incoming parameters which go in SQL queries here for good measure
-        $data->id      = required_param('id', PARAM_INT);
-        $data->groups  = optional_param('groups', 0, PARAM_INT);
-        $data->groupid = optional_param('groupid', 0, PARAM_INT);
-        $data->members = optional_param('members', array(), PARAM_INT);
-
-        if (!empty($data->nonmembersadd)) {            /// Add people to a group
-            if (!empty($data->nonmembers) and !empty($data->groupid)) {
-                $groupmodified = false;
-                foreach ($data->nonmembers as $userid) {
-                    //since we allow people to be in more than 1 group, this has to go.
-                    if (!ismember($data->groupid,$userid)) {// Just to make sure (another teacher could be editing)
-                        $record->groupid = $data->groupid;
-                        $record->userid = $userid;
-                        $record->timeadded = time();
-                        if (!insert_record('groups_members', $record)) {
-                            notify("Error occurred while adding user $userid to group $data->groupid");
-                        }
-                        $groupmodified = true;
-                    }
-                }
-                if ($groupmodified) {
-                    set_field('groups', 'timemodified', time(), 'id', $data->groupid);
-                }
-            }
-            $selectedgroup = $data->groupid;
-
-
-        } else if (!empty($data->nonmembersrandom)) {  /// Add all non members to groups
-            notify("Random adding of people into groups is not functional yet.");
-
-        } else if (!empty($data->nonmembersinfo)) {    /// Return info about the selected users
-            notify("You must turn Javascript on");
-
-        } else if (!empty($data->groupsremove)) {      /// Remove a group, all members become nonmembers
-            if (!empty($data->groups)) {
-                if(!isset($groups[$data->groups])) {
-                    error("This is not a valid group to remove");
-                }
-                delete_records("groups", "id", $data->groups);
-                delete_records("groups_members", "groupid", $data->groups);
-                unset($groups[$data->groups]);
-            }
-            
-
-        } else if (!empty($data->groupsinfo)) {        /// Display full info for a group
-            notify("You must turn Javascript on");
-
-        } else if (!empty($data->groupsadd)) {         /// Create a new group
-            if (!empty($data->newgroupname)) {
-                $newgroup->name = $data->newgroupname;
-                $newgroup->courseid = $course->id;
-                $newgroup->lang = current_language();
-                $newgroup->timecreated = time();
-                $newgroup->description = ''; // can not be null MDL-7300
-                if (!insert_record("groups", $newgroup)) {
-                    notify("Could not insert the new group '$newgroup->name'");
-                }
-                $groups = get_groups($course->id);
-            }
-
-        } else if (!empty($data->membersremove)) {     /// Remove selected people from a particular group
-
-            if (!empty($data->members) and !empty($data->groupid)) {
-                foreach ($data->members as $userid) {
-                    delete_records('groups_members', 'userid', $userid, "groupid", $data->groupid);
-                }
-                set_field('groups', 'timemodified', time(), 'id', $data->groupid);
-            }
-            $selectedgroup = $data->groupid;
-
-        } else if (!empty($data->membersinfo)) {       /// Return info about the selected users
-            notify("You must turn Javascript on");
-
-        }
-    }
-
-
-/// Calculate data ready to create the editing interface
-
-    $strmemberincourse = get_string('memberincourse');
-    $strgroupnonmembers = get_string('groupnonmembers');
-    $strgroupmembersselected = get_string('groupmembersselected');
-    $strgroupremovemembers = get_string('groupremovemembers');
-    $strgroupinfomembers = get_string('groupinfomembers');
-    $strgroupadd = get_string('groupadd');
-    $strgroupremove = get_string('groupremove');
-    $strgroupinfo = get_string('groupinfo');
-    $strgroupinfoedit = get_string('groupinfoedit');
-    $strgroupinfopeople = get_string('groupinfopeople');
-    $strgrouprandomassign = get_string('grouprandomassign');
-    $strgroupaddusers = get_string('groupaddusers');
-    $courseid = $course->id;
-    $listgroups = array();
-    $listmembers = array();
-    $nonmembers = array();
-    $groupcount = count($groups);
-
-
-/// First, get everyone into the nonmembers array
-
-    if ($contextusers = get_role_users($roleid, $context)) {
-        foreach ($contextusers as $contextuser) {
-            $nonmembers[$contextuser->id] = fullname($contextuser, true);
-        }
-    }
-    unset($contextusers);
-
-/// Pull out all the members into little arrays
-
-    if ($groups) {
-        foreach ($groups as $group) {
-            $countusers = 0;
-            $listmembers[$group->id] = array();
-            if ($groupusers = get_group_users($group->id, 'u.lastname ASC, u.firstname ASC')) {
-                foreach ($groupusers as $key=>$groupuser) {
-                    if (!array_key_exists($groupuser->id, $nonmembers)) {
-                        // group member with another role
-                        unset($groupusers[$key]);
-                    } else {
-                        $listmembers[$group->id][$groupuser->id] = $nonmembers[$groupuser->id];
-                        //we do not remove people from $nonmembers, everyone is displayed
-                        //this is to enable people to be registered in multiple groups
-                        //unset($nonmembers[$groupuser->id]);
-                        $countusers++;
-                    }
-                }
-            }
-            $listgroups[$group->id] = $group->name." ($countusers)";
-        }
-        natcasesort($listgroups);
-    }
-
-    if (empty($selectedgroup)) {    // Choose the first group by default
-        if ($selectedgroup = array_shift($temparr = array_keys($listgroups))) {
-            $members = $listmembers[$selectedgroup];
-        }
-    } else {
-        $members = $listmembers[$selectedgroup];
-    }
-
-    $sesskey = !empty($USER->id) ? $USER->sesskey : '';
-
-//TODO:
-if (debugging()) {
-    echo '<p>[ <a href="../group/index.php?id='. $courseid .'">New groups</a> - debugging. ]</p>';
-}
-
-/// Print out the complete form
-
-    print_heading(get_string('groups'));
-
-    include('groups-edit.html');
-
-    print_footer($course);
-
-?>
\ No newline at end of file
index a73494a..a086961 100644 (file)
@@ -65,6 +65,7 @@ class moodleform_mod extends moodleform {
         $mform =& $this->_form;
         $mform->addElement('header', 'modstandardelshdr', get_string('modstandardels', 'form'));
         if ($supportsgroups){
+            // TODO: we must define this as mod property!
             $mform->addElement('modgroupmode', 'groupmode', get_string('groupmode'));
         }
         $mform->addElement('modvisible', 'visible', get_string('visible'));
diff --git a/enrol/authorize/db/mysql.sql b/enrol/authorize/db/mysql.sql
deleted file mode 100755 (executable)
index e0bd8c1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-CREATE TABLE `prefix_enrol_authorize` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `paymentmethod` enum('cc', 'echeck') NOT NULL default 'cc',
-  `cclastfour` int(4) unsigned NOT NULL default '0',
-  `ccname` varchar(255) NOT NULL default '',
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `userid` int(10) unsigned NOT NULL default '0',
-  `transid` int(10) unsigned NOT NULL default '0',
-  `status` int(10) unsigned NOT NULL default '0',
-  `timecreated` int(10) unsigned NOT NULL default '0',
-  `settletime` int(10) unsigned NOT NULL default '0',
-  `amount` varchar(10) NOT NULL default '',
-  `currency` varchar(3) NOT NULL default 'USD',
-  PRIMARY KEY  (`id`),
-  KEY `courseid` (`courseid`),
-  KEY `userid` (`userid`),
-  KEY `status` (`status`),
-  KEY `transid` (`transid`)
-) TYPE=MyISAM COMMENT='Holds all known information about authorize.net transactions';
-
-CREATE TABLE `prefix_enrol_authorize_refunds` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `orderid` int(10) unsigned NOT NULL default '0',
-  `status` int(1) unsigned NOT NULL default '0',
-  `amount` varchar(10) NOT NULL default '',
-  `transid` int(10) unsigned default '0',
-  `settletime` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  KEY `orderid` (`orderid`),
-  KEY `transid` (`transid`)
-) TYPE=MyISAM COMMENT='Authorize.net refunds';
diff --git a/enrol/authorize/db/postgres7.sql b/enrol/authorize/db/postgres7.sql
deleted file mode 100644 (file)
index 8f789e7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-CREATE TABLE prefix_enrol_authorize (
-    id SERIAL PRIMARY KEY,
-    paymentmethod varchar(6) default 'cc' NOT NULL,
-    cclastfour integer DEFAULT 0 NOT NULL,
-    ccname varchar(255) DEFAULT '',
-    courseid integer DEFAULT 0 NOT NULL,
-    userid integer DEFAULT 0 NOT NULL,
-    transid integer DEFAULT 0 NOT NULL,
-    status integer DEFAULT 0 NOT NULL,
-    timecreated integer DEFAULT 0 NOT NULL,
-    settletime integer DEFAULT 0 NOT NULL,
-    amount varchar(10) DEFAULT '0' NOT NULL,
-    currency varchar(3) DEFAULT 'USD' NOT NULL,
-    CONSTRAINT enroauth_pay_ck CHECK (paymentmethod IN ('cc', 'echeck'))
-);
-
-CREATE INDEX prefix_enrol_authorize_courseid_idx ON prefix_enrol_authorize(courseid);
-CREATE INDEX prefix_enrol_authorize_userid_idx ON prefix_enrol_authorize(userid);
-CREATE INDEX prefix_enrol_authorize_status_idx ON prefix_enrol_authorize(status);
-CREATE INDEX prefix_enrol_authorize_transid_idx ON prefix_enrol_authorize(transid);
-
-CREATE TABLE prefix_enrol_authorize_refunds (
-    id SERIAL PRIMARY KEY,
-    orderid integer DEFAULT 0 NOT NULL,
-    status integer DEFAULT 0 NOT NULL,
-    amount varchar(10) DEFAULT '' NOT NULL,
-    transid integer DEFAULT 0,
-    settletime integer DEFAULT 0 NOT NULL
-);
-
-CREATE INDEX prefix_enrol_authorize_refunds_orderid_idx ON prefix_enrol_authorize_refunds(orderid);
-CREATE INDEX prefix_enrol_authorize_refunds_transid_idx ON prefix_enrol_authorize_refunds(transid);
diff --git a/enrol/paypal/db/mysql.sql b/enrol/paypal/db/mysql.sql
deleted file mode 100644 (file)
index b43cb75..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-CREATE TABLE `prefix_enrol_paypal` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `business` varchar(255) NOT NULL default '',
-  `receiver_email` varchar(255) NOT NULL default '',
-  `receiver_id` varchar(255) NOT NULL default '',
-  `item_name` varchar(255) NOT NULL default '',
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `userid` int(10) unsigned NOT NULL default '0',
-  `memo` varchar(255) NOT NULL default '',
-  `tax` varchar(255) NOT NULL default '',
-  `option_name1` varchar(255) NOT NULL default '',
-  `option_selection1_x` varchar(255) NOT NULL default '',
-  `option_name2` varchar(255) NOT NULL default '',
-  `option_selection2_x` varchar(255) NOT NULL default '',
-  `payment_status` varchar(255) NOT NULL default '',
-  `pending_reason` varchar(255) NOT NULL default '',
-  `reason_code` varchar(30) NOT NULL default '',
-  `txn_id` varchar(255) NOT NULL default '',
-  `parent_txn_id` varchar(255) NOT NULL default '',
-  `payment_type` varchar(30) NOT NULL default '',
-  `timeupdated` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`)
-) TYPE=MyISAM COMMENT='Holds all known information about PayPal transactions' ;
diff --git a/enrol/paypal/db/postgres7.sql b/enrol/paypal/db/postgres7.sql
deleted file mode 100644 (file)
index dc3073b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-CREATE TABLE prefix_enrol_paypal (
-   id SERIAL PRIMARY KEY,
-   business varchar(255) NOT NULL default '',
-   receiver_email varchar(255) NOT NULL default '',
-   receiver_id varchar(255) NOT NULL default '',
-   item_name varchar(255) NOT NULL default '',
-   courseid integer NOT NULL default '0',
-   userid integer NOT NULL default '0',
-   memo varchar(255) NOT NULL default '',
-   tax varchar(255) NOT NULL default '',
-   option_name1 varchar(255) NOT NULL default '',
-   option_selection1_x varchar(255) NOT NULL default '',
-   option_name2 varchar(255) NOT NULL default '',
-   option_selection2_x varchar(255) NOT NULL default '',
-   payment_status varchar(255) NOT NULL default '',
-   pending_reason varchar(255) NOT NULL default '',
-   reason_code varchar(30) NOT NULL default '',
-   txn_id varchar(255) NOT NULL default '',
-   parent_txn_id varchar(255) NOT NULL default '',
-   payment_type varchar(30) NOT NULL default '',
-   timeupdated integer NOT NULL default '0'
-);
diff --git a/group/db/mysql.sql b/group/db/mysql.sql
deleted file mode 100644 (file)
index bf9b691..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-# phpMyAdmin SQL Dump
-# version 2.8.1
-# http://www.phpmyadmin.net
-# 
-# Host: localhost
-# Generation Time: Oct 24, 2006 at 05:23 PM
-# Server version: 5.0.21
-# PHP Version: 4.4.2-pl1
-# 
-# Database: `moodle`
-# 
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `mdl_groups_courses_groupings`
-# 
-
-CREATE TABLE `prefix_groups_courses_groupings` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `groupingid` mediumint(9) NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`),
-  KEY `courseid` (`courseid`)
-) ENGINE=MyISAM ;
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `prefix_groups_courses_groups`
-# 
-
-CREATE TABLE `prefix_groups_courses_groups` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `courseid` int(10) unsigned NOT NULL default '0',
-  `groupid` int(11) NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`),
-  KEY `courseid` (`courseid`)
-) ENGINE=MyISAM ;
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `prefix_groups_groupings`
-# 
-
-CREATE TABLE `prefix_groups_groupings` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `name` varchar(254) NOT NULL,
-  `description` text NOT NULL default '',
-  `timecreated` int(10) unsigned NOT NULL default '0',
-  `viewowngroup` tinyint(1) NOT NULL default 1,
-  `viewallgroupsmembers` tinyint(1) NOT NULL default 0,
-  `viewallgroupsactivities` tinyint(1) NOT NULL default 0,
-  `teachersgroupmark` tinyint(1) NOT NULL default 0,
-  `teachersgroupview` binary(1) NOT NULL default 0,
-  `teachersoverride` binary(1) NOT NULL default 0,
-  `teacherdeletable` binary(1) NOT NULL default 0,
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`)
-) ENGINE=MyISAM ;
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `prefix_groups_groupings_groups`
-# 
-
-CREATE TABLE `prefix_groups_groupings_groups` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `groupingid` int(10) unsigned default '0',
-  `groupid` int(10) NOT NULL default '0',
-  `timeadded` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`),
-  KEY `courseid` (`groupingid`)
-) ENGINE=MyISAM  AUTO_INCREMENT=67 ;
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `prefix_groups`
-# 
-
-CREATE TABLE `prefix_groups` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `name` varchar(255) NOT NULL,
-  `description` text NOT NULL default '',
-  `enrolmentkey` varchar(50) NOT NULL default '',
-  `lang` varchar(10) NOT NULL default 'en',
-  `theme` varchar(50) NOT NULL default '',
-  `picture` int(10) unsigned NOT NULL default '0',
-  `hidepicture` int(1) unsigned NOT NULL default '0',
-  `timecreated` int(10) unsigned NOT NULL default '0',
-  `timemodified` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`)
-) ENGINE=MyISAM ;
-
-# --------------------------------------------------------
-
-# 
-# Table structure for table `prefix_groups_members`
-# 
-
-CREATE TABLE `prefix_groups_members` (
-  `id` int(10) unsigned NOT NULL auto_increment,
-  `groupid` int(10) unsigned NOT NULL default '0',
-  `userid` int(10) unsigned NOT NULL default '0',
-  `timeadded` int(10) unsigned NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  UNIQUE KEY `id` (`id`),
-  KEY `groupid` (`groupid`),
-  KEY `userid` (`userid`)
-) ENGINE=MyISAM ;
diff --git a/group/db/postgres7.sql b/group/db/postgres7.sql
deleted file mode 100644 (file)
index a21609b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-CREATE TABLE prefix_groups_courses_groupings (
-    id SERIAL PRIMARY KEY,
-    courseid integer NOT NULL default 0,
-    groupingid integer NOT NULL default 0
-);
-CREATE INDEX prefix_groups_courses_groupings_courseid_idx ON prefix_groups_courses_groupings (courseid);
-COMMENT ON TABLE prefix_groups_courses_groupings IS 'New groupings (OU).';
-
-
-CREATE TABLE prefix_groups_courses_groups (
-    id SERIAL PRIMARY KEY,
-    courseid integer NOT NULL default '0',
-    groupid integer NOT NULL default '0'
-);
-CREATE INDEX prefix_groups_courses_groups_courseid_idx ON prefix_groups_courses_groups (courseid);
-
-
-CREATE TABLE prefix_groups_groupings (
-    id SERIAL PRIMARY KEY,
-    name varchar(254) NOT NULL,
-    description text NOT NULL default '',
-    timecreated integer NOT NULL default 0,
-    viewowngroup integer NOT NULL default 1,
-    viewallgroupsmembers integer NOT NULL default 0,
-    viewallgroupsactivities integer NOT NULL default 0,
-    teachersgroupmark integer NOT NULL default 0,
-    teachersgroupview integer NOT NULL default 0,
-    teachersoverride integer NOT NULL default 0
-);
-
-
-CREATE TABLE prefix_groups_groupings_groups (
-    id SERIAL PRIMARY KEY,
-    groupingid integer NOT NULL default 0,
-    groupid integer NOT NULL default 0,
-    timeadded integer NOT NULL default 0
-);
-CREATE INDEX prefix_groups_groupings_groups_groupingid_idx ON prefix_groups_groupings_groups (groupingid);
-
-
-CREATE TABLE prefix_groups (
-    id SERIAL PRIMARY KEY,
-    name varchar(255) NOT NULL,
-    description text NOT NULL default '',
-    enrolmentkey varchar(50) NOT NULL default '',
-    lang varchar(10) NOT NULL default 'en',
-    theme varchar(50) NOT NULL default '',
-    picture integer NOT NULL default '0',
-    hidepicture integer NOT NULL default '0',
-    timecreated integer NOT NULL default '0',
-    timemodified integer NOT NULL default '0'
-);
-
-
-CREATE TABLE prefix_groups_members (
-    id SERIAL PRIMARY KEY,
-    groupid integer NOT NULL default '0',
-    userid integer NOT NULL default '0',
-    timeadded integer NOT NULL default '0'
-);
-CREATE INDEX prefix_groups_members_groupid_idx ON prefix_groups_members (groupid);
-CREATE INDEX prefix_groups_members_userid_idx ON prefix_groups_members (userid);
-COMMENT ON TABLE prefix_groups_members IS 'New groupings (OU).';
index cacbb5b..af358da 100755 (executable)
@@ -16,12 +16,17 @@ require_once('lib.php');
 require_once('edit_form.php');
 
 /// get url variables
+$courseid    = required_param('courseid', PARAM_INT);
 $id          = optional_param('id', false, PARAM_INT);         
 $groupingid  = optional_param('grouping', false, PARAM_INT);
 $newgrouping = optional_param('newgrouping', false, PARAM_INT);
-$courseid    = required_param('courseid', PARAM_INT);
+$delete      = optional_param('delete', 0, PARAM_BOOL);
+$confirm     = optional_param('confirm', 0, PARAM_BOOL);
 
-$delete = optional_param('delete', false, PARAM_BOOL);
+if (empty($CFG->enablegroupings)) {
+    // NO GROUPINGS YET!
+    $groupingid = GROUP_NOT_IN_GROUPING;
+}
 
 /// Course must be valid 
 if (!$course = get_record('course', 'id', $courseid)) {
@@ -33,6 +38,18 @@ if ($delete && !$id) {
     error(get_string('errorinvalidgroup'));
 }
 
+if ($delete && !$confirm) {
+    print_header(get_string('deleteselectedgroup', 'group'), get_string('deleteselectedgroup', 'group'));
+    $optionsyes = array('id'=>$id, 'delete'=>1, 'courseid'=>$courseid, 'sesskey'=>sesskey(), 'confirm'=>1);
+    $optionsno  = array('id'=>$courseid);
+    if (!$group = get_record('groups', 'id', $id)) {
+        error('Group ID was incorrect');
+    } 
+    notice_yesno(get_string('deletegroupconfirm', 'group', $group->name), 'edit.php', 'index.php', $optionsyes, $optionsno, 'post', 'get');
+    print_footer();
+    die;
+}
+
 /// basic access control checks
 if ($id) {
     if (!$group = get_record('groups', 'id', $id)) {
@@ -62,6 +79,9 @@ if (!empty($group)) {
 
 // Process delete action
 if ($delete) {
+    if (!confirm_sesskey()) {
+        error('Sesskey error');
+    }
     if (groups_delete_group($id)) {
         redirect(groups_home_url($course->id, null, $groupingid, false));
     } else {
index 8e1a5a2..f1d9a33 100644 (file)
@@ -47,12 +47,16 @@ class group_edit_form extends moodleform {
             $mform->setHelpButton('imagefile', array ('picture', get_string('helppicture')), true);
         }
 
-        
+
         if ($group) {
             $buttonstr = get_string('save', 'group');
             $mform->addElement('hidden','id', null);
             $mform->setType('id', PARAM_INT);
-
+if (empty($CFG->enablegroupings)) {
+    // NO GROUPINGS YET!
+            $mform->addElement('hidden', 'newgrouping', GROUP_NOT_IN_GROUPING);
+            $mform->setType('newgrouping', PARAM_INT);
+} else {
             // Options to move group to another grouping
             $groupingids = groups_get_groupings($courseid);
             
@@ -67,8 +71,9 @@ class group_edit_form extends moodleform {
                 $mform->addElement('select', 'newgrouping', get_string('addgroupstogrouping', 'group'), $listgroupings);
                 $mform->setDefault('newgrouping', $groupingid);
             }
+}
         }
-        
+
         if($groupingid) {
             $mform->addElement('hidden', 'grouping', $groupingid);
             $mform->setType('grouping', PARAM_INT);
index 4bdcd8b..04324eb 100644 (file)
@@ -18,6 +18,11 @@ $id = optional_param('id', false, PARAM_INT);
 
 $delete = optional_param('delete', false, PARAM_BOOL);
 
+if (empty($CFG->enablegroupings)) {
+    // NO GROUPIGS YET!
+    error('No groupings yet');
+}
+
 // Get the course information so we can print the header and
 // check the course id is valid
 $course = groups_get_course_info($courseid);
diff --git a/group/groupui/addgroupstogrouping-form.html b/group/groupui/addgroupstogrouping-form.html
deleted file mode 100644 (file)
index cc998c8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<div id="addgroupstogroupingform" class="popup">
-    <h3><?php print_string('addgroupstogrouping', 'group'); ?> <span id="selectedgroupingforaddinggroups"></span>
-    </h3>
-    <form action="">
-        <p><select id="groupsnotingrouping" size="15" multiple="multiple" class="select"></select></p>
-        <p><input type="button" id="addgroupstogrouping" value="<?php print_string('addgroupstogrouping', 'group'); ?>" /></p>
-        <p><input type="button" id="canceladdgroupstogrouping" value="<?php print_string('cancel', 'group'); ?>" /></p>
-    </form>
-</div>
diff --git a/group/groupui/addgroupstogrouping-form.js b/group/groupui/addgroupstogrouping-form.js
deleted file mode 100644 (file)
index 9a9e90a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-function onAddGroupsToGrouping() {
-    hideAllForms();
-    showElement("groupeditform");
-    addGroupsToGrouping();
-    setText('selectedgroupingforaddinggroups', "");
-    return false;
-}
-
-
-/*
- * Adds the selected groups to the selected groupings
- */
-function addGroupsToGrouping() {
-    //alert("Called addGroupsToGrouping");
-    selectedgroups = getMultipleSelect("groupsnotingrouping");
-    if (selectedgroups != '') {
-        var url = "addgroupstogrouping-xml.php";
-        var requeststring = "groupingid="+selectedgroupingid
-            +"&groups="+selectedgroups;
-        sendPostRequest(request, url, requeststring, addGroupsToGroupingResponse);
-    }
-}
-
-
-/**
- * The callback for the response to the request sent in addGroupsToGrouping() 
- */
-function addGroupsToGroupingResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("addGroupsToGrouping called");
-        //alert(request.responseText);
-        // Need XML sent back with groupingid
-        // Really want to set this to be the grouping before
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        updateGroupings();
-        hideElement("addgroupstogroupingform");
-    }
-}
-
-
-/**
- * Updates the groups not in the selected grouping for the form for adding groups to a grouping
- */
-function updateGroupsNotInGrouping() {
-    //alert("updateNonMembers called");
-    var url="getgroupsnotingrouping-xml.php";
-    var requeststring = "groupingid="+selectedgroupingid;
-    sendPostRequest(request, url, requeststring, updateGroupsNotInGroupingResponse);
-}
-
-
-/**
- * The callback for the response to the request sent in updateGroupsNotInGrouping() 
- */
-function updateGroupsNotInGroupingResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("updateGroupsNotInGroupingResponse");
-        var xmlDoc = request.responseXML;
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        addOptionsFromXML("groupsnotingrouping", xmlDoc);
-    }
-}
-
-
diff --git a/group/groupui/addgroupstogrouping-xml.php b/group/groupui/addgroupstogrouping-xml.php
deleted file mode 100644 (file)
index 9e3850f..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Adds an existing group to a grouping.
- *
- * @copyright &copy; 2006 The Open University
- * @author J.White AT open.ac.uk 
- * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package groups
- */
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid   = required_param('courseid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-$groups     = required_param('groups', PARAM_SEQUENCE); //TODO: check.
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupids = explode(',', $groups); 
-
-    if ($groupids != false) {
-        foreach($groupids as $groupid) {
-            $groupadded = groups_add_group_to_grouping($groupid, $groupingid);
-            if (!$groupadded) {
-                echo '<error>Failed to add group $groupid to grouping</error>';
-            }
-        } 
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/addmembers-form.html b/group/groupui/addmembers-form.html
deleted file mode 100644 (file)
index 54847fc..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<div id="addmembersform" class="popup">
-    <h3><?php print_string('adduserstogroup', 'group'); ?> <span id="selectedgroup"></span></h3>
-    <form action="">
-        <p><input type="checkbox" id="showall" /><?php print_string('showusersalreadyingroup', 'group'); ?> </p>
-        <p><select id="nonmembers" size="15" multiple="multiple" class="select"></select></p>
-        <p><input type="button" id="addmembers" value="<?php print_string('adduserstogroup', 'group'); ?>" /></p>
-        <p><input type="button" id="canceladdmembers" value="<?php print_string('cancel', 'group'); ?>" /></p>
-    </form>
-</div>
diff --git a/group/groupui/addmembers-form.js b/group/groupui/addmembers-form.js
deleted file mode 100644 (file)
index 9aa54bb..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-function onAddMembers() {
-    hideAllForms();
-    showElement("groupeditform");
-    addMembers();
-    return false;
-}
-
-function onShowAll() {
-    updateNonMembers();
-    return false;
-}
-
-
-
-/*
- * Adds the selected users to the selected group
- */
-function addMembers() {
-    //alert("Called addMembers");
-    users = getMultipleSelect("nonmembers");
-    if (users != '') {
-        var url = "addmembers-xml.php";
-        var requeststring = "groupid="+selectedgroupid+"&users="+users;
-        sendPostRequest(request, url, requeststring, addMembersResponse);
-    }
-}
-
-/**
- * The callback for the response to the request sent in addMembers() 
- */
-function addMembersResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("addMembersResponse called");
-        //alert(request.responseText);
-        // Need XML sent back with groupingid
-        // Really want to set this to be the grouping before
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        updateSelectedGrouping();
-        hideElement("addmembersform");
-    }
-}
-
-
-/**
- * Updates the list of non members of a group in the form for adding members to a group
- */
-function updateNonMembers() {
-    //alert("updateNonMembers called");
-    var url="getnonmembers-xml.php";
-    // showall indicates if we should show users already in groups in the grouping
-    // we have to turn it into a variable that we can put in a post
-    var showall = getCheckBoxValue('showall');;
-    var requeststring = "groupid="+selectedgroupid
-        +"&groupingid="+selectedgroupingid
-        +"&showall="+showall;
-
-    sendPostRequest(request, url, requeststring, updateNonMembersResponse);
-}
-
-/**
- * The callback for the response to the request sent in updateNonMembers() 
- */
-function updateNonMembersResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("updateNonMembersResponse");
-        var xmlDoc = request.responseXML;
-        // alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        addOptionsFromXML("nonmembers", xmlDoc);
-    }
-}
-
-
diff --git a/group/groupui/addmembers-xml.php b/group/groupui/addmembers-xml.php
deleted file mode 100644 (file)
index b31478d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**********************************************
- * Adds users to a group
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid = required_param('courseid', PARAM_INT);
-$groupid  = required_param('groupid', PARAM_INT);
-$users    = required_param('users', PARAM_SEQUENCE);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $userids = explode(',', $users); 
-
-    if ($userids != false) {
-        foreach($userids as $userid) {
-            $useradded = groups_add_member($groupid, $userid);
-            if (!$useradded) {
-                echo '<error>Failed to add user $userid to group</error>';
-            }
-        }
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/ajax.js b/group/groupui/ajax.js
deleted file mode 100644 (file)
index eab802e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/***********************************************************************************************************
- * Contains functions for creating and sending Ajax requests.
- * This code needs to be a bit more careful about creating separate requests for different events - if 
- * somebody presses a button several times in quick succession (such as the delete grouping button) then 
- * we get an error. 
- * There also seems to a problem with IE - need to check this out
- ***********************************************************************************************************/
-
-
-<?php
-    echo "var courseid = $courseid;"; 
-    echo "var sesskey = '$sesskey';";
-?>
-
-/*
- * Creates an XMLHttpRequest object 
- * @return The XMLHttpRequest object created. 
- */
-function createRequest() {
-    var newrequest = null;
-    try {
-        newrequest = new XMLHttpRequest();
-    } catch (trymicrosoft) {
-        // Deal with Microsoft browsers 
-        try {
-            newrequest = new ActiveXObject("Msxml2.XMLHTTP");
-        } catch (othermicrosoft) {
-            try {
-                newrequest = new ActiveXObject("Microsoft.XMLHTTP");
-            } catch (failed) {
-                newrequest = null;
-            }
-        }
-    }
-
-    if (newrequest == null) {
-        alert("Error creating request object!");
-    } else {
-        return newrequest;
-    }
-}
-
-/*
- * Sends an Ajax post request 
- * @param request - The XMLHttpRequest object
- * @param url - The URL to send the request to 
- * @param requeststring - The string containing the variables to send in the post request - the format
- * is basically the same as a GET string
- * @callbackfunction  - The function to call when the response to the request is received 
-*/
-function sendPostRequest(postrequest, url, requeststring, callbackfunction) {
-    // Add on the date and time to get round caching problem
-    url = url + "?dummy=" + new Date().getTime();
-    // Add the course id and sesskey so we can check these on the server 
-    requeststring = 'courseid='+courseid+'&'+'sesskey='+sesskey+'&'+requeststring;
-    postrequest.abort();
-    postrequest.open('post',  url, true);
-    postrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-    postrequest.onreadystatechange = callbackfunction;
-    postrequest.send(requeststring);
-}
-
-function checkAjaxResponse(request) {
-    process = false;
-
-    if (request.readyState == 4 && request.status == 200) {
-        process = true;
-    }
-    if (request.readyState == 4 && request.status != 200) {
-        alert('An error has occurred - the page returned a '+ request.status + ' error');
-    }
-    return process;    
-}
-
-var responseFailure = function(o){ 
-    alert("Failure callback");
-}
diff --git a/group/groupui/connection.js b/group/groupui/connection.js
deleted file mode 100644 (file)
index 670a106..0000000
+++ /dev/null
@@ -1,775 +0,0 @@
-/*
-Copyright (c) 2006, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 0.11.0
-*/
-
-/**
- * The Connection Manager provides a simplified interface to the XMLHttpRequest
- * object.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the
- * interactive states and server response, returning the results to a pre-defined
- * callback you create.
- * @ class
- */
-YAHOO.util.Connect =
-{
-/**
-   * Array of MSFT ActiveX ids for XMLHttpRequest.
-   * @private
-   * @type array
-   */
-       _msxml_progid:[
-                       'MSXML2.XMLHTTP.3.0',
-                       'MSXML2.XMLHTTP',
-                       'Microsoft.XMLHTTP'
-                       ],
-
-  /**
-   * Object literal of HTTP header(s)
-   * @private
-   * @type object
-   */
-       _http_header:{},
-
-  /**
-   * Determines if HTTP headers are set.
-   * @private
-   * @type boolean
-   */
-       _has_http_headers:false,
-
- /**
-  * Determines if a default header of
-  * Content-Type of 'application/x-www-form-urlencoded'
-  * will be added to any client HTTP headers sent for POST
-  * transactions.
-  * @private
-  * @type boolean
-  */
-    _default_post_header:true,
-
- /**
-  * Property modified by setForm() to determine if the data
-  * should be submitted as an HTML form.
-  * @private
-  * @type boolean
-  */
-    _isFormSubmit:false,
-
- /**
-  * Property modified by setForm() to determine if a file(s)
-  * upload is expected.
-  * @private
-  * @type boolean
-  */
-    _isFileUpload:false,
-
- /**
-  * Property modified by setForm() to set a reference to the HTML
-  * form node if the desired action is file upload.
-  * @private
-  * @type object
-  */
-    _formNode:null,
-
- /**
-  * Property modified by setForm() to set the HTML form data
-  * for each transaction.
-  * @private
-  * @type string
-  */
-    _sFormData:null,
-
- /**
-  * Collection of polling references to the polling mechanism in handleReadyState.
-  * @private
-  * @type string
-  */
-    _poll:[],
-
- /**
-  * Queue of timeout values for each transaction callback with a defined timeout value.
-  * @private
-  * @type string
-  */
-    _timeOut:[],
-
-  /**
-   * The polling frequency, in milliseconds, for HandleReadyState.
-   * when attempting to determine a transaction's XHR readyState.
-   * The default is 50 milliseconds.
-   * @private
-   * @type int
-   */
-     _polling_interval:50,
-
-  /**
-   * A transaction counter that increments the transaction id for each transaction.
-   * @private
-   * @type int
-   */
-     _transaction_id:0,
-
-  /**
-   * Member to add an ActiveX id to the existing xml_progid array.
-   * In the event(unlikely) a new ActiveX id is introduced, it can be added
-   * without internal code modifications.
-   * @public
-   * @param string id The ActiveX id to be added to initialize the XHR object.
-   * @return void
-   */
-       setProgId:function(id)
-       {
-               this._msxml_progid.unshift(id);
-       },
-
-  /**
-   * Member to enable or disable the default POST header.
-   * @public
-   * @param boolean b Set and use default header - true or false .
-   * @return void
-   */
-       setDefaultPostHeader:function(b)
-       {
-               this._default_post_header = b;
-       },
-
-  /**
-   * Member to modify the default polling interval.
-   * @public
-   * @param {int} i The polling interval in milliseconds.
-   * @return void
-   */
-       setPollingInterval:function(i)
-       {
-               if(typeof i == 'number' && isFinite(i)){
-                               this._polling_interval = i;
-               }
-       },
-
-  /**
-   * Instantiates a XMLHttpRequest object and returns an object with two properties:
-   * the XMLHttpRequest instance and the transaction id.
-   * @private
-   * @param {int} transactionId Property containing the transaction id for this transaction.
-   * @return connection object
-   */
-       createXhrObject:function(transactionId)
-       {
-               var obj,http;
-               try
-               {
-                       // Instantiates XMLHttpRequest in non-IE browsers and assigns to http.
-                       http = new XMLHttpRequest();
-                       //  Object literal with http and tId properties
-                       obj = { conn:http, tId:transactionId };
-               }
-               catch(e)
-               {
-                       for(var i=0; i<this._msxml_progid.length; ++i){
-                               try
-                               {
-                                       // Instantiates XMLHttpRequest for IE and assign to http.
-                                       http = new ActiveXObject(this._msxml_progid[i]);
-                                       //  Object literal with http and tId properties
-                                       obj = { conn:http, tId:transactionId };
-                                       break;
-                               }
-                               catch(e){}
-                       }
-               }
-               finally
-               {
-                       return obj;
-               }
-       },
-
-  /**
-   * This method is called by asyncRequest to create a
-   * valid connection object for the transaction.  It also passes a
-   * transaction id and increments the transaction id counter.
-   * @private
-   * @return object
-   */
-       getConnectionObject:function()
-       {
-               var o;
-               var tId = this._transaction_id;
-
-               try
-               {
-                       o = this.createXhrObject(tId);
-                       if(o){
-                               this._transaction_id++;
-                       }
-               }
-               catch(e){}
-               finally
-               {
-                       return o;
-               }
-       },
-
-  /**
-   * Method for initiating an asynchronous request via the XHR object.
-   * @public
-   * @param {string} method HTTP transaction method
-   * @param {string} uri Fully qualified path of resource
-   * @param callback User-defined callback function or object
-   * @param {string} postData POST body
-   * @return {object} Returns the connection object
-   */
-       asyncRequest:function(method, uri, callback, postData)
-       {
-               var o = this.getConnectionObject();
-
-               if(!o){
-                       return null;
-               }
-               else{
-                       if(this._isFormSubmit){
-                               if(this._isFileUpload){
-                                       this.uploadFile(o.tId, callback, uri);
-                                       this.releaseObject(o);
-                                       return;
-                               }
-
-                               //If the specified HTTP method is GET, setForm() will return an
-                               //encoded string that is concatenated to the uri to
-                               //create a querystring.
-                               if(method == 'GET'){
-                                       uri += "?" +  this._sFormData;
-                               }
-                               else if(method == 'POST'){
-                                       postData =  this._sFormData;
-                               }
-                               this._sFormData = '';
-                       }
-
-                       o.conn.open(method, uri, true);
-
-                       if(this._isFormSubmit || (postData && this._default_post_header)){
-                               this.initHeader('Content-Type','application/x-www-form-urlencoded');
-                               if(this._isFormSubmit){
-                                       this._isFormSubmit = false;
-                               }
-                       }
-
-                       //Verify whether the transaction has any user-defined HTTP headers
-                       //and set them.
-                       if(this._has_http_headers){
-                               this.setHeader(o);
-                       }
-
-                       this.handleReadyState(o, callback);
-                       postData?o.conn.send(postData):o.conn.send(null);
-
-                       return o;
-               }
-       },
-
-  /**
-   * This method serves as a timer that polls the XHR object's readyState
-   * property during a transaction, instead of binding a callback to the
-   * onreadystatechange event.  Upon readyState 4, handleTransactionResponse
-   * will process the response, and the timer will be cleared.
-   *
-   * @private
-   * @param {object} o The connection object
-   * @param callback User-defined callback object
-   * @return void
-   */
-    handleReadyState:function(o, callback)
-    {
-        var timeOut = callback.timeout;
-        var oConn = this;
-
-        try
-        {
-            if(timeOut !== undefined){
-               this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true) }, timeOut);
-            }
-            this._poll[o.tId] = window.setInterval(
-                function(){
-                                       if(o.conn && o.conn.readyState == 4){
-                                               window.clearInterval(oConn._poll[o.tId]);
-                                               oConn._poll.splice(o.tId);
-                                               if(timeOut){
-                                                       oConn._timeOut.splice(o.tId);
-                                               }
-
-                                               oConn.handleTransactionResponse(o, callback);
-                    }
-                }
-            ,this._polling_interval);
-        }
-        catch(e)
-        {
-            window.clearInterval(oConn._poll[o.tId]);
-            oConn._poll.splice(o.tId);
-                       if(timeOut){
-                               oConn._timeOut.splice(o.tId);
-                       }
-
-            oConn.handleTransactionResponse(o, callback);
-        }
-    },
-
-  /**
-   * This method attempts to interpret the server response and
-   * determine whether the transaction was successful, or if an error or
-   * exception was encountered.
-   *
-   * @private
-   * @param {object} o The connection object
-   * @param {object} callback - User-defined callback object
-   * @param {boolean} determines if the transaction was aborted.
-   * @return void
-   */
-    handleTransactionResponse:function(o, callback, isAbort)
-    {
-               // If no valid callback is provided, then do not process any callback handling.
-               if(!callback){
-                       this.releaseObject(o);
-                       return;
-               }
-
-               var httpStatus, responseObject;
-
-               try
-               {
-                       if(o.conn.status !== undefined && o.conn.status != 0){
-                               httpStatus = o.conn.status;
-                       }
-                       else{
-                               httpStatus = 13030;
-                       }
-               }
-               catch(e){
-                       // 13030 is the custom code to indicate the condition -- in Mozilla/FF --
-                       // when the o object's status and statusText properties are
-                       // unavailable, and a query attempt throws an exception.
-                       httpStatus = 13030;
-               }
-
-               if(httpStatus >= 200 && httpStatus < 300){
-                       responseObject = this.createResponseObject(o, callback.argument);
-                       if(callback.success){
-                               if(!callback.scope){
-                                       callback.success(responseObject);
-                               }
-                               else{
-                                       // If a scope property is defined, the callback will be fired from
-                                       // the context of the object.
-                                       callback.success.apply(callback.scope, [responseObject]);
-                               }
-                       }
-               }
-               else{
-                       switch(httpStatus){
-                               // The following case labels are wininet.dll error codes that may be encountered.
-                               // Server timeout
-                               case 12002:
-                               // 12029 to 12031 correspond to dropped connections.
-                               case 12029:
-                               case 12030:
-                               case 12031:
-                               // Connection closed by server.
-                               case 12152:
-                               // See above comments for variable status.
-                               case 13030:
-                                       responseObject = this.createExceptionObject(o.tId, callback.argument, isAbort);
-                                       if(callback.failure){
-                                               if(!callback.scope){
-                                                       callback.failure(responseObject);
-                                               }
-                                               else{
-                                                       callback.failure.apply(callback.scope, [responseObject]);
-                                               }
-                                       }
-                                       break;
-                               default:
-                                       responseObject = this.createResponseObject(o, callback.argument);
-                                       if(callback.failure){
-                                               if(!callback.scope){
-                                                       callback.failure(responseObject);
-                                               }
-                                               else{
-                                                       callback.failure.apply(callback.scope, [responseObject]);
-                                               }
-                                       }
-                       }
-               }
-
-               this.releaseObject(o);
-    },
-
-  /**
-   * This method evaluates the server response, creates and returns the results via
-   * its properties.  Success and failure cases will differ in the response
-   * object's property values.
-   * @private
-   * @param {object} o The connection object
-   * @param {} callbackArg User-defined argument or arguments to be passed to the callback
-   * @return object
-   */
-    createResponseObject:function(o, callbackArg)
-    {
-               var obj = {};
-               var headerObj = {};
-
-               try
-               {
-                       var headerStr = o.conn.getAllResponseHeaders();
-                       var header = headerStr.split('\n');
-                       for(var i=0; i < header.length; i++){
-                               var delimitPos = header[i].indexOf(':');
-                               if(delimitPos != -1){
-                                       headerObj[header[i].substring(0,delimitPos)] = header[i].substring(delimitPos+1);
-                               }
-                       }
-               }
-               catch(e){}
-
-               obj.tId = o.tId;
-               obj.status = o.conn.status;
-               obj.statusText = o.conn.statusText;
-               obj.getResponseHeader = headerObj;
-               obj.getAllResponseHeaders = headerStr;
-               obj.responseText = o.conn.responseText;
-               obj.responseXML = o.conn.responseXML;
-
-               if(typeof callbackArg !== undefined){
-                       obj.argument = callbackArg;
-               }
-
-               return obj;
-    },
-
-  /**
-   * If a transaction cannot be completed due to dropped or closed connections,
-   * there may be not be enough information to build a full response object.
-   * The failure callback will be fired and this specific condition can be identified
-   * by a status property value of 0.
-   *
-   * If an abort was successful, the status property will report a value of -1.
-   *
-   * @private
-   * @param {int} tId Transaction Id
-   * @param callbackArg The user-defined arguments
-   * @param isAbort Determines if the exception is an abort.
-   * @return object
-   */
-    createExceptionObject:function(tId, callbackArg, isAbort)
-    {
-               var COMM_CODE = 0;
-               var COMM_ERROR = 'communication failure';
-               var ABORT_CODE = -1;
-               var ABORT_ERROR = 'transaction aborted';
-
-               var obj = {};
-
-               obj.tId = tId;
-               if(isAbort){
-                       obj.status = ABORT_CODE;
-                       obj.statusText = ABORT_ERROR;
-               }
-               else{
-                       obj.status = COMM_CODE;
-                       obj.statusText = COMM_ERROR;
-               }
-
-               if(callbackArg){
-                       obj.argument = callbackArg;
-               }
-
-               return obj;
-    },
-
-  /**
-   * Public method that stores the custom HTTP headers for each transaction.
-   * @public
-   * @param {string} label The HTTP header label
-   * @param {string} value The HTTP header value
-   * @return void
-   */
-       initHeader:function(label,value)
-       {
-               if(this._http_header[label] === undefined){
-                       this._http_header[label] = value;
-               }
-               else{
-                       this._http_header[label] =  value + "," + this._http_header[label];
-               }
-
-               this._has_http_headers = true;
-       },
-
-  /**
-   * Accessor that sets the HTTP headers for each transaction.
-   * @private
-   * @param {object} o The connection object for the transaction.
-   * @return void
-   */
-       setHeader:function(o)
-       {
-               for(var prop in this._http_header){
-                       if(this._http_header.propertyIsEnumerable){
-                               o.conn.setRequestHeader(prop, this._http_header[prop]);
-                       }
-               }
-               delete this._http_header;
-
-               this._http_header = {};
-               this._has_http_headers = false;
-       },
-
-  /**
-   * This method assembles the form label and value pairs and
-   * constructs an encoded string.
-   * asyncRequest() will automatically initialize the
-   * transaction with a HTTP header Content-Type of
-   * application/x-www-form-urlencoded.
-   * @public
-   * @param {string || object} form id or name attribute, or form object.
-   * @param {string} optional boolean to indicate SSL environment.
-   * @param {string} optional qualified path of iframe resource for SSL in IE.
-   * @return void
-   */
-       setForm:function(formId, isUpload, secureUri)
-       {
-               this._sFormData = '';
-               if(typeof formId == 'string'){
-                       // Determine if the argument is a form id or a form name.
-                       // Note form name usage is deprecated by supported
-                       // here for legacy reasons.
-                       var oForm = (document.getElementById(formId) || document.forms[formId]);
-               }
-               else if(typeof formId == 'object'){
-                       var oForm = formId;
-               }
-               else{
-                       return;
-               }
-
-               // If the isUpload argument is true, setForm will call createFrame to initialize
-               // an iframe as the form target.
-               //
-               // The argument secureURI is also required by IE in SSL environments
-               // where the secureURI string is a fully qualified HTTP path, used to set the source
-               // of the iframe, to a stub resource in the same domain.
-               if(isUpload){
-                       (typeof secureUri == 'string')?this.createFrame(secureUri):this.createFrame();
-                       this._isFormSubmit = true;
-                       this._isFileUpload = true;
-                       this._formNode = oForm;
-
-                       return;
-               }
-
-               var oElement, oName, oValue, oDisabled;
-               var hasSubmit = false;
-
-               // Iterate over the form elements collection to construct the
-               // label-value pairs.
-               for (var i=0; i<oForm.elements.length; i++){
-                       oDisabled = oForm.elements[i].disabled;
-
-                       // If the name attribute is not populated, the form field's
-                       // value will not be submitted.
-                       oElement = oForm.elements[i];
-                       oName = oForm.elements[i].name;
-                       oValue = oForm.elements[i].value;
-
-                       // Do not submit fields that are disabled or
-                       // do not have a name attribute value.
-                       if(!oDisabled && oName)
-                       {
-                               switch (oElement.type)
-                               {
-                                       case 'select-one':
-                                       case 'select-multiple':
-                                               for(var j=0; j<oElement.options.length; j++){
-                                                       if(oElement.options[j].selected){
-                                                                       this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].value || oElement.options[j].text) + '&';
-                                                       }
-                                               }
-                                               break;
-                                       case 'radio':
-                                       case 'checkbox':
-                                               if(oElement.checked){
-                                                       this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
-                                               }
-                                               break;
-                                       case 'file':
-                                               // stub case as XMLHttpRequest will only send the file path as a string.
-                                       case undefined:
-                                               // stub case for fieldset element which returns undefined.
-                                       case 'reset':
-                                               // stub case for input type reset button.
-                                       case 'button':
-                                               // stub case for input type button elements.
-                                               break;
-                                       case 'submit':
-                                               if(hasSubmit == false){
-                                                       this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
-                                                       hasSubmit = true;
-                                               }
-                                               break;
-                                       default:
-                                               this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
-                                               break;
-                               }
-                       }
-               }
-
-               this._isFormSubmit = true;
-               this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);
-       },
-
-  /**
-   * Creates an iframe to be used for form file uploads.  It is remove from the
-   * document upon completion of the upload transaction.
-   *
-   * @private
-   * @param {string} optional qualified path of iframe resource for SSL in IE.
-   * @return void
-   */
-       createFrame:function(secureUri){
-
-               // IE does not allow the setting of id and name attributes as DOM
-               // properties.  A different iframe creation pattern is required for IE.
-               if(window.ActiveXObject){
-                       var io = document.createElement('<IFRAME name="ioFrame" id="ioFrame">');
-                       if(secureUri){
-                               // IE will throw a security exception in an SSL environment if the
-                               // iframe source isn't set to a valid resource.
-                               io.src = secureUri;
-                       }
-               }
-               else{
-                       var io = document.createElement('IFRAME');
-                       io.id = 'ioFrame';
-                       io.name = 'ioFrame';
-               }
-
-               io.style.position = 'absolute';
-               io.style.top = '-1000px';
-               io.style.left = '-1000px';
-
-               document.body.appendChild(io);
-       },
-
-  /**
-   * Uploads HTML form, including files/attachments,  targeting the
-   * iframe created in createFrame.
-   *
-   * @private
-   * @param {int} id The transaction id.
-   * @param {object} callback - User-defined callback object.
-   * @param {string} uri Fully qualified path of resource.
-   * @return void
-   */
-       uploadFile:function(id, callback, uri){
-               // Initialize the HTML form properties in case they are
-               // not defined in the HTML form.
-               this._formNode.action = uri;
-               this._formNode.enctype = 'multipart/form-data';
-               this._formNode.method = 'POST';
-               this._formNode.target = 'ioFrame';
-               this._formNode.submit();
-
-               // Reset form status properties.
-               this._formNode = null;
-               this._isFileUpload = false;
-               this._isFormSubmit = false;
-
-               // Create the upload callback handler that fires when the iframe
-               // receives the load event.  Subsequently, the event handler is detached
-               // and the iframe removed from the document.
-
-               var uploadCallback = function()
-               {
-                       var oResponse =
-                       {
-                               tId: id,
-                               responseText: document.getElementById("ioFrame").contentWindow.document.body.innerHTML,
-                               argument: callback.argument
-                       }
-
-                       if(callback.upload && !callback.scope){
-                               callback.upload(oResponse);
-                       }
-                       else{
-                               callback.upload.apply(callback.scope, [oResponse]);
-                       }
-
-                       YAHOO.util.Event.removeListener("ioFrame", "load", uploadCallback);
-                       window.ioFrame.location.replace('#');
-                       setTimeout("document.body.removeChild(document.getElementById('ioFrame'))",100);
-               };
-
-               // Bind the onload handler to the iframe to detect the file upload response.
-               YAHOO.util.Event.addListener("ioFrame", "load", uploadCallback);
-       },
-
-  /**
-   * Public method to terminate a transaction, if it has not reached readyState 4.
-   * @public
-   * @param {object} o The connection object returned by asyncRequest.
-   * @param {object} callback  User-defined callback object.
-   * @param {string} isTimeout boolean to indicate if abort was a timeout.
-   * @return void
-   */
-       abort:function(o, callback, isTimeout)
-       {
-               if(this.isCallInProgress(o)){
-                       window.clearInterval(this._poll[o.tId]);
-                       this._poll.splice(o.tId);
-                       if(isTimeout){
-                               this._timeOut.splice(o.tId);
-                       }
-                       o.conn.abort();
-                       this.handleTransactionResponse(o, callback, true);
-
-                       return true;
-               }
-               else{
-                       return false;
-               }
-       },
-
-  /**
-   * Public method to check if the transaction is still being processed.
-   * @public
-   * @param {object} o The connection object returned by asyncRequest
-   * @return boolean
-   */
-       isCallInProgress:function(o)
-       {
-               // if the XHR object assigned to the transaction has not been dereferenced,
-               // then check its readyState status.  Otherwise, return false.
-               if(o.conn){
-                       return o.conn.readyState != 4 && o.conn.readyState != 0;
-               }
-               else{
-                       //The XHR object has been destroyed.
-                       return false;
-               }
-       },
-
-  /**
-   * Dereference the XHR instance and the connection object after the transaction is completed.
-   * @private
-   * @param {object} o The connection object
-   * @return void
-   */
-       releaseObject:function(o)
-       {
-               //dereference the XHR instance.
-               o.conn = null;
-               //dereference the connection object.
-               o = null;
-       }
-};
diff --git a/group/groupui/createautomaticgrouping-form.html b/group/groupui/createautomaticgrouping-form.html
deleted file mode 100644 (file)
index 282fe1c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<div id="createautomaticgroupingform" class="popupwide">
-<h3><?php print_string('createautomaticgrouping', 'group'); ?></h3>
-<form name="automaticgroupingform" action="">
-    
-<table cellpadding="10">
-    <tr>
-        <td valign="top">
-            <p><?php print_string('groupingname', 'group'); ?></p>
-            <p><input id="automaticgroupingname" type="text" size="40" value="<?php print_string('defaultgroupingname', 'group'); ?>" /></p>
-            <p><?php print_string('groupingdescription', 'group'); ?></p>
-            <p><?php print_textarea($usehtmleditor,  4, 45, 150, 400, 'automaticgroupingdescription'); ?></p>
-            <p> <?php print_string('prefixforgroupnames', 'group'); ?> </p>
-            <p><input id="groupprefix" type="text" size="40 " value="<?php print_string('defaultgroupname', 'group'); ?> " /></p>
-            <p><?php print_string('defaultgroupdescription', 'group'); ?></p>
-            <p><?php print_textarea($usehtmleditor,  4, 45, 150, 400, 'defaultgroupdescription'); ?></p>
-        </td>
-        <td valign="top">
-            <p><input type="checkbox" id="alphabetical" /> <?php print_string('distributealphabetically', 'group'); ?></p>
-            <table>
-                <tr>
-                    <td><input type="radio" name ="generationtype" id="nostudents" value="nostudents" checked />
-                    </td>
-                    <td> <?php print_string('selectnumberineachgroup', 'group'); ?>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&nbsp;</td>
-                    <td>
-                        <p><?php print_string('numberofstudents', 'group'); ?> </p><p><input id="noofstudents" type="text" size="5" /></p>
-                        <p><input type="checkbox" id="distribevenly" checked /> <?php print_string('distributeevenly', 'group'); ?></p>
-                    </td>
-                </tr>
-            </table>
-
-            <table>
-                <tr>
-                    <td><input type="radio" name ="generationtype" id="nogroups" value="nogroups" /></td>
-                    <td><?php print_string('selectnumberofgroups', 'group'); ?></td>
-                </tr>
-                <tr>
-                    <td>&nbsp;</td>
-                    <td>
-                        <p><?php print_string('numberofgroups', 'group'); ?></p><p> <input id="noofgroups" type="text" size="5" /></p>
-                    </td>
-                </tr>
-            </table>
-
-            <p><input type="button" id="createautomaticgrouping" value=" <?php print_string('creategrouping', 'group'); ?>" />&nbsp;
-            <input type="button" id="cancelcreateautomaticgrouping" value=" <?php print_string('cancel', 'group'); ?>" /></p>
-        </td>
-    </tr>
-</table>
-</form>
-</div>
diff --git a/group/groupui/createautomaticgrouping-form.js b/group/groupui/createautomaticgrouping-form.js
deleted file mode 100644 (file)
index 9a0020d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-function onCreateAutomaticGrouping() {
-    valid =  validateAutomaticGroupingForm();
-    if (valid) {
-        hideAllForms();
-        showElement("groupeditform");
-        createAutomaticGrouping();
-    }
-
-    return false;
-}
-
-
-/**
- * Adds an automatically generated grouping with the details as specified in the form
- */
-function createAutomaticGrouping() {
-    //alert("Called createAutomaticGrouping");
-    var url = "createautomaticgrouping-xml.php";
-    var requeststring = "noofstudents="+getTextInputValue('noofstudents')
-        +"&noofgroups="+getTextInputValue('noofgroups')
-        +"&distribevenly="+getCheckBoxValue('distribevenly')
-        +"&alphabetical="+getCheckBoxValue('alphabetical')
-        +"&generationtype="+getRadioValue(document.automaticgroupingform.generationtype)
-        +"&name="+getTextInputValue('automaticgroupingname')
-        +"&description="+getTextInputValue('edit-automaticgroupingdescription')
-        +"&prefix="+getTextInputValue('groupprefix')
-        +"&defaultgroupdescription="+getTextInputValue('edit-defaultgroupdescription');
-
-    // alert(requeststring);
-    sendPostRequest(request, url, requeststring, createAutomaticGroupingResponse);
-}
-
-
- /**
-  * The callback for the response to the request sent in createAutomaticGrouping() 
-  * It sets the new grouping to be selected in the form. 
-  */
- function createAutomaticGroupingResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("createAutomaticGroupingResponse");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        } 
-        selectedgroupingid = getFromXML(request.responseXML, 'groupingid');
-        selectedgroupid = null;
-        updateGroupings();
-        hideElement("createautomaticgroupingform");
-    }
- }
-
-function validateAutomaticGroupingForm() {
-    valid = true;
-    generationtype = getRadioValue(document.automaticgroupingform.generationtype);
-    noofstudents = getTextInputValue('noofstudents');
-    noofgroups = getTextInputValue('noofgroups');
-    groupingname = getTextInputValue('automaticgroupingname');
-
-    if (generationtype == 'nostudents') {
-        if (!isPositiveInt(noofstudents)) {
-            alert('The number of students is not valid.');
-            valid = false;
-        } 
-    } else {
-        if (!isPositiveInt(noofgroups)) {
-            alert('The number of groups is not valid.');
-            valid = false;
-        } 
-    }
-
-    if (groupingname == '') {
-        alert('You must enter a name for the new grouping');
-        valid = false;
-    } 
-
-    return valid;
-}
diff --git a/group/groupui/createautomaticgrouping-xml.php b/group/groupui/createautomaticgrouping-xml.php
deleted file mode 100644 (file)
index 14e00ec..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**********************************************
- * Sets up an automatic grouping 
- **********************************************/
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-require_login($courseid);
-
-groups_seed_random_number_generator();
-
-$courseid = required_param('courseid', PARAM_INT);
-
-$noofstudents   = required_param('noofstudents', PARAM_INT);
-$noofgroups     = required_param('noofgroups', PARAM_INT);
-$distribevenly  = required_param('distribevenly', PARAM_INT); //TODO: PARAM_BOOL ?
-$alphabetical   = required_param('alphabetical', PARAM_INT);
-$generationtype = required_param('generationtype', PARAM_ALPHA);
-
-$groupingsettings->name = required_param('name', PARAM_ALPHANUM);
-$groupingsettings->description = required_param('description', PARAM_ALPHANUM);
-$groupingsettings->prefix = required_param('prefix');
-$groupingsettings->defaultgroupdescription = required_param('defaultgroupdescription');
-
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    if ($generationtype == 'nogroups') {
-        $noofstudents = false;
-    }
-
-    $groupingid = groups_create_automatic_grouping($courseid, $noofstudents, $noofgroups, 
-        $distribevenly, $groupingsettings, false, $alphabetical); 
-    if (!$groupingid) {
-        echo '<error>Failed to create grouping</error>';
-    } else {
-        echo '<groupingid>'.$groupingid.'</groupingid>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/creategroup-form.html b/group/groupui/creategroup-form.html
deleted file mode 100644 (file)
index a1066fd..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<div id="creategroupform" class="popup">
-    <h3><?php print_string('creategroup', 'group'); ?> <span id="selectedgroupingforcreatinggroup"></span></h3>
-    <form action="">
-        <p><label for="newgroupname"><?php print_string('groupname', 'group'); ?></label></p>
-        <p><input id="newgroupname" type="text" size="40" value="<?php print_string('defaultgroupname', 'group'); ?>" />
-        <p><?php print_string('groupingdescription', 'group'); ?><br />
-                    <?php helpbutton("text", get_string("helptext")) ?></p>
-        <p><?php print_textarea($usehtmleditor, 5, 45, 200, 400, "newgroupdescription");?></p>
-        <p><?php print_string('enrolmentkey', 'group'); ?></p>
-        <p><input type="text" id="newgroupenrolmentkey" size="25" /></p>
-        <?php if ($printuploadpicture) {  ?>
-        <p><?php print_string('hidepicture', 'group'); ?></p>
-        <p><?php $options = NULL; $options[0] = get_string("no");
-                 $options[1] = get_string("yes");
-                 $group->hidepicture = 1;  
-                 choose_from_menu ($options, "newgrouphidepicture", isset($group)? $group->hidepicture: 1, '');?></p>
-
-            <p><?php print_string('newpicture', 'group'); ?></p>
-            <p><?php upload_print_form_fragment(1,array('newgroupicon'),null,false,null,0,0,false);
-                    helpbutton("picture", get_string("helppicture"));
-                    print_string("maxsize", "", display_size($maxbytes), 'group'); ?>
-               </p>
-            <?php 
-            }  
-            ?>
-            </table>
-            
-            <p><input type="button" id="creategroup" value="<?php print_string('creategroup', 'group'); ?>" /></p>
-            <p><input type="button" id="cancelcreategroup" value="<?php print_string('cancel', 'group'); ?>" /></p>      
-    </form>
-</div>
diff --git a/group/groupui/creategroup-form.js b/group/groupui/creategroup-form.js
deleted file mode 100644 (file)
index 36fcdae..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-
-function onCreateGroup() {
-    valid =  validateCreateGroupForm();
-
-    if (valid) {
-        hideAllForms();
-        showElement("groupeditform");
-        createGroup();
-        replaceText('selectedgroupingforcreatinggroup', "");
-    }
-
-    return false;
-}
-
-/*
- * Adds a group with the name specified in the form to the selected grouping. 
- */
-function createGroup() {
-    //alert("Called createGroup");
-    var url = "creategroup-xml.php";
-    var requeststring = "groupname="+getTextInputValue('newgroupname')
-        +"&groupingid="+selectedgroupingid
-        +"&description="+getTextInputValue('edit-newgroupdescription')
-        +"&enrolmentkey="+getTextInputValue('newgroupenrolmentkey');
-    // The picture fields aren't displayed if the right library isn't present
-    if (document.getElementById('menunewgrouphidepicture')) {
-        requeststring = requeststring+"&hidepicture="+getTextInputValue('menunewgrouphidepicture');
-    }
-    sendPostRequest(request, url, requeststring, createGroupResponse);
-}
-
-/**
- * The callback for the response to the request sent in  createGroup() 
- * The function sets the new group as selected in the form. 
- */
-function createGroupResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("createGroupResponse called");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        selectedgroupid = getFromXML(request.responseXML, 'groupid');
-        updateGroupings();
-        hideElement("creategroupform");
-    }
-}
-
-
-function validateCreateGroupForm() {
-    valid = true;
-    groupname = getTextInputValue('newgroupname');
-
-    if (groupname == '') {
-        alert('You must enter a name for the new group');
-        valid = false;
-    } 
-    return valid;
-}
-
diff --git a/group/groupui/creategroup-xml.php b/group/groupui/creategroup-xml.php
deleted file mode 100644 (file)
index e69ed69..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**********************************************
- * Adds a new group to a grouping
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid   = required_param('courseid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-
-$groupsettings->name        = required_param('groupname', PARAM_ALPHANUM);
-$groupsettings->description = required_param('description', PARAM_ALPHANUM);
-$groupsettings->enrolmentkey= required_param('enrolmentkey', PARAM_ALPHANUM);
-$groupsettings->hidepicture = optional_param('hidepicture', PARAM_INT);
-
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupid = groups_create_group($courseid, $groupsettings);
-
-    if (!$groupid) {
-        echo '<error>Failed to create group</error>';
-    } else {
-        $groupadded = groups_add_group_to_grouping($groupid, $groupingid);
-
-        if (!$groupadded) {
-            echo '<error>Failed to add group to grouping</error>';
-        } else {
-            // Upload a picture file if there was one - note that we don't remove any previous icons
-            require_once($CFG->libdir.'/uploadlib.php');
-            $um = new upload_manager('newgroupicon', false, false, null, false, 0, true, true);
-            if ($um->preprocess_files()) {
-                require_once("$CFG->libdir/gdlib.php");
-                if (save_profile_image($groupid, $um, 'groups')) {
-                    $groupsettings->picture = 1;
-                    $infoset = groups_set_group_settings($groupid, $groupsettings);
-                    if (!$infoset) {
-                        echo '<error>Failed to save the fact that the group image was uploaded</error>';
-                    }
-                } 
-            }
-
-            echo '<groupid>'.$groupid.'</groupid>';
-        }
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/creategrouping-form.html b/group/groupui/creategrouping-form.html
deleted file mode 100644 (file)
index 0343b5a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div id="creategroupingform" class="popup">
-<h3><?php print_string('creategrouping', 'group'); ?></h3>
-<form action="">
-<p><?php print_string('groupingname', 'group'); ?></p>
-<p><input id="newgroupingname" type="text" size="40" value="<?php print_string('defaultgroupingname', 'group'); ?>" /></p>
-<p><?php print_string('groupingdescription', 'group'); ?></p>
-<p><?php print_textarea($usehtmleditor,5, 45, 200, 400, "newgroupingdescription");?></p>
-<p><input type="button" id="creategrouping" value="<?php print_string('creategrouping', 'group'); ?>" /></p>
-<p><input type="button" id="cancelcreategrouping" value="<?php print_string('cancel', 'group'); ?>" /></p>
-</form>
-</div>
diff --git a/group/groupui/creategrouping-form.js b/group/groupui/creategrouping-form.js
deleted file mode 100644 (file)
index 2fb72ac..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-function onCreateGrouping() {
-    valid =  validateCreateGroupingForm();
-    if (valid) {
-        hideAllForms();
-        showElement("groupeditform");
-        createGrouping();
-    }
-
-    return false;
-}
-
-/**
- * Creates a new grouping for the course. 
- */
-function createGrouping() {
-    // alert("Called createGrouping");
-    var url = "creategrouping-xml.php";
-    var requeststring = "groupingname="+getTextInputValue('newgroupingname')
-        +"&description="+getTextInputValue('edit-newgroupingdescription');
-    sendPostRequest(request, url, requeststring, createGroupingResponse);
- }
- /**
-  * The callback for the response to the request sent in createGrouping() 
-  * It sets the new grouping as selected in the form. 
-  */
- function createGroupingResponse() {
-    if (checkAjaxResponse(request)) {
-    // alert("createGroupingResponse");
-    // alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        selectedgroupingid = getFromXML(request.responseXML, 'groupingid');
-        selectedgroupid = null;
-        updateGroupings();
-        hideElement("creategroupingform");
-    }
- }
-
-function validateCreateGroupingForm() {
-    valid = true;
-    groupingname = getTextInputValue('newgroupingname');
-
-    if (groupingname == '') {
-        alert('You must enter a name for the new grouping');
-        valid = false;
-    } 
-    return valid;
-}
-
-
-
diff --git a/group/groupui/creategrouping-xml.php b/group/groupui/creategrouping-xml.php
deleted file mode 100644 (file)
index f22eba4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**********************************************
- * Adds a new grouping
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid = required_param('courseid', PARAM_INT);
-
-$groupingsettings->name       = required_param('groupingname', PARAM_ALPHANUM);
-$groupingsettings->description= required_param('description', PARAM_ALPHANUM);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingid = groups_create_grouping($courseid, $groupingsettings);
-
-    if (!$groupingid) {
-        echo '<error>Failed to create grouping</error>';
-    } else {
-        echo '<groupingid>'.$groupingid.'</groupingid>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/deletegroup-xml.php b/group/groupui/deletegroup-xml.php
deleted file mode 100644 (file)
index 2e22f9f..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**********************************************
- * Deletes a group
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid  = required_param('groupid', PARAM_INT);
-$courseid = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupremoved = groups_delete_group($groupid);
-
-    if ($groupremoved == false) {
-        echo "<error>Could not delete group $groupid</error>";
-    } 
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/deletegroup.js b/group/groupui/deletegroup.js
deleted file mode 100644 (file)
index 541a21c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-function onDeleteGroup() {
-    hideAllForms()
-    showElement("groupeditform");
-    deleteGroup();
-    return false;
-}
-
-
-/**
- * Deletes the selected group
- */
-function deleteGroup() {
-    //alert("Called deleteGroup");
-    var url = "deletegroup-xml.php";
-    var requeststring = "groupid="+selectedgroupid;
-    sendPostRequest(request, url, requeststring, deleteGroupResponse);
-}
-/**
- * The callback for the response to the request sent in updateSelectedGrouping() 
- */ 
-function deleteGroupResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("deleteGroupResponse called");
-        // alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        // Need XML sent back with groupingid
-        // Really want to set this to be the grouping before
-        selectedgroupid = null;
-        updateGroupings();
-    }
-}
diff --git a/group/groupui/deletegrouping-xml.php b/group/groupui/deletegrouping-xml.php
deleted file mode 100644 (file)
index 8a901d6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**********************************************
- * Deletes a specified grouping
- **********************************************/
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingremoved = groups_delete_grouping($groupingid);
-    if (!$groupingremoved) {
-        echo '<error>Failed to delete grouping</error>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/deletegrouping.js b/group/groupui/deletegrouping.js
deleted file mode 100644 (file)
index 2e98985..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-
-function onDeleteGrouping() {
-    hideAllForms()
-    showElement("groupeditform");
-    deleteGrouping();
-    return false;
-}
-
-
-/*
- * Deletes the selected grouping
- */
-function deleteGrouping() {
-    //alert("Called deleteGrouping");
-    var url = "deletegrouping-xml.php";
-    var requeststring = "groupingid="+selectedgroupingid;
-    confirm('Are you sure you want to delete this grouping and the groups that it contains?');
-    sendPostRequest(request, url, requeststring, deleteGroupingResponse);
- }
- /**
- * The callback for the response to the request sent in deleteGrouping() 
- */
- function deleteGroupingResponse() {
-     if (checkAjaxResponse(request)) {
-         //alert("deleteGroupingResponse called");
-         //alert(request.responseText);
-         error = getFromXML(request.responseXML, 'error');
-         if (error != null) {
-             alert(error);
-         }
-         selectedgroupingid = null;
-         selectedgroupid = null;
-         updateGroupings();
-    }
-}
-
diff --git a/group/groupui/editgroupingpermissions-form.html b/group/groupui/editgroupingpermissions-form.html
deleted file mode 100644 (file)
index cb5435c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<div id="editgroupingpermissionsform" class="popup">
-<h3><?php print_string('editgroupingpermissions', 'group'); ?> for <span id="editperm-groupingname"></span></h3>
-<form action="">
-<p><input type="checkbox" id="edit-viewowngroup" checked /><?php print_string('viewowngroup', 'group'); ?></p>
-<p><input type="checkbox" id="edit-viewallgroupsmembers" checked /><?php print_string('viewallgroupsmembers', 'group'); ?></p>
-<p><input type="checkbox" id="edit-viewallgroupsactivities" checked /><?php print_string('viewallgroupsactivities', 'group'); ?></p>
-<p><input type="checkbox" id="edit-teachersgroupmark"  /><?php print_string('teachersgroupmark', 'group'); ?></p>         
-<p><input type="checkbox" id="edit-teachersgroupview"  /><?php print_string('teachersgroupview', 'group'); ?></p>  
-<p><input type="checkbox" id="edit-teachersoverride"  /><?php print_string('teachersoverride', 'group'); ?></p>  
-<p><input type="button" id="editgroupingpermissions" value="<?php print_string('save', 'group'); ?>" /></p>
-<p><input type="button" id="canceleditgroupingpermissions" value="<?php print_string('cancel', 'group'); ?>" /></p>
-</form>
-</div>
diff --git a/group/groupui/editgroupingpermissions-form.js b/group/groupui/editgroupingpermissions-form.js
deleted file mode 100644 (file)
index c678d43..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-
-function onEditGroupingPermissionsSave() {
-    hideAllForms();
-    showElement("groupeditform");
-    editGroupingPermissions() ;
-    return false;
-}
-
-
-/**
- * Creates a new grouping for the course. 
- */
-function editGroupingPermissions() {
-    var url = "editgroupingpermissions-xml.php";
-    var requeststring = "groupingid=" + selectedgroupingid
-        +"&viewowngroup=" + getCheckBoxValue('edit-viewowngroup')
-        +"&viewallgroupsmembers=" + getCheckBoxValue('edit-viewallgroupsmembers')
-        +"&viewallgroupsactivities=" + getCheckBoxValue('edit-viewallgroupsactivities')
-        +"&teachersgroupmark=" + getCheckBoxValue('edit-teachersgroupmark')
-        +"&teachersgroupview=" + getCheckBoxValue('edit-teachersgroupview')
-        +"&teachersoverride=" + getCheckBoxValue('edit-teachersoverride');
-    sendPostRequest(request, url, requeststring, editGroupingPermissionsResponse);
-}
- /**
-  * The callback for the response to the request sent in editgroupingpermissions() 
-  * It sets the new grouping as selected in the form. 
-  */
- function editGroupingPermissionsResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("editGroupingPermissionsResponse called");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        updateGroupings();
-        hideElement("editgroupingpermissionsform");
-    }
- }
-
-function getGroupingPermissions() {
-    //alert("Called getgroupingpermissions");
-    var url = "getgroupingpermissions-xml.php";
-    var requeststring = "groupingid="+selectedgroupingid;
-    sendPostRequest(request, url, requeststring, getGroupingPermissionsResponse);
-}
-
-function getGroupingPermissionsResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("getgroupingpermissionsResponse");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        xml = request.responseXML;
-        replaceText('editperm-groupingname', getFromXML(xml, 'name'));
-        setCheckBoxValue('edit-viewowngroup', boolStringToBool(getFromXML(xml, 'viewowngroup')));
-        setCheckBoxValue('edit-viewallgroupsmembers', boolStringToBool(getFromXML(xml, 'viewallgroupsmembers')));
-        setCheckBoxValue('edit-viewallgroupsactivities', boolStringToBool(getFromXML(xml, 'viewallgroupsactivities')));
-        setCheckBoxValue('edit-teachersgroupmark', boolStringToBool(getFromXML(xml, 'teachersgroupmark')));
-        setCheckBoxValue('edit-teachersgroupview', boolStringToBool(getFromXML(xml, 'teachersgroupview')));
-        setCheckBoxValue('edit-teachersoverride', boolStringToBool(getFromXML(xml, 'teachersoverride')));
-    }
-}
diff --git a/group/groupui/editgroupingpermissions-xml.php b/group/groupui/editgroupingpermissions-xml.php
deleted file mode 100644 (file)
index d4d4f2a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**********************************************
- * Adds a new grouping
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-$groupingsettings->viewowngroup = required_param('viewowngroup', PARAM_INT); //TODO: PARAM_BOOL ??
-$groupingsettings->viewallgroupsmembers = required_param('viewallgroupsmembers', PARAM_INT);
-$groupingsettings->viewallgroupsactivities = required_param('viewallgroupsactivities', PARAM_INT);
-$groupingsettings->teachersgroupmark = required_param('teachersgroupmark', PARAM_INT);
-$groupingsettings->teachersgroupview = required_param('teachersgroupview', PARAM_INT);
-$groupingsettings->teachersoverride = required_param('teachersoverride', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingid = groups_set_grouping_settings($groupingid, $groupingsettings);
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/editgroupingsettings-form.html b/group/groupui/editgroupingsettings-form.html
deleted file mode 100644 (file)
index 3500d8c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div id="editgroupingsettingsform" class="popup">
-<h3><?php print_string('editgroupingsettings', 'group'); ?></h3>
-<form action="">
-<p><?php print_string('groupingname', 'group'); ?></p>
-<p><input id="edit-groupingname" type="text" size="40" /></p>
-<p><?php print_string('groupingdescription', 'group'); ?></p>
-<p><?php print_textarea($usehtmleditor,  5, 45, 200, 400, "edit-groupingdescription");?></p>
-<p><input type="button" id="editgroupingsettings" value="<?php print_string('save', 'group'); ?>" /></p>
-<p><input type="button" id="canceleditgroupingsettings" value="<?php print_string('cancel', 'group'); ?>" /></p>
-</form>
-</div>
diff --git a/group/groupui/editgroupingsettings-form.js b/group/groupui/editgroupingsettings-form.js
deleted file mode 100644 (file)
index f8ecf52..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-
-function onEditGroupingSettingsSave() {
-    valid = validateEditGroupingSettingsForm();
-    if (valid) {
-        hideAllForms();
-        showElement("groupeditform");
-        editGroupingSettings() ;
-        return false;
-    }
-}
-
-
-/**
- * Creates a new grouping for the course. 
- */
-function editGroupingSettings() {
-    var url = "editgroupingsettings-xml.php";
-    var requeststring = "groupingid="+selectedgroupingid
-        +"&groupingname="+getTextInputValue('edit-groupingname')
-        +"&description="+getTextInputValue('edit-edit-groupingdescription');
-    sendPostRequest(request, url, requeststring, editGroupingSettingsResponse);
-}
- /**
-  * The callback for the response to the request sent in editgroupingsettings() 
-  * It sets the new grouping as selected in the form. 
-  */
- function editGroupingSettingsResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("editGroupingSettingsResponse called");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        updateGroupings();
-        hideElement("editgroupingsettingsform");
-    }
- }
-
-function getGroupingSettings() {
-    //alert("Called getgroupingsettings");
-    var url = "getgroupingsettings-xml.php";
-    var requeststring = "groupingid="+selectedgroupingid;
-    sendPostRequest(request, url, requeststring, getGroupingSettingsResponse);
-}
-
-function getGroupingSettingsResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("getgroupingsettingsResponse");
-        //alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        xml = request.responseXML;
-        setTextInputValue('edit-groupingname', getFromXML(xml, 'name'));
-        setTextInputValue('edit-edit-groupingdescription', getFromXML(xml, 'description'));
-    }
-}
-
-
-function validateEditGroupingSettingsForm() {
-    valid = true;
-    groupingname = getTextInputValue('edit-groupingname');
-
-    if (groupingname == '') {
-        alert('You must enter a name for the new grouping');
-        valid = false;
-    } 
-    return valid;
-}
diff --git a/group/groupui/editgroupingsettings-xml.php b/group/groupui/editgroupingsettings-xml.php
deleted file mode 100644 (file)
index 5aa6255..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**********************************************
- * Adds a new grouping
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-$groupingsettings->name       = required_param('groupingname', PARAM_ALPHANUM);
-$groupingsettings->description= required_param('description', PARAM_ALPHANUM);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingid = groups_set_grouping_settings($groupingid, $groupingsettings);
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/editgroupsettings-form.html b/group/groupui/editgroupsettings-form.html
deleted file mode 100644 (file)
index 015def1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<div id="editgroupsettingsform" class="popup">
-    <h3><?php print_string('editgroupsettings', 'group'); ?></h3>
-    <form action="">
-        <p><?php print_string('groupname', 'group'); ?></p>
-        <p><input id="groupname" type="text" size="40" /></p>
-        <p><?php print_string("description") ?><br />
-                    <?php helpbutton("text", get_string("helptext")) ?></p>
-        <p><?php print_textarea($usehtmleditor, 5, 45, 200, 400, "groupdescription");?> </p>
-        <p><?php print_string('enrolmentkey') ?></p>
-        <p><input type="text" id="enrolmentkey" size="25" /></p>
-        <?php if ($printuploadpicture) {  ?>
-        <p><?php print_string("hidepicture") ?></p>
-        <p><?php $options = NULL; $options[0] = get_string("no"); $options[1] = get_string("yes");
-                choose_from_menu ($options, "hidepicture", $group->hidepicture, ""); ?></p>
-            <p><?php print_string("newpicture") ?></p>
-            <p><?php upload_print_form_fragment(1,array('groupicon'),null,false,null,0,0,false);
-                    helpbutton("picture", get_string("helppicture"));
-                    print_string("maxsize", "", display_size($maxbytes), 'group'); ?></p>
-            <?php } ?>
-            <p><input type="button" id="editgroupsettings" value="<?php print_string('save', 'group'); ?>" />&nbsp;<input type="button" id="canceleditgroupsettings" value="<?php print_string('cancel', 'group'); ?>" /></p>
-    </form>
-</div>
diff --git a/group/groupui/editgroupsettings-form.js b/group/groupui/editgroupsettings-form.js
deleted file mode 100644 (file)
index f862c53..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-
-function onEditGroupSettingsSave() {
-    valid =  validateEditgroupsettingsForm();
-    if (valid) {
-        editgroupsettings() ;
-        hideAllForms();
-        showElement("groupeditform");
-    }
-    return false;
-}
-
-/**
- * Creates a new group for the course. 
- */
-function editGroupSettings() {
-    // alert("Called editgroupsettings");
-    var url = "editgroupsettings-xml.php";
-    var requeststring = "groupid="+selectedgroupid
-                +"&groupname="+getTextInputValue('groupname')
-                +"&description="+getTextInputValue('edit-groupdescription')
-                +"&enrolmentkey="+getTextInputValue('enrolmentkey')
-                +"&hidepicture="+hidepicture;
-    // The picture fields aren't displayed if the right library isn't present
-    if (document.getElementById('menuhidepicture')) {
-        requeststring = requeststring+"&hidepicture="+getTextInputValue('menuhidepicture');
-    }
-    sendPostRequest(request, url, requeststring, editGroupSettingsResponse);
- }
- /**
-  * The callback for the response to the request sent in editgroupsettings(() 
-  */
- function editGroupSettingsResponse() {
-    if (checkAjaxResponse(request)) {
-        // alert("editgroupsettingsResponse");
-        // alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        updateSelectedGrouping();
-        hideElement("editgroupsettingsform");
-    }
- }
-
-function getGroupSettings() {
-    // alert("Called getgroupsettings");
-    groupid = getSelectedGroup();
-    var url = "getgroupsettings-xml.php";
-    var requeststring = "groupid="+groupid;
-    sendPostRequest(request, url, requeststring, getGroupSettingsResponse);
-}
-
-function getGroupSettingsResponse() {
-    if (checkAjaxResponse(request)) {
-        // alert("getgroupsettingsResponse");
-        // alert(request.responseText);
-        error = getFromXML(request.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        xml = request.responseXML;
-        setTextInputValue('groupname', getFromXML(xml, 'name'));
-        setTextInputValue('edit-groupdescription', getFromXML(xml, 'description'));
-        setTextInputValue('enrolmentkey', getFromXML(xml, 'enrolmentkey'));
-    }
-}
-
-function validateEditgroupsettingsForm() {
-    valid = true;
-    groupname = getTextInputValue('groupname');
-
-    if (groupname == '') {
-        alert('You must enter a name for the new group');
-        valid = false;
-    } 
-    return valid;
-}
diff --git a/group/groupui/editgroupsettings-xml.php b/group/groupui/editgroupsettings-xml.php
deleted file mode 100644 (file)
index b4fcb70..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**********************************************
- * Adds a new grouping
- **********************************************/
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid     = required_param('groupid', PARAM_INT);
-$groupname   = required_param('groupname', PARAM_ALPHANUM);
-$description = required_param('description', PARAM_ALPHANUM);
-$enrolmentkey= required_param('enrolmentkey', PARAM_ALPHANUM);
-$hidepicture = required_param('hidepicture', PARAM_INT); //TODO: PARAM_BOOL ??
-$courseid    = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupsettings->name = $groupname;
-    $groupsettings->description = $description;
-    $groupsettings->enrolmentkey = $enrolmentkey;
-    $groupsettings->hidepicture = $hidepicture;
-
-    // Upload the group icon if there is one - note that we don't remove any previous icons
-    require_once($CFG->libdir.'/uploadlib.php');
-    $um = new upload_manager('groupicon', false, false, null, false, 0, true, true);
-    if ($um->preprocess_files()) {
-        require_once("$CFG->libdir/gdlib.php");
-        if (save_profile_image($groupid, $um, 'groups')) {
-            $groupsettings->picture = 1;
-        } else {
-            echo '<error>Failed to save group image</error>';
-        }
-    } else {
-        $groupsettings->picture = 0;
-    }
-
-    $infoset = groups_set_group_settings($groupid, $groupsettings);
-    if (!$infoset) {
-        echo "<error>Failed to set new group settings</error>";
-    } 
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/form.css b/group/groupui/form.css
deleted file mode 100644 (file)
index c778b2b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-.popup
-{
-   position:absolute; 
-   left:300px; 
-   top:80px; 
-   width:550px;
-   border-style:solid;
-   border-color: grey;
-   border-width: 1px;
-   background-color: white;
-   padding:10px;
-   z-index:1;
-   visibility: hidden;
-}
-
-.popupwide
-{
-   position:absolute; 
-   left:200px; 
-   top:80px; 
-   width:900px;
-   border-style:solid;
-   border-color: grey;
-   border-width: 1px;
-   background-color: white;
-   padding:10px;
-   z-index:1;
-   visibility: hidden;
-}
-
-.select
-{
-    overflow: visible;
-    clip: auto;
-    width:200px;
-}
-
-.groupmanagementtable
-{
-    padding: 10px;
-    margin-left: auto;
-    margin-right: auto; 
-    text-align: center; 
-}
-
-.groupmanagementtableheader
-{
-    width: 300px;
-}
-
-
-
diff --git a/group/groupui/form.html b/group/groupui/form.html
deleted file mode 100644 (file)
index db18de9..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<link rel="stylesheet" type="text/css" href="form.css" />
-
-
-<script type="text/javascript" src="yahoo.js"></script>
-<script type="text/javascript" src="connection.js"></script> 
-
-<script type="text/javascript">
-<!-- Begin
-<?php include('ajax.js'); ?>
-// end hiding script -->
-</script>
-<script type="text/javascript" src="util-form.js"></script>
-<script type="text/javascript" src="main-buttons-form.js"></script>
-<script type="text/javascript" src="main-selects-form.js"></script>
-<script type="text/javascript" src="creategroup-form.js"></script>
-<script type="text/javascript" src="creategrouping-form.js"></script>
-<script type="text/javascript" src="editgroupingsettings-form.js"></script>
-<script type="text/javascript" src="editgroupingpermissions-form.js"></script>
-<script type="text/javascript" src="editgroupsettings-form.js"></script>
-<script type="text/javascript" src="createautomaticgrouping-form.js"></script>
-<script type="text/javascript" src="addmembers-form.js"></script>
-<script type="text/javascript" src="addgroupstogrouping-form.js"></script>
-<script type="text/javascript" src="main-init-form.js"></script>
-<script type="text/javascript" src="deletegroup.js"></script>
-<script type="text/javascript" src="deletegrouping.js"></script>
-<script type="text/javascript" src="removegroupfromgrouping.js"></script>
-<script type="text/javascript" src="removemembers.js"></script>
-
-
-<noscript>
-    <?php notify(get_string('javascriptrequired')); ?>
-</noscript>
-
-<?php include('main-form.html'); ?>
-<?php include('creategroup-form.html'); ?>
-<?php include('editgroupsettings-form.html'); ?>
-<?php include('creategrouping-form.html'); ?>
-<?php include('editgroupingsettings-form.html'); ?>
-<?php include('editgroupingpermissions-form.html'); ?>
-<?php include('addgroupstogrouping-form.html'); ?>
-<?php include('addmembers-form.html'); ?>
-<?php include('createautomaticgrouping-form.html'); ?>
diff --git a/group/groupui/getgroupingpermissions-xml.php b/group/groupui/getgroupingpermissions-xml.php
deleted file mode 100644 (file)
index c2335b7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**********************************************
- * Fetches the settings of a grouping and returns 
- * them in an XML format
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid   = required_param('courseid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingsettings = groups_get_grouping_settings($groupingid);
-    echo '<name>'.$groupingsettings->name.'</name>';
-
-    if ($groupingsettings->viewowngroup) {
-        echo '<viewowngroup>true</viewowngroup>';
-    } else {
-        echo '<viewowngroup>false</viewowngroup>';
-    }
-
-    if ($groupingsettings->viewallgroupsmembers) {
-        echo '<viewallgroupsmembers>true</viewallgroupsmembers>';
-    } else {
-        echo '<viewallgroupsmembers>false</viewallgroupsmembers>';
-    }
-
-    if ($groupingsettings->viewallgroupsactivities) {
-        echo '<viewallgroupsactivities>true</viewallgroupsactivities>';
-    } else {
-        echo '<viewallgroupsactivities>false</viewallgroupsactivities>';
-    }
-
-    if ($groupingsettings->teachersgroupmark) {
-        echo '<teachersgroupmark>true</teachersgroupmark>';
-    } else {
-        echo '<teachersgroupmark>false</teachersgroupmark>';
-    }
-
-    if ($groupingsettings->teachersgroupview) {
-        echo '<teachersgroupview>true</teachersgroupview>';
-    } else {
-        echo '<teachersgroupview>false</teachersgroupview>';
-    }
-
-    if ($groupingsettings->teachersoverride) {
-        echo '<teachersoverride>true</teachersoverride>';
-    } else {
-        echo '<teachersoverride>false</teachersoverride>';
-    }
-
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getgroupings-xml.php b/group/groupui/getgroupings-xml.php
deleted file mode 100644 (file)
index 44821aa..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**********************************************
- * Fetches the settings of the groupings for a course
- * and returns them in an XML format
- **********************************************/
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingids = groups_get_groupings($courseid);
-    if ($groupingids != false) {
-        // Put the groupings into a hash and sort them
-        foreach($groupingids as $groupingid) {
-            $listgroupings[$groupingid] = groups_get_grouping_displayname($groupingid);       
-        }
-        natcasesort($listgroupings);
-
-        // Print out the XML 
-        echo '<option>';
-        foreach($listgroupings as $value=>$name) {
-            echo "<name>$name</name>";
-            echo "<value>$value</value>";
-        }
-        echo '</option>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
-
-
-
diff --git a/group/groupui/getgroupingsettings-xml.php b/group/groupui/getgroupingsettings-xml.php
deleted file mode 100644 (file)
index 5327d80..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**********************************************
- * Fetches the settings of a grouping and returns 
- * them in an XML format
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid   = required_param('courseid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingsettings = groups_get_grouping_settings($groupingid);
-    echo '<name>'.$groupingsettings->name.'</name>';
-    echo '<description>'.$groupingsettings->description.'</description>';
-
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getgroupsettings-xml.php b/group/groupui/getgroupsettings-xml.php
deleted file mode 100644 (file)
index 79f63f5..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**********************************************
- * Fetches the settings of a grouping and returns 
- * them in an XML format
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$courseid = required_param('courseid', PARAM_INT);
-$groupid  = required_param('groupid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-
-    $groupsettings = groups_get_group_settings($groupid);
-    if (!$groupsettings) {
-        echo '<error>Failed to get group details</error>';
-    } else {
-        echo '<name>'.$groupsettings->name.'</name>';
-        echo '<description>'.$groupsettings->description.'</description>';
-        echo '<enrolmentkey>'.$groupsettings->enrolmentkey.'</enrolmentkey>';
-        echo '<hidepicture>'.$groupsettings->hidepicture.'</hidepicture>';
-        echo '<picture>'.$groupsettings->picture.'</picture>';
-        echo '<lang>'.$groupinkfo->lang.'</lang>';
-        echo '<theme>'.$groupsettings->theme.'</theme>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getgroupsingrouping-xml.php b/group/groupui/getgroupsingrouping-xml.php
deleted file mode 100644 (file)
index bcec280..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**********************************************
- * Adds an existing group to a grouping
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupids = groups_get_groups_in_grouping($groupingid);
-
-    if ($groupids != false) {
-        // Put the groupings into a hash and sort them
-        foreach($groupids as $groupid) {
-            $listgroups[$groupid] = groups_get_group_displayname($groupid);  
-        }
-
-        natcasesort($listgroups);
-
-        // Print out the XML 
-        echo "<option>";
-        foreach($listgroups as $value=>$name) {
-            echo "<name>$name</name>";
-            echo "<value>$value</value>";
-        }
-        echo "</option>";
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getgroupsnotingrouping-xml.php b/group/groupui/getgroupsnotingrouping-xml.php
deleted file mode 100644 (file)
index 48531f6..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**********************************************
- * Gets the groups not in a grouping for a course
- * and returns them in an XML format
- **********************************************/
-
-require_once('../lib/lib.php');
-require_once('../../config.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupids = groups_get_groups_not_in_grouping($groupingid, $courseid);
-    if ($groupids != false) {
-        // Put the groupings into a hash and sort them
-        foreach($groupids as $groupid) {
-            $listgroups[$groupid] = groups_get_group_displayname($groupid);       
-        }
-
-        natcasesort($listgroups);
-
-        // Print out the XML 
-        echo "<option>";
-        foreach($listgroups as $value=>$name) {
-            echo "<name>$name</name>";
-            echo "<value>$value</value>";
-        }
-        echo "</option>";
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getmembers-xml.php b/group/groupui/getmembers-xml.php
deleted file mode 100644 (file)
index d738037..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**********************************************
- * Gets the members of a group and returns them
- * in an XMl format
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid  = required_param('groupid', PARAM_INT);
-$courseid = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-
-    $userids = groups_get_members($groupid);
-
-    if ($userids != false) {
-        // Put the groupings into a hash and sort them
-        foreach($userids as $userid) {
-            $listmembers[$userid] = groups_get_user_displayname($userid, $courseid);       
-        }
-        natcasesort($listmembers);
-
-
-        // Print out the XML 
-
-        echo "<option>";
-        foreach($listmembers as $value=>$name) {
-            echo "<name>$name</name>";
-            echo "<value>$value</value>";
-        }
-        echo "</option>";
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/getnonmembers-xml.php b/group/groupui/getnonmembers-xml.php
deleted file mode 100644 (file)
index 3fc6d24..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**********************************************
- * Gets the users registered for a course that
- * don't belong to a specified group and prints
- * their detailsin an XML format. 
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid    = required_param('groupid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-$showall    = required_param('showall', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    echo "$groupingid $groupid";
-    if ($showall == 0) {
-        $userids = groups_get_users_not_in_any_group_in_grouping($courseid,$groupingid, $groupid);
-    } else {
-        $userids = groups_get_users_not_in_group($courseid, $groupid);
-    }
-
-    if ($userids != false) {
-        // Put the groupings into a hash and sorts them
-        foreach($userids as $userid) {
-            $listmembers[$userid] = groups_get_user_displayname($userid, $courseid);       
-        }
-        natcasesort($listmembers);
-
-
-        // Print out the XML 
-        echo "<option>";
-        foreach($listmembers as $value=>$name) {
-            echo "<name>$name</name>";
-            echo "<value>$value</value>";
-        }
-        echo "</option>";
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/index.php b/group/groupui/index.php
deleted file mode 100644 (file)
index 1210e77..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php // $Id$
-/**
- * The main group management user interface.
- *
- * @copyright &copy; 2006 The Open University
- * @author J.White AT open.ac.uk 
- * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package groups
- */
-require_once('../../config.php');
-require_once('../lib/lib.php');
-//require_once('../../course/lib.php');
-require_once($CFG->libdir.'/moodlelib.php');
-require_once($CFG->libdir.'/uploadlib.php');
-
-$error = false;
-$courseid = required_param('id', PARAM_INTEGER);         
-
-// Get the course information so we can print the header and check the course id
-// is valid
-$course = groups_get_course_info($courseid);
-if (!$course) {
-    $error = true;
-    print_error('The course id is invalid');
-}
-
-
-if (!$error) {
-    // Make sure that the user is a teacher with edit permission for this course
-    require_login($courseid);
-    if (!isteacheredit($courseid)) {
-        redirect();  
-    }
-
-    // Set the session key so we can check this later
-    $sesskey = !empty($USER->id) ? $USER->sesskey : '';
-
-    if (!empty($CFG->gdversion)) { //TODO: and $maxbytes)
-        $printuploadpicture = true;
-    } else {
-        $printuploadpicture = false;
-    }
-
-
-    $maxbytes = get_max_upload_file_size($CFG->maxbytes, $course->maxbytes);
-    $strgroups = get_string('groups');
-    $strparticipants = get_string('participants');
-    // Print the page and form
-    print_header("$course->shortname: $strgroups", 
-        $course->fullname, 
-        "<a href=\"$CFG->wwwroot/course/view.php?id=$courseid\">$course->shortname</a> ".
-        "-> <a href=\"$CFG->wwwroot/user/index.php?id=$courseid\">$strparticipants</a> ".
-        "-> $strgroups", "", "", true, '', user_login_string($course, $USER));
-
-    //TODO: set to false in /course/group.php
-    $usehtmleditor = false;
-
-    require_once('form.html');
-
-    print_footer($course);
-}
-
-?>
diff --git a/group/groupui/main-buttons-form.js b/group/groupui/main-buttons-form.js
deleted file mode 100644 (file)
index 887fac2..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-function onShowAddMembersForm() {
-    hideAllForms();
-    showElement("addmembersform");
-    updateNonMembers();
-    groupname = getSelectedGroupName();
-    replaceText('selectedgroup', groupname);
-    return false;
-}
-
-function onShowAddGroupsToGroupingForm() {
-    hideAllForms();
-    showElement("addgroupstogroupingform");
-    updateGroupsNotInGrouping();
-    groupingname = getSelectedGroupingName();
-    replaceText('selectedgroupingforaddinggroups', groupingname);
-    return false;
-}
-
-function onShowCreateGroupingForm() {
-    hideAllForms();
-    showElement("creategroupingform");
-    return false;
-}
-
-function onShowCreateGroupForm() {
-    hideAllForms();
-    showElement("creategroupform");
-    groupingname = getSelectedGroupingName();
-    replaceText('selectedgroupingforcreatinggroup', groupingname);
-    return false;
-}
-
-function onShowEditGroupSettingsForm() {
-    hideAllForms();
-    showElement("editgroupsettingsform");
-    getGroupSettings();
-    return false;
-}
-
-function onShowEditGroupingPermissionsForm() {
-    hideAllForms();
-    showElement("editgroupingpermissionsform");
-    getGroupingPermissions();
-    return false;
-}
-
-function onShowEditGroupingSettingsForm() {
-    hideAllForms();
-    showElement("editgroupingsettingsform");
-    getGroupingSettings();
-    return false;
-}
-
-
-function onShowAutomaticGroupingForm() {
-    hideAllForms();
-    showElement("createautomaticgroupingform");
-    return false;
-}
-
-function onPrinterFriendly() {
-    document.location.href = "printgrouping.php?courseid="+courseid+"&groupingid="+selectedgroupingid;
-    return false;
-}
diff --git a/group/groupui/main-form.html b/group/groupui/main-form.html
deleted file mode 100644 (file)
index 54c4789..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<form name="groupeditform" id="groupeditform" action="">
-    <table cellpadding="10" class="generaltable generalbox groupmanagementtable">
-        <tr>
-            <th class="header groupmanagementtableheader" scope="col"><?php print_string('groupings', 'group'); ?></th>
-            <th class="header groupmanagementtableheader" scope="col"><?php print_string('groupsinselectedgrouping', 'group'); ?></th>
-            <th class="header groupmanagementtableheader" scope="col"><?php print_string('membersofselectedgroup', 'group'); ?></th>
-        </tr>
-        <tr>
-            <td class="generalboxcontent">
-                <select id="groupings" size="15" class="select"></select>
-            </td>
-            <td>
-                <select id="groups" size="15" class="select"></select>
-            </td>
-            <td>
-                <select id="members" size="15" multiple="multiple" class="select"></select>
-            </td>
-        </tr>
-        <tr>
-            <td>
-                <p><input type="button" id="showeditgroupingsettingsform" value="<?php print_string('editgroupingsettings', 'group'); ?>" /></p>
-                <p><input type="button" id="showeditgroupingpermissionsform" value="<?php print_string('editgroupingpermissions', 'group'); ?>" /></p>
-                <p><input type="button" id="deletegrouping" value="<?php print_string('deletegrouping', 'group'); ?>" /></p>
-                <p><input type="button" id="showcreategroupingform" value="<?php print_string('creategrouping', 'group'); ?>" /></p>
-                <p><input type="button" id="showcreateautomaticgroupingform" value="<?php print_string('createautomaticgrouping', 'group'); ?>" /></p>
-                <p><input type="button" id="printerfriendly" value="<?php print_string('printerfriendly', 'group'); ?>" /></p>
-            </td>
-            <td>
-                <p><input type="button" id="showeditgroupsettingsform" value="<?php print_string('editgroupsettings', 'group'); ?>" /></p>
-                <p><input type="button" id="deletegroup" value="<?php print_string('deleteselectedgroup', 'group'); ?>" /></p>
-                <p><input type="button" id="removegroup" value="<?php print_string('removegroupfromselectedgrouping', 'group'); ?>" /></p>
-                <p><input type="button" id="showcreategroupform" value="<?php print_string('creategroupinselectedgrouping', 'group'); ?>" /></p>
-                <p><input type="button" id="showaddgroupstogroupingform" value="<?php print_string('addexistinggroupstogrouping', 'group'); ?>" /></p>
-            </td>
-            <td>
-                <p><input type="button" id="removemembers" value="<?php print_string('removeselectedusers', 'group'); ?>"/></p>
-                <p><input type="button" id="showaddmembersform" value="<?php print_string('adduserstogroup', 'group'); ?>" /></p>
-            </td>
-        </tr>
-    </table>
-</form>
diff --git a/group/groupui/main-init-form.js b/group/groupui/main-init-form.js
deleted file mode 100644 (file)
index 6b4679f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * This file contains all the functions called when the pages loads and also all the functions that are called
- * on events such as clicking buttons in the forms for the form.html page. 
- * 
- * This script requires functions from ajax.js and form-access.js
- * 
- * This code also assumes you have a basic understanding of how Ajax works - if
- * you don't, it won't make much sense! 
-*/
-
-
-
-// Create XMLHttpRequest objects to use 
-var request = createRequest();
-var updategroupingsrequest = createRequest();
-var updateselectedgroupingsrequest = createRequest();
-var updateselectedgrouprequest = createRequest();
-
-// The selectedgroupingid should always be set to the current selected groupingid and the
-// selectedgroupid should always be set to the current selected groupid. We initialise them to 
-// be null at the start, but they'll get set when the page loads. 
-var selectedgroupingid = null;
-var selectedgroupid = null;
-
-// When the page has loaded called the initPage function
-window.onload = initPage;
-
-/**
- *  The initPage function updates the groupings, groups and members in all the selects appropriately 
- *and adds the right javascript events to all the buttons etc. 
- */
-function initPage() {
-    // Check that we're using a recent enough version of javascript
-    if (!document.getElementById) {
-        return false;
-    }
-    updateGroupings();
-
-    addEvent('groupings', 'change', onGroupingChange);
-    addEvent('groups', 'change', onGroupChange);
-    addEvent('deletegrouping', 'click', onDeleteGrouping);
-    addEvent('deletegroup', 'click', onDeleteGroup);
-    addEvent('removegroup', 'click', onRemoveGroup);
-    addEvent('removemembers', 'click', onRemoveMembers);
-    addEvent('showaddmembersform', 'click', onShowAddMembersForm);
-    addEvent('showaddgroupstogroupingform', 'click', onShowAddGroupsToGroupingForm);
-    addEvent('showcreategroupingform', 'click', onShowCreateGroupingForm);
-    addEvent('showcreategroupform', 'click', onShowCreateGroupForm);
-    addEvent('showeditgroupsettingsform', 'click', onShowEditGroupSettingsForm);
-    addEvent('showeditgroupingsettingsform', 'click', onShowEditGroupingSettingsForm);
-    addEvent('showeditgroupingpermissionsform', 'click', onShowEditGroupingPermissionsForm);
-    addEvent('showcreateautomaticgroupingform', 'click', onShowAutomaticGroupingForm);
-    addEvent('printerfriendly', 'click', onPrinterFriendly);
-    addEvent('createautomaticgrouping', 'click', onCreateAutomaticGrouping);
-    addEvent('cancelcreateautomaticgrouping', 'click', onCancel);
-    addEvent('addgroupstogrouping', 'click', onAddGroupsToGrouping);
-    addEvent('canceladdgroupstogrouping', 'click', onCancel);
-    addEvent('creategroup', 'click', onCreateGroup);
-    addEvent('cancelcreategroup', 'click', onCancel);
-    addEvent('creategrouping', 'click', onCreateGrouping);
-    addEvent('cancelcreategrouping', 'click', onCancel);
-    addEvent('addmembers', 'click', onAddMembers);
-    addEvent('canceladdmembers', 'click', onCancel);
-    addEvent('showall', 'change', onShowAll);
-    addEvent('editgroupsettings', 'click', onEditGroupSettingsSave);
-    addEvent('canceleditgroupsettings', 'click', onCancel);
-    addEvent('editgroupingsettings', 'click', onEditGroupingSettingsSave);
-    addEvent('canceleditgroupingsettings', 'click', onCancel);
-    addEvent('editgroupingpermissions', 'click', onEditGroupingPermissionsSave);
-    addEvent('canceleditgroupingpermissions', 'click', onCancel);
-}
diff --git a/group/groupui/main-selects-form.js b/group/groupui/main-selects-form.js
deleted file mode 100644 (file)
index 78dab51..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/**
- * This file contains various utility functions, primarily to get and set information on form.html
- * and to take information from XML documents and either return information from them or modifiy the 
- * form appropriately. 
- */
-
-
-function onGroupingChange() {
-    hideAllForms();
-    showElement("groupeditform");
-    if (!document.getElementById('groupings')) {
-        alert('No groupings id element');
-    } else {
-        groupingselect = document.getElementById('groupings');
-        selectedgroupingid = groupingselect.value;
-        selectedgroupid = null;
-        updateSelectedGrouping();
-    }
-    return false;
-}
-
-function onGroupChange() {
-    hideAllForms();
-    showElement("groupeditform");
-    selectedgroupid = getSelectedGroup();
-    updateSelectedGroup();
-    return false;
-}
-
-
-function getSelectedGroupingName() {
-    if (!document.getElementById('groupings')) {
-        alert('No groupings id element');
-        value = null;
-    } else {
-        groupingselect = document.getElementById('groupings');
-        value = groupingselect.options[groupingselect.selectedIndex].firstChild.nodeValue;
-    }
-    return value;
-}
-
-function getSelectedGroupName() {
-    if (!document.getElementById('groups')) {
-        alert('No groups id element');
-        value = null;
-    } else {
-        groupselect = document.getElementById('groups');
-        value = groupselect.options[groupselect.selectedIndex].firstChild.nodeValue;
-    }
-    return value;
-}
-
-/*
- * Set the selected grouping on the form to the grouping whose id is selectedgroupingid
- */
-function setSelectedGrouping() {
-    if (selectedgroupingid == null) {
-        selectedgroupingid = getFirstOption("groupings");
-    }
-
-    if (selectedgroupingid != null) {
-        if (!document.getElementById('groupings')) {
-            alert('No groupings id element');
-        } else {
-            groupingselect = document.getElementById('groupings');
-            groupingselect.value = selectedgroupingid
-        }
-    }
-}
-
-/*
- * Get the id of the group that is currently selected
- */
-function getSelectedGroup() {
-    if (!document.getElementById('groups')) {
-        alert('No groups id element');
-        value = null;
-    } else {
-        groupselect = document.getElementById('groups');
-        value = groupselect.value;
-    }
-    return value;
-}
-
-/*
- * Set the selected group on the form to the group whose id is selectedgroupid
- */
-function setSelectedGroup() {
-    if (selectedgroupid == null) {
-        selectedgroupid = getFirstOption("groups");
-    }
-
-    if (selectedgroupid != null) {
-        if (!document.getElementById('groups')) {
-            alert('No groups id element');
-        } else {
-            groupselect = document.getElementById('groups');
-            groupselect.value = selectedgroupid;
-        }
-    }
-}
-
-
-/*
- * Get the selected users to delete 
- */
-function getSelectedUsers() {
-    return getMultipleSelect("members")
-}
-
-
-/***************************************************************
- * Functions that just display information (and don't change the data in the database)
- **********************************************/ 
-
-/**
- *  Updates the list of groupings, setting either a specified grouping as selected or 
- * the first grouping as selected. 
- */
-function updateGroupings() {
-    alert("updateGroupings called");
-    var url = "getgroupings-xml.php";
-    requeststring = 'courseid='+courseid+'&'+'sesskey='+sesskey;
-    var transaction = YAHOO.util.Connect.asyncRequest('POST', url, 
-            updateGroupingsResponseCallback, requeststring); 
-    //sendPostRequest(updategroupingsrequest, url, requeststring, updateGroupingsResponse);
-}
-
-var updateGroupingsResponseCallback = 
-{ 
-  success:function(o) {
-
-        // alert("updateGroupingsResponse called");
-        var xmlDoc = o.responseXML;
-        error = getFromXML(o.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        // alert(o.responseXML);
-        var noofoptions = addOptionsFromXML("groupings", xmlDoc);
-
-        // If the selected grouping is not set, set it to the first grouping in the list
-        if(selectedgroupingid == null) {
-            selectedgroupingid = getFirstOption("groupings");
-            selectedgroupid = null;
-        }
-
-        // If there are no groupings, make sure the rest of the form is set up appropriately 
-        // i.e. there should be any groups or members shown and various buttons should be disabled
-        // If there are groupings, update the one that is selected and enable any buttons that
-        // might have been disabled.
-        if (noofoptions == 0) {
-            removeOptions("groups");
-            removeOptions("members");
-            disableButton("showaddmembersform");
-            disableButton("showcreategroupform");
-            disableButton("showaddgroupstogroupingform");
-        } else {
-            updateSelectedGrouping();
-            enableButton("showaddmembersform");
-            enableButton("showcreategroupform");
-            enableButton("showaddgroupstogroupingform");
-        }
-}, 
-  failure:responseFailure, 
-};
-
-
-
-
-/** 
- * Updates the list of groups when groupingid is marked as selected
- * groupid can be null or a specified group - this is the group that gets marked as 
- * selectedgroupingid cannot be null. 
- */
-function updateSelectedGrouping() {
-    //alert("UpdateSelectedGrouping called");
-    setSelectedGrouping();
-    var url = "getgroupsingrouping-xml.php";
-    requeststring = "groupingid="+selectedgroupingid;
-    sendPostRequest(updateselectedgroupingsrequest, url, requeststring, updateSelectedGroupingResponse);
-}
-
-/**
- * The callback for the response to the request sent in updateSelectedGrouping() 
- */
-function updateSelectedGroupingResponse() {
-    if (checkAjaxResponse(updateselectedgroupingsrequest)) {
-        //alert("updateSelectedGroupingResponse called");
-        var xmlDoc = updateselectedgroupingsrequest.responseXML;
-        error = getFromXML(updateselectedgroupingsrequest.responseXML, 'error');
-        if (error != null) {
-            alert(error);
-        }
-        // alert(updateselectedgroupingsrequest.responseText);
-        var noofoptions = addOptionsFromXML("groups", xmlDoc);
-        if (selectedgroupid == null) {
-            selectedgroupid = getFirstOption("groups");
-        }
-
-        if (noofoptions == 0) {
-            removeOptions("members");
-            disableButton("showaddmembersform");
-        } else {
-            updateSelectedGroup(selectedgroupid);
-            enableButton("showaddmembersform");
-        }
-    } 
-}
-
-/**
- *  Updates the members for the selected group - currently none marked as selected
- */
-function updateSelectedGroup() {
-    //alert("updateSelectedGroup");
-    setSelectedGroup();
-    var url = "getmembers-xml.php";
-    var requeststring = "groupid="+selectedgroupid;
-    sendPostRequest(updateselectedgrouprequest, url, requeststring, updateSelectedGroupResponse);
-}
-
-/**
- * The callback for the response to the request sent in updateSelectedGroup() 
- */
-function updateSelectedGroupResponse() {
-    if (checkAjaxResponse(updateselectedgrouprequest)) {
-        var xmlDoc = updateselectedgrouprequest.responseXML;    
-        //alert("updateSelectedGroupResponse");
-        error = getFromXML(xmlDoc, 'error');
-        if (error != null) {
-            alert(error);
-        }
-
-        //alert(request.responseText);
-        var noofoptions = addOptionsFromXML("members", xmlDoc);
-    } 
-}
diff --git a/group/groupui/printgrouping.php b/group/groupui/printgrouping.php
deleted file mode 100644 (file)
index 010585c..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Print groups in groupings, and members of groups.
- *
- * @copyright &copy; 2006 The Open University
- * @author J.White AT open.ac.uk 
- * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package groups
- */
-require_once('../../config.php');
-require_once('../lib.php');
-
-$success = true;
-
-$courseid   = required_param('courseid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-
-// Get the course information so we can print the header and
-// check the course id is valid
-$course = groups_get_course_info($courseid);
-if (! $course) {
-    $success = false;
-    print_error('invalidcourse');
-}
-
-
-if ($success) {
-    // Make sure that the user has permissions to manage groups.
-    require_login($courseid);
-
-    $context = get_context_instance(CONTEXT_COURSE, $courseid);
-    if (! has_capability('moodle/course:managegroups', $context)) {
-        redirect();
-    }
-
-    //( confirm_sesskey checks that this is a POST request.)
-
-    // Print the page and form
-    $strgroups = get_string('groups');
-    $strparticipants = get_string('participants');
-    print_header("$course->shortname: $strgroups", $course->fullname, 
-        "<a href=\"$CFG->wwwroot/course/view.php?id=$courseid\">$course->shortname</a> ".
-        "-> <a href=\"$CFG->wwwroot/user/index.php?id=$courseid\">$strparticipants</a> ".
-        "-> <a href=\"$CFG->wwwroot/group/groupui/index.php?id=$courseid\">$strgroups</a>".
-        "-> Display grouping", "", "", true, '', user_login_string($course, $USER));
-
-    $groupingname = groups_get_grouping_name($groupingid);
-    if (! $groupingname) {
-        print_error('errorinvalidgrouping', 'group', groups_home_url($courseid));
-    } else {
-       // Print the name of the grouping
-        echo "<h1>$groupingname</h1>\n";
-    }
-
-    // Get the groups and group members for the grouping.
-    if (GROUP_NOT_IN_GROUPING == $groupingid) {
-        $groupids = groups_get_groups_not_in_any_grouping($courseid);
-    } else {
-        $groupids = groups_get_groups_in_grouping($groupingid);
-    }
-
-    if ($groupids) {
-        // Make sure the groups are in the right order
-        $group_names = groups_groupids_to_group_names($groupids);
-
-        // Go through each group in turn and print the group name and then the members
-        foreach ($group_names as $group) {
-
-            echo "<h2>{$group->name}</h2>\n";
-            $userids = groups_get_members($group->id);
-            if ($userids != false) {
-                // Make sure the users are in the right order
-                $user_names = groups_userids_to_user_names($userids, $courseid);
-
-                echo "<ol>\n";
-                foreach ($user_names as $user) {
-
-                    echo "<li>{$user->name}</li>\n";
-                }
-                echo "</ol>\n";
-            }
-        }
-    }
-
-    print_footer($course);
-}
-
-?>
diff --git a/group/groupui/removegroupfromgrouping-xml.php b/group/groupui/removegroupfromgrouping-xml.php
deleted file mode 100644 (file)
index 5e94f12..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**********************************************
- * Removes a specified group from a specified grouping
- * (but does not delete the group)
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid    = required_param('groupid', PARAM_INT);
-$groupingid = required_param('groupingid', PARAM_INT);
-$courseid   = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    $groupingremoved = groups_remove_group_from_grouping($groupid, $groupingid);
-    if (!$groupingremoved) {
-        echo '<error>Failed to remove group from grouping</error>';
-    }
-}
-
-echo '</groupsresponse>';
-?>
diff --git a/group/groupui/removegroupfromgrouping.js b/group/groupui/removegroupfromgrouping.js
deleted file mode 100644 (file)
index dca1caa..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-
-function onRemoveGroup() {
-    hideAllForms();
-    showElement("groupeditform");
-    removeGroupFromGrouping();
-    return false;
-}
-
-/**
- * Removes the selected group from the selected grouping, does not delete the group (so it can e.g. be added to
- * another grouping
- */
-function removeGroupFromGrouping() {
-    //alert("Called removeGroupFromGrouping");
-    var url = "removegroupfromgrouping-xml.php";
-    var requeststring = "groupid="+selectedgroupid+"&groupingid="+selectedgroupingid;
-    sendPostRequest(request, url, requeststring, removeGroupFromGroupingResponse);
-}
-
-/**
- * The callback for the response to the request sent in removeGroupFromGrouping() 
- */ 
-function removeGroupFromGroupingResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("removeGroupFromGroupingResponse called");
-        var xmlDoc= request.responseXML;
-        // Need XML sent back with groupingid
-        // Really want to set this to be the grouping before
-        selectedgroupid = null;
-        updateGroupings();
-    }
-}
-
-
diff --git a/group/groupui/removemembers-xml.php b/group/groupui/removemembers-xml.php
deleted file mode 100644 (file)
index a585f28..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**********************************************
- * Takes a groupid and comma-separated list of 
- * userids, and removes each of those userids 
- * from the specified group
- **********************************************/
-
-require_once('../../config.php');
-require_once('../lib/lib.php');
-
-@header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="utf-8"?>';
-echo '<groupsresponse>';
-
-$groupid  = required_param('groupid', PARAM_INT);
-$users    = required_param('users', PARAM_SEQUENCE);
-$courseid = required_param('courseid', PARAM_INT);
-
-require_login($courseid);
-
-if (confirm_sesskey() and isteacheredit($courseid)) {
-    // Change the comma-separated string of the userids into an array of the userids
-    $userids = explode(',', $users); 
-    if ($userids != false) {
-        // Remove each user in turn from the group. 
-        foreach($userids as $userid) {
-            $useradded = groups_remove_member($groupid, $userid);
-            if (!$useradded) {
-                echo "<error>Failed to adduser $userid</error>";
-            }
-        }
-    }
-}
-
-
-echo '</groupsresponse>';
-
-?>
diff --git a/group/groupui/removemembers.js b/group/groupui/removemembers.js
deleted file mode 100644 (file)
index 8fe86de..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-function onRemoveMembers() {
-    hideAllForms();
-    showElement("groupeditform");
-    removeMembers();
-    return false;
-}
-
-
-
-/**
- * Removes the selected members from the selected group
- */
-function removeMembers() {
-    //alert("Called removeMembers");
-    users = getSelectedUsers();
-    var url = "removemembers-xml.php";
-    var requeststring = "groupid="+selectedgroupid+"&users="+users;
-    sendPostRequest(request, url, requeststring, removeMembersResponse);
-}
-
-/**
- * The callback for the response to the request sent in removeMembers() 
- */
-function removeMembersResponse() {
-    if (checkAjaxResponse(request)) {
-        //alert("removeMembersResponse called");
-        //alert(request.responseText);
-        updateSelectedGroup();
-    }
-}
diff --git a/group/groupui/util-form.js b/group/groupui/util-form.js
deleted file mode 100644 (file)
index af7b1c8..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/**
- * This file contains various utility functions, primarily to get and set information on form.html
- * and to take information from XML documents and either return information from them or modifiy the 
- * form appropriately. 
- */
-
-/*
- * Disable the button with the specified id
- */
-function disableButton(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-    } else {
-        var node = document.getElementById(id);
-        node.disabled = true;
-    }
-}
-
-/**
- * Enable the button with the specified id
- */
-function enableButton(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-    } else {
-        var node = document.getElementById(id);
-        node.disabled = false;
-    }
-}
-
-/**
- * Show the form with the specified id
- */
-function showElement(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-    } else {
-        document.getElementById(id).style.visibility = "visible";
-    }
-}
-
-/** 
- * Hide the form with the specified id
- */
-function hideElement(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-    } else {
-        var node = document.getElementById(id);
-        node.style.visibility = "hidden";
-    }
-}
-
-
-/**
- * Hides all the extra forms in form.html
- */
-function hideAllForms() {
-    hideElement("addmembersform");
-    hideElement("addgroupstogroupingform");
-    hideElement("creategroupingform");
-    hideElement("createautomaticgroupingform");
-    hideElement("creategroupform");
-    hideElement("editgroupingsettingsform");
-    hideElement("editgroupingpermissionsform");
-    hideElement("editgroupsettingsform");
-    hideElement("groupeditform");
-}
-
-function onCancel() {
-    hideAllForms();
-    showElement("groupeditform");
-    return false;
-}
-
-
-function addEvent(id, eventtype, fn){ 
-    if (!document.getElementById(id)) {
-        alert('No ' + id + ' element');
-        return false;
-    } else {
-        obj = document.getElementById(id); 
-    }
-
-    if (obj.addEventListener) {
-        obj.addEventListener(eventtype, fn, false );
-    } else if (obj.attachEvent) {
-        obj["e"+ eventtype +fn] = fn;
-        obj[eventtype+fn] = function() { obj["e"+ eventtype +fn]( window.event ); }
-        obj.attachEvent( "on"+ eventtype , obj[eventtype+fn] );
-    } else {
-        obj["on"+type] = obj["e"+ eventtype +fn];
-    } 
-}
-
-/**
- * Gets the value of the first option in a select
- */
-function getFirstOption(id) {
-    if (document.getElementById(id)) {
-        var node = document.getElementById(id);
-        if (node.hasChildNodes()) {
-            var children 
-                firstoption = node.firstChild;
-            if (firstoption.value) {
-                value = firstoption.value;
-            } else {
-                value = null;
-            }
-        } else {
-            value = null;
-        }
-    } else {
-        value = null;
-    }
-    return value;
-}
-
-/* 
- *Turn the values from a multiple select to a comma-separated list
-*/
-function getMultipleSelect(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-    } else {
-        node = document.getElementById(id);
-    }
-    var selected = ""
-
-    for (var i = 0; i < node.options.length; i++) {
-        if (node.options[i].selected) { 
-            selected = selected + node.options[ i ].value + ",";
-        }
-    }
-    // Remove the last comma - there must be a nicer way of doing this!
-    // Maybe easier with regular expressions?
-    var length = selected.length;
-    if (selected.charAt(length - 1) == ',') {
-        selected = selected.substring(0, length -1);
-    }
-
-    return selected;
-}
-
-/*
- * Creates an option in a select element with the specified id with the given name and value.
-*/
-function createOption(id, value, name) {
-    var node = document.getElementById(id);
-    var option = document.createElement("option");
-    option.setAttribute("value", value);
-    node.appendChild(option);
-    var namenode = document.createTextNode(name);
-    option.appendChild(namenode);
-}
-
-/*
- * Removes all the options from a select with a given id
-*/
-function removeOptions(id) {
-    var node = document.getElementById(id);
-
-    while (node.hasChildNodes())
-    {
-        node.removeChild(node.firstChild);
-    }
-}
-
-/*
- * Takes an XML doc of the form <option><name></name><value></value><name></name><value></value></option>
- * And adds an option to the selected with the specified id
- * @param id The id of the select
- * @param xmlDoc The XML document
- * @return The number of options added
- */
-function addOptionsFromXML(id, xmlDoc) {
-    // Clear any options that are already there. 
-    removeOptions(id);
-
-    var optionelements = xmlDoc.getElementsByTagName('option');
-    var nameelements = xmlDoc.getElementsByTagName('name');
-    var valueelements = xmlDoc.getElementsByTagName('value');
-
-    if (nameelements != null) {
-        for (var i = 0; i < nameelements.length; i++) {
-            var name = nameelements[i].firstChild.nodeValue;
-            var value = valueelements[i].firstChild.nodeValue;
-            createOption(id, value, name);
-        }
-        noofoptions = nameelements.length;
-    } else {
-        noofoptions = 0;
-    }
-    return noofoptions;
-}
-
-/*
- * Gets an error from an XML doc contain a tag of the form <error></error>
- * If it contains more than one such tag, it only return the value from the first one. 
- */
-function getErrorFromXML(xmlDoc) {
-    alert(xmlDoc.getElementsByTagName('error'));
-    if (!xmlDoc.getElementsByTagName('error')) {
-        value = null;
-    } else {
-        var errorelement = xmlDoc.getElementsByTagName('error')[0];
-        var value = errorelement.firstChild.nodeValue;
-    }
-    return value;
-}
-
-
-function addChildrenFromXML(parentnode, xmlparentnode) {
-    xmlChildNodes = xmlparentnode.childNodes;
-    length = xmlChildNodes.length;
-    for (i = 0; i < length; i++) {
-        child = parentnode.appendChild(parentnode, xmlChildNodes[i]);
-        addChildrenFromXML(child, xmlChildNodes[i])
-    }
-}
-
-function getTextInputValue(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-            value = null;
-    } else {
-        textinput = document.getElementById(id);
-        value = textinput.value;
-    }
-    return value;
-}
-
-function setTextInputValue(id, value) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id); 
-        value = null;
-    } else {
-        textinput = document.getElementById(id);
-        textinput.value = value;
-    }
-}
-
-function getCheckBoxValue(id) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id); 
-        value= null;
-    } else {
-        checkbox = document.getElementById(id);
-        value = checkbox.checked;
-    }
-    return  boolToInt(value);
-}
-
-function boolStringToBool(boolstring) {
-    if (boolstring == 'true') {
-        return true;
-    } else {
-        return false;
-    }
-}
-
-function boolToInt(boolean) {
-    if (boolean) {
-        return '1';
-    } else if (boolean == false) {
-        return '0';
-    } else {
-        return boolean;
-    }
-}
-
-function setCheckBoxValue(id, checked) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id); 
-    } else {
-        checkbox = document.getElementById(id);
-        checkbox.checked = checked;
-    }
-}
-
-function replaceText(id, text) {
-    if (!document.getElementById(id)) {
-        showNoElementError(id) 
-            value = null;
-    } else {
-        element = document.getElementById(id);
-        if (element.childNodes) {
-            for (var i = 0; i < element.childNodes.length; i++) {
-                var childNode = element.childNodes[i];
-                element.removeChild(childNode);
-            }
-        }
-        var textnode = document.createTextNode(text);
-        element.appendChild(textnode);
-    }
-}
-
-
-function getRadioValue(radioelement) {
-    value = "";
-    if (!radioelement) {
-        value = "";
-    }
-
-
-    for(var i = 0; i < radioelement.length; i++) {
-        if(radioelement[i].checked) {
-            value =  radioelement[i].value;
-        }
-    }
-    return value;
-}
-
-/*
- * Gets the groupid from an XML doc contain a tag of the form <groupid></groupid>
- * If it contains more than one such tag, it only return the value from the first one. 
- */
-function getFromXML(xmlDoc, id) {
-    if (!xmlDoc.getElementsByTagName(id)) {
-        var value = null;
-    } else if (xmlDoc.getElementsByTagName(id).length == 0) {
-        var value = null;
-    } else {
-        var element = xmlDoc.getElementsByTagName(id)[0];
-        if (!element.firstChild) {
-            var value = '';
-        } else {
-            var value = element.firstChild.nodeValue;
-        }
-    }
-
-    return value;
-}
-
-function showNoElementError(id) {
-    alert('Error: No ' + id +' element');
-}
-
-function isPositiveInt(str) {
-    isPosInt = true;
-
-    var i = parseInt (str);
-
-    if (isNaN (i)) {
-        isPosInt = false;
-    } 
-
-    if (i < 0) {
-        isPosInt = false;
-        // Check not characters at the end of the number
-    } 
-
-    if (i.toString() != str) {
-        isPosInt = false;
-    }
-    return isPosInt ;
-}
-
diff --git a/group/groupui/yahoo.js b/group/groupui/yahoo.js
deleted file mode 100644 (file)
index e285bc3..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*                                                                                                                                                      
-Copyright (c) 2006, Yahoo! Inc. All rights reserved.                                                                                                    
-Code licensed under the BSD License:                                                                                                                    
-http://developer.yahoo.net/yui/license.txt                                                                                                              
-version: 0.11.0                                                                                                                                         
-*/ 
-
-/**
- * The Yahoo global namespace
- * @constructor
- */
-var YAHOO = window.YAHOO || {};
-
-/**
- * Returns the namespace specified and creates it if it doesn't exist
- *
- * YAHOO.namespace("property.package");
- * YAHOO.namespace("YAHOO.property.package");
- *
- * Either of the above would create YAHOO.property, then
- * YAHOO.property.package
- *
- * @param  {String} ns The name of the namespace
- * @return {Object}    A reference to the namespace object
- */
-YAHOO.namespace = function(ns) {
-
-    if (!ns || !ns.length) {
-        return null;
-    }
-
-    var levels = ns.split(".");
-    var nsobj = YAHOO;
-
-    // YAHOO is implied, so it is ignored if it is included
-    for (var i=(levels[0] == "YAHOO") ? 1 : 0; i<levels.length; ++i) {
-        nsobj[levels[i]] = nsobj[levels[i]] || {};
-        nsobj = nsobj[levels[i]];
-    }
-
-    return nsobj;
-};
-
-/**
- * Uses YAHOO.widget.Logger to output a log message, if the widget is available.
- *
- * @param  {string}  sMsg       The message to log.
- * @param  {string}  sCategory  The log category for the message.  Default
- *                              categories are "info", "warn", "error", time".
- *                              Custom categories can be used as well. (opt)
- * @param  {string}  sSource    The source of the the message (opt)
- * @return {boolean}            True if the log operation was successful.
- */
-YAHOO.log = function(sMsg, sCategory, sSource) {
-    var l = YAHOO.widget.Logger;
-    if(l && l.log) {
-        return l.log(sMsg, sCategory, sSource);
-    } else {
-        return false;
-    }
-};
-
-/**
- * Utility to set up the prototype, constructor and superclass properties to
- * support an inheritance strategy that can chain constructors and methods.
- *
- * @param {Function} subclass   the object to modify
- * @param {Function} superclass the object to inherit
- */
-YAHOO.extend = function(subclass, superclass) {
-    var f = function() {};
-    f.prototype = superclass.prototype;
-    subclass.prototype = new f();
-    subclass.prototype.constructor = subclass;
-    subclass.superclass = superclass.prototype;
-    if (superclass.prototype.constructor == Object.prototype.constructor) {
-        superclass.prototype.constructor = superclass;
-    }
-};
-
-YAHOO.namespace("util");
-YAHOO.namespace("widget");
-YAHOO.namespace("example");
-
index ee1f677..84b8fe2 100644 (file)
@@ -27,6 +27,11 @@ $groupid    = optional_param('group', false, PARAM_INT);
 $userid     = optional_param('user', false, PARAM_INT);
 $action = groups_param_action();
 
+if (empty($CFG->enablegroupings)) {
+    // NO GROUPINGS YET!
+    $groupingid = GROUP_NOT_IN_GROUPING;
+}
+
 if ($groupid) {
     $groupingsforgroup = groups_get_groupings_for_group($groupid);
     if ($groupingsforgroup) {
@@ -100,7 +105,7 @@ if ($success) {
             redirect(groups_grouping_edit_url($courseid, null, false));
             break;
         case 'printerfriendly':
-            redirect('groupui/printgrouping.php?courseid='. $courseid .'&groupingid='. $groupingid);
+            redirect('printgrouping.php?courseid='. $courseid .'&groupingid='. $groupingid);
             break;
 
         case 'showgroupsettingsform':
@@ -201,6 +206,11 @@ if ($success) {
 */ 
     echo '<table cellpadding="6" class="generaltable generalbox groupmanagementtable boxaligncenter" summary="">'."\n";
     echo '<tr>'."\n";
+
+if (empty($CFG->enablegroupings)) {
+// NO GROUPIGS YET!
+    $sel_groupingid = -1;
+} else {
     echo '<td class="generalboxcontent">'."\n";
     echo '<p><label for="groupings">' .  get_string('groupings', 'group') . '<span id="dummygrouping">&nbsp;</span></label></p>'."\n";
     echo '<select name="grouping" id="groupings" size="15" class="select"';
@@ -265,8 +275,15 @@ if ($success) {
     
     echo '<p><input type="submit" ' . $printerfriendly_disabled . ' name="act_printerfriendly" id="printerfriendly" value="'
             . get_string('printerfriendly', 'group') . '" /></p>'."\n";
-    echo "</td>\n<td>\n";
+    echo "</td>\n";
+}
+    echo "<td>\n";
+if (empty($CFG->enablegroupings)) {
+    // NO GROUPINGS YET!
+    echo '<p><label for="groups"><span id="groupslabel">'.get_string('groups').':</span><span id="thegrouping">&nbsp;</span></label></p>'."\n";
+} else {
     echo '<p><label for="groups"><span id="groupslabel">'.get_string('groupsinselectedgrouping', 'group').' </span><span id="thegrouping">'.get_string('grouping', 'group').'</span></label></p>'."\n";
+}
     echo '<select name="group" id="groups" size="15" class="select" onchange="membersCombo.refreshMembers(this.options[this.selectedIndex].value);"'."\n";
     echo ' onclick="window.status=this.options[this.selectedIndex].title;" onmouseout="window.status=\'\';">'."\n";
 
@@ -307,7 +324,14 @@ if ($success) {
         echo '<p><input type="submit" '.$disabled.' name="act_removegroup" '
                 . 'id="removegroup" value="' . get_string('removegroupfromselectedgrouping', 'group') . '" /></p>'."\n";
     }
-    
+
+if (empty($CFG->enablegroupings)) {
+// NO GROUPIGS YET!
+    echo '<p><input type="submit" name="act_showcreateorphangroupform" id="showcreateorphangroupform" value="'
+            . get_string('creategroup', 'group') . '" /></p>'."\n";
+    echo '<p><input type="submit" name="act_printerfriendly" id="printerfriendly" value="'
+            . get_string('printerfriendly', 'group') . '" /></p>'."\n";
+} else {    
     echo '<p><input type="submit" ' . $showcreategroupform_disabled . ' name="act_showcreategroupform" id="showcreategroupform" value="'
             . get_string('creategroupinselectedgrouping', 'group') . '" /></p>'."\n";
     
@@ -318,10 +342,11 @@ if ($success) {
         echo '<p><input type="submit" '.$disabled.' name="act_addgroupstogroupingform" '
                 . 'id="showaddgroupstogroupingform" value="' . get_string('addgroupstogrouping', 'group') . '" /></p>'."\n";
     }
-    
+}
+
     echo '</td>'."\n";
     echo '<td>'."\n";
-    echo '<p><label for="members"><span id="memberslabel">'.get_string('membersofselectedgroup', 'group').' </span><span id="thegroup">'.get_string('group', 'group').'</span></label></p>'."\n";
+    echo '<p><label for="members"><span id="memberslabel">'.get_string('membersofselectedgroup', 'group').' </span><span id="thegroup">&nbsp;</span></label></p>'."\n";
     //NOTE: the SELECT was, multiple="multiple" name="user[]" - not used and breaks onclick.
     echo '<select name="user" id="members" size="15" class="select"'."\n";
     echo ' onclick="window.status=this.options[this.selectedIndex].title;" onmouseout="window.status=\'\';">'."\n";
index 0959aa6..388908f 100644 (file)
@@ -161,7 +161,7 @@ function groupmode($course, $cm=null) {
         return $cm->groupmode;
     }
     return $course->groupmode;
-
+    
     /*if ($cm and !$course->groupingid) {
         //TODO: was $coursemodule
         return groups_has_groups_setup_for_instance($cm);
@@ -201,25 +201,29 @@ function set_current_group($courseid, $groupid) {
 function get_current_group($courseid, $full = false) {
     global $SESSION;
 
-    $mygroupid = mygroupid($courseid);
-    if (is_array($mygroupid)) {
-        $mygroupid = array_shift($mygroupid);
-    }
-
     if (isset($SESSION->currentgroup[$courseid])) {
-        $currentgroup = $SESSION->currentgroup[$courseid];
-    } else {
-        $currentgroup = $mygroupid;
+        if ($full) {
+            return groups_get_group($SESSION->currentgroup[$courseid], false);
+        } else {
+            return $SESSION->currentgroup[$courseid];
+        }
     }
 
-    if ($currentgroup) {
-        $SESSION->currentgroup[$courseid] = $mygroupid;
+    $mygroupid = mygroupid($courseid);
+    if (is_array($mygroupid)) {
+        $mygroupid = array_shift($mygroupid);
+        set_current_group($courseid, $mygroupid);
+        if ($full) {
+            return groups_get_group($mygroupid, false);
+        } else {
+            return $mygroupid;
+        }
     }
 
     if ($full) {
-        return groups_groupid_to_group($currentgroup);
+        return false;
     } else {
-        return $currentgroup;
+        return 0;
     }
 }
 
@@ -265,12 +269,11 @@ function get_and_set_current_group($course, $groupmode, $groupid=-1) {
                 /*)}else {
                     $currentgroupid = $group->id;*/
             } elseif ($groupmode == SEPARATEGROUPS) { // student in separate groups switching
-                if (ismember($group->id)) { //check if is a member
+                if (ismember($groupid)) { //check if is a member
                     $currentgroupid = set_current_group($course->id, $groupid); //might need to set_current_group?
                 }
                 else {
-                    echo($group->id);
-                    notify('You do not belong to this group!', 'error');
+                    notify('You do not belong to this group! ('.$groupid.')', 'error');
                 }
             }
         }
@@ -280,8 +283,8 @@ function get_and_set_current_group($course, $groupmode, $groupid=-1) {
         if (has_capability('moodle/site:accessallgroups', $context)) { // Sets current default group
             $currentgroupid = set_current_group($course->id, 0);
 
-        } elseif ($groupmode == VISIBLEGROUPS) {  // All groups are visible
-            $currentgroupid = 0;
+        } else if ($groupmode == VISIBLEGROUPS) {  // All groups are visible
+            $currentgroupid = set_current_group($course->id, 0);
         }
     }
 
@@ -317,31 +320,52 @@ function setup_and_print_groups($course, $groupmode, $urlroot) {
 
     $context = get_context_instance(CONTEXT_COURSE, $course->id);
 
-    if ($groupmode == VISIBLEGROUPS
-        or ($groupmode and has_capability('moodle/site:accessallgroups', $context))) {
-        groups_instance_print_grouping_selector();
-    }//added code here to allow non-editting teacher to swap in-between his own groups
-    //added code for students in separategrous to swtich groups
-    else if ($groupmode == SEPARATEGROUPS and has_capability('moodle/course:view', $context)) {
-        groups_instance_print_group_selector();
+    if ($groupmode == SEPARATEGROUPS and !$currentgroup and !has_capability('moodle/site:accessallgroups', $context)) {
+        //we are in separate groups and the current group is group 0, as last set.
+        //this can mean that either, this guy has no group
+        //or, this guy just came from a visible all forum, and he left when he set his current group to 0 (show all)
+
+        if ($usergroups = user_group($course->id, $USER->id)){
+            //for the second situation, we need to perform the trick and get him a group.
+            $first = reset($usergroups);
+            $currentgroup = get_and_set_current_group($course, $groupmode, $first->id);
+
+        } else {
+            //else he has no group in this course
+            print_heading(get_string('notingroup'));
+            print_footer($course);
+            exit;
+        }
     }
 
-    return $currentgroup;
-}
+    if ($groupmode == VISIBLEGROUPS or ($groupmode and has_capability('moodle/site:accessallgroups', $context))) {
 
+        if ($groups = get_groups($course->id)) {
+
+            echo '<div class="groupselector">';
+            print_group_menu($groups, $groupmode, $currentgroup, $urlroot, 1);
+            echo '</div>';
+        }
+
+    } else if ($groupmode == SEPARATEGROUPS and has_capability('moodle/course:view', $context)) {
+        //get all the groups this guy is in in this course
+        if ($usergroups = user_group($course->id, $USER->id)){
+            echo '<div class="groupselector">';
+            //print them in the menu
+            print_group_menu($usergroups, $groupmode, $currentgroup, $urlroot, 0);
+            echo '</div>';
+        }
+    }
+
+    return $currentgroup;
 
-function groups_instance_print_grouping_selector() {
-    //TODO: ??
-}
-function groups_instance_print_group_selector() {
-    //TODO: ??
 }
 
 
 function oldgroups_print_user_group_info($currentgroup, $isseparategroups, $courseid) {
     global $CFG;
     $context = get_context_instance(CONTEXT_COURSE, $courseid);
-
+    
     if ($currentgroup and (!$isseparategroups or has_capability('moodle/site:accessallgroups', $context))) {    /// Display info about the group
         if ($group = get_record('groups', 'id', $currentgroup)) {              
             if (!empty($group->description) or (!empty($group->picture) and empty($group->hidepicture))) { 
diff --git a/lib/cas/CAS.php b/lib/cas/CAS.php
deleted file mode 100644 (file)
index 0777476..0000000
+++ /dev/null
@@ -1,1182 +0,0 @@
-<?php
-
-error_reporting(E_ALL ^ E_NOTICE);
-
-//
-// hack by Vangelis Haniotakis to handle the absence of $_SERVER['REQUEST_URI'] in IIS
-//
-if (!$_SERVER['REQUEST_URI']) {
-     $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];
-}
-
-//
-// another one by Vangelis Haniotakis also to make phpCAS work with PHP5
-//
-if (version_compare(PHP_VERSION,'5','>=')) {
-    require_once(dirname(__FILE__).'/domxml-php4-php5.php');
-}
-
-/**
- * @file CAS/CAS.php
- * Interface class of the phpCAS library
- *
- * @ingroup public
- */
-
-// ########################################################################
-//  CONSTANTS
-// ########################################################################
-
-// ------------------------------------------------------------------------
-//  CAS VERSIONS
-// ------------------------------------------------------------------------
-
-/**
- * phpCAS version. accessible for the user by phpCAS::getVersion().
- */
-define('PHPCAS_VERSION','0.4.20-1');
-
-// ------------------------------------------------------------------------
-//  CAS VERSIONS
-// ------------------------------------------------------------------------
-/**
- * @addtogroup public
- * @{
- */
-
-/**
- * CAS version 1.0
- */
-define("CAS_VERSION_1_0",'1.0');
-/*!
- * CAS version 2.0
- */
-define("CAS_VERSION_2_0",'2.0');
-
-/** @} */
-/**
- * @addtogroup publicPGTStorage
- * @{
- */
-// ------------------------------------------------------------------------
-//  FILE PGT STORAGE
-// ------------------------------------------------------------------------
-/**
- * Default path used when storing PGT's to file
- */
-define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH",'/tmp');
-/**
- * phpCAS::setPGTStorageFile()'s 2nd parameter to write plain text files
- */
-define("CAS_PGT_STORAGE_FILE_FORMAT_PLAIN",'plain');
-/**
- * phpCAS::setPGTStorageFile()'s 2nd parameter to write xml files
- */
-define("CAS_PGT_STORAGE_FILE_FORMAT_XML",'xml');
-/**
- * Default format used when storing PGT's to file
- */
-define("CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT",CAS_PGT_STORAGE_FILE_FORMAT_PLAIN);
-// ------------------------------------------------------------------------
-//  DATABASE PGT STORAGE
-// ------------------------------------------------------------------------
-/**
- * default database type when storing PGT's to database
- */
-define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE",'mysql');
-/**
- * default host when storing PGT's to database
- */
-define("CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME",'localhost');
-/**
- * default port when storing PGT's to database
- */
-define("CAS_PGT_STORAGE_DB_DEFAULT_PORT",'');
-/**
- * default database when storing PGT's to database
- */
-define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE",'phpCAS');
-/**
- * default table when storing PGT's to database
- */
-define("CAS_PGT_STORAGE_DB_DEFAULT_TABLE",'pgt');
-
-/** @} */
-// ------------------------------------------------------------------------
-// SERVICE ACCESS ERRORS
-// ------------------------------------------------------------------------
-/**
- * @addtogroup publicServices
- * @{
- */
-
-/**
- * phpCAS::service() error code on success
- */
-define("PHPCAS_SERVICE_OK",0);
-/**
- * phpCAS::service() error code when the PT could not retrieve because
- * the CAS server did not respond.
- */
-define("PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE",1);
-/**
- * phpCAS::service() error code when the PT could not retrieve because
- * the response of the CAS server was ill-formed.
- */
-define("PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE",2);
-/**
- * phpCAS::service() error code when the PT could not retrieve because
- * the CAS server did not want to.
- */
-define("PHPCAS_SERVICE_PT_FAILURE",3);
-/**
- * phpCAS::service() error code when the service was not available.
- */
-define("PHPCAS_SERVICE_NOT AVAILABLE",4);
-
-/** @} */
-// ------------------------------------------------------------------------
-//  LANGUAGES
-// ------------------------------------------------------------------------
-/**
- * @addtogroup publicLang
- * @{
- */
-
-define("PHPCAS_LANG_ENGLISH",    'english');
-define("PHPCAS_LANG_FRENCH",     'french');
-define("PHPCAS_LANG_GREEK",      'greek');
-
-/** @} */
-
-/**
- * @addtogroup internalLang
- * @{
- */
-
-/**
- * phpCAS default language (when phpCAS::setLang() is not used)
- */
-define("PHPCAS_LANG_DEFAULT", PHPCAS_LANG_ENGLISH);
-
-/** @} */
-// ------------------------------------------------------------------------
-//  MISC
-// ------------------------------------------------------------------------
-/**
- * @addtogroup internalMisc
- * @{
- */
-
-/**
- * This global variable is used by the interface class phpCAS.
- *
- * @hideinitializer
- */
-$PHPCAS_CLIENT  = null;
-
-/**
- * This global variable is used to store where the initializer is called from 
- * (to print a comprehensive error in case of multiple calls).
- *
- * @hideinitializer
- */
-$PHPCAS_INIT_CALL = array('done' => FALSE,
-                         'file' => '?',
-                         'line' => -1,
-                         'method' => '?');
-
-/**
- * This global variable is used to store where the method checking
- * the authentication is called from (to print comprehensive errors)
- *
- * @hideinitializer
- */
-$PHPCAS_AUTH_CHECK_CALL = array('done' => FALSE,
-                               'file' => '?',
-                               'line' => -1,
-                               'method' => '?',
-                               'result' => FALSE);
-
-/**
- * This global variable is used to store phpCAS debug mode.
- *
- * @hideinitializer
- */
-$PHPCAS_DEBUG  = array('filename' => FALSE,
-                      'indent' => 0,
-                      'unique_id' => '');
-
-/** @} */
-
-// ########################################################################
-//  CLIENT CLASS
-// ########################################################################
-
-// include client class
-include_once(dirname(__FILE__).'/client.php');
-
-// ########################################################################
-//  INTERFACE CLASS
-// ########################################################################
-
-/**
- * @class phpCAS
- * The phpCAS class is a simple container for the phpCAS library. It provides CAS
- * authentication for web applications written in PHP.
- *
- * @ingroup public
- * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
- *
- * \internal All its methods access the same object ($PHPCAS_CLIENT, declared 
- * at the end of CAS/client.php).
- */
-
-
-
-class phpCAS
-{
-
-  // ########################################################################
-  //  INITIALIZATION
-  // ########################################################################
-
-  /**
-   * @addtogroup publicInit
-   * @{
-   */
-
-  /**
-   * phpCAS client initializer.
-   * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be
-   * called, only once, and before all other methods (except phpCAS::getVersion()
-   * and phpCAS::setDebug()).
-   *
-   * @param $server_version the version of the CAS server
-   * @param $server_hostname the hostname of the CAS server
-   * @param $server_port the port the CAS server is running on
-   * @param $server_uri the URI the CAS server is responding on
-   * @param $start_session Have phpCAS start PHP sessions (default true)
-   *
-   * @return a newly created CASClient object
-   */
-  function client($server_version,
-                 $server_hostname,
-                 $server_port,
-                 $server_uri,
-                 $start_session = true)
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL;
-
-      phpCAS::traceBegin();
-      if ( is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')');
-      }
-      if ( gettype($server_version) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_version (should be `string\')');
-      }
-      if ( gettype($server_hostname) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')');
-      }
-      if ( gettype($server_port) != 'integer' ) {
-       phpCAS::error('type mismatched for parameter $server_port (should be `integer\')');
-      }
-      if ( gettype($server_uri) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_uri (should be `string\')');
-      }
-
-      // store where the initialzer is called from
-      $dbg = phpCAS::backtrace();
-      $PHPCAS_INIT_CALL = array('done' => TRUE,
-                               'file' => $dbg[0]['file'],
-                               'line' => $dbg[0]['line'],
-                               'method' => __CLASS__.'::'.__FUNCTION__);
-
-      // initialize the global object $PHPCAS_CLIENT
-      $PHPCAS_CLIENT = new CASClient($server_version,FALSE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session);
-      phpCAS::traceEnd();
-    }
-
-  /**
-   * phpCAS proxy initializer.
-   * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be
-   * called, only once, and before all other methods (except phpCAS::getVersion()
-   * and phpCAS::setDebug()).
-   *
-   * @param $server_version the version of the CAS server
-   * @param $server_hostname the hostname of the CAS server
-   * @param $server_port the port the CAS server is running on
-   * @param $server_uri the URI the CAS server is responding on
-   * @param $start_session Have phpCAS start PHP sessions (default true)
-   *
-   * @return a newly created CASClient object
-   */
-  function proxy($server_version,
-                $server_hostname,
-                $server_port,
-                $server_uri,
-                $start_session = true)
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL;
-
-      phpCAS::traceBegin();
-      if ( is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')');
-      }
-      if ( gettype($server_version) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_version (should be `string\')');
-      }
-      if ( gettype($server_hostname) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')');
-      }
-      if ( gettype($server_port) != 'integer' ) {
-       phpCAS::error('type mismatched for parameter $server_port (should be `integer\')');
-      }
-      if ( gettype($server_uri) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $server_uri (should be `string\')');
-      }
-
-      // store where the initialzer is called from
-      $dbg = phpCAS::backtrace();
-      $PHPCAS_INIT_CALL = array('done' => TRUE,
-                               'file' => $dbg[0]['file'],
-                               'line' => $dbg[0]['line'],
-                               'method' => __CLASS__.'::'.__FUNCTION__);
-
-      // initialize the global object $PHPCAS_CLIENT
-      $PHPCAS_CLIENT = new CASClient($server_version,TRUE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session);
-      phpCAS::traceEnd();
-    }
-
-  /** @} */
-  // ########################################################################
-  //  DEBUGGING
-  // ########################################################################
-
-  /**
-   * @addtogroup publicDebug
-   * @{
-   */
-
-  /**
-   * Set/unset debug mode
-   *
-   * @param $filename the name of the file used for logging, or FALSE to stop debugging.
-   */
-  function setDebug($filename='')
-    {
-      global $PHPCAS_DEBUG;
-
-      if ( $filename != FALSE && gettype($filename) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $dbg (should be FALSE or the name of the log file)');
-      }
-
-      if ( empty($filename) ) {
-       if ( preg_match('/^Win.*/',getenv('OS')) ) {
-         if ( isset($_ENV['TMP']) ) {
-           $debugDir = $_ENV['TMP'].'/';
-         } else if ( isset($_ENV['TEMP']) ) {
-           $debugDir = $_ENV['TEMP'].'/';
-         } else {
-           $debugDir = '';
-         }
-       } else {
-         $debugDir = '/tmp/';
-       }
-       $filename = $debugDir . 'phpCAS.log';
-      }
-
-      if ( empty($PHPCAS_DEBUG['unique_id']) ) {
-       $PHPCAS_DEBUG['unique_id'] = substr(strtoupper(md5(uniqid(''))),0,4);
-      }
-
-      $PHPCAS_DEBUG['filename'] = $filename;
-
-      phpCAS::trace('START ******************');
-    }
-  
-  /** @} */
-  /**
-   * @addtogroup internalDebug
-   * @{
-   */
-
-  /**
-   * This method is a wrapper for debug_backtrace() that is not available 
-   * in all PHP versions (>= 4.3.0 only)
-   */
-  function backtrace()
-    {
-      if ( function_exists('debug_backtrace') ) {
-        return debug_backtrace();
-      } else {
-        // poor man's hack ... but it does work ...
-        return array();
-      }
-    }
-
-  /**
-   * Logs a string in debug mode.
-   *
-   * @param $str the string to write
-   *
-   * @private
-   */
-  function log($str)
-    {
-      $indent_str = ".";
-      global $PHPCAS_DEBUG;
-
-      if ( $PHPCAS_DEBUG['filename'] ) {
-       for ($i=0;$i<$PHPCAS_DEBUG['indent'];$i++) {
-         $indent_str .= '|    ';
-       }
-       error_log($PHPCAS_DEBUG['unique_id'].' '.$indent_str.$str."\n",3,$PHPCAS_DEBUG['filename']);
-      }
-
-    }
-  
-  /**
-   * This method is used by interface methods to print an error and where the function
-   * was originally called from.
-   *
-   * @param $msg the message to print
-   *
-   * @private
-   */
-  function error($msg)
-    {
-      $dbg = phpCAS::backtrace();
-      $function = '?';
-      $file = '?';
-      $line = '?';
-      if ( is_array($dbg) ) {
-       for ( $i=1; $i<sizeof($dbg); $i++) {
-         if ( is_array($dbg[$i]) ) {
-           if ( $dbg[$i]['class'] == __CLASS__ ) {
-             $function = $dbg[$i]['function'];
-             $file = $dbg[$i]['file'];
-             $line = $dbg[$i]['line'];
-           }
-         }
-       }
-      }
-      echo "<br />\n<b>phpCAS error</b>: <font color=\"FF0000\"><b>".__CLASS__."::".$function.'(): '.htmlentities($msg)."</b></font> in <b>".$file."</b> on line <b>".$line."</b><br />\n";
-      phpCAS::trace($msg);
-      phpCAS::traceExit();
-      exit();
-    }
-
-  /**
-   * This method is used to log something in debug mode.
-   */
-  function trace($str)
-    {
-      $dbg = phpCAS::backtrace();
-      phpCAS::log($str.' ['.basename($dbg[1]['file']).':'.$dbg[1]['line'].']');
-    }
-
-  /**
-   * This method is used to indicate the start of the execution of a function in debug mode.
-   */
-  function traceBegin()
-    {
-      global $PHPCAS_DEBUG;
-
-      $dbg = phpCAS::backtrace();
-      $str = '=> ';
-      if ( !empty($dbg[2]['class']) ) {
-       $str .= $dbg[2]['class'].'::';
-      }
-      $str .= $dbg[2]['function'].'(';      
-      if ( is_array($dbg[2]['args']) ) {
-       foreach ($dbg[2]['args'] as $index => $arg) {
-         if ( $index != 0 ) {
-           $str .= ', ';
-         }
-         $str .= str_replace("\n","",var_export($arg,TRUE));
-       }
-      }
-      $str .= ') ['.basename($dbg[2]['file']).':'.$dbg[2]['line'].']';
-      phpCAS::log($str);
-      $PHPCAS_DEBUG['indent'] ++;
-    }
-
-  /**
-   * This method is used to indicate the end of the execution of a function in debug mode.
-   *
-   * @param $res the result of the function
-   */
-  function traceEnd($res='')
-    {
-      global $PHPCAS_DEBUG;
-
-      $PHPCAS_DEBUG['indent'] --;
-      $dbg = phpCAS::backtrace();
-      $str = '';
-      $str .= '<= '.str_replace("\n","",var_export($res,TRUE));
-      phpCAS::log($str);
-    }
-
-  /**
-   * This method is used to indicate the end of the execution of the program
-   */
-  function traceExit()
-    {
-      global $PHPCAS_DEBUG;
-
-      phpCAS::log('exit()');
-      while ( $PHPCAS_DEBUG['indent'] > 0 ) {
-       phpCAS::log('-');
-       $PHPCAS_DEBUG['indent'] --;
-      }
-    }
-
-  /** @} */
-  // ########################################################################
-  //  INTERNATIONALIZATION
-  // ########################################################################
-  /**
-   * @addtogroup publicLang
-   * @{
-   */
-
-  /**
-   * This method is used to set the language used by phpCAS. 
-   * @note Can be called only once.
-   *
-   * @param $lang a string representing the language.
-   *
-   * @sa PHPCAS_LANG_FRENCH, PHPCAS_LANG_ENGLISH
-   */
-  function setLang($lang)
-    {
-      global $PHPCAS_CLIENT;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      if ( gettype($lang) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $lang (should be `string\')');
-      }
-      $PHPCAS_CLIENT->setLang($lang);
-    }
-
-  /** @} */
-  // ########################################################################
-  //  VERSION
-  // ########################################################################
-  /**
-   * @addtogroup public
-   * @{
-   */
-
-  /**
-   * This method returns the phpCAS version.
-   *
-   * @return the phpCAS version.
-   */
-  function getVersion()
-    {
-      return PHPCAS_VERSION;
-    }
-  
-  /** @} */
-  // ########################################################################
-  //  HTML OUTPUT
-  // ########################################################################
-  /**
-   * @addtogroup publicOutput
-   * @{
-   */
-
-  /**
-   * This method sets the HTML header used for all outputs.
-   *
-   * @param $header the HTML header.
-   */
-  function setHTMLHeader($header)
-    {
-      global $PHPCAS_CLIENT;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      if ( gettype($header) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $header (should be `string\')');
-      }
-      $PHPCAS_CLIENT->setHTMLHeader($header);
-    }
-
-  /**
-   * This method sets the HTML footer used for all outputs.
-   *
-   * @param $footer the HTML footer.
-   */
-  function setHTMLFooter($footer)
-    {
-      global $PHPCAS_CLIENT;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      if ( gettype($footer) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $footer (should be `string\')');
-      }
-      $PHPCAS_CLIENT->setHTMLHeader($header);
-    }
-
-  /** @} */
-  // ########################################################################
-  //  PGT STORAGE
-  // ########################################################################
-  /**
-   * @addtogroup publicPGTStorage
-   * @{
-   */
-
-  /**
-   * This method is used to tell phpCAS to store the response of the
-   * CAS server to PGT requests onto the filesystem. 
-   *
-   * @param $format the format used to store the PGT's (`plain' and `xml' allowed)
-   * @param $path the path where the PGT's should be stored
-   */
-  function setPGTStorageFile($format='',
-                            $path='')
-    {
-      global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_CLIENT->isProxy() ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) {
-       phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')');
-      }
-      if ( gettype($format) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $format (should be `string\')');
-      }
-      if ( gettype($path) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $format (should be `string\')');
-      }
-      $PHPCAS_CLIENT->setPGTStorageFile($format,$path);
-      phpCAS::traceEnd();
-    }
-  
-  /**
-   * This method is used to tell phpCAS to store the response of the
-   * CAS server to PGT requests into a database. 
-   * @note The connection to the database is done only when needed. 
-   * As a consequence, bad parameters are detected only when 
-   * initializing PGT storage, except in debug mode.
-   *
-   * @param $user the user to access the data with
-   * @param $password the user's password
-   * @param $database_type the type of the database hosting the data
-   * @param $hostname the server hosting the database
-   * @param $port the port the server is listening on
-   * @param $database the name of the database
-   * @param $table the name of the table storing the data
-   */
-  function setPGTStorageDB($user,
-                          $password,
-                          $database_type='',
-                          $hostname='',
-                          $port=0,
-                          $database='',
-                          $table='')
-    {
-      global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_CLIENT->isProxy() ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) {
-       phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')');
-      }
-      if ( gettype($user) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $user (should be `string\')');
-      }
-      if ( gettype($password) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $password (should be `string\')');
-      }
-      if ( gettype($database_type) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $database_type (should be `string\')');
-      }
-      if ( gettype($hostname) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $hostname (should be `string\')');
-      }
-      if ( gettype($port) != 'integer' ) {
-       phpCAS::error('type mismatched for parameter $port (should be `integer\')');
-      }
-      if ( gettype($database) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $database (should be `string\')');
-      }
-      if ( gettype($table) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $table (should be `string\')');
-      }
-      $PHPCAS_CLIENT->setPGTStorageDB($this,$user,$password,$hostname,$port,$database,$table);
-      phpCAS::traceEnd();
-    }
-  
-  /** @} */
-  // ########################################################################
-  // ACCESS TO EXTERNAL SERVICES
-  // ########################################################################
-  /**
-   * @addtogroup publicServices
-   * @{
-   */
-
-  /**
-   * This method is used to access an HTTP[S] service.
-   * 
-   * @param $url the service to access.
-   * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on
-   * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE,
-   * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE.
-   * @param $output the output of the service (also used to give an error
-   * message on failure).
-   *
-   * @return TRUE on success, FALSE otherwise (in this later case, $err_code
-   * gives the reason why it failed and $output contains an error message).
-   */
-  function serviceWeb($url,&$err_code,&$output)
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_CLIENT->isProxy() ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) {
-       phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) {
-       phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE');
-      }
-      if ( gettype($url) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $url (should be `string\')');
-      }
-      
-      $res = $PHPCAS_CLIENT->serviceWeb($url,$err_code,$output);
-
-      phpCAS::traceEnd($res);
-      return $res;
-    }
-
-  /**
-   * This method is used to access an IMAP/POP3/NNTP service.
-   * 
-   * @param $url a string giving the URL of the service, including the mailing box
-   * for IMAP URLs, as accepted by imap_open().
-   * @param $flags options given to imap_open().
-   * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on
-   * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE,
-   * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE.
-   * @param $err_msg an error message on failure
-   * @param $pt the Proxy Ticket (PT) retrieved from the CAS server to access the URL
-   * on success, FALSE on error).
-   *
-   * @return an IMAP stream on success, FALSE otherwise (in this later case, $err_code
-   * gives the reason why it failed and $err_msg contains an error message).
-   */
-  function serviceMail($url,$flags,&$err_code,&$err_msg,&$pt)
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_CLIENT->isProxy() ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) {
-       phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) {
-       phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE');
-      }
-      if ( gettype($url) != 'string' ) {
-       phpCAS::error('type mismatched for parameter $url (should be `string\')');
-      }
-      
-      if ( gettype($flags) != 'integer' ) {
-       phpCAS::error('type mismatched for parameter $flags (should be `integer\')');
-      }
-      
-      $res = $PHPCAS_CLIENT->serviceMail($url,$flags,$err_code,$err_msg,$pt);
-
-      phpCAS::traceEnd($res);
-      return $res;
-    }
-
-  /** @} */
-  // ########################################################################
-  //  AUTHENTICATION
-  // ########################################################################
-  /**
-   * @addtogroup publicAuth
-   * @{
-   */
-
-  /**
-   * This method is called to check if the user is authenticated (use the gateway feature).
-   * @return TRUE when the user is authenticated; otherwise FALSE.
-   */
-  function checkAuthentication()
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-        phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-
-      $auth = $PHPCAS_CLIENT->checkAuthentication();
-
-      // store where the authentication has been checked and the result
-      $dbg = phpCAS::backtrace();
-      $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE,
-                                     'file' => $dbg[0]['file'],
-                                     'line' => $dbg[0]['line'],
-                                     'method' => __CLASS__.'::'.__FUNCTION__,
-                                     'result' => $auth );
-      phpCAS::traceEnd($auth);
-      return $auth; 
-    }
-  
-  /**
-   * This method is called to force authentication if the user was not already 
-   * authenticated. If the user is not authenticated, halt by redirecting to 
-   * the CAS server.
-   */
-  function forceAuthentication()
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-        phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      
-      $auth = $PHPCAS_CLIENT->forceAuthentication();
-
-      // store where the authentication has been checked and the result
-      $dbg = phpCAS::backtrace();
-      $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE,
-                                     'file' => $dbg[0]['file'],
-                                     'line' => $dbg[0]['line'],
-                                     'method' => __CLASS__.'::'.__FUNCTION__,
-                                     'result' => $auth );
-
-      if ( !$auth ) {
-        phpCAS::trace('user is not authenticated, redirecting to the CAS server');
-        $PHPCAS_CLIENT->forceAuthentication();
-      } else {
-        phpCAS::trace('no need to authenticate (user `'.phpCAS::getUser().'\' is already authenticated)');
-      }
-
-      phpCAS::traceEnd();
-    }
-  
-  /**
-   * This method has been left from version 0.4.1 for compatibility reasons.
-   */
-  function authenticate()
-    {
-      phpCAS::error('this method is deprecated. You should use '.__CLASS__.'::forceAuthentication() instead');
-    }
-  
-  /**
-   * This method has been left from version 0.4.19 for compatibility reasons.
-   */
-  function isAuthenticated()
-    {
-      phpCAS::error('this method is deprecated. You should use '.__CLASS__.'::forceAuthentication() instead');
-    }
-  
-  /**
-   * This method returns the CAS user's login name.
-   * @warning should not be called only after phpCAS::forceAuthentication()
-   * or phpCAS::checkAuthentication().
-   *
-   * @return the login name of the authenticated user
-   */
-  function getUser()
-    {
-      global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()');
-      }
-      if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) {
-       phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE');
-      }
-      return $PHPCAS_CLIENT->getUser();
-    }
-
-  /**
-   * This method returns the URL to be used to login.
-   * or phpCAS::isAuthenticated().
-   *
-   * @return the login name of the authenticated user
-   */
-  function getServerLoginURL()
-    {
-      global $PHPCAS_CLIENT;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      return $PHPCAS_CLIENT->getServerLoginURL();
-    }
-
-  /**
-   * This method returns the URL to be used to login.
-   * or phpCAS::isAuthenticated().
-   *
-   * @return the login name of the authenticated user
-   */
-  function getServerLogoutURL()
-    {
-      global $PHPCAS_CLIENT;
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()');
-      }
-      return $PHPCAS_CLIENT->getServerLogoutURL();
-    }
-
-  /**
-   * This method is used to logout from CAS. Halts by redirecting to the CAS server.
-   * @param $url a URL that will be transmitted to the CAS server (to come back to when logged out)
-   */
-  function logout($url = "")
-    {
-      global $PHPCAS_CLIENT;
-
-      phpCAS::traceBegin();
-      if ( !is_object($PHPCAS_CLIENT) ) {
-       phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()');
-      }
-      $PHPCAS_CLIENT->logout($url);
-      // never reached
-      phpCAS::traceEnd();
-    }
-
-  /**
-   * Set the fixed URL that will be used by the CAS server to transmit the PGT.
-   * When this method is not called, a phpCAS script uses its own URL for the callback.
-   *
-   * @param $url the URL
-   */
-  function setFixedCallbackURL($url='')
-   {
-     global $PHPCAS_CLIENT;
-     phpCAS::traceBegin();
-     if ( !is_object($PHPCAS_CLIENT) ) {
-        phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-     }
-     if ( !$PHPCAS_CLIENT->isProxy() ) {
-        phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-     }
-     if ( gettype($url) != 'string' ) {
-        phpCAS::error('type mismatched for parameter $url (should be `string\')');
-     }
-     $PHPCAS_CLIENT->setCallbackURL($url);
-     phpCAS::traceEnd();
-   }
-   
-  /**
-   * Set the fixed URL that will be set as the CAS service parameter. When this
-   * method is not called, a phpCAS script uses its own URL.
-   *
-   * @param $url the URL
-   */
-   function setFixedServiceURL($url)
-   {
-     global $PHPCAS_CLIENT;
-     phpCAS::traceBegin();
-     if ( !is_object($PHPCAS_CLIENT) ) {
-         phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-     }  
-     if ( gettype($url) != 'string' ) {
-        phpCAS::error('type mismatched for parameter $url (should be `string\')');
-     }
-     $PHPCAS_CLIENT->setURL($url);
-     phpCAS::traceEnd();
-   }
-
-  /**
-   * Get the URL that is set as the CAS service parameter.
-   */
-   function getServiceURL()
-   {
-     global $PHPCAS_CLIENT;
-     if ( !is_object($PHPCAS_CLIENT) ) {
-        phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-     }  
-     return($PHPCAS_CLIENT->getURL());
-   }
-
-  /**
-   * Retrieve a Proxy Ticket from the CAS server.
-   */
-   function retrievePT($target_service,&$err_code,&$err_msg)
-   {
-     global $PHPCAS_CLIENT;
-     if ( !is_object($PHPCAS_CLIENT) ) {
-        phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()');
-     }  
-     if ( gettype($target_service) != 'string' ) {
-        phpCAS::error('type mismatched for parameter $target_service(should be `string\')');
-     }
-     return($PHPCAS_CLIENT->retrievePT($target_service,$err_code,$err_msg));
-   }
-  /** @} */
-
-}
-
-// ########################################################################
-// DOCUMENTATION
-// ########################################################################
-
-// ########################################################################
-//  MAIN PAGE
-
-/**
- * @mainpage
- *
- * The following pages only show the source documentation.
- *
- * For more information on phpCAS, please refer to http://esup-phpcas.sourceforge.net
- *
- */
-
-// ########################################################################
-//  MODULES DEFINITION
-
-/** @defgroup public User interface */
-
-/** @defgroup publicInit Initialization
- *  @ingroup public */
-
-/** @defgroup publicAuth Authentication
- *  @ingroup public */
-
-/** @defgroup publicServices Access to external services
- *  @ingroup public */
-
-/** @defgroup publicConfig Configuration
- *  @ingroup public */
-
-/** @defgroup publicLang Internationalization
- *  @ingroup publicConfig */
-
-/** @defgroup publicOutput HTML output
- *  @ingroup publicConfig */
-
-/** @defgroup publicPGTStorage PGT storage
- *  @ingroup publicConfig */
-
-/** @defgroup publicDebug Debugging
- *  @ingroup public */
-
-
-/** @defgroup internal Implementation */
-
-/** @defgroup internalAuthentication Authentication
- *  @ingroup internal */
-
-/** @defgroup internalBasic CAS Basic client features (CAS 1.0, Service Tickets)
- *  @ingroup internal */
-
-/** @defgroup internalProxy CAS Proxy features (CAS 2.0, Proxy Granting Tickets)
- *  @ingroup internal */
-
-/** @defgroup internalPGTStorage PGT storage
- *  @ingroup internalProxy */
-
-/** @defgroup internalPGTStorageDB PGT storage in a database
- *  @ingroup internalPGTStorage */
-
-/** @defgroup internalPGTStorageFile PGT storage on the filesystem
- *  @ingroup internalPGTStorage */
-
-/** @defgroup internalCallback Callback from the CAS server
- *  @ingroup internalProxy */
-
-/** @defgroup internalProxied CAS proxied client features (CAS 2.0, Proxy Tickets)
- *  @ingroup internal */
-
-/** @defgroup internalConfig Configuration
- *  @ingroup internal */
-
-/** @defgroup internalOutput HTML output
- *  @ingroup internalConfig */
-
-/** @defgroup internalLang Internationalization
- *  @ingroup internalConfig
- *
- * To add a new language:
- * - 1. define a new constant PHPCAS_LANG_XXXXXX in CAS/CAS.php
- * - 2. copy any file from CAS/languages to CAS/languages/XXXXXX.php
- * - 3. Make the translations
- */
-
-/** @defgroup internalDebug Debugging
- *  @ingroup internal */
-
-/** @defgroup internalMisc Miscellaneous
- *  @ingroup internal */
-
-// ########################################################################
-//  EXAMPLES
-
-/**
- * @example example_simple.php
- */
-/**
- * @example example_proxy.php
- */
-/**
- * @example example_proxy2.php
- */
-/**
- * @example example_lang.php
- */
-/**
- * @example example_html.php
- */
-/**
- * @example example_file.php
- */
-/**
- * @example example_db.php
- */
-/**
- * @example example_service.php
- */
-/**
- * @example example_session_proxy.php
- */
-/**
- * @example example_session_service.php
- */
-/**
- * @example example_gateway.php
- */
-
-
-
-?>
diff --git a/lib/cas/PGTStorage/pgt-db.php b/lib/cas/PGTStorage/pgt-db.php
deleted file mode 100644 (file)
index 1477570..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-
-/**
- * @file CAS/PGTStorage/pgt-db.php
- * Basic class for PGT database storage
- */
-
-// include phpDB library (the test was introduced in release 0.4.8 for 
-// the integration into Tikiwiki).
-if (!class_exists('DB')) {
-  include_once('DB.php');
-}
-
-/**
- * @class PGTStorageDB
- * The PGTStorageDB class is a class for PGT database storage. An instance of 
- * this class is returned by CASClient::SetPGTStorageDB().
- *
- * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
- *
- * @ingroup internalPGTStorageDB
- */
-
-class PGTStorageDB extends PGTStorage
-{
-  /** 
-   * @addtogroup internalPGTStorageDB
-   * @{ 
-   */
-
-  /**
-   * a string representing a PEAR DB URL to connect to the database. Written by
-   * PGTStorageDB::PGTStorageDB(), read by getURL().
-   *
-   * @hideinitializer
-   * @private
-   */
-  var $_url='';
-
-  /**
-   * This method returns the PEAR DB URL to use to connect to the database.
-   *
-   * @return a PEAR DB URL
-   *
-   * @private
-   */
-  function getURL()
-    {
-      return $this->_url;
-    }
-
-  /**
-   * The handle of the connection to the database where PGT's are stored. Written by
-   * PGTStorageDB::init(), read by getLink().
-   *
-   * @hideinitializer
-   * @private
-   */
-  var $_link = null;
-
-  /**
-   * This method returns the handle of the connection to the database where PGT's are 
-   * stored.
-   *
-   * @return a handle of connection.
-   *
-   * @private
-   */
-  function getLink()
-    {
-      return $this->_link;
-    }
-
-  /**
-   * The name of the table where PGT's are stored. Written by 
-   * PGTStorageDB::PGTStorageDB(), read by getTable().
-   *
-   * @hideinitializer
-   * @private
-   */
-  var $_table = '';
-
-  /**
-   * This method returns the name of the table where PGT's are stored.
-   *
-   * @return the name of a table.
-   *
-   * @private
-   */
-  function getTable()
-    {