Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Activity Locking: Difference between revisions

From MoodleDocs
Line 268: Line 268:
==Tips and FAQs==
==Tips and FAQs==
*Upgrading either Moodle or AL and things don't work?  A common forum suggestion is to reinstall AL with the proper version that is designed for the Moodle version.
*Upgrading either Moodle or AL and things don't work?  A common forum suggestion is to reinstall AL with the proper version that is designed for the Moodle version.
*If you test AL with Moodle "logging as" feature (like subuser), than AL can't work correctly. Log really as a real student to test it correctly.


=See Also=
=See Also=

Revision as of 09:41, 22 March 2007

Activity Locking is an external module which sets up conditions that a student must reach before they can start(unlock) a Moodle activity. These criterion generally include time spent, score or completed. The conditions can be applied to more than one activity or resource for a each lock.


Overview

This page is an attempt to consolidate and explain the available activity locking (AL) code that is present for Moodle 1.5 to 1.7. This page will hopefully help explain all the available versions and their respective features. Some of the reference here will overlap with the existing MoodleDoc page covering Conditional activities.

Types of activity locking code

For the purpose of this MoodleDoc article: AL is any code that allows the user to make decisions on the next available resource or item the student will be able to use based on student events or quiz performance. There is some activity locking code that is very quick and dirty to simply lock future activities and then there is much more complex code based on the conditional activity though structure which attempts to progress the student through the course in a thought out progression based on activities and performance. Again we hope to clarify some of this here.

AL Branch 0.1 (Bernard Boucher)

Bernard started all this with a hack to lock quiz and resources in october 2003. The certificate based on a quiz score was added in september 2004 with version 0.7. It was a great start!

AL Branch 2.0 for Moodle 1.6 (Stuart Mayor)

  • This has been virtually a complete rewrite and as such there are areas of functionality the were available in older versions of AL that are not in this.
  • Conditional locking: Lock based on a user's performance in previous activities. You can also choose to unlock and activity if a user scores less than a certain grade.
  • Show activity completion: The checkbox that appears before each activity to show it have been done.
  • A variation on this also hides future activities, see AL Branch 2.2 for Moodle 1.6 (John Gschnaidner-Chardelle Busch) below.
  • Bernard Boucher reworked Stuart's version for Moolde 1.6, initially on June 20, 2006 and updated on July 10, 2006 posted Activity Locking V 2.0 for Moodle 1.6 on Activity Locking v3 or v2 for testing only.
  • Downloaded the ..1.6_July10006.zip and installed it on a clean 1.6.3 localhost Windows XP machine. The language file did not have all the required fields. Spent time editing the lock.php file (not good at it) adding lines. But it worked. --Chris collman 16:42, 20 October 2006 (CDT)

Installation for 2.1 for Moodle 1.6(Stuart Mayor)

activitylocking20051201.zip the initial version

  • Firstly, you need the stable build of Moodle 1.6. This version of AL might work on earlier releases but I didn't write it with them in mind and I certainly can't support them.

Next, you need to modify one table in the database and add a new one (I use phpmyadmin for this).

  • I downloaded a copy of the above zip ..20051201. Had to move the lang file from en to en_ut8f . Worked on my 1.6.3 localhost test course. --Chris collman 16:37, 20 October 2006 (CDT)

Details of install

  • The table you need to modify is mdl_course_modules and you need to add the following fields:

completedbox TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' completedscore VARCHAR(255) NOT NULL completedstyle VARCHAR(255) NOT NULL lockedbox TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' lockedstyle VARCHAR(255) NOT NULL DEFAULT 'locked' lockedvisible TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' delay INT(10) UNSIGNED NOT NULL DEFAULT '0'

  • The table you need to create is as follows:

CREATE TABLE `mdl_course_locks` ( `id` int(10) unsigned NOT NULL auto_increment, `courseid` int(10) unsigned NOT NULL default '0', `locktype` varchar(10) NOT NULL default , `targetid` int(10) unsigned NOT NULL default '0', `locks` longtext NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains locks for sections and modules';

  • Lastly, you need to copy the following files from the zip file:

lib/moodlelib.php to moodle/lib/moodlelib.php lib/locklib.php to moodle/lib/locklib.php course/lib.php to moodle/course/lib.php course/lock.php to moodle/course/lock.php course/mod.php to moodle/course/mod.php course/settings.html to moodle/course/settings.html pix/t/open.gif to moodle/pix/t/open.gif pix/t/closed.gif to moodle/pix/t/closed.gif lang/en/lock.php to moodle/lang/en/lock.php


AL Branch 2.2 for Moodle 1.6 (John Gschnaidner-Chardelle Busch and others)

John's versionincludes the settings tab--making it possible to set the hide/visible options, as well as the completion (a checkmark in front of a resource/activity) options, says Chardelle.

  • A variation on Stuart Mayor's 2.1, it hides topics dependent upon conditions set on specific activities/resources ALV2_1_debug.ZIP (John). Had bug which Benard tweaked out.
  • A build of Stuarts Mayor's 2.1 it locks and/or hides specific activities depending upon conditions set on specific activities/resources. Was posted by Chardelle in ActivityLockingWithHide-1.6.zip. Probably same as above. Had bug which Benard tweaked out.
  • A tweak by Bernard Boucher on June 27, 2006 was posted moodle/lib/locklib.php file and called locklib.zip seems to fix known bug in both the above downloads.

AL Branch 2.4 for Moodle 1.6 (John Gschnaidner)

Further development of the 2.2 as a hack (no installation function).

WARNING:

Because of some changes, this version may not be completely compatible to previous versions!

Status:

Released, but you still should try it before implementing it on a production server.

In this version:

  • Supports module and section locks
  • Parallel locking and completing modules and sections
  • CSS style and checkbox for locking and completing
  • Hide when locked
  • Language support and help
  • Readme for features and installation
  • SQL commands for DB update
  • Info on how to update the CSS style sheets

FYI: Did a download on a clean complete package install of 1.6.3 localhost Windows XP. Seemed to work. No editing neeed on lang/lock.php. After unpacking file (see table below) and droping into moodle folder, went to database and imported the MySQL script found in moodle/course/MySQL.sql . --Chris collman 16:32, 20 October 2006 (CDT)

AL Branch 3.s for Moodle 1.6 (Stuart Mayor)

Similar to the 2.x versions. Major difference is that a question to the student unlocks activities. Being actively developed and tested.

AL Branch 3.1 for Moodle 1.7 (Bernard Boucher & Stuart Mayor)

Bernard has updated AL for 1.7 and it is being tested--Chris collman 07:18, 12 March 2007 (CDT)

CA Branch 1.0 for Moodle 1.5.2 (Borja Rubio Reyes)

Details and discussed in the thread "NEW research on CONDITIONAL ACTIVITIES in Moodle"

Score Lock for Moodle 1.6x (John Gschnaidner)

As announced, this is a ongoing development for Activity Locking v2.4, with a couple of new features. For further information please refer to

"moodle Docs: Score Lock"

Score Lock is scheduled for beta release until middle of September 2006.

Table of Versions

Activity Locking updates
-Version- Moodle version Who Status MySql Install Docs Download Teacher Interface Hide Option Completion Box Option Section Lock Quiz Question Comments Feature Bug
AL 3.0 1.5.2 Stuart Mayor not finished [1] [2] Yes
AL 2.4 1.6 John Gschnaidner released manual [3] [4] Tabs Yes Yes Yes Yes looks good [5]
AL 2.3 1.6 Stuart Mayor Testing [6] [7] Yes
AL 2.2 1.6 Gschnaidner, Mayor, Busch Testing [8] [9] Tabs Yes almost
AL 2.0 1.7.1 Stuart Mayor, Bernard Boucher Updated Automatic [10] [11] Padlock Icons Yes Yes Yes No see above
AL 2.0 1.7 Stuart Mayor, Chris Throup Updated Automatic [12] [13] Padlock Icons Yes Yes Yes No see above
AL 2.0 1.6 Stuart Mayor, Bernard Boucher Updated Automatic [14] [15] Padlock Icons Yes Yes Yes No see above
C A 1.0 1.5.2 Borja Rubio Reyes, David Delgado [16] Yes

General installation instructions DRAFT

Installing AL on a localhost (desktop) machine was not difficult! Some months ago I must have downloaded and connected phpAdministration and that came in handy for step 6. I just did a conversion and it took me less than 30 minutes (actually I think the AL part was done in 3 minutes ) because I wanted to install the latest version of Moodle 1.6 and then zipped my entire Moodle16 file structure before I attempted the AL installation.

  • 1. Perform any backups you think are necessary (I zipped everything in my localhost path).
  • 2. Select the zip file flavor of AL you want and download it (I used Chardelle's zip plus Bernards tweak found in 2.2 above)
  • 3. Unzip it to a non Moodle place. (Like to keep the folder structures option)
  • 4. Locate the MySQL.sql file so you can find it again.
  • 5. In Moodle as admin, go to Administration, Configuration and turn on Maintence Mode.
  • 6. Go to Administration, Database. In the home query window, on the left, click on moodle (mine says Moodle16 and has a bunch of mdl_ listings under it).
  • 7. Best: Click on the SQL tab. In the location of the text file, browse to the file in #4, then click go.
  • 7. Alternative: use the MySQL document and make or changes in
  • 8. Leave Moodle, shut that browser window.
  • 9. Now you need to move the files in the folders located in #3 to your Moodle file structure. (See my tip below). In your non moodle area you have unpack the file to a folder called ActivityLockingWithHide. It has a folder called Moodle in it, with sub folders under it, for example ActivityLockingWithHide\Moodle\Course. You should copy ever file from there to your local host file structure in the same spot. (Mine is Moodle16\Moodle\Course ).
  • 10. Go back into Moodle, log in as Admin, go to Administration. Moodle will adjust itself.
  • 11 Check in Administration, Configuration, Maintence to make sure it is disabled.
  • 12. You are done, check out a lesson with weeks or topics, go to lesson settings and notice the new tabs.
  • TIP? There is probably a slicker way but after I unzipped the file in #3, I went down a level and zipped the Moodle folder. Then I unpacked the files to Moodle16\, told the unzip program to keep the folder structure and overwrite existing files.

Tips and FAQs

  • Upgrading either Moodle or AL and things don't work? A common forum suggestion is to reinstall AL with the proper version that is designed for the Moodle version.

See Also

  • Adding_activity_locks will give the reader an idea of what one of the flavors of Activity Locking looks like for a student and teacher setting it up.

Please visit the Moodle Forum for more information concerning Activity Locking and Conditional Activities-

There is a very specialized-limited type of activity locking under a lesson (activity) setting called dependency in 1.6. See: *https://docs.moodle.org/en/Adding/editing_a_lesson#Dependent_on .