Moodle 3.x Developer's Guide
上QQ阅读APP看书,第一时间看更新

What cannot be done with plugins?

Having explored what can be done with plugins, it is worth mentioning what can't be done. Moodle plugins have to fit into a general framework, namely one where users are associated with courses. Note that this means Moodle is course-centric and not user-centric. This can mean that some user-centric plugin types, such as user competencies, can seem an awkward fit (especially when attempting to collate user data from across a course-centric relational database--but that is discussed in more detail in Chapter 9Moodle Analytics). Likewise, creating an individualised learner dashboard, which learners will see when they first log in, can be achieved (and is indeed the subject of Chapter 7, Creating a Dashboard - Developing a Learner Homepage), but it may seem as though you are jumping through hoops at first. If you are worried that a particular development cannot be achieved by anything other than a core code change then ask yourself this: is what I am being asked to develop against the grain of Moodle's core social constructivist principles? If so then it is likely that the wrong platform has been selected and a step back needs to be taken. If not, take a good look at plugin types listed at https://docs.moodle.org/dev/Plugin_types and choose which is the best to develop to achieve the desired feature.