2. Background and context
● Managed thousands of Moodle sites
● Managed millions of Moodle user accounts
● Over 10 years experience with Moodle
● Dozens of Moodle dev and reporting projects
● Tuning, scalability, and performance expert
● Author of Moodle Module Development
3. Things you need
●
Local Moodle Installer
– https://download.moodle.org/macosx/
– https://download.moodle.org/windows/
●
Thinking cap!
14. Weaknesses some thoughts
● All things / one thing
– Dates
– Courses
– Users
● Not easily actionable
● No report builder
15. Hands-on
● Use the config changes report to find the latest
setting change on your Moodle site
● Look at the log report and select a filter to
narrow the results
16. Other sources for reports
● Module database
– Ad Hoc Reports
– Configurable Reports
– Other specialty reports
●
3rd
Party reporting tool
● Ad hoc report list – Link
● Write a SQL query
● Write in PHP (development)
22. Hands-on
● Go into PHPMyAdmin
● Find the table that stores user information
● Find the field that stores first name
● Find table that stores courses
● Find field that stores course short name
● Use the search feature
23. Ad Hoc Reporting List
● URL http://bit.ly/1fHQmhU
● Wiki of contributed SQL reports for Moodle
● Great place to find reports
● Fairly easy to tweak to make your own
● Be sure to vet accuracy of reports used
● Anyone can edit the wiki
24. Hands-on
● Select an interesting Ad Hoc Report
● Go to Configurable Reports
● Create a custom SQL report
● Paste in report SQL
● View report
26. Steal a similar report!
● Edit my.cnf
– general_log = on
– general_log_file=/usr/log/general.logmysql
config for query logging
● Go to builtin report page
● Restart mysql
● Refresh report
● Disable setting
27. Build a report with SQL
● Structured Query Language
● Powerful
● Flexible
● Complex for novices
● Can be dangerous
● Use a testing server
29. Limiting results with where
● Select firstname, lastname from mdl_user
where lastname = 'Moore';
30. Managing time / date stamps
● FROM_UNIXTIME( date_field, 'format_string')
31.
32. Join course and course category
● Select * from mdl_courses c
JOIN mdl_course_categories ccat ON
c.category = ccat.id;
33. Hands-on
● Make most popular report request(s
● Either whole group / small group if enough SQL
experts
34. What we do
● Expert advice and eLearning program review
● Evangelism and training
● Instructional design
● Custom development
● Reporting
● System tuning
● Performance assessment