Comments (12)
Hi,
I have to admit that by design the plugin is limited to one course. There must be ways for you to customise the plugin to share the XP across courses, but that will require some major tweaks.
If more users are interested in this feature, it is not impossible that I look into, but at the moment I will not have time to.
Thank you for your feedback!
Fred
from moodle-block_xp.
It's ok, i don't haveyour level to coding php, but after few hours, i find a way. I know it's barbarian method, but modify a little bit php source like this :
replace all call instance
$manager = block_xp_manager::get($courseid) by $manager = block_xp_manager::get(1) (in all php code)
and also $manager = block_xp_manager::get($this->page->course->id) by $manager = block_xp_manager::get(1) (in "block_xp.php")
so now I have only one instance of level up for all courses.
perhaps i must write manually experience for my student, but it's okay...
Thank to you
Max
from moodle-block_xp.
Sure, that might work. But then all the courses are shared, not a subset or a sequence. Also, look at the helper.php as the observer might do some conflicting filtering. Same with permissions, etc... There are assumptions in the code that the course is not the front page.
from moodle-block_xp.
I completely agree with maximedub. We'd like to use the plugin across courses, system-wide.
Phoenix
from moodle-block_xp.
Just to make sure I understand the request. Would you want the XP of all courses to be displayed in one block, or would you want the user to gain XP for events that happen on the site level as well?
from moodle-block_xp.
Sorry to respond so late, I'm very busy actually. For me, xp_block is the center of my moodle. but my modification have some trouble with the last version of moodle. I can't find the way and I don't have time actually to find to find it.
It just working with Moodle 2.9 (Build: 20150511)
from moodle-block_xp.
It would be great if XP of all courses is displayed in one block. If users gain XP in different courses and compete with all users at site-level, they would be more motivated to gain XP from more courses. Therefore they will spend more time on the platform.
We can use one liderboard for the whole site.
Dimo
from moodle-block_xp.
I have a bit of time at the moment and would like to sort this out, however I am unsure what it is that you guys exactly want. We have two options:
1/ One block for the hole site
This means that the block can be added anywhere and will capture events in all the courses at once. There will be only one single leaderboard for all the sites and it becomes impossible to have a leaderboard in one specific course. In other word, the only course that the block is added to is the Frontpage, and it aggregates all the events from all the courses.
2/ The block can aggregate other blocks (courses)
This is really a different approach. Basically the block would display a leaderboard of all the users sorting them by the amount of experience points they gathered in all the courses where the block is enabled. That means that the block still needs to be added selectively to each course that will contribute to the global leaderboard, which gives the flexibility to ignore some courses, but also has the downside of requiring the block to be set up for each course.
I would personally prefer to go with the first solution for a few reasons:
- Performance wise it is much more manageable to go with solution 1.
- Solution 1 enables the capture of events on the front page.
- Solution 2 would fit better as a separate block/plugin, and solution 1 does not prevent that.
- Solution 2 can be confusing to the students if they see different XP all over the place (Course 1, Course 2, Dashboard, ...).
Cheers,
Fred
from moodle-block_xp.
As a student I would like to see:
- my global leaderboard on the all site
- my leaderboards per course
Which translate into
- site block: the block would display a filter listing courses where I am enrolled. The block would then filter the course participants when i select a course.
- course block (then as a Moodle admin you likely don't want to set a site block): as the plugin works now
From a technical point of view I would store all the xp events to be able to check for (parent) course context. Maybe it's too many info to store... then I would calculate the course score on the fly (likely at it is already done)
from moodle-block_xp.
The first solution sounds good to me if it is possible to add the block in each course.
Cheers,
Dimo
from moodle-block_xp.
It's the same for me too, the first solution with option : event don't attribute xp if possible.
from moodle-block_xp.
Thanks for commenting guys.
Thinking a bit more about this overnight I really think that the first solution is the right one. The problem if we have XP/Leaderboard based of other courses is that the data will be very inconsistent and meaningless.
Every course can set its own preference regarding the levels that you can level up to, how much XP is needed for each and how each event contributes to the XP. So, if we aggregate the XP a student got in all the courses he is enrolled into, what will be its level? We cannot use the standard formula to determine their level as they multiply their XP by the number of courses they are part of, so the teacher would have to set a formula.
So far, it's not too much of a trouble, except that it's adding more work for the teacher. But, the problem is that we now would have a single block with leaderboard and levels which is comparing students not necessarily being enrolled in the same course. Students in less courses, or courses which do not include the block will have very little XP compared to students in more courses, or in courses that give more XP per event.
Conclusion: Solution 1 wins.
Thanks!
Fred
from moodle-block_xp.
Related Issues (20)
- Clarifying supported Moodle versions HOT 3
- JavaScript files not loading in dev mode HOT 9
- Grade-based award HOT 1
- PHP Notice when updating HOT 2
- Default language strings HOT 2
- PHP 8.1: code upgrade or #[\ReturnTypeWillChange] attribute needed. HOT 1
- Usage report cron throws error "Class not found" HOT 1
- Counting words to pass a level HOT 1
- PHP 8.0 Compatibility Issue - Required parameter follows optional parameter in __construct() HOT 2
- Point rules / level descriptions not working properly on course backup / restore HOT 3
- Deprecated events from mod_lesson are loaded in point rules settings, causing debug messages. HOT 5
- Restricting points for reuploading an assignment (assessable) should be possible HOT 1
- Problem with Level Up XP+ message HOT 2
- Moodle Mobile App - Block is Not Visible HOT 3
- dock diary's event meet bug HOT 1
- Deprecation warnings with PHP 8.2 HOT 1
- Label with completion awards points even when competed previously HOT 7
- Very large database table mdl_block_xp_filters HOT 4
- function user_preference_allow_ajax_update deprecation HOT 2
- Level should not show navbar when XP is not used in course HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moodle-block_xp.