23
Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Read Only Moodle

Frozen but available

Marcus Green

Senior Developer

Titus Learning

1

Page 2: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

End of year problem

● Require ‘snapshot’ of student work

● Easy access to old learning material

● Reduce backup requirement on live systems

2

Page 3: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Potential solutions

● Using permissions transforms how Moodle looks

● Create course backups (mbz file)

● Freezing introduced with Moodle 3.6

3

Page 4: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Using Moodle permissions

● Appears to be the ‘right’ way of doing things

● Complex and error prone

● Significantly changes appearance/access

4

Page 5: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Moodle backups

● Not for the technophobe

● Where do you keep them?

● Restoring can sometimes cause issues

5

Page 6: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Moodle 3.6 context freezing

● An “experimental” feature

● Significantly changes appearance

● Only available in 3.6 Si

6

Page 7: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

The read_only solution

● Replace mysqli with mysqliro

● All database updates silently thrown away

● No change to appearance○ (apart from warning on login)

7

Page 8: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Freezing is experimental

8

Page 9: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Turning freezing on

9

Page 10: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

admin/settings.php?section=experimentalsettings

10

Page 11: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Freezing a course

11

Page 12: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Quiz on a frozen course

12

Page 13: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Quiz with read-only enabled

13

Page 14: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

14

Page 15: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Limitations of Moodle 3.6 freezing

● You need Moodle 3.6

● It changes the appearance of things

● Some things cannot be frozen

15

Page 16: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Installing read-only

● git clone https://github.com/marcusgreen/local_read_only

● Copy “mysqlior_native_moodle_database.php to”

● moodle/lib/dml

16

Page 17: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Change mysqli to mysqliro

17

Page 18: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Configure the plugin

18

Page 19: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

19

Page 20: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

How it works (simplified)

File mysqliro_native_moodle_database.php

Same principle for update and delete

public function insert_record_raw($table, More Params XX)

{

$writabletables=$this->get_writable_tables();

if(!in_array($table,$writabletables)){

return true;//lying to Moodle that a write happened

}

return parent::insert_record_raw($table, More Param

XX);

}

20

Page 21: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Exampler of open source

● Original concept by Marcus Green

● Code passed on to Hittesh Ahuja at Bath University

● Updated and available under GPL

21

Page 22: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Limitations

● Not a standard plugin

● The whole site or not at all○ (but we could work on that)

● MySQL only ○ should be easy to modify for other db’s

22

Page 23: Read Only Moodle · Read Only Moodle Frozen but available Marcus Green Senior Developer Titus Learning 1

Fin

[email protected]

https://twitter.com/marcusavgreen

https://twitter.com/TitusLearning

Any Questions?

23