Can i give students edit access to one block?

Can i give students edit access to one block?

by Tom M -
Number of replies: 3

Hi,

I've made some code in a custom block that allows every user to save his own settings inside it (code finished, it works). Now the only logical action is to allow every user to edit the block, so they can reach the settings page.

However, i don't want to give all users the global moodle/site:manageblocks role, because that's plain silly.

How can i say "all users can edit this specific block"?

Average of ratings: -
In reply to Tom M

Re: Can i give students edit access to one block?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
Just make a new script blocks/myblock/settings.php or something like that, which lets each user edit their settings.

Then put a link to that script in the block.
In reply to Tim Hunt

Re: Can i give students edit access to one block?

by Tom M -

Documentation on settings.php is very sparse, but it seems to be about admin settings (not student users) only, and it only works when the file is included by admin/settings/plugins.php.

Can you give me a more specific example? I've looked at course_list, and it's just a pretty empty specifications file.. Thanks in advance!

In reply to Tom M

Re: Can i give students edit access to one block?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
Sorry, i was forgetting that settings.php was a special file. I was not taking about a settings.php file.

What I meant was create a new stand-along PHP script, let us say
blocks/myblock/myscript.php

Then, the the HTML of the block, add a link to $CFG->wwwroot . 'blocks/myblock/myscript.php'


myscript.php should be a typical Moodle script:

require_once('../../config.php');

require_login(...);
requrire_capability(...);

// Do something.


In your case, Do something probably means display a form, and the process it when it is submitted.

I think course/request.php is a reasonably simple example of a typical Moodle script that does something like this.