Moodle plugins directory: Courseboard

- quick and uncomplicated way to tell what bothers him/her about teacher/student/course
- teacher can have a quick summary how his course is seen from the students perspective
- teacher can answer questions
- students can trade informations, help with little problem

With this activity the students can give the course/teacher a short feedback, new thing is that those posts are public (on a "wall") and if the studentschoose so, anonymously and that in a quick way(short text, without much clicking).A post can also be commented and by that a little discussion could also be possible.In the end, this plugin should enhance the communication between student and teacher, but student to student too.

- security, Userinput will be taken and given out checked. The use of a sesskey prevents cross-side request forgery.
- coding style was improved with the help of the codechecker-plugin.
- seperated the AJAX-part of the code into a seperate file.
- better overview of the HTML Output of the server with using of renderer.

Thanks Franz for the updated version. It's significant improvement from the first versions we saw earlier, most notably in the
input/output processing area. There are some issues yet that you may want to pay attention to.

PHP throws "Notice: Uninitialized string offset" in renderer.php, lines 251 and 141. Please make sure you are developing with the
full debugging on to catch these things during your testing.

Please consider rewording strings 'newmodulename' and 'pluginadministration', it seems like they are missing a space. Also note the
activity title is also displayed when editing the module instance so 'New modulename' is not optimal there. Why not to follow what
other activity modules display there to achieve consistency in UI.

The capabilities 'mod/courseboard:view' and 'mod/courseboard:write' do not seem to be used at all.

You tend to call DB queries inside loops. Note this easily leads to significant performance issues once the module is heavily used
in bigger courses, and it makes the code not to scale well. The post https://moodle.org/mod/forum/discuss.php?d=79455#p352662
contains more background info on this subject.

You do not store the ID of the user who submitted the post to the course board, regardless the chosen anonymity level. This is quite
uncommon pattern in Moodle as we generally store this information for potential future analysis and reporting. You may wish to
re-consider the database schema yet. Also note, storing things like 'amountcomments' explicitly in own field separated from the
actual count of associated comments violates basic guidelines for DB tables normalization. Same applies to the field 'didrate' that
should typically be implemented via a separate table (ideally with additional info such as the timestamp of when the post has been
rated etc).

There is no support for essential activity module APIs such as courseboard_user_outline() or courseboard_get_participants(). The
function courseboard_scale_used_anywhere() is not valid at all. Also, there is no support for backup and restore of this module.
These missing features are not adequate for a plugin that claims to be in "beta" maturity level (as this level suggests the plugin
is feature full). So users of your plugin could easily run into data-loss troubles if they relied on these basic common features.

Your current code does not support common CSS styling. So it does not give the site theme many chances to eventually customize the
look and feel of your plugin. Please note that styling via the 'style' attribute of HTML tags is discouraged in most cases.

To be completely honest, the overall code is far away from the standards we like to see in Moodle plugins. Moodle has guidelines for
contributed code (see https://docs.moodle.org/dev/Coding_style). Your quite specific way of indenting (or often not-indenting) the
lines makes it quite difficult to follow the code logic. Why is view.php starting with `global $DB;`? Also note, in recent Moodle
versions, it's preferred to use the MUST_EXIST flag for methods like `$DB->get_record()`. Plugin renderers should not access the
global $PAGE object, they are supposed to use `$this->page`.

Thanks Franz for attempting to address raised issues promptly. There are still some issues with the code that should be improved.
Your styles file does not contain specific CSS selectors. So the defined styles may affect other parts of Moodle outside your plugin
scope (once they are concatenated with other plugins). There are some hard-coded English strings in the code.

I am going to approve this plugin to give you the opportunity to get wider feedback from the community. I can see you are eager
about improving your plugin so I wish you good luck with further development and clean-ups of the code in future versions. You are
cleared to land, welcome to the Plugins directory!

I like this plugin very much. Thank you! The one thing I'm missing is an optinal subscribe function. I use this activity as feedback-forum in my corses and if I want to know if there are new posts I have to login into the course and check it directly in the courseboard. An email notification can save a lot of time and also can assure that every post/feedback is answered immediately. Do you plan to develop this plugin further?

Thanks for the great plugin! There is one small problem - my name always gets mangled up because something inside the plugin seems to swallow the "umlauts". In the drop-down list choice between "Anonymous" and my name, my name is written correctly; but in submissions, the name is mangled to "Guido_Rling". I have not yet managed to locate where this problem occurs, but would appreciate if it could be fixed.
Note: the correct spelling - as I am registered here with transliteration - would be "Guido Rößling".

The data conveyed in this article should be exact, generally there will be some veritable bother for me. I have fused this data in a significant proportion of my papers, and if people find that the data isn't exact, they will be irate. Write My Assignment For Me