Availability conditions: Restriction by language
availability_language
Maintained by
Renaat Debleu
Restrict module and section access based on user language.
894 sites
279 downloads
33 fans
Moodle 2.7, 2.8, 2.9, 3.0
Language filters are great, but sometimes they can make your resources and activities very complex. This availability condition makes it easy to show an English resource only to English users and an activity in French only to French speaking students.
Check the global documentation about conditional availability conditions: https://docs.moodle.org/en/Conditional_activities_settings
This plugin only pops up when- There is more than 1 language installed in the system (obvious, we need a least 2 languages installed to restrict)
- When the language of the course is NOT forced. (Course - Edit settings - Appearance - Force language). When a course has a forced language, everything will be shown in this language and we are certain no user will ever arrive with another language enabled. On that moment there is no need to show the restriction, as it would only create the illusion that people could be restricted.
WARNING: The Moodle Mobile app filters resources and activities using the language of the smart phone, not using the language of the Moodle app.
Contributors
Please login to view contributors details and/or to contact them
Indeed the language selected in the app should prevail. But honestly, I do not know how this can be accomplished. So perhaps you could do both: report the issue on github and in the tracker.
I will update the plugin to warn about this problem and I posted a question on the Moodle Mobile forum to have a clue how this issue could be solved.
I've read your post on the Moodle Mobile forum [1], we'll see if Juan confirms it can be done.
Thanks!
[1]: https://moodle.org/mod/forum/discuss.php?d=315805
I just installed your plugin in our 2.7, but the activities keep showing...
Not available unless: The student's language is English (en)
In your screenshot shows (Hidden otherwise) and this is the behavior we need...
Am I missing something here? maybe my moodle version differs yours...
Just to clarify...
what we need is if the students switch the interface to english they should see the english content and when they switch to spanish they should see the spanish content.
Thanks!
If the eye is SHUT then english students will not see the activity at all.
If the eye is OPEN the students who do not speak english will see the activity but it will be greyed out and have information about why they can't access it yet.
See the global documentation (https://docs.moodle.org/29/en/Conditional_activities_settings)
Renaat, thank you very much for this plugin and for your help, the plugin work as expected now!
Thanks again!
Installation:
1. Unpack the zip file into the availability/condition/ directory. A new directory will be created called language.
2. Go to Site administration > Notifications to complete the plugin installation.
Thanks
The current version (2014092000) supports Moodle version 2.7, 2.8, 2.9 and 3.0. Personally, I run three Moodle 3.0 sites and one test 3.1 site where the plugin is installed. Some weeks after the release of 3.1 (after some extra testing), this future version will also be supported.
But what do you exactly mean with 'having it certified'?
Is there a way to hide a course based on user language ?
I have some courses in english, and the same courses in french (but separate courses). I would like to filter depending on user language.
Best regards
availability conditions are module level: You can hide or show modules, not courses,
If you want to filter data depending on user language, you could modify your theme renderer:
class theme_????_core_course_renderer extends core_course_renderer {
protected function coursecat_coursebox(coursecat_helper $chelper, $course, $additionalclasses = '') {
switch(current_language()) {
case 'fr':
// Show French courses only
default:
// Show English courses only
...
Greetings,
I want to do the same as Jean-Baptiste (show/hide courses based on user language), but I'm not a developer. Can you please describe how to do that in more detail? I have 3.1. Thank you so much!
Best regards,
Alexander
First, let me state that there is no such thing as hiding a course. If a user gets a link via mail or does a search, he/she will find your course, if he/she can access the course depends on the enrolment settings. The only thing I suggested is that it is possible to hide certain courses in the list of all courses.
So have a look at the theme plugins (https://moodle.org/plugins/?q=type:theme), a lot of them modified the method to show the list of courses/categories to have a more beautiful page. But if you can modify the way they are presented, you can also modify if they are shown or not.
As a non programmer, it will be difficult (you will need to create a child theme and overriding the coursecat_coursebox method), but give it a try. You never know you have hidden talents as a programmer!
Greetings
R