meta course: how to hide yet make accessible

meta course: how to hide yet make accessible

by Joseph Rézeau -
Number of replies: 16
Core developers колдонуучунун сүрөтү Particularly helpful Moodlers колдонуучунун сүрөтү Plugin developers колдонуучунун сүрөтү Testers колдонуучунун сүрөтү Translators колдонуучунун сүрөтү

Hi,

Since there does not seem to be a special forum for discussing the "meta courses" I am posting here.

We have a meta course M in which the students of course A and course B have been enrolled. Inside each course A and B I have put a link to metacourse M.

Now, when the students log into our Moodle site, in "my courses" they see both course A (or course B) and metacourse M.

But we want to force students to get to metacourse M via their "normal" course (A or B). We want to hide metacourse M. However, the way Moodle works, if metacourse M is hidden, then it is no longer available to the students through the link in their "normal" course.

Any suggestions to make a course totally invisible to students yet available through a link in another course?

Joseph

Average of ratings: -
In reply to Joseph Rézeau

Re: meta course: how to hide yet make accessible

by Timothy Takemoto -

Joseph

I guess you will need to hack the course list block in moodle/blocks/course_list.
You could try changing line 38 of block_course_list.php
from

                    if ($course->id == SITEID) {
                        continue;
                    }

to
                    if ($course->id == SITEID | $course->metacourse) {
                        continue;
                    }
Which should make the block skip metacourses as well as the site course, but I am not sure. I have not tried this!

Timothy

In reply to Timothy Takemoto

Re: meta course: how to hide yet make accessible

by Joseph Rézeau -
Core developers колдонуучунун сүрөтү Particularly helpful Moodlers колдонуучунун сүрөтү Plugin developers колдонуучунун сүрөтү Testers колдонуучунун сүрөтү Translators колдонуучунун сүрөтү

Hi Timothy,

Your hack does work for hiding meta-courses from the list of courses in the block "My courses". (in Moodle 1.5)

However, it does not hide meta-courses from being displayed on the site home page nor in the list of courses a student is enrolled in after she logs in.

Anyway, thanks for pointing me to the right direction, I will post again if I make any progress on this.

Josep

In reply to Joseph Rézeau

Re: meta course: how to hide yet make accessible

by Timothy Takemoto -

Josep
Progress...How about adding the same if..continue statement at around line 69                 

                   foreach ($courses as $course) {
                   if ($course->metacourse) {
                        continue;
                    }
Timothy

In reply to Timothy Takemoto

Re: meta course: how to hide in my course page(1.6+)

by J. Chan -

Hi, Timothy

I am using 1.6+ moodle and would like to hide all the metacourses (which is under an invisible category) in the my course page. The list of courses is now too long when viewed by my students.

I would like to make use of the child courses only to link to the metacourses. What files can I hack to achieve this?

Cheers

James

In reply to Joseph Rézeau

Re: meta course: how to hide yet make accessible

by Mina Comailian -

Thanks for posting this. I am facing the same issue and don't know what to do? I don't want the meta coures to show (I have 17 of them), I only want the child courses to show.

What should I do? thanks,

In reply to Mina Comailian

Re: meta course: how to hide yet make accessible

by Rahmat Costas -

Has there been any resolution on this? we'd also like to hide parent courses from users within the front page. Thanks.

Rahmat.

In reply to Rahmat Costas

Re: meta course: how to hide yet make accessible

by Sarah Ashley -
Hi everyone.

Here's a possible way to make this work:

1. What you are calling a METACOURSE (M) does not need to be a metacourse. Take out the child courses. Take out all the users enrolled. Make this NOT a Metacourse, but make it Enrollable, Available to students and Allow guests without the key. (Administration > Settings > Is this a metacourse = No > Course enrollable = Yes > Availability = This course is available to students > Guest Access = Allow guests without the key)

2. Put the link to M inside Subcourse A and Subcourse B.

3. Put M inside some other SUBCATEGORY/SUBCATEGORIES that is/are not in the uppermost level. (This is assuming you have even got categories displayed on your home page at all. You can control how many levels of categories and sub-categories are displayed on the home page via Site Admin > Front Page > Front page settings > Maximum Category depth = 1)

RESULT?
1. M is not displayed on the user's home page when they log in
2. The link to M is available in their Subcourse A and/or B
3. Clicking on the link to M displays content of M without enrolling the user into M (which of course would defeat your purpose again because then M would show up on their home page)
4. M is not in a top level category that is accessible to most users. It is buried deep somewhere in the bowels of your Moodle!

Make sense? I'm eager to hear if this solves your puzzle!
Good luck!

smile
Sarah
Average of ratings:Useful (1)
In reply to Sarah Ashley

Re: meta course: how to hide yet make accessible

by Matt Hackney -

Here is my problem...

I have an advertisement for Course M.  Once they choose, "Enrol" this really enrols them in  courses A, B, and C which are all children of M.

Course A must have a 90%, B an 80%, and C an 80% passed average by the user... if all ove these values are correct, then course M will become available and they can then take the master test which combines stuff from A, B, and C.

Courses A, B, and C are not exclusive to Course M, however.  So they must be available for other areas, too, if needed.

Any solution?  A no brainer "prerequisite" option would be nice... but I guess all the money put into Moodle has been spent elsewhere.

Thanks

In reply to Matt Hackney

Re: meta course: how to hide yet make accessible

by Melanie Hoag -
Using Moodle 1.9.8, here is a method to show only the meta course to the student and to not have the child courses listed via All Courses:

Logged in with Administrator role:
  1. Create a Category for your child courses, e.g. Fall 2010 Child Courses, and place all the child courses in that category and hide the Fall 2010 Child Courses category.
  2. Add the instructor/professor/teacher to the teacher role of the child courses and hide the child courses [make unavailable to students]
  3. Create the meta course, add the child courses and set the instructor/professor/teacher in the teacher role of the meta course.
  4. Go to one of the child courses and copy the URL of the child course.
  5. In the meta course, add a resource of type Link to a file or web site, paste in the copied URL of the child course and then hide the added resource.
  6. Repeat steps 4 and 5 for each of the child courses that belong to the meta course.
The reason we create the link to the child courses and set the instructor/professor/teacher to the teacher role of the child courses is to allow the teacher(s) to add/remove users from roles. If there is no need for the teachers to access the child courses, the creation of the links in the meta course is not needed.
In reply to Melanie Hoag

Re: meta course: how to hide yet make accessible

by Bob Puffer -
Or you can use the myCourses block.
In reply to Bob Puffer

Re: meta course: how to hide yet make accessible

by Melanie Hoag -
Hello!

I've got

Name
Version
My Courses Menu 2008090300

installed - is the one you are referring too a different one?

Thanks!
In reply to Melanie Hoag

Re: meta course: how to hide yet make accessible

by Bob Puffer -
No, I've never heard it referred to as that -- only myCourses (all one word, case-sensitive) block.

Check out http://moodle.org/mod/forum/discuss.php?d=67494&mode=-1

In reply to Bob Puffer

Re: meta course: how to hide yet make accessible

by Jamal Aruna -

Hi sarah,

i followed your steps but the M is stil showing under the sub category on the front page.we have categories displayed  on our front page.anything i can do to hide it and still make it available for enrolled students to see?thank you

In reply to Jamal Aruna

Re: meta course: how to hide yet make accessible

by Sarah Ashley -

Hello Jamal,

How many levels of subcategories do you have set to show on the front page? Move the course M into a sub-category at least one level deeper than that.

For example, if frontpage category depth is 3, create a subcategory at the 4th or 5th level and put your M courses in there. They won't show on the students' front page anymore.

Hope that helps.

In reply to Jamal Aruna

Re: meta course: how to hide yet make accessible

by Melanie Hoag -

Greetings Jamal,

Perhaps I am not understanding what your needs are so pardon me if I am on the wrong track here!

Are your needs to have students from different courses share the same Moodle site? If so, then a metacourse is the site that the students interact with and not the "child" courses. To make the metacourse site visable to the students, we place the metacourse in the same category as their other courses - for example, Spring 2011. The child courses - the course where the students are enrolled in and that are "connected" to the metacourse - are placed in another category that is a subcategory of Spring 2011 - for  example Spring 2011 Child Courses. The subcategory Spring 2011 Child Courses is hidden so the students and the professors do not see that category and the child courses listed. Then, in the metacourse at the top of the main page, we create links to each of the child courses and make those hidden so they do not show to the students but show to the professors. Since the professors are in the teacher role and the students are in the students role of the child courses, the professors and students can access the metacourse in their respective roles.

Cheers!

In reply to Rahmat Costas

Re: meta course: how to hide yet make accessible

by Nicholas Bovee -

In the CSS, I simply used the "data-courseid" attribute to target the metacourses I wanted to make invisible on the front page. This is manageable if you only have a few specific courses you want to keep invisible.

For example:

#frontpage-course-list .coursebox[data-courseid="116"] {display: none;}