The block_people plugin displays a list of the course's teachers grouped by roles. The block shows the teacher's avatar, a quicklink to his/her profile and a quicklink to send him/her a message with the moodle message system. Furthermore, there is a quicklink to the participants list of the course.

Comments

If you want the block to automatically appear on every course main page, please have a look at the $CFG->defaultblocks* settings in config-dist.php. With this setting, you can define blocks which are added to every course by default.

If you want the block to automatically appear on every course main page _and the teacher to not be able to remove it_, please add the block as a sticky block. You have to add it to the front page, adjust the appearance of the block to appear on every page, then go to a course and adjust the appearance of the block again to appear on every _course_ page. There was a bug in the block that it couldn't be added to the frontpage, I have fixed this now. Please download and install Build 2012062503 and have fun

I'm completely stuck on this thing. I am trying to get the teacher to appear in the box, but the instructions are all in "code speak" so I'm not sure if I need to change a config file, check a box in the admin, or change the teachers role. I'm pretty handy with this stuff, but I haven't been in moodle long enough to know what to do with sentences like "block_people only shows a quicklink to the teacher's profile if the user has the capability moodle/user:viewdetails" Any help would be appreciated!

Brian, thank you for your feedback. I'm sorry to hear that you are stuck with my installation instructions.

The show the teachers in the people block, please use the setting named "coursecontact" in Moodle. With this Moodle core setting, you can define which roles are displayed within the course description of a course and the people block reuses this setting to decide which roles are to be displayed in block's teachers list. You find this setting in Site Administration -> Appearance -> Courses, or by searching for "coursecontact" in the settings block. In this setting, please mark every role that should appear in the people block and click "Save changes".

Your cite "block_people only shows a quicklink to the teacher's profile if the user has the capability moodle/user:viewdetails" is another thing: As soon as you have set the setting mentioned above, the course's teachers will be shown in the people block. By default, every user will see a link to each teacher's profile within the block.
But, the block checks if the user has the right to see the teacher's profile (see http://docs.moodle.org/23/en/Capabilities/moodle/user:viewdetails for details). If the users isn't allowed to see the profile (that means he lacks the capability moodle/user:viewdetails), the link is hidden because it would only lead to an error message page.

I hope this helps, please let me know if there are any further problems.

One more question...is there a way to change the title "Non-editing teacher" to "Instructor" ? I've change the labels in the course, and I even tried changing the language string in the language file, but it didn't change in your block. Thanks!

> One more question...is there a way to change the title "Non-editing teacher" to "Instructor" ? I've change the labels in the course, and I even tried changing the language string in the language file, but it didn't change in your block. Thanks!

I have published a new version of the block which now supports role names which have been renamed in course context. Please have a try

> I also can't seem to change the name of the block

Currently, there is no support for changing the name of the block and I don't plan this either. Please consider using the language customization which can be found in Language -> Language Customization. The name of the block is found in block -> block_people.php and it's identifier is "pluginname".

I am on Moodle 2.6 and get the following when trying to install this block:

Debug info: quizaccess_honestycheck
Error code: codingerror
Stack trace:
line 514 of /lib/classes/update/deployer.php: coding_exception thrown
line 163 of /lib/classes/update/deployer.php: call to core\update\deployer->component_writable()
line 1334 of /admin/renderer.php: call to core\update\deployer->deployment_impediments()
line 909 of /admin/renderer.php: call to core_admin_renderer->plugin_available_update_info()
line 221 of /admin/renderer.php: call to core_admin_renderer->plugins_check_table()
line 417 of /admin/index.php: call to core_admin_renderer->upgrade_plugin_check_page()

please verify the "coursecontact" setting on /admin/settings.php?section=coursecontact. The people block displays users with these roles in your course.

If the coursecontact setting is correct and the block still displays the wrong people, please send me screenshots of the coursecontact setting, of your user + role list in the moodle course and of the people block in the course so that I can replicate the problem.

Hi, I love this block but I have a trouble, I need to show only the teacher for the current group. The course is forced by separated groups but the students of any group can see all the teachers and they are confused because they think all are from their groups, what can i do?
Jose

this is an interesting scenario. However, I'm afraid that it is not supported by the block at the moment and we don't have the ressources to add this feature at the moment.

If you have some developer skills or have a skilled developer near you, please have a look at block_people.php, line 74. There the get_role_users() is called which fetched the users who will be shown in the block. You might be able to use the $groups parameter of this function, which is currently not set, to limit the set of teachers to the ones you need. Alternatively, you fetch all teachers like it is done at the moment and add a step after that which drops all teachers who are not in the same group as the student.

Thanks a lot for your help, i´m not a developer but looking for that function i finally reached to show only the teachers for the group. isn't a good code but works for me. i'll put it here for someone else who wants to improve it for a better code.

//get the current group
$currentg=groups_get_user_groups($COURSE->id, $USER->id);
$currentgp=$currentg[0];
$currentgroup=$currentgp[0];

// Do for every teacher with this role (now line 91)
foreach ($tr as $t) {
// get group's teacher
$teacherg=groups_get_user_groups($COURSE->id, $t->id); $teachergp=$teacherg[0];
$teachergroup=$teachergp[0];
//check if teacher's group is the same that current user
if($currentgroup==$teachergroup or $currentrol<2) {