Customizations in Moodle 12

Download moodle 1.9.12

head version.php
    $version = 2007101591.03; // YYYYMMDD      = date of the 1.9 branch (don't change)
    $release = '1.9.12 (Build: 20110510)';     // Human-friendly version name

PHP Change

php.ini

expose_php = Off
memory_limit = 1024M (from 32M)
error_reporting = E_ALL & ~(E_NOTICE|E_DEPRECATED|E_STRICT)
register_long_arrays = On (This is deprecated, but one of the modules need it.)
post_max_size = 100M (from 8M)
upload_max_filesize = 100M

apc

Install php-pecl-apc.

Moodle

  • Check Use database for session information (dbsessions)

CAS

#1.9,2.0
#Files:
auth/cas/CAS/client.php
auth/cas/CAS/CAS.php
auth/cas/auth.php
auth/cas/config.html
auth/cas/cas_form.html

Course Menu

#1.9, 2.0
#Get course menu source http://moodle.org/mod/data/view.php?d=13&rid=926
#Unzip, and move course_menu to /blocks
#Log in as admin, and go to notification area. This will make the database change.
#You should see this screen.
course_menu
(mysql): CREATE TABLE `mdl_block_course_menu` ( `id` bigint(10) unsigned NOT NULL auto_increment, `name` varchar(40) collate utf8_unicode_ci NOT NULL default '', `version` bigint(10) unsigned NOT NULL default '0', `cron` bigint(10) unsigned NOT NULL default '0', `lastcron` bigint(10) unsigned NOT NULL default '0', `visible` tinyint(1) NOT NULL default '1', `multiple` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='to store installed blocks'  
Success
Course Menu tables have been set up correctly

There are local modifications:

#In the tree, chapter title should not be truncated( ending with ...). Show full title.
#In the tree, each section should open the page, with only the relevant section open and others folded.
#If a section is "hidden" by the instructor, it should not show in the tree.
#If a node is "hidden", the tree highlights the wrong (the next) node. See Yolanda's description here [[Course Menu: Wrong Node Highlighted ]].

HTML block

#version independent
#An HTML block titled "Moodle Help Desk" should be added as a sticky block on MyMoodle pages. The text is here:
[[html block text]].

Questionnaire

#1.9, 2.0
#download url: http://moodle.org/mod/data/view.php?d=13&rid=84
#unzip under mod
#go to admin, have installed.

CREATE TABLE mdl_questionnaire ( id BIGINT(10) unsigned NOT NULL auto_increment, course BIGINT(11) unsigned NOT NULL DEFAULT 0, name VARCHAR(255) NOT NULL DEFAULT '', summary TEXT NOT NULL, qtype BIGINT(10) NOT NULL DEFAULT 0, respondenttype enum('fullname', 'anonymous') NOT NULL DEFAULT 'fullname', resp_eligible enum('all', 'students', 'teachers') NOT NULL DEFAULT 'all', resp_view TINYINT(2) unsigned NOT NULL DEFAULT 0, opendate BIGINT(10) unsigned NOT NULL DEFAULT 0, closedate BIGINT(10) unsigned NOT NULL DEFAULT 0, resume TINYINT(2) unsigned NOT NULL DEFAULT 0, navigate TINYINT(2) unsigned NOT NULL DEFAULT 0, grade BIGINT(10) NOT NULL DEFAULT 0, sid BIGINT(11) unsigned NOT NULL DEFAULT 0, timemodified BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire COMMENT='Main questionnaire table.'  
CREATE INDEX mdl_ques_sid_ix ON mdl_questionnaire (sid)  
CREATE TABLE mdl_questionnaire_survey ( id BIGINT(10) unsigned NOT NULL auto_increment, name VARCHAR(64) NOT NULL DEFAULT '', owner VARCHAR(16) NOT NULL DEFAULT '', realm VARCHAR(64) NOT NULL DEFAULT '', status BIGINT(10) unsigned NOT NULL DEFAULT 0, title VARCHAR(255) NOT NULL DEFAULT '', email VARCHAR(255) DEFAULT NULL, subtitle TEXT, info TEXT, theme VARCHAR(64) DEFAULT NULL, thanks_page VARCHAR(255) DEFAULT NULL, thank_head VARCHAR(255) DEFAULT NULL, thank_body TEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_survey COMMENT='questionnaire_survey table retrofitted from MySQL'  
CREATE INDEX mdl_quessurv_nam_ix ON mdl_questionnaire_survey (name)  
CREATE INDEX mdl_quessurv_own_ix ON mdl_questionnaire_survey (owner)  
CREATE TABLE mdl_questionnaire_attempts ( id BIGINT(11) unsigned NOT NULL auto_increment, qid BIGINT(11) unsigned NOT NULL DEFAULT 0, userid BIGINT(11) unsigned NOT NULL DEFAULT 0, rid BIGINT(10) unsigned NOT NULL DEFAULT 0, timemodified BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_attempts COMMENT='questionnaire_attempts table retrofitted from MySQL'  
CREATE TABLE mdl_questionnaire_question ( id BIGINT(10) unsigned NOT NULL auto_increment, survey_id BIGINT(10) unsigned NOT NULL DEFAULT 0, name VARCHAR(30) DEFAULT NULL, type_id BIGINT(10) unsigned NOT NULL DEFAULT 0, result_id BIGINT(10) unsigned DEFAULT NULL, length BIGINT(11) unsigned NOT NULL DEFAULT 0, precise BIGINT(11) unsigned NOT NULL DEFAULT 0, position BIGINT(10) unsigned NOT NULL DEFAULT 0, content TEXT NOT NULL, required enum('y', 'n') NOT NULL DEFAULT 'n', deleted enum('y', 'n') NOT NULL DEFAULT 'n', CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_question COMMENT='questionnaire_question table retrofitted from MySQL'  
CREATE TABLE mdl_questionnaire_quest_choice ( id BIGINT(10) unsigned NOT NULL auto_increment, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, content TEXT NOT NULL, value TEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_quest_choice COMMENT='questionnaire_quest_choice table retrofitted from MySQL'  
CREATE TABLE mdl_questionnaire_question_type ( id BIGINT(10) unsigned NOT NULL auto_increment, typeid BIGINT(10) unsigned NOT NULL DEFAULT 0, type VARCHAR(32) NOT NULL DEFAULT '', has_choices enum('y', 'n') NOT NULL DEFAULT 'y', response_table VARCHAR(32) DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_question_type COMMENT='questionnaire_question_type table retrofitted from MySQL'  
CREATE UNIQUE INDEX mdl_quesquestype_typ_uix ON mdl_questionnaire_question_type (typeid)  
CREATE TABLE mdl_questionnaire_response ( id BIGINT(10) unsigned NOT NULL auto_increment, survey_id BIGINT(10) unsigned NOT NULL DEFAULT 0, submitted BIGINT(10) unsigned NOT NULL DEFAULT 0, complete enum('y', 'n') NOT NULL DEFAULT 'n', grade BIGINT(10) NOT NULL DEFAULT 0, username VARCHAR(64) DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response COMMENT='questionnaire_response table retrofitted from MySQL'  
CREATE TABLE mdl_questionnaire_response_bool ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, choice_id enum('y', 'n') NOT NULL DEFAULT 'y', CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response_bool COMMENT='questionnaire_response_bool table retrofitted from MySQL'  
CREATE INDEX mdl_quesrespbool_resque_ix ON mdl_questionnaire_response_bool (response_id, question_id)  
CREATE TABLE mdl_questionnaire_response_date ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, response TEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response_date COMMENT='questionnaire_response_date table retrofitted from MySQL'  
CREATE INDEX mdl_quesrespdate_resque_ix ON mdl_questionnaire_response_date (response_id, question_id)  
CREATE TABLE mdl_questionnaire_resp_multiple ( id BIGINT(10) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, choice_id BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_resp_multiple COMMENT='questionnaire_resp_multiple table retrofitted from MySQL'  
CREATE INDEX mdl_quesrespmult_resquecho_ix ON mdl_questionnaire_resp_multiple (response_id, question_id, choice_id)  
CREATE TABLE mdl_questionnaire_response_other ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, choice_id BIGINT(10) unsigned NOT NULL DEFAULT 0, response TEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response_other COMMENT='questionnaire_response_other table retrofitted from MySQL'  
CREATE INDEX mdl_quesrespothe_resquecho_ix ON mdl_questionnaire_response_other (response_id, question_id, choice_id)  
CREATE TABLE mdl_questionnaire_response_rank ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, choice_id BIGINT(10) unsigned NOT NULL DEFAULT 0, rank BIGINT(11) NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response_rank COMMENT='questionnaire_response_rank table retrofitted from MySQL'  
CREATE INDEX mdl_quesresprank_resquecho_ix ON mdl_questionnaire_response_rank (response_id, question_id, choice_id)  
CREATE TABLE mdl_questionnaire_resp_single ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, choice_id BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_resp_single COMMENT='questionnaire_resp_single table retrofitted from MySQL'  
CREATE INDEX mdl_quesrespsing_resque_ix ON mdl_questionnaire_resp_single (response_id, question_id)  
CREATE TABLE mdl_questionnaire_response_text ( id BIGINT(11) unsigned NOT NULL auto_increment, response_id BIGINT(10) unsigned NOT NULL DEFAULT 0, question_id BIGINT(10) unsigned NOT NULL DEFAULT 0, response TEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_questionnaire_response_text COMMENT='questionnaire_response_text table retrofitted from MySQL'  
CREATE INDEX mdl_quesresptext_resque_ix ON mdl_questionnaire_response_text (response_id, question_id)  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('1', 'Yes/No', 'n', 'response_bool')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('2', 'Text Box', 'n', 'response_text')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('3', 'Essay Box', 'n', 'response_text')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('4', 'Radio Buttons', 'y', 'resp_single')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('5', 'Check Boxes', 'y', 'resp_multiple')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('6', 'Dropdown Box', 'y', 'resp_single')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('8', 'Rate (scale 1..5)', 'y', 'response_rank')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('9', 'Date', 'n', 'response_date')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('10', 'Numeric', 'n', 'response_text')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('99', 'Page Break', 'n', '')  
INSERT INTO mdl_questionnaire_question_type(typeid, type, has_choices, response_table) VALUES ('100', 'Section Text', 'n', '')   

Side_bar

#Version independent
#This requires Questionnaire module installed.
#download url: http://moodle.org/mod/data/view.php?d=13&rid=270
#Unzip under /blocks
#go to admin url, have it installed.

check list of activities

#In admin > modules > activities > manage activities, turn on journal, questionnaire and workshop.

Forum Post Approval

#Only for 1.9
#http://moodle.org/mod/data/view.php?d=13&rid=2296
#The patch comes in one text file, forum_post_approval.patch.
#All we need is apply the patch. After the patch, go to any page related with forum. Patch will be applied. (It modifies database.)

[[Advanced Setting problem]]
administration -> miscellaneous -> experimental -> enable groupings 

should be checked.

mod/forum/patch_forum_approveposts.txt

Files modified by forum_post_approval_patch. (grep '\-\-\-' )

mod/forum/post.php
mod/forum/rate_ajax.js
mod/forum/rate.php
mod/forum/lib.php
mod/forum/rate_ajax.php
mod/forum/mod_form.php
lang/en_utf8/forum.php
lang/en_utf8/error.php
mod/forum/db/access.php
In moodle 1.9.12, the patch fails partially with the lang/en_utf8/forum.php, since the wording has changed from what the patch is expecting. We have to manually add/replace these lines.
  $string['forum:approvepost'] = 'Approve posts';
  $string['forumbodyhidden'] = 'This post cannot be viewed by you, probably because it has not yet   been approved or you have not posted in the discussion.';

Respondusws

Requester: R Capraro / Yolanda

http://www.respondus.com/download/moodleserver.shtml

http://www.respondus.com/downloads/Moodle-respondusws-v104.zip

This file expands to respondusws, and goes under mod.

The whole directory is maintained by Respondus, so we'll not add our svn id.

Files:
mod/respondusws

CREATE TABLE mdl_respondusws ( id BIGINT(10) unsigned NOT NULL auto_increment, course BIGINT(10) unsigned NOT NULL DEFAULT 0, name VARCHAR(255) NOT NULL DEFAULT '', intro MEDIUMTEXT, introformat SMALLINT(4) unsigned NOT NULL DEFAULT 0, timecreated BIGINT(10) unsigned NOT NULL DEFAULT 0, timemodified BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
Success
ALTER TABLE mdl_respondusws COMMENT='respondusws module instance data'  
Success
CREATE INDEX mdl_resp_cou_ix ON mdl_respondusws (course)  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'add', 'respondusws', 'name')  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'update', 'respondusws', 'name')  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'view', 'respondusws', 'name')  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'view all', 'respondusws', 'name')  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'publish', 'respondusws', 'name')  
Success
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('respondusws', 'retrieve', 'respondusws', 'name')  
Success

Certificate

Add Certificate module.

http://docs.moodle.org/en/Certificate_module

http://moodle.org/mod/data/view.php?d=13&rid=683

1.9 only. (2.0 is not mentioned in download.)
Files:
mod/certificate

Quiz Overview With IP

Files:
mod/quiz/report/overviewwithip
lang/en_utf8/quiz_overviewwithip.php

This is a local modification by Arlen, of mod/quiz/report/overview. The mod was made on 1.9.8, and there is some difference between 1.9.8's report.php and 1.9.12's report.php.

Trackpad

  1. http://moodle.org/mod/data/view.php?d=13&rid=2867
  2. version 1.9 only (2.0 is not mentioned.)
  3. Download link on the module page does not work. This is the new one. http://mintranet.com.au/creativity-software
  4. So this module might actually work with moodle 2.0.
  5. Download link: http://mintranet.com.au/images/stories/files/trackpad_beta.zip
  6. Unzip under /mod
  7. Go to notification, and have database installed.
CREATE TABLE mdl_trackpad ( id BIGINT(10) unsigned NOT NULL auto_increment, course BIGINT(10) unsigned NOT NULL DEFAULT 0, name VARCHAR(255) NOT NULL DEFAULT '', type VARCHAR(10) NOT NULL DEFAULT '', target LONGTEXT, targettype VARCHAR(10) NOT NULL DEFAULT '', duedate BIGINT(10) unsigned DEFAULT NULL, notes LONGTEXT, public VARCHAR(10) NOT NULL DEFAULT '', showblocks TINYINT(1) unsigned NOT NULL DEFAULT 0, permissions VARCHAR(10) DEFAULT NULL, presets LONGTEXT, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad COMMENT='trackpad table retrofitted from MySQL'  
CREATE INDEX mdl_trac_cou_ix ON mdl_trackpad (course)  
CREATE TABLE mdl_trackpad_page ( id BIGINT(10) unsigned NOT NULL auto_increment, trackpadid BIGINT(10) unsigned NOT NULL, ownerid BIGINT(10) unsigned NOT NULL, name VARCHAR(255) DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, duedate BIGINT(10) unsigned DEFAULT NULL, public TINYINT(1) unsigned NOT NULL, type VARCHAR(10) NOT NULL DEFAULT '', exploreid BIGINT(10) unsigned DEFAULT NULL, parent BIGINT(10) unsigned DEFAULT NULL, groupid BIGINT(10) unsigned DEFAULT 0, created BIGINT(10) unsigned DEFAULT 0, titlecolor VARCHAR(6) DEFAULT '999999', CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_page COMMENT='trackpad_page table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_page_history ( id BIGINT(10) unsigned NOT NULL auto_increment, pageid BIGINT(10) unsigned NOT NULL, timestamp BIGINT(10) unsigned NOT NULL, userid BIGINT(10) unsigned NOT NULL, target LONGTEXT, duedate BIGINT(10) unsigned DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_page_history COMMENT='trackpad_page_history table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_pagemember ( id BIGINT(10) unsigned NOT NULL auto_increment, userid BIGINT(10) unsigned NOT NULL, pageid BIGINT(10) unsigned NOT NULL, captain TINYINT(1) unsigned NOT NULL DEFAULT 0, primarypage BIGINT(10) unsigned DEFAULT NULL, invite TINYINT(1) unsigned DEFAULT 0, invitedby BIGINT(10) unsigned DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_pagemember COMMENT='trackpad_pagemember table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_todo ( id BIGINT(10) unsigned NOT NULL auto_increment, pageid BIGINT(10) unsigned NOT NULL, createdby BIGINT(10) unsigned NOT NULL, assignedto BIGINT(10) unsigned NOT NULL, dateentered BIGINT(10) unsigned NOT NULL, datefinished BIGINT(10) unsigned NOT NULL, finishedby BIGINT(10) unsigned NOT NULL, task VARCHAR(160) NOT NULL DEFAULT '', priority TINYINT(1) unsigned NOT NULL, todoorder BIGINT(10) unsigned DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_todo COMMENT='trackpad_todo table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_pageprimary ( id BIGINT(10) unsigned NOT NULL auto_increment, cmid BIGINT(10) unsigned DEFAULT NULL, userid BIGINT(10) unsigned DEFAULT NULL, pageid BIGINT(10) unsigned DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_pageprimary COMMENT='trackpad_pageprimary table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_follow ( id BIGINT(10) unsigned NOT NULL auto_increment, pageid BIGINT(10) unsigned NOT NULL, userid BIGINT(10) unsigned NOT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_follow COMMENT='trackpad_follow table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_explore ( id BIGINT(10) unsigned NOT NULL auto_increment, parentid BIGINT(10) unsigned NOT NULL, parenttype VARCHAR(20) NOT NULL DEFAULT '', typeid BIGINT(10) unsigned NOT NULL, type VARCHAR(20) NOT NULL DEFAULT '', pageid BIGINT(10) unsigned DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_trackpad_explore COMMENT='trackpad_explore table retrofitted from MySQL'  
CREATE TABLE mdl_trackpad_cron ( date BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (date) )  
ALTER TABLE mdl_trackpad_cron COMMENT='trackpad_cron table retrofitted from MySQL'  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'view', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'updatepage', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'addpage', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'addtask', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'updatetask', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'deletetask', 'trackpad', 'name')  
INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('trackpad', 'deletepage', 'trackpad', 'name')  

nanogong

For 1.9 only. (No 2.0)

http://gong.ust.hk/nanogong/moodle.html has download/installation instructions.

Install nanogong module

Unzip nanogong-4.1.zip under /mod to get /mod/nanogong. Go to notification to update database.

CREATE TABLE mdl_nanogong ( id BIGINT(10) unsigned NOT NULL auto_increment, name VARCHAR(255) NOT NULL DEFAULT '', course BIGINT(10) unsigned NOT NULL DEFAULT 0, message TEXT NOT NULL, color VARCHAR(7) DEFAULT NULL, maxduration SMALLINT(4) unsigned NOT NULL DEFAULT 300, maxmessages SMALLINT(4) unsigned NOT NULL DEFAULT 0, maxscore SMALLINT(4) unsigned NOT NULL DEFAULT 100, allowguestaccess TINYINT(1) unsigned NOT NULL DEFAULT 0, timecreated BIGINT(10) unsigned NOT NULL DEFAULT 0, timemodified BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_nanogong COMMENT='NanoGong table for an NanoGong activity'  
CREATE UNIQUE INDEX mdl_nano_id_uix ON mdl_nanogong (id)  
CREATE TABLE mdl_nanogong_message ( id BIGINT(10) unsigned NOT NULL auto_increment, nanogongid BIGINT(10) unsigned NOT NULL DEFAULT 0, userid BIGINT(10) unsigned NOT NULL DEFAULT 0, groupid BIGINT(10) unsigned NOT NULL DEFAULT 0, title VARCHAR(255) NOT NULL DEFAULT '', message TEXT NOT NULL, path TEXT NOT NULL, comments TEXT NOT NULL, commentedby BIGINT(10) unsigned DEFAULT NULL, score SMALLINT(4) unsigned NOT NULL DEFAULT 0, timestamp BIGINT(10) unsigned NOT NULL DEFAULT 0, timeedited BIGINT(10) unsigned DEFAULT NULL, locked TINYINT(1) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_nanogong_message COMMENT='NanoGong messages in each NanoGong activity'  
CREATE INDEX mdl_nanomess_nan_ix ON mdl_nanogong_message (nanogongid)  
CREATE INDEX mdl_nanomess_use_ix ON mdl_nanogong_message (userid)  
CREATE INDEX mdl_nanomess_gro_ix ON mdl_nanogong_message (groupid)  
CREATE UNIQUE INDEX mdl_nanomess_id_uix ON mdl_nanogong_message (id)   

Install nanogong filter

Unzip nanogong-filter-4.1.zip under /filter, to get /filter/nanogong.

Install nanogong htmlarea

Unzip nanogong-htmlarea-4.1-moodle-1.9.11plus.zip under /.

This will replace several core files.

lang/en_utf8/editor.php
lib/editor/htmlarea/dialog.js
lib/editor/htmlarea/htmlarea.php
lib/weblib.php

So make a backup first.
zip ~/moodleroot-before-nanogong.zip `cat ~/nanogong-htmlarea-11plus-file-list.txt`

This pages may be helpful.

Realtime Attendance

Attendance

Module page: http://moodle.org/mod/data/view.php?d=13&rid=1062

Download Link: http://download.moodle.org/packages19/attendance_package.zip

1.9 only (2.0 is not mentioned.)

Unzip under /, into blocks and mod folders.

Gives attendance table. All files are new (additions).

[[Attendance Module File list]]

CREATE TABLE mdl_attforblock ( id BIGINT(10) unsigned NOT NULL auto_increment, course BIGINT(10) unsigned NOT NULL DEFAULT 0, name VARCHAR(255) DEFAULT NULL, grade BIGINT(10) NOT NULL DEFAULT 100, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_attforblock COMMENT='Module for support Attendances'  
CREATE INDEX mdl_attf_cou_ix ON mdl_attforblock (course)  
CREATE TABLE mdl_attendance_sessions ( id BIGINT(10) unsigned NOT NULL auto_increment, courseid BIGINT(10) unsigned NOT NULL DEFAULT 0, sessdate BIGINT(10) unsigned NOT NULL DEFAULT 0, duration BIGINT(10) unsigned NOT NULL DEFAULT 0, lasttaken BIGINT(10) unsigned DEFAULT NULL, lasttakenby BIGINT(10) unsigned NOT NULL DEFAULT 0, timemodified BIGINT(10) unsigned DEFAULT NULL, description VARCHAR(100) NOT NULL DEFAULT '', CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_attendance_sessions COMMENT='attendance_sessions table retrofitted from MySQL'  
CREATE INDEX mdl_attesess_cou_ix ON mdl_attendance_sessions (courseid)  
CREATE INDEX mdl_attesess_ses_ix ON mdl_attendance_sessions (sessdate)  
CREATE TABLE mdl_attendance_log ( id BIGINT(10) unsigned NOT NULL auto_increment, sessionid BIGINT(10) unsigned NOT NULL DEFAULT 0, studentid BIGINT(10) unsigned NOT NULL DEFAULT 0, statusid BIGINT(10) unsigned NOT NULL DEFAULT 0, statusset VARCHAR(100) DEFAULT NULL, timetaken BIGINT(10) unsigned NOT NULL DEFAULT 0, takenby BIGINT(10) unsigned NOT NULL DEFAULT 0, remarks VARCHAR(255) DEFAULT NULL, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_attendance_log COMMENT='attendance_log table retrofitted from MySQL'  
CREATE INDEX mdl_attelog_ses_ix ON mdl_attendance_log (sessionid)  
CREATE INDEX mdl_attelog_stu_ix ON mdl_attendance_log (studentid)  
CREATE INDEX mdl_attelog_sta_ix ON mdl_attendance_log (statusid)  
CREATE TABLE mdl_attendance_statuses ( id BIGINT(10) unsigned NOT NULL auto_increment, courseid BIGINT(10) unsigned NOT NULL DEFAULT 0, acronym VARCHAR(2) NOT NULL DEFAULT '', description VARCHAR(30) NOT NULL DEFAULT '', grade SMALLINT(3) NOT NULL DEFAULT 0, visible TINYINT(1) unsigned NOT NULL DEFAULT 1, deleted TINYINT(1) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_attendance_statuses COMMENT='attendance_statuses table retrofitted from MySQL'  
CREATE INDEX mdl_attestat_cou_ix ON mdl_attendance_statuses (courseid)  
CREATE INDEX mdl_attestat_vis_ix ON mdl_attendance_statuses (visible)  
CREATE INDEX mdl_attestat_del_ix ON mdl_attendance_statuses (deleted)   

Realtime Quiz

1.7+. Not clear whether 2.0 is supported.

Module page: http://moodle.org/mod/data/view.php?d=13&rid=1036&filter=1

Download link: http://download.moodle.org/download.php/plugins/mod/realtimequiz.zip

Unzip under mod folder.

Gives realtime quiz.

CREATE TABLE mdl_realtimequiz ( id BIGINT(10) unsigned NOT NULL auto_increment, course BIGINT(10) unsigned NOT NULL DEFAULT 0, name VARCHAR(255) NOT NULL DEFAULT '', status SMALLINT(3) unsigned NOT NULL DEFAULT 0, currentquestion BIGINT(10) unsigned NOT NULL DEFAULT 0, nextendtime BIGINT(10) unsigned NOT NULL DEFAULT 0, currentsessionid BIGINT(10) unsigned NOT NULL DEFAULT 0, questiontime SMALLINT(3) unsigned NOT NULL DEFAULT 30, classresult SMALLINT(3) unsigned NOT NULL DEFAULT 0, questionresult SMALLINT(3) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_realtimequiz COMMENT='Defines realtime quizzes'  
CREATE TABLE mdl_realtimequiz_question ( id BIGINT(10) NOT NULL auto_increment, quizid BIGINT(10) unsigned NOT NULL DEFAULT 0, questionnum SMALLINT(3) unsigned NOT NULL DEFAULT 0, questiontext MEDIUMTEXT NOT NULL, questiontime MEDIUMINT(5) unsigned NOT NULL, image TEXT DEFAULT '', CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_realtimequiz_question COMMENT='Defines questions for the realtime quizzes'  
CREATE INDEX mdl_realques_quique_ix ON mdl_realtimequiz_question (quizid, questionnum)  
CREATE TABLE mdl_realtimequiz_answer ( id BIGINT(10) NOT NULL auto_increment, questionid BIGINT(10) unsigned NOT NULL DEFAULT 0, answertext MEDIUMTEXT NOT NULL, correct TINYINT(2) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_realtimequiz_answer COMMENT='The available answers for each question in the realtime quiz'  
CREATE INDEX mdl_realansw_que_ix ON mdl_realtimequiz_answer (questionid)  
CREATE TABLE mdl_realtimequiz_submitted ( id BIGINT(10) NOT NULL auto_increment, questionid BIGINT(10) unsigned NOT NULL DEFAULT 0, sessionid BIGINT(10) unsigned DEFAULT 0, userid BIGINT(10) unsigned NOT NULL DEFAULT 0, answerid BIGINT(10) unsigned NOT NULL DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_realtimequiz_submitted COMMENT='The answers that have been submitted by students'  
CREATE INDEX mdl_realsubm_anssesque_ix ON mdl_realtimequiz_submitted (answerid, sessionid, questionid)  
CREATE INDEX mdl_realsubm_use_ix ON mdl_realtimequiz_submitted (userid)  
CREATE TABLE mdl_realtimequiz_session ( id BIGINT(10) NOT NULL auto_increment, name VARCHAR(255) NOT NULL DEFAULT '', quizid BIGINT(10) unsigned NOT NULL DEFAULT 0, timestamp BIGINT(10) unsigned DEFAULT 0, CONSTRAINT PRIMARY KEY (id) )  
ALTER TABLE mdl_realtimequiz_session COMMENT='Details about each quiz session'  
CREATE INDEX mdl_realsess_qui_ix ON mdl_realtimequiz_session (quizid)   

Realtime Attendance

"tested only with mysql and Moodle version 1.9.2+"

Requires the two preceding modules (Attendance and Realtime Quiz)

Module page: http://moodle.org/mod/data/view.php?d=13&rid=2100&filter=1

Download link: http://orglearn.com/moodle/rtattendance/realtimeattendance.zip

Unzip under /mod folder.

Gives realtime attendance.

sample

On moodle11

Admin test course 01 > Ben Kim Realtime Attendance Test

https://moodle.cehd.tamu.edu/mod/realtimeattendance/index.php?id=3

Taxonomy: