Skip to main content
This is not a method supported by product to install the plugins

Introduction

Talview’s proctoring solutions for Moodle LMS include two essential plugins: the Quiz Access Proctor plugin and the Local Proview plugin. These plugins work together to enhance the security and integrity of online quizzes by integrating advanced proctoring features directly into Moodle’s quiz module. The Quiz Access Proctor plugin allows educators to apply specific proctoring settings to their quizzes, ensuring a controlled testing environment. With this plugin, different types of proctoring can be configured, and Talview’s Secure Browser can be utilized to prevent unauthorized access and maintain exam integrity. Install the “quiz access proctor” plugin first Complementing this, the Local Proview plugin injects the necessary Proview JavaScript into Moodle quizzes. It ensures that the proctoring session is initiated correctly when a quiz starts and manages integration aspects such as fetching session playback URLs for post-exam review. This comprehensive approach allows for seamless monitoring and reviewing of proctored sessions, enhancing the overall assessment process. Install the “local proview” plugin second

Step 1: Prepare and Configure Moodle Data Directory

Verify and Create datarootDirectory
  1. Check Current Setting:
    sudo nano /var/www/html/moodle/config.php
    
    
  2. Ensure This Line Exists:
    $CFG->dataroot = '/var/moodledata';
    
    
  3. Create Directory if Missing:
    sudo mkdir -p /var/moodledata
    
    
  4. Set Correct Permissions:
    sudo chown -R www-data:www-data /var/moodledata
    sudo chmod -R 770 /var/moodledata
    
    
  5. Restart Apache:
    sudo systemctl restart apache2
    
    

Step 2: Upload and Extract Plugin Files

Upload and Extract quizaccess_proctorPlugin:
  1. Navigate to the Moodle Root Directory:
    cd /var/www/html/moodle
    
    
  2. Extract Plugin:
    sudo unzip quizaccess_proctor.zip -d /var/www/html/moodle/mod/quiz/accessrule/
    
    
  3. Rename the Extracted Directory:
    sudo mv /var/www/html/moodle/mod/quiz/accessrule/moodle-quizaccess_proctor-1.5.0-Quiz_Access_Proctor /var/www/html/moodle/mod/quiz/accessrule/proctor
    
    
  4. Set Correct Permissions:
    sudo chown -R www-data:www-data /var/www/html/moodle/mod/quiz/accessrule/proctor
    sudo chmod -R 755 /var/www/html/moodle/mod/quiz/accessrule/proctor
    
    
Upload and Extractlocal_proviewPlugin:
  1. Extract Plugin:
    sudo unzip local_proview.zip -d /var/www/html/moodle/local/
    
    
  2. Rename the Extracted Directory:
    sudo mv /var/www/html/moodle/local/moodle-local_proview-3.3.8-local-proview /var/www/html/moodle/local/proview
    
    
  3. Set Correct Permissions:
    sudo chown -R www-data:www-data /var/www/html/moodle/local/proview
    sudo chmod -R 755 /var/www/html/moodle/local/proview
    
    

Step 3: Purge Cache and Restart Services

  1. Purge Moodle Cache:
    sudo php /var/www/html/moodle/admin/cli/purge_caches.php
    
    
  2. Restart Apache Web Server:
    sudo systemctl restart apache2
    
    

Step 4: Install Composer Dependencies

1. Enable Permissions:
sudo chown -R ubuntu:www-data /var/www/html/moodle
sudo chmod -R 775 /var/www/html/moodle
2. Run Composer Installation:
  1. Navigate to Plugin Directory:
    cd /var/www/html/moodle/mod/quiz/accessrule/proctor
    
    
  2. Create Missing Directories if Needed:
    mkdir -p vendor
    
    
  3. Run Composer:
    sudo composer install
    
    
  4. Verifyautoload.phpExists:
    ls /var/www/html/moodle/mod/quiz/accessrule/proctor/vendor/autoload.php
    
    
3. Reset Correct Permissions (Best Practice):
sudo chown -R www-data:www-data /var/www/html/moodle
sudo chmod -R 755 /var/www/html/moodle

Step 5: Final Cleanup and Verification

  1. Purge Moodle Cache Again:
    sudo php /var/www/html/moodle/admin/cli/purge_caches.php
    
    
  2. Restart Apache:
    sudo systemctl restart apache2
    
    
  3. Verify Moodle Installation:
    • Log in to Moodle.
    • Go to Site Administration > Plugins > Plugins Overview.
    • Verify that both plugins (quizaccess_proctor and local_proview) are listed without errors.

Verification Checklist:

  • File Check: Ensure both plugins have correct permissions.
  • Moodle Interface: Verify plugins appear in Plugins Overview.
  • Database Check: Run the following command to ensure plugins are in the database:
sudo mysql -u root -p
USE moodle;
SELECT * FROM mdl_config_plugins WHERE plugin IN ('quizaccess_proctor', 'local_proview');
By following these steps, you should be able to successfully install and configure both plugins on Moodle without encountering autoload.php or permission-related errors.

Uninstalling the plugins from backend

To completely remove the plugins from your Moodle instance located at /var/www/html/moodle, follow these steps:

Step 1: Remove Plugin Files

  1. Navigate to the Moodle Root Directory:
    cd /var/www/html/moodle
    
    
  2. Delete the Plugin Directories:
    • For Quiz Access Proctor:
      sudo rm -rf /var/www/html/moodle/mod/quiz/accessrule/proctor
      
      
    • For Local Proview:
      sudo rm -rf /var/www/html/moodle/local/proview
      
      
  3. Verify Directories are Clean:
    ls /var/www/html/moodle/mod/quiz/accessrule
    ls /var/www/html/moodle/local
    
    

Step 2: Database Cleanup

  1. Log in to MySQL:
    sudo mysql -u root -p
    
    
  2. Select the Moodle Database:
    USE moodle;
    
    
  3. Check and Drop Plugin-Related Tables:
    SHOW TABLES LIKE '%proctor%';
    SHOW TABLES LIKE '%proview%';
    
    
  4. Delete Tables (If Found):
    DROP TABLE IF EXISTS mdl_quizaccess_proctor;
    DROP TABLE IF EXISTS mdl_local_proview;
    
    
  5. Remove Plugin Configurations:
    DELETE FROM mdl_config_plugins WHERE plugin IN ('quizaccess_proctor', 'local_proview');
    
    
  6. Check for Role Assignments (Optional):
    SELECT * FROM mdl_role_assignments WHERE roleid IN (
      SELECT id FROM mdl_role WHERE shortname IN ('proctor', 'proview')
    );
    
    
  7. Delete Role Assignments (If Found):
    DELETE FROM mdl_role_assignments WHERE roleid IN (
      SELECT id FROM mdl_role WHERE shortname IN ('proctor', 'proview')
    );
    
    
  8. Exit MySQL:
    EXIT;
    
    

Step 3: Clear Cache and Reset Permissions

  1. Purge Moodle Cache:
    sudo php /var/www/html/moodle/admin/cli/purge_caches.php
    
    
  2. Reset Moodle Directory Permissions:
    sudo chown -R www-data:www-data /var/www/html/moodle
    sudo chmod -R 755 /var/www/html/moodle
    
    

Step 4: Restart Services

  1. Restart Apache Web Server:
    sudo systemctl restart apache2
    
    

Step 5: Verify Plugin Removal

  1. Log in to Moodle Admin.
  2. Go to Site Administration > Plugins > Plugins Overview.
  3. Ensure that Quiz Access Proctor and Local Proview are not listed.

These steps will completely remove the plugins from both the filesystem and database.

Process to Insert Missing Quiz Records into mdl_quizaccess_proctor

1. SQL to Identify Missing Records

This query identifies quizzes in mdl_quiz that do not have a corresponding entry in mdl_quizaccess_proctor.
SELECT q.id AS quizid, q.course AS courseid, cm.id AS cmid
FROM mdl_quiz q
LEFT JOIN mdl_course_modules cm ON cm.instance = q.id AND cm.module = (
    SELECT id FROM mdl_modules WHERE name = 'quiz'
)
LEFT JOIN mdl_quizaccess_proctor p ON q.id = p.quizid
WHERE p.quizid IS NULL;

2. SQL to Insert Missing Records

To insert missing records with default values, use the following query.
INSERT INTO mdl_quizaccess_proctor (
    quizid, cmid, proctortype, tsbenabled, usermodified, timecreated, timemodified,
    reference_link, instructions, blacklisted_softwares_win, blacklisted_softwares_mac,
    sb_kiosk_mode, sb_content_protection
)
SELECT
    q.id AS quizid,
    cm.id AS cmid,
    'noproctor' AS proctortype,
    0 AS tsbenabled,
    2 AS usermodified,
    UNIX_TIMESTAMP() AS timecreated,
    0 AS timemodified,
    '' AS reference_link,
    '' AS instructions,
    '' AS blacklisted_softwares_win,
    '' AS blacklisted_softwares_mac,
    0 AS sb_kiosk_mode,
    0 AS sb_content_protection
FROM
    mdl_quiz q
LEFT JOIN
    mdl_course_modules cm ON cm.instance = q.id AND cm.module = (
        SELECT id FROM mdl_modules WHERE name = 'quiz'
    )
LEFT JOIN
    mdl_quizaccess_proctor p ON q.id = p.quizid
WHERE
    p.quizid IS NULL;

3. Verification

After running the query, verify no quizzes are missing
SELECT q.id AS missing_quizid
FROM mdl_quiz q
LEFT JOIN mdl_quizaccess_proctor p ON q.id = p.quizid
WHERE p.quizid IS NULL;