https://docs.moodle.org/26/en/api.php?action=feedcontributions&user=Mudrd8mz&feedformat=atomMoodleDocs - User contributions [en]2024-03-29T06:33:04ZUser contributionsMediaWiki 1.39.6https://docs.moodle.org/26/en/index.php?title=Sandbox&diff=107012Sandbox2013-10-21T10:04:48Z<p>Mudrd8mz: Test http://www.mediawiki.org/wiki/Manual:$wgEnotifWatchlist</p>
<hr />
<div>[http://www.youtube.com/watch?v=3xUqnoIzSbo Youtube embedded video test]<br />
<br />
testing email notification of watched pages...<br />
What is the name of the plant family characterized by the following three botanical parts: banner, wing, and keel? For extra credit, what is the common name of the plant pictured?<br />
<br />
The notification of this should not be emailed out.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Using_Workshop&diff=106702Using Workshop2013-09-27T20:17:00Z<p>Mudrd8mz: /* Grade for assessment */</p>
<hr />
<div>{{Workshop}}<br />
==Workshop phases==<br />
The work flow for the Workshop module can be viewed as having five phases. The typical workshop activity can cover days or even weeks. The teacher switches the activity from one phase to another.<br />
<br />
The typical workshop follows a straight path from Setup to, Submission, Assessment, Grading/Evaluation, and ending with the Closed phased. However, an advanced recursive path is also possible.<br />
<br />
The progress of the activity is visualized in so called Workshop planner tool. It displays all Workshop phases and highlights the current one. It also lists all the tasks the user has in the current phase with the information of whether the task is finished or not yet finished or even failed.<br />
<br />
===Setup phase===<br />
<br />
In this initial phase, Workshop participants cannot do anything (neither modify their submissions nor their assessments). Course facilitators use this phase to change workshop settings, modify the grading strategy of tweak assessment forms. You can switch to this phase any time you need to change the Workshop setting and prevent users from modifying their work.<br />
<br />
===Submission phase===<br />
<br />
In the submission phase, Workshop participants submit their work. Access control dates can be set so that even if the Workshop is in this phase, submitting is restricted to the given time frame only. Submission start date (and time), submission end date (and time) or both can be specified.<br />
<br />
===Assessment phase===<br />
<br />
If the Workshop uses peer assessment feature, this is the phase when Workshop participants assess the submissions allocated to them for the review. As in the submission phase, access can be controlled by specified date and time since when and/or until when the assessment is allowed.<br />
<br />
===Grading evaluation phase===<br />
<br />
The major task during this phase is to calculate the final grades for submissions and for assessments and provide feedback for authors and reviewers. Workshop participants cannot modify their submissions or their assessments in this phase any more. Course facilitators can manually override the calculated grades. Also, selected submissions can be set as published so they become available to all Workshop participants in the next phase.<br />
<br />
===Closed===<br />
<br />
[[File:workshop final grades.png|thumb|A closed workshop]]Whenever the Workshop is being switched into this phase, the final grades calculated in the previous phase are pushed into the course [[Gradebook]].This will result in the Workshop grades appearing in the Gradebook and in the workshop (new in Moodle 2.4 onwards). Participants may view their submissions, their submission assessments and eventually other published submissions in this phase.<br />
<br />
==Workshop grading==<br />
<br />
The grades for a Workshop activity are obtained gradually at several stages and then they are finalized. The following scheme illustrates the process and also provides the information in what database tables the grade values are stored.<br />
<br />
[[Image:workshop_grades_calculation.png|400px|thumb|left|The scheme of grades calculation in Workshop]]<br />
<br clear="all"/><br />
<br />
As you can see, every participant gets two numerical grades into the course Gradebook. During the Grading evaluation phase, course facilitator can let Workshop module to calculate these final grades. Note that they are stored in Workshop module only until the activity is switched to the final (Closed) phase. Therefore it is pretty safe to play with grades unless you are happy with them and then close the Workshop and push the grades into the Gradebook. You can even switch the phase back, recalculate or override the grades and close the Workshop again so the grades are updated in the Gradebook again (should be noted that you can override the grades in the Gradebook, too).<br />
<br />
During the grading evaluation, Workshop grades report provides you with a comprehensive overview of all individual grades. The report uses various symbols and syntax:<br />
<br />
{| class="nicetable"<br />
|-<br />
! Value<br />
! Meaning<br />
|-<br />
| - (-) < Alice<br />
| There is an assessment allocated to be done by Alice, but it has been neither assessed nor evaluated yet<br />
|-<br />
| 68 (-) < Alice<br />
| Alice assessed the submission, giving the grade for submission 68. The grade for assessment (grading grade) has not been evaluated yet.<br />
|-<br />
| 23 (-) > Bob<br />
| Bob's submission was assessed by a peer, receiving the grade for submission 23. The grade for this assessment has not been evaluated yet.<br />
|-<br />
| 76 (12) < Cindy<br />
| Cindy assessed the submission, giving the grade 76. The grade for this assessment has been evaluated 12.<br />
|-<br />
| 67 (8) @ 4 < David<br />
| David assessed the submission, giving the grade for submission 67, receiving the grade for this assessment 8. His assessment has weight 4<br />
|-<br />
| 80 (<del>20</del> / <ins>17</ins>) > Eve<br />
| Eve's submission was assessed by a peer. Eve's submission received 80 and the grade for this assessment was calculated to 20. Teacher has overridden the grading grade to 17, probably with an explanation for the reviewer.<br />
|}<br />
<br />
=== Grade for submission ===<br />
<br />
The final grade for every submission is calculated as weighted mean of particular assessment grades given by all reviewers of this submission. The value is rounded to a number of decimal places set in the Workshop settings form.<br />
<br />
Course facilitator can influence the grade for a given submission in two ways:<br />
<br />
* by providing their own assessment, possibly with a higher weight than usual peer reviewers have<br />
* by overriding the grade to a fixed value<br />
<br />
=== Grade for assessment ===<br />
<br />
Grade for assessment tries to estimate the quality of assessments that the participant gave to the peers. This grade (also known as ''grading grade'') is calculated by the artificial intelligence hidden within the Workshop module as it tries to do typical teacher's job.<br />
<br />
During the grading evaluation phase, you use a Workshop subplugin to calculate grades for assessment. At the moment, only one standard subplugin is available called ''Comparison with the best assessment'' (other grading evaluation add-ons can be found in the [https://moodle.org/plugins/browse.php?list=category&id=17 Moodle plugins directory]). The following text describes the method used by this subplugin.<br />
<br />
Grades for assessment are displayed in the braces () in the Workshop grades report. The final grade for assessment is calculated as the average of particular grading grades.<br />
<br />
There is not a single formula to describe the calculation. However the process is deterministic. Workshop picks one of the assessments as the ''best'' one - that is closest to the mean of all assessments - and gives it 100% grade. Then it measures a 'distance' of all other assessments from this best one and gives them the lower grade, the more different they are from the best (given that the best one represents a consensus of the majority of assessors). The parameter of the calculation is how strict we should be, that is how quickly the grades fall down if they differ from the best one.<br />
<br />
If there are just two assessments per submission, Workshop can not decide which of them is 'correct'. Imagine you have two reviewers - Alice and Bob. They both assess Cindy's submission. Alice says it is a rubbish and Bob says it is excellent. There is no way how to decide who is right. So Workshop simply says - ok, you both are right and I will give you both 100% grade for this assessment. To prevent it, you have two options:<br />
<br />
* Either you have to provide an additional assessment so the number of assessors (reviewers) is odd and workshop will be able to pick the best one. Typically, the teacher comes and provide their own assessment of the submission to judge it<br />
* Or you may decide that you trust one of the reviewers more. For example you know that Alice is much better in assessing than Bob is. In that case, you can increase the weight of Alice's assessment, let us say to "2" (instead of default "1"). For the purposes of calculation, Alice's assessment will be considered as if there were two reviewers having the exactly same opinion and therefore it is likely to be picked as the best one.<br />
<br />
'''Backward compatibility note'''<br />
<br />
In Workshop 1.x this case of exactly two assessors with the same weight is not handled properly and leads to wrong results as only the one of them is lucky to get 100% and the second get lower grade.<br />
<br />
'''It's not final grades what is compared'''<br />
<br />
It is very important to know that the grading evaluation subplugin ''Comparison with the best assessment'' does not compare the final grades. Regardless the grading strategy used, every filled assessment form can be seen as n-dimensional vector of normalized values. So the subplugin compares responses to all assessment form dimensions (criteria, assertions, ...). Then it calculates the distance of two assessments, using the variance statistics.<br />
<br />
To demonstrate it on example, let us say you use grading strategy Number of errors to peer-assess research essays. This strategy uses a simple list of assertions and the reviewer (assessor) just checks if the given assertion is passed or failed. Let us say you define the assessment form using three criteria:<br />
<br />
# Does the author state the goal of the research clearly? (yes/no)<br />
# Is the research methodology described? (yes/no)<br />
# Are references properly cited? (yes/no)<br />
<br />
Let us say the author gets 100% grade if all criteria are passed (that is answered "yes" by the assessor), 75% if only two criteria are passed, 25% if only one criterion is passed and 0% if the reviewer gives 'no' for all three statements.<br />
<br />
Now imagine the work by Daniel is assessed by three colleagues - Alice, Bob and Cindy. They all give individual responses to the criteria in order:<br />
<br />
* Alice: yes / yes / no<br />
* Bob: yes / yes / no<br />
* Cindy: no / yes / yes<br />
<br />
As you can see, they all gave 75% grade to the submission. But Alice and Bob agree in individual responses, too, while the responses in Cindy's assessment are different. The evaluation method ''Comparison with the best assessment'' tries to imagine, how a hypothetical absolutely fair assessment would look like. In the [[Development:Workshop 2.0 specification]], David refers to it as "how would Zeus assess this submission?" and we estimate it would be something like this (we have no other way):<br />
<br />
* Zeus 66% yes / 100% yes / 33% yes<br />
<br />
Then we try to find those assessments that are closest to this theoretically objective assessment. We realize that Alice and Bob are the best ones and give 100% grade for assessment to them. Then we calculate how much far Cindy's assessment is from the best one. As you can see, Cindy's response matches the best one in only one criterion of the three so Cindy's grade for assessment will not be as high.<br />
<br />
The same logic applies to all other grading strategies, adequately. The conclusion is that the grade given by the best assessor does not need to be the one closest to the average as the assessment are compared at the level of individual responses, not the final grades.<br />
<br />
==Groups and Workshop==<br />
When a workshop is used in a course using separate or visible groups and groupings, it is possible to filter by group in a drop-down menu at the Assessment phase, manual allocation page, grades report and so on. <br />
<br />
[[File:workshopdropdown.png |thumb|none|upright=2.0|alt="Group filtering" | Group filtering drop down]]<br />
<br />
==See also==<br />
<br />
* [http://www.ascilite.org.au/conferences/wellington12/2012/images/custom/cox,_julian_moodle.pdf Research paper] ''Moodle Workshop activities support peer review in Year 1 Science: present and future'' by Julian M Cox, John Paul Posada and Russell Waldron<br />
* Using Moodle [http://moodle.org/mod/forum/view.php?id=740 Workshop module forum]<br />
* Using Moodle forum discussion [http://moodle.org/mod/forum/discuss.php?d=153268] where David explains a particular Workshop results<br />
* [http://www.slideshare.net/mark.drechsler/moodle-workshop-20-a-simplified-explanation Moodle Workshop 2.0 - a (simplified) explanation] presentation by Mark Drechsler<br />
* [[Development:Workshop]] for more information on the module infrastructure and ways how to extend provided functionality by developing own Workshop subplugins<br />
* [http://moodlefairy.posterous.com/a-brief-journey-into-the-moodle-20-workshop A Brief Journey into the Moodle 2.0 Workshop] at moodlefairy's posterous<br />
<br />
[[de:Workshop nutzen]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Text_editor&diff=106389Text editor2013-08-21T15:40:48Z<p>Mudrd8mz: /* Custom configuration */ How to add bootstrap based styles</p>
<hr />
<div>{{Editing text}}<br />
The text editor (sometimes referred to as the 'HTML editor' or even 'TinyMCE') has many icons to assist the user in entering content. Many of these icons and functions should be familiar to anyone who uses a word processor. Some examples of where you will see the text editor include: Editing Section headings, description of an activity, writing an answer to a quiz question or editing the content of many blocks. <br />
<br />
'''Note:''' It's possible to disable the TinyMCE editor and only use a plain text editor from ''Administration>Site administration>Plugins>Text editors>Manage editors.''<br />
<br />
==The collapsed editor==<br />
Since Moodle 2.5, the text editor appears collapsed with no formatting in many places to save space. To access the full editor, click "Show editing tools" as in (1) in the screenshot below. You can use keyboard shortcuts for quick formatting as in (2) in the screenshot below. (See [[Text editor FAQ]] for a list of shortcuts.) To increase the size of the editor, drag the bottom right once you have clicked "Show editing tools" as in (3) in the screenshot below.<br />
<br />
{|<br />
|[[File:collapsededitor1.png|thumb|The collapsed editor]]<br />
|[[File:expandeditor.png|thumb|The expanded editor]]<br />
|}<br />
<br />
==The full editor==<br />
{|<br />
|[[Image:HTMLeditor tools M2 1.png|thumb|The standard version of the text editor tool bar]]<br />
|}<br />
<br />
==List of groups==<br />
For those who are not familiar with the tool bar, here are the functions listed by group using the above example. Remember that the site administrator can edit or provide additional toolbars.<br />
<br />
Row 1<br />
*[[Image:HTML_editor_group_font_style.png]] - Font, size and heading group<br />
*[[Image:HTML_editor_group_undo_redo.png]] - Undo and Redo group<br />
*[[Image:HTML_editor_group_find_replace.png]] - Find and Replace group<br />
*[[Image:HTML_editor_group_fullscreen_1.png]]|Full screen toggle<br />
Row 2<br />
*[[Image:HTML editor group text effects.png]] - Text effect group<br />
*[[Image:HTML editor group line format.png]] - Line format group<br />
*[[Image:HTML_editor_group_formatting.png]] - Formatting group<br />
*[[Image:HTML_editor_group_color.png]] - Color group<br />
*[[Image:HTML_editor_group_paragraph.png]] - Paragraph group<br />
<br />
Row 3<br />
*[[Image:HTML_editor_group_lists.png]] - Number and Bullets and indents<br />
*[[Image:HTML_editor_group_link.png]] - Link group<br />
*[[Image:HTML_editor_group_insert.png]] - Insert group<br />
*[[Image:HTML_editor_group_HTML_spell.png]] - HTML source toggle and spellchecker (IE 9/8 only)<br />
<br />
==Special features==<br />
<br />
===Color pickers===<br />
*[[Image:HTML_editor_group_color.png]]<br />
There are four levels of selecting a font or background color, <br />
*A quick pick 5x8 matrix of colors<br />
*"More colors" that links to Picker, Pallet and Named tabs<br />
<gallery><br />
Image:HTML_editor_color_selector_basic_1.png|A quick pick 5x8 matrix of colors<br />
Image:HTML_editor_color_selector_more_picker_1.png|A rainbow color picker tab<br />
Image:HTML_editor_color_selector_more_pallet_1.png|A Pallet tab with a 18x12 matrix of colors<br />
Image:HTML_editor_color_selector_more_named_1.png|A Named tab with custom pallets<br />
</gallery><br />
<br />
===Insert images and media===<br />
[[Image:HTML_editor_group_insert_MU_1.png|thumb|The Insert images and media group]]<br />
<br />
* 1 Insert Image - uses [[File picker]]<br />
* 2 Insert Emoticon <br />
* 3 Insert Media - uses [[File picker]]<br />
* 4 Insert Equation - uses java script editor<br />
* 5 Insert Non breaking space <br />
* 6 Insert Custom character - Special keyboard characters<br />
* 7 Insert Table -<br />
<br />
<gallery widths="300px"><br />
Image:Files_File_picker_upload_files_add_1.png|File picker Upload file screen<br />
Image:HTML editor equation editor 1.png|Equation editor<br />
Image:HTML_editor_custom_character_selector_1.png|Custom character selector<br />
</gallery><br />
<br />
====Insert table====<br />
<gallery widths="300px"><br />
Image:HTMLeditor_Insert_Table_general_1.png|General tab<br />
Image:HTMLeditor_Insert_Table_advanced_1.png|Advanced tab<br />
</gallery><br />
<br />
'''To add borders to a table'''<br />
<br />
Cell borders are crucial for helping readers to follow the rows across the screen. If they aren’t showing already you can add them as follows:<br />
<br />
#In the Wiki page containing your table, click its Edit tab<br />
#Carefully select all the cells of the table<br />
#Then right click (Macs: Command+click or Ctrl+Click) over any part of your selection to get a context menu; from it select Cell > Table Cell Properties; the cell properties dialog box then loads.<br />
#Click on its Advanced tab, set Border Color to black (for instance), then click Apply, and then click Update.<br />
#Click Save; the Wiki page containing your table will then load displaying its borders.<br />
<br />
==Site administration settings==<br />
<br />
===Manage editors===<br />
<br />
A site administrator can enable / disable text editors in ''Settings > Site administration > Plugins > Text editors > Manage editors''. By default the TinyMCE HTML editor and plain text area are enabled.<br />
<br />
===TinyMCE editor settings===<br />
<br />
The TinyMCE HTML editor has its own settings page ''Administration>Site administration>Plugins>Text editors>TinyMCE HTML editor>General settings'' with the following options:<br />
<br />
====Plugins====<br />
*Buttons for equations, emoticons,images, media, automatic linking, and legacy spell-checking may be enabled, disabled or uninstall here by clicking on their eye.<br />
*Additionally the equation, emoticon and spell check buttons have links to their Settings screens.<br />
<br />
[[File:legacyspellchecker.png |thumb|none|upright=2.0|alt="The TinyMCE editor plugins screen" | The TinyMCE editor plugins screen]]<br />
<br />
=====Insert equation=====<br />
<br />
Accessed from ''Administration>Site administration>Plugins>Text editors>TinyMCE HTML editor>Edit equation'', this allows you to enable or disable the TeX filter in the editor context and thereby display the Dragmath button. If you have a global custom TeX filter, then disable this setting.<br />
<br />
=====Insert emoticon=====<br />
Accessed from ''Administration>Site administration>Plugins>Text editors>TinyMCE HTML editor>Insert emoticon'', this allows you to enable or disable the emoticon filter in the editor context and thereby display the emoticon button.<br />
<br />
===== Legacy spell checker=====<br />
The legacy spell checker is visible in IE9 and lower only, but not in other browsers. If you want to disable it and and rely on browser spell checker functionality instead, you can do this by disabling the ''legacy spellchecker'' plugin by clicking its eye in ''Administration > Site administration > Plugins > Text editors > TinyMCE HTML editor > General settings''<br />
<br />
To spell-check via your browser, type your word (which if incorrectly spelt will have red lines under it) and press right click + CTRL<br />
{|<br />
|[[File:Browserspellcheck.png|thumb|Right-click+CTRL for browser spellcheck]]<br />
|}<br />
<br />
<br />
You can select a different spell engine from ''Administration> Site administration > Plugins > Text editors > TinyMCE HTML editor>Check spelling'' <br />
<br />
<br />
{|<br />
|[[File:Spellengine.png|thumb|Choosing a different spell engine]]<br />
|}<br />
According to: http://php.net/manual/en/book.pspell.php<br />
<br />
"As of php 5.3. Pspell is no longer supported/bundled. Instead you can use the enchant which is bundled by default in 5.3."<br />
<br />
If PSpell is selected then aspell 0.50 or later must be installed on your server and the path to aspell set in Administration > Site administration > Server > System Paths.<br />
<br />
===Customising the editor toolbar===<br />
<br />
An administrator can remove or add buttons to the TinyMCE editor toolbar by altering the Editor toolbar box in ''Administration>Site administration>Plugins>Text editors>TinyMCE HTML editor>General settings'' as demonstrated in the screencast [http://youtu.be/vTW1DImro9c Customise the text editor in 2.4]<br />
<br />
{|<br />
| [[File:editortoolbar.png|thumb|The Editor toolbar box]]<br />
|[[File:horizontalrule.png|thumb|Example of simpler toolbar with added horizontal rule button]]<br />
|[[File:inserttime.png|thumb|An "insert time" button has been added]]<br />
<br />
<br />
|}<br />
<br />
====Available fonts list====<br />
<br />
In addition to the default fonts, a site administrator can add extra fonts by typing their name and string in the box in ''Administration > Site administration > Plugins > Text editors > TinyMCE HTML editor>General settings'' as demonstrated in the screencast [http://youtu.be/udP7Bnur30Y How to add extra fonts].<br />
<br />
{|<br />
|[[File:comicsans.png|thumb|Example of custom font]]<br />
|}<br />
<br />
====Custom configuration====<br />
<br />
A setting in ''Administration>Site administration>Plugins>Text editors>TinyMCE HTML editor>General settings'' provides a box in which an administrator can apply custom formats. See MDL-37186 for more details with examples, and see also the [http://www.tinymce.com/wiki.php/Configuration:formats TinyMCE configuration page]<br />
<br />
{|<br />
|[[File:bottomtoolbar.png|thumb| Example 1:Toolbar at the bottom]]<br />
|[[File:customstyles.png|thumb| Example 2: Custom styles]]<br />
|}<br />
<br />
*Example: Moving the toolbar to the bottom:<br />
<br />
Add the following:<br />
{"theme_advanced_toolbar_location" : "bottom"}<br />
<br />
*Example: Adding your own custom styles.<br />
(This might be useful for example if you want a "house style" for important notes, key points or similar)<br />
In the editor toolbar, enter "styleselect" and then in the custom box add the following code, changing it to suit your purposes:<br />
{"style_formats" : [<br />
{"title" : "Bold text", "inline" : "b"},<br />
{"title" : "Red text", "inline" : "span", "styles" : {"color" : "#ff0000"}},<br />
{"title" : "Red header", "block" : "h1", "styles" : {"color" : "#ff0000"}} ]}<br />
<br />
The following will let you use bootstrap CSS classes if you use a bootstrap based theme:<br />
<br />
{"style_formats" : [<br />
{"title" : "Well", "block" : "div", "classes" : "well"},<br />
{"title" : "Label", "inline" : "span", "classes" : "label"},<br />
{"title" : "Label - success", "inline" : "span", "classes" : "label label-success"},<br />
{"title" : "Label - warning", "inline" : "span", "classes" : "label label-warning"},<br />
{"title" : "Label - important", "inline" : "span", "classes" : "label label-important"},<br />
{"title" : "Label - info", "inline" : "span", "classes" : "label label-info"},<br />
{"title" : "Label - inverse", "inline" : "span", "classes" : "label label-inverse"},<br />
{"title" : "Button", "inline" : "a", "classes" : "btn btn"},<br />
{"title" : "Button - primary", "inline" : "a", "classes" : "btn btn-primary"},<br />
{"title" : "Button - info", "inline" : "a", "classes" : "btn btn-info"},<br />
{"title" : "Button - success", "inline" : "a", "classes" : "btn btn-success"},<br />
{"title" : "Button - warning", "inline" : "a", "classes" : "btn btn-warning"},<br />
{"title" : "Button - danger", "inline" : "a", "classes" : "btn btn-danger"},<br />
{"title" : "Button - inverse", "inline" : "a", "classes" : "btn btn-inverse"}<br />
]}<br />
<br />
*Example: Enabling copy of rich content with styles from MS Word (tm) and paste into TineMCE without removing important styles:<br />
<br />
{"paste_retain_style_properties" : "margin, padding, width, height, font-size, <br />
font-weight, font-family, color, text-align, ul, ol, li, <br />
text-decoration, border, background, float, display"}<br />
<br />
==See also==<br />
<br />
* [[Text editor FAQ]]<br />
<br />
[[Category:Site administration]]<br />
<br />
[[de:Text-Editor]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Using_Workshop&diff=105854Using Workshop2013-06-28T08:23:25Z<p>Mudrd8mz: /* See also */ Add link to a research paper by Cox, Posada and Waldron at ascilite.org.au</p>
<hr />
<div>{{Workshop}}<br />
==Workshop phases==<br />
The work flow for the Workshop module can be viewed as having five phases. The typical workshop activity can cover days or even weeks. The teacher switches the activity from one phase to another.<br />
<br />
The typical workshop follows a straight path from Setup to, Submission, Assessment, Grading/Evaluation, and ending with the Closed phased. However, an advanced recursive path is also possible.<br />
<br />
The progress of the activity is visualized in so called Workshop planner tool. It displays all Workshop phases and highlights the current one. It also lists all the tasks the user has in the current phase with the information of whether the task is finished or not yet finished or even failed.<br />
<br />
===Setup phase===<br />
<br />
In this initial phase, Workshop participants cannot do anything (neither modify their submissions nor their assessments). Course facilitators use this phase to change workshop settings, modify the grading strategy of tweak assessment forms. You can switch to this phase any time you need to change the Workshop setting and prevent users from modifying their work.<br />
<br />
===Submission phase===<br />
<br />
In the submission phase, Workshop participants submit their work. Access control dates can be set so that even if the Workshop is in this phase, submitting is restricted to the given time frame only. Submission start date (and time), submission end date (and time) or both can be specified.<br />
<br />
===Assessment phase===<br />
<br />
If the Workshop uses peer assessment feature, this is the phase when Workshop participants assess the submissions allocated to them for the review. As in the submission phase, access can be controlled by specified date and time since when and/or until when the assessment is allowed.<br />
<br />
===Grading evaluation phase===<br />
<br />
The major task during this phase is to calculate the final grades for submissions and for assessments and provide feedback for authors and reviewers. Workshop participants cannot modify their submissions or their assessments in this phase any more. Course facilitators can manually override the calculated grades. Also, selected submissions can be set as published so they become available to all Workshop participants in the next phase.<br />
<br />
===Closed===<br />
<br />
[[File:workshop final grades.png|thumb|A closed workshop]]Whenever the Workshop is being switched into this phase, the final grades calculated in the previous phase are pushed into the course [[Gradebook]].This will result in the Workshop grades appearing in the Gradebook and in the workshop (new in Moodle 2.4 onwards). Participants may view their submissions, their submission assessments and eventually other published submissions in this phase.<br />
<br />
==Workshop grading==<br />
<br />
The grades for a Workshop activity are obtained gradually at several stages and then they are finalized. The following scheme illustrates the process and also provides the information in what database tables the grade values are stored.<br />
<br />
[[Image:workshop_grades_calculation.png|400px|thumb|left|The scheme of grades calculation in Workshop]]<br />
<br clear="all"/><br />
<br />
As you can see, every participant gets two numerical grades into the course Gradebook. During the Grading evaluation phase, course facilitator can let Workshop module to calculate these final grades. Note that they are stored in Workshop module only until the activity is switched to the final (Closed) phase. Therefore it is pretty safe to play with grades unless you are happy with them and then close the Workshop and push the grades into the Gradebook. You can even switch the phase back, recalculate or override the grades and close the Workshop again so the grades are updated in the Gradebook again (should be noted that you can override the grades in the Gradebook, too).<br />
<br />
During the grading evaluation, Workshop grades report provides you with a comprehensive overview of all individual grades. The report uses various symbols and syntax:<br />
<br />
{| class="nicetable"<br />
|-<br />
! Value<br />
! Meaning<br />
|-<br />
| - (-) < Alice<br />
| There is an assessment allocated to be done by Alice, but it has been neither assessed nor evaluated yet<br />
|-<br />
| 68 (-) < Alice<br />
| Alice assessed the submission, giving the grade for submission 68. The grade for assessment (grading grade) has not been evaluated yet.<br />
|-<br />
| 23 (-) > Bob<br />
| Bob's submission was assessed by a peer, receiving the grade for submission 23. The grade for this assessment has not been evaluated yet.<br />
|-<br />
| 76 (12) < Cindy<br />
| Cindy assessed the submission, giving the grade 76. The grade for this assessment has been evaluated 12.<br />
|-<br />
| 67 (8) @ 4 < David<br />
| David assessed the submission, giving the grade for submission 67, receiving the grade for this assessment 8. His assessment has weight 4<br />
|-<br />
| 80 (<del>20</del> / <ins>17</ins>) > Eve<br />
| Eve's submission was assessed by a peer. Eve's submission received 80 and the grade for this assessment was calculated to 20. Teacher has overridden the grading grade to 17, probably with an explanation for the reviewer.<br />
|}<br />
<br />
=== Grade for submission ===<br />
<br />
The final grade for every submission is calculated as weighted mean of particular assessment grades given by all reviewers of this submission. The value is rounded to a number of decimal places set in the Workshop settings form.<br />
<br />
Course facilitator can influence the grade for a given submission in two ways:<br />
<br />
* by providing their own assessment, possibly with a higher weight than usual peer reviewers have<br />
* by overriding the grade to a fixed value<br />
<br />
=== Grade for assessment ===<br />
<br />
Grade for assessment tries to estimate the quality of assessments that the participant gave to the peers. This grade (also known as ''grading grade'') is calculated by the artificial intelligence hidden within the Workshop module as it tries to do typical teacher's job.<br />
<br />
During the grading evaluation phase, you use a Workshop subplugin to calculate grades for assessment. At the moment, only one subplugin is available called ''Comparison with the best assessment''. The following text describes the method used by this subplugin. Note that more grading evaluation subplugins can be developed as Workshop extensions.<br />
<br />
Grades for assessment are displayed in the braces () in the Workshop grades report. The final grade for assessment is calculated as the average of particular grading grades.<br />
<br />
There is not a single formula to describe the calculation. However the process is deterministic. Workshop picks one of the assessments as the ''best'' one - that is closest to the mean of all assessments - and gives it 100% grade. Then it measures a 'distance' of all other assessments from this best one and gives them the lower grade, the more different they are from the best (given that the best one represents a consensus of the majority of assessors). The parameter of the calculation is how strict we should be, that is how quickly the grades fall down if they differ from the best one.<br />
<br />
If there are just two assessments per submission, Workshop can not decide which of them is 'correct'. Imagine you have two reviewers - Alice and Bob. They both assess Cindy's submission. Alice says it is a rubbish and Bob says it is excellent. There is no way how to decide who is right. So Workshop simply says - ok, you both are right and I will give you both 100% grade for this assessment. To prevent it, you have two options:<br />
<br />
* Either you have to provide an additional assessment so the number of assessors (reviewers) is odd and workshop will be able to pick the best one. Typically, the teacher comes and provide their own assessment of the submission to judge it<br />
* Or you may decide that you trust one of the reviewers more. For example you know that Alice is much better in assessing than Bob is. In that case, you can increase the weight of Alice's assessment, let us say to "2" (instead of default "1"). For the purposes of calculation, Alice's assessment will be considered as if there were two reviewers having the exactly same opinion and therefore it is likely to be picked as the best one.<br />
<br />
'''Backward compatibility note'''<br />
<br />
In Workshop 1.x this case of exactly two assessors with the same weight is not handled properly and leads to wrong results as only the one of them is lucky to get 100% and the second get lower grade.<br />
<br />
'''It's not final grades what is compared'''<br />
<br />
It is very important to know that the grading evaluation subplugin ''Comparison with the best assessment'' does not compare the final grades. Regardless the grading strategy used, every filled assessment form can be seen as n-dimensional vector of normalized values. So the subplugin compares responses to all assessment form dimensions (criteria, assertions, ...). Then it calculates the distance of two assessments, using the variance statistics.<br />
<br />
To demonstrate it on example, let us say you use grading strategy Number of errors to peer-assess research essays. This strategy uses a simple list of assertions and the reviewer (assessor) just checks if the given assertion is passed or failed. Let us say you define the assessment form using three criteria:<br />
<br />
# Does the author state the goal of the research clearly? (yes/no)<br />
# Is the research methodology described? (yes/no)<br />
# Are references properly cited? (yes/no)<br />
<br />
Let us say the author gets 100% grade if all criteria are passed (that is answered "yes" by the assessor), 75% if only two criteria are passed, 25% if only one criterion is passed and 0% if the reviewer gives 'no' for all three statements.<br />
<br />
Now imagine the work by Daniel is assessed by three colleagues - Alice, Bob and Cindy. They all give individual responses to the criteria in order:<br />
<br />
* Alice: yes / yes / no<br />
* Bob: yes / yes / no<br />
* Cindy: no / yes / yes<br />
<br />
As you can see, they all gave 75% grade to the submission. But Alice and Bob agree in individual responses, too, while the responses in Cindy's assessment are different. The evaluation method ''Comparison with the best assessment'' tries to imagine, how a hypothetical absolutely fair assessment would look like. In the [[Development:Workshop 2.0 specification]], David refers to it as "how would Zeus assess this submission?" and we estimate it would be something like this (we have no other way):<br />
<br />
* Zeus 66% yes / 100% yes / 33% yes<br />
<br />
Then we try to find those assessments that are closest to this theoretically objective assessment. We realize that Alice and Bob are the best ones and give 100% grade for assessment to them. Then we calculate how much far Cindy's assessment is from the best one. As you can see, Cindy's response matches the best one in only one criterion of the three so Cindy's grade for assessment will not be as high.<br />
<br />
The same logic applies to all other grading strategies, adequately. The conclusion is that the grade given by the best assessor does not need to be the one closest to the average as the assessment are compared at the level of individual responses, not the final grades.<br />
<br />
==Groups and Workshop==<br />
When a workshop is used in a course using separate or visible groups and groupings, it is possible to filter by group in a drop-down menu at the Assessment phase, manual allocation page, grades report and so on. <br />
<br />
[[File:workshopdropdown.png |thumb|none|upright=2.0|alt="Group filtering" | Group filtering drop down]]<br />
<br />
==See also==<br />
<br />
* [http://www.ascilite.org.au/conferences/wellington12/2012/images/custom/cox,_julian_moodle.pdf Research paper] ''Moodle Workshop activities support peer review in Year 1 Science: present and future'' by Julian M Cox, John Paul Posada and Russell Waldron<br />
* Using Moodle [http://moodle.org/mod/forum/view.php?id=740 Workshop module forum]<br />
* Using Moodle forum discussion [http://moodle.org/mod/forum/discuss.php?d=153268] where David explains a particular Workshop results<br />
* [http://www.slideshare.net/mark.drechsler/moodle-workshop-20-a-simplified-explanation Moodle Workshop 2.0 - a (simplified) explanation] presentation by Mark Drechsler<br />
* [[Development:Workshop]] for more information on the module infrastructure and ways how to extend provided functionality by developing own Workshop subplugins<br />
* [http://moodlefairy.posterous.com/a-brief-journey-into-the-moodle-20-workshop A Brief Journey into the Moodle 2.0 Workshop] at moodlefairy's posterous<br />
<br />
[[de:Workshop nutzen]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Upgrading&diff=105062Upgrading2013-05-15T03:53:34Z<p>Mudrd8mz: Do not suggest to to upgrade add-ons that early in the process (it did not make sense as the whole tree is to be removed anyway)</p>
<hr />
<div>{{Installing Moodle}} <br />
''This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].''<br />
<br />
==Check the requirements==<br />
<br />
Check that your server meets all requirements for 2.5 in ''Settings > Site administration > Server > [[Environment]]''.<br />
<br />
Note: You can only upgrade to Moodle 2.5 from Moodle 2.2 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/22/en/Upgrading_to_Moodle_2.2 upgrade to 2.2] as a first step.<br />
<br />
==Before you upgrade your site for real==<br />
<br />
'''We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.'''<br />
<br />
== Backup important data ==<br />
<br />
There are three areas that should be backed up before any upgrade:<br />
#Moodle software (For example, everything in server/htdocs/moodle)<br />
#Moodle uploaded files (For example, server/moodledata)<br />
#Moodle database (For example, your Postgres or MySQL database dump)<br />
<br />
See [[Site backup]] for more specific information.<br />
<br />
==Put your site into maintenance mode==<br />
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in.<br />
<br />
== Check for add-on updates ==<br />
<br />
If you have [[Automatic updates deployment]] enabled, you will be able to update installed add-ons automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.<br />
<br />
If you are updating add-ons manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a 2.5 version available for any add-ons (including themes) that you have previously installed on your site. If so, download the add-on package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing add-ons]]).<br />
<br />
The upgrade of the add-on will then happen as part of the Moodle upgrade process.<br />
<br />
If an out-of-date add-on causes your upgrade to fail, you can usually delete the add-on code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.<br />
<br />
== Install the new Moodle software ==<br />
<br />
=== Standard install package ===<br />
<br />
# Move your old Moodle software program files to another location. ''Do NOT copy new files over the old files.''<br />
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.<br />
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. <br />
# As mentioned above, if you had installed any custom add-ons on your site you should add them to the new code tree now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle.<br />
<br />
====Linux====<br />
mv moodle moodle.backup<br />
tar xvzf moodle-2.5.tgz<br />
<br />
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one ('''check that custom plugins are the correct version for your new Moodle first'''):<br />
<br />
cp moodle.backup/config.php moodle<br />
cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme<br />
cp -pr moodle.backup/mod/mymod moodle/mod/mymod<br />
<br />
Don't forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writeable by your server.<br />
<br />
If you use cron, take care that cron.php is executeable and uses the correct php command: <br />
chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)<br />
copy the first line from cron.php (if it looks like '#!/usr/local/bin/php' or '#!/usr/local/bin/php5.3', no need to copy '<?php')<br />
<br />
if necessary.<br />
<br />
=== Using Git ===<br />
<br />
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.<br />
<br />
===Command line upgrade===<br />
<br />
On Linux servers, Moodle 2.5 supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.<br />
<br />
== Finishing the upgrade ==<br />
<br />
The last step is to trigger the upgrade processes within Moodle. <br />
<br />
To do this just go to ''Settings > Site administration > Notifications''.<br />
<br />
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can't do itself (very rare) then you will see messages telling you what you need to do.<br />
<br />
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!<br />
<br />
Note: If you are running multiple servers then you should purge all caches manually (via ''Settings > Site administration > Development > Purge all caches'') after completing the upgrade on all servers.<br />
<br />
==After upgrading==<br />
<br />
The config.php file from your 2.2, 2.3 or 2.4 installation should work fine but if you take a look at config-dist.php that came with Moodle 2.5 there are more/different options available (e.g. database drivers and settings). It's a good idea to map your old config.php settings to a new one based on the 2.5 config-dist.php.<br />
<br />
==Possible issues that may affect you in Moodle 2.5==<br />
<br />
===Renamed settings block===<br />
<br />
The settings block has been renamed 'Administration' and reports are now located there.<br />
<br />
===Course listing improvements===<br />
<br />
Course listings are now displayed consistently throughout the site. See [[:dev:Courses lists upgrade to 2.5]] for details of admin setting changes and possible custom theme changes required.<br />
<br />
===Multi-server architectures with different PHP versions ===<br />
<br />
Moodle has moved to use a more secure mechanism for securing passwords, from 2.5 new passwords will be generated using bcrypt rather than md5. Because bcrypt is only supported for PHP version 5.3.7 and above, it is important that all servers within a cluster use the same version of PHP (MDL-35332).<br />
<br />
===Restoring Moodle 2.5 backups to sites with old PHP versions===<br />
<br />
Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG->includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version < 5.3.7 will require a password reset.<br />
<br />
The same issue would occur if you downgraded the PHP version on the server running your site from 5.3.7+ to less than 5.3.7 (MDL-35332).<br />
<br />
===Manual grading option in the quiz settings===<br />
<br />
Before Moodle 2.5, you could set 'How questions behave' in the [[Quiz settings]] to 'Manually graded'. This caused all questions in the quiz, including multiple choice questions, to require manual grading. This option was not necessary because essay questions, the only ones that need to be graded manually, will always work that way whatever behaviour is selected. <br />
<br />
Since the only effect of that setting was that people somehow choose it by mistake, we have hidden it. There should be no circumstances for which you would need to re-enable it, but if necessary, it can be restored by going to ''Administration > Site administration > Plugins > Question behaviour''.<br />
<br />
=== Moodle 2.3 and 2.4 improvements ===<br />
<br />
If you are upgrading to Moodle 2.5 from 2.2 or 2.3, please see the section 'Possible issues that may affect you' in the documentation [https://docs.moodle.org/23/en/Upgrading Upgrading to Moodle 2.3] and [https://docs.moodle.org/24/en/Upgrading Upgrading to Moodle 2.4].<br />
<br />
==See also==<br />
<br />
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] <br />
* [[dev:Moodle 2.5 release notes|Moodle 2.5 release notes]]<br />
* [[dev:Upgrade API|Upgrade API]]<br />
<br />
[[es:Actualización de moodle]]<br />
[[fr:Mise à jour]]<br />
[[ja:Moodleをアップグレードする]]<br />
[[de:Aktualisierung von Moodle]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Installing_add-ons&diff=104738Installing add-ons2013-05-03T16:02:27Z<p>Mudrd8mz: Merging with my version of the page update</p>
<hr />
<div>{{Installing Moodle}}<br />
An add-on is an optional plugin for adding additional features and functionality to Moodle, such as new activities, new quiz question types, new reports, integrations with other systems and many more. <br />
<br />
==What is meant by the words 'plugin' and 'add-on'?==<br />
<br />
Moodle = core code + plugins<br />
<br />
Plugins may be either standard plugins (included in the Moodle download package) or add-ons.<br />
<br />
== Before you do anything else... ==<br />
<br />
'''VERY IMPORTANT''' Warning: Please be aware that some add-ons have not been reviewed, and the quality and/or suitability for your Moodle site has not been checked. Please be careful. It may not do what you expect, it may have serious security issues or it may even not work at all.<br />
<br />
* Do you '''really''' need the add-on? More functionality means more things to support, more things to (potentially) go wrong and more things to worry about at upgrade time. <br />
* Is the add-on supported and maintained? If something goes wrong can you get support? Will bugs be fixed?<br />
* If the add-on does not work in a future version of Moodle, what will you do about it?<br />
* Beware of ''patches''! If an add-on modifies or replaces core files then be very careful. It can only be guaranteed to work with the exact build (version) of Moodle it was created for and is highly unlikely to survive a Moodle upgrade.<br />
<br />
==Installing an add-on==<br />
<br />
To install an add-on, its source code must be put (deployed) into the appropriate location inside the Moodle installation directory and the main administration page ''Administration > Site administration > Notifications'' must be visited. There are three ways how the add-on code can be deployed into Moodle.<br />
<br />
{{New features}}In Moodle 2.5 onwards, an add-on code may be deployed from within Moodle, either directly from the Moodle plugins directory or by uploading a ZIP file. The web server process has to have write access to the plugin type folder where the new add-on is to be installed in order to use either of these methods.<br />
<br />
Alternatively, an add-on code may be deployed manually at the server.<br />
<br />
===Installing directly from the Moodle plugins directory===<br />
<br />
# Login as an admin and go to ''Administration > Site administration > Plugins > Install add-ons''.<br />
# Click the button 'Install add-ons from Moodle plugins directory'.<br />
# Search for a plugin with an Install button (i.e. suitable for 2.5), click the Install button then click Continue.<br />
# Check that you obtain a 'Validation passed!' message, then click the button 'Install add-on'.<br />
<br />
===Installing via uploaded ZIP file===<br />
<br />
# Go to the [https://moodle.org/plugins Moodle plugins directory], select Moodle 2.5 as version, then choose an add-on with a Download button and download the ZIP file.<br />
# Login to your Moodle site as an admin and go to ''Administration > Site administration > Plugins > Install add-ons''.<br />
# Upload the ZIP file, select the appropriate plugin type, tick the acknowledgement checkbox, then click the button 'Install add-on from the ZIP file'.<br />
# Check that you obtain a 'Validation passed!' message, then click the button 'Install add-on'.<br />
<br />
{|<br />
| [[File:install add-ons.png|thumb|Install add-ons]]<br />
| [[File:add-on package validation.png|thumb|Add-on package validation]]<br />
|}<br />
<br />
For both of the above methods, after clicking the button 'Install add-on', you will then be automatically redirected to ''Settings > Site administration > Notifications'' and the installation process (i.e. creating required database tables etc) will happen.<br />
<br />
===Installing manually at the server===<br />
<br />
If you can't deploy the add-on code via the administration web interface, you have to copy it to the server file system manually (e.g. if the web server process does not have write access to the Moodle installation tree to do this for you).<br />
<br />
First, establish the correct place in the Moodle code tree for the add-on type. Common locations are:<br />
<br />
* /path/to/moodle/theme/ - themes<br />
* /path/to/moodle/mod/ - activity modules and resources<br />
* /path/to/moodle/blocks/ - sidebar blocks<br />
* /path/to/moodle/question/type/ - question types<br />
* /path/to/moodle/course/format/ - course formats<br />
* /path/to/moodle/admin/report/ - admin reports<br />
<br />
See [[:dev:Plugins]] for the full list of all plugin types and their locations within the Moodle tree.<br />
<br />
# Go to the [https://moodle.org/plugins Moodle plugins directory], select Moodle 2.5 as version, then choose an add-on with a Download button and download the ZIP file.<br />
# Upload or copy it to your Moodle server.<br />
# Unzip it in the right place for the plugin type (or follow add-on instructions). <br />
# In your Moodle site (as admin) go to ''Settings > Site administration > Notifications'' (you should, for most plugin types, get a message saying the add-on is installed).<br />
<br />
Note: The add-on may contain language files. They'll be found by your Moodle automatically. These language strings can be customized using the standard ''Settings > Site administration > Language'' editing interface.<br />
<br />
==Troubleshooting==<br />
<br />
===Errors===<br />
<br />
If you obtain an error, please [[Debugging|turn debugging on]] to obtain additional information about the cause of the error.<br />
<br />
;tool_installaddon/err_curl_exec - cURL error 60 : This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site. This is also a known problem in Moodle Windows 7 servers running the Moodle package for Windows. See [[SSL certificate for moodle.org]] for more info and possible solutions.<br />
<br />
===When installing manually===<br />
<br />
* Check the file permissions. The web server needs to be able to read the plugin files. If the the rest of Moodle works then try to make the plugin permissions and ownership match. <br />
* Did you '''definitely''' unzip or install the add-on in the correct place?<br />
* Because Moodle scans plugin folders for new plugins you cannot have any other files or folders there. Make sure you deleted the zip file and don't try to rename (for example) an old version of the plugin to some other name - it will break.<br />
* Make sure the directory name for the plugin is correct. All the names '''have''' to match. If you change the name then it won't work.<br />
<br />
===Obtaining help===<br />
<br />
Ask in the appropriate forum in [http://moodle.org/course/view.php?id=5 Using Moodle]. Make sure you describe your system (including versions of MySQL, PHP etc.), what you tried and what happened. Copy and paste error messages exactly. Provide the link to the version of the add-on you downloaded (some have very similar names).<br />
<br />
==Uninstalling an add-on==<br />
<br />
To uninstall an add-on<br />
# Go to ''Settings > Site Administration > Plugins > Plugins overview'' and click the Uninstall link opposite the add-on you wish to remove<br />
# Use a file manager to remove/delete the actual plugin directory as instructed, otherwise Moodle will reinstall it next time you access the site administration<br />
<br />
Note: Certain plugin types offer the removal from the disk as well, though not yet all.<br />
<br />
==Plugins overview==<br />
<br />
[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]The Plugins overview page in ''Settings > Site Administration > Plugins > Plugins overview'' lists all installed plugins, together with the version number, availability (enabled or disabled) and settings link (if applicable).<br />
<br />
A 'Check for available updates' button enables admins to quickly check for any updates available to standard plugins or add-ons installed on the site (from the [http://moodle.org/plugins plugins directory]). Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
===Plugin updating from within Moodle===<br />
<br />
In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Administration > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on the Plugins overview page. See [[Automatic updates deployment]] for more details.<br />
<br />
==Preventing installing add-ons from within Moodle==<br />
<br />
If required, installing and updating from within Moodle can be prevented by copying the following lines of code from config-dist.php and pasting them in config.php.<br />
<br />
// Use the following flag to completely disable the On-click add-on installation<br />
// feature and hide it from the server administration UI.<br />
//<br />
// $CFG->disableonclickaddoninstall = true;<br />
<br />
==See also==<br />
<br />
*[[Notifications]] for further details of update notifications<br />
*[[Add-on FAQ]]<br />
*Using Moodle [http://moodle.org/mod/forum/view.php?id=44 General add-ons forum]<br />
* [[Installing Moodle from Git repository#Installing a contributed extension from its Git repository|Installing a contributed extension from its Git repository]]<br />
<br />
For developers:<br />
<br />
*[[:dev:Category:Plugins|Plugins developer documentation]]<br />
*[[:dev:Plugin validation]]<br />
*[[:dev:On-click add-on installation]]<br />
<br />
[[Category:Contributed code]]<br />
<br />
[[de:Plugins installieren]]<br />
[[es:Instalando plugins]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Upgrading&diff=104726Upgrading2013-05-03T14:11:21Z<p>Mudrd8mz: /* Backup important data */</p>
<hr />
<div>{{Installing Moodle}} <br />
''This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].''<br />
<br />
==Check the requirements==<br />
<br />
Check that your server meets all requirements for 2.5 in ''Settings > Site administration > Server > [[Environment]]''.<br />
<br />
Note: You can only upgrade to Moodle 2.5 from Moodle 2.2 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/22/en/Upgrading_to_Moodle_2.2 upgrade to 2.2] as a first step.<br />
<br />
==Check for plugin updates==<br />
<br />
Check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a 2.5 version available for any contributed/custom plugins (including themes) that you have previously installed on your site. If so, download the plugin code and copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).<br />
<br />
The upgrade of the plugin will then happen as part of the Moodle upgrade process.<br />
<br />
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.<br />
<br />
Note: If you have any contributed blocks installed, please see below for info about block capabilities undefined.<br />
<br />
==Before you upgrade your site for real==<br />
<br />
'''We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.'''<br />
<br />
== Backup important data ==<br />
<br />
There are three areas that should be backed up before any upgrade:<br />
#Moodle software (For example, everything in server/htdocs/moodle)<br />
#Moodle uploaded files (For example, server/moodledata)<br />
#Moodle database (For example, your Postgres or MySQL database dump)<br />
<br />
See [[Site backup]] for more specific information.<br />
<br />
==Put your site into maintenance mode==<br />
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in.<br />
<br />
== Install the new Moodle software ==<br />
<br />
=== Standard install package ===<br />
<br />
# Move your old Moodle software program files to another location. ''Do NOT copy new files over the old files.''<br />
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.<br />
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. <br />
# As mentioned above, if you had installed any custom plugins on your site you should add them to the new code. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle. <br />
<br />
====Linux====<br />
mv moodle moodle.backup<br />
tar xvzf moodle-2.5.tgz<br />
<br />
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one ('''check that custom plugins are the correct version for your new Moodle first'''):<br />
<br />
cp moodle.backup/config.php moodle<br />
cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme<br />
cp -pr moodle.backup/mod/mymod moodle/mod/mymod<br />
<br />
Don't forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writeable by your server.<br />
<br />
If you use cron, take care that cron.php is executeable and uses the correct php command: <br />
chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)<br />
copy the first line from cron.php (if it looks like '#!/usr/local/bin/php' or '#!/usr/local/bin/php5.3', no need to copy '<?php')<br />
<br />
if necessary.<br />
<br />
=== Using Git ===<br />
<br />
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.<br />
<br />
===Command line upgrade===<br />
<br />
On Linux servers, Moodle 2.5 supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.<br />
<br />
== Finishing the upgrade ==<br />
<br />
The last step is to trigger the upgrade processes within Moodle. <br />
<br />
To do this just go to ''Settings > Site administration > Notifications''.<br />
<br />
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can't do itself (very rare) then you will see messages telling you what you need to do.<br />
<br />
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!<br />
<br />
Note: If you are running multiple servers then you should purge all caches manually (via ''Settings > Site administration > Development > Purge all caches'') after completing the upgrade on all servers.<br />
<br />
==After upgrading==<br />
<br />
The config.php file from your 2.2, 2.3 or 2.4 installation should work fine but if you take a look at config-dist.php that came with Moodle 2.5 there are more/different options available (e.g. database drivers and settings). It's a good idea to map your old config.php settings to a new one based on the 2.5 config-dist.php.<br />
<br />
==Possible issues that may affect you in Moodle 2.5==<br />
<br />
===Multi-server architectures with difference php versions ===<br />
<br />
Moodle has moved to use a more secure mechanism for securing passwords, bcrypt, This feature needs consistent versions of php on all servers. Some older versions are not supported with bcrypt, so please ensure that all versions of php are consistent. (MDL-35332) <br />
<br />
===Course listing improvements===<br />
<br />
Course listings are now displayed consistently throughout the site. See [[:dev:Courses lists upgrade to 2.5]] for details of admin setting changes and possible custom theme changes required.<br />
<br />
<br />
''Please add further items...''<br />
<br />
=== Moodle 2.3 and 2.4 improvements ===<br />
<br />
If you are upgrading to Moodle 2.5 from 2.2 or 2.3, please see the section 'Possible issues that may affect you' in the documentation [https://docs.moodle.org/23/en/Upgrading Upgrading to Moodle 2.3] and [https://docs.moodle.org/24/en/Upgrading Upgrading to Moodle 2.4].<br />
<br />
==See also==<br />
<br />
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] <br />
* [[dev:Moodle 2.5 release notes|Moodle 2.5 release notes]]<br />
* [[dev:Upgrade API|Upgrade API]]<br />
<br />
[[es:Actualización de moodle]]<br />
[[fr:Mise à jour]]<br />
[[ja:Moodleをアップグレードする]]<br />
[[de:Aktualisierung von Moodle]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Installing_add-ons&diff=104723Installing add-ons2013-05-03T14:10:01Z<p>Mudrd8mz: /* Installing an add-on */</p>
<hr />
<div>{{Installing Moodle}}<br />
An add-on is an optional plugin for adding additional features and functionality to Moodle, such as new activities, new quiz question types, new reports, integrations with other systems and many more. <br />
<br />
==What is meant by the words 'plugin' and 'add-on'?==<br />
<br />
Moodle = core code + plugins<br />
<br />
Plugins may be either standard plugins (included in the Moodle download package) or add-ons.<br />
<br />
== Before you do anything else... ==<br />
<br />
'''VERY IMPORTANT''' Warning: Please be aware that some add-ons have not been reviewed, and the quality and/or suitability for your Moodle site has not been checked. Please be careful. It may not do what you expect, it may have serious security issues or it may even not work at all.<br />
<br />
* Do you '''really''' need the add-on? More functionality means more things to support, more things to (potentially) go wrong and more things to worry about at upgrade time. <br />
* Is the add-on supported and maintained? If something goes wrong can you get support? Will bugs be fixed?<br />
* If the add-on does not work in a future version of Moodle, what will you do about it?<br />
* Beware of ''patches''! If an add-on modifies or replaces core files then be very careful. It can only be guaranteed to work with the exact build (version) of Moodle it was created for and is highly unlikely to survive a Moodle upgrade.<br />
<br />
==Installing an add-on==<br />
<br />
{{New features}}In Moodle 2.5 onwards, add-ons may be from within Moodle, either directly from the Moodle plugins directory or by uploading a ZIP file.<br />
<br />
Obviously, to use this method, the web server process has to have write access to the folder where the new add-on is to be installed.<br />
<br />
To install an add-on directly from the Moodle plugins directory:<br />
<br />
# Login as an admin and go to ''Administration > Site administration > Plugins > Install add-ons''.<br />
# Click the button 'Install add-ons from Moodle plugins directory'.<br />
# Choose a plugin with an Install button (i.e. suitable for 2.5), click the Install button then click Continue.<br />
# Check that you obtain a 'Validation passed!' message, then click the button 'Install add-on'.<br />
<br />
To install an add-on by uploading a ZIP file:<br />
<br />
# Go to the [https://moodle.org/plugins Moodle plugins directory], select Moodle 2.5 as version, then choose an add-on with a Download button and download the ZIP file.<br />
# Login to your Moodle site as an admin and go to ''Administration > Site administration > Plugins > Install add-ons''.<br />
# Upload the ZIP file, select the appropriate plugin type, tick the acknowledgement checkbox, then click the button 'Install add-on from the ZIP file'.<br />
# Check that you obtain a 'Validation passed!' message, then click the button 'Install add-on'.<br />
<br />
{|<br />
| [[File:install add-ons.png|thumb|Install add-ons]]<br />
| [[File:add-on package validation.png|thumb|Add-on package validation]]<br />
|}<br />
<br />
For both methods, after clicking the button 'Install add-on', you will then be automatically redirected to ''Settings > Site administration > Notifications'' where you will see a message saying that the add-on is installed.<br />
<br />
Note: The add-on may contain language files. They'll be found by your Moodle automatically. These language strings can be customized using the standard ''Settings > Site administration > Language'' editing interface.<br />
<br />
==Errors==<br />
<br />
If you obtain an error, please [[Debugging|turn debugging on]] to obtain additional information about the cause of the error.<br />
<br />
;tool_installaddon/err_curl_exec - cURL error 60 : This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site. This is also a known problem in Moodle Windows 7 servers running the Moodle package for Windows. See [[SSL certificate for moodle.org]] for more info and possible solutions.<br />
<br />
==Uninstalling an add-on==<br />
<br />
To uninstall an add-on<br />
# Go to ''Settings > Site Administration > Plugins > Plugins overview'' and click the Uninstall link opposite the add-on you wish to remove<br />
# Use a file manager to remove/delete the actual plugin directory as instructed, otherwise Moodle will reinstall it next time you access the site administration<br />
<br />
Note: Certain plugin types offer the removal from the disk as well, though not yet all.<br />
<br />
==Plugins overview==<br />
<br />
[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]The Plugins overview page in ''Settings > Site Administration > Plugins > Plugins overview'' lists all installed plugins, together with the version number, availability (enabled or disabled) and settings link (if applicable).<br />
<br />
A 'Check for available updates' button enables admins to quickly check for any updates available to standard plugins or add-ons installed on the site (from the [http://moodle.org/plugins plugins directory]). Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
===Plugin updating from within Moodle===<br />
<br />
In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Administration > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on the Plugins overview page. See [[Automatic updates deployment]] for more details.<br />
<br />
==Preventing installing add-ons from within Moodle==<br />
<br />
If required, installing and updating from within Moodle can be prevented by copying the following lines of code from config-dist.php and pasting them in config.php.<br />
<br />
// Use the following flag to completely disable the On-click add-on installation<br />
// feature and hide it from the server administration UI.<br />
//<br />
// $CFG->disableonclickaddoninstall = true;<br />
<br />
==See also==<br />
<br />
*[[Notifications]] for further details of update notifications<br />
*[[Add-on FAQ]]<br />
*Using Moodle [http://moodle.org/mod/forum/view.php?id=44 General add-ons forum]<br />
* [[Installing Moodle from Git repository#Installing a contributed extension from its Git repository|Installing a contributed extension from its Git repository]]<br />
<br />
For developers:<br />
<br />
*[[:dev:Category:Plugins|Plugins developer documentation]]<br />
*[[:dev:Plugin validation]]<br />
*[[:dev:On-click add-on installation]]<br />
<br />
[[Category:Contributed code]]<br />
<br />
[[de:Plugins installieren]]<br />
[[es:Instalando plugins]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=SSL_certificate_for_moodle.org&diff=102729SSL certificate for moodle.org2013-01-10T20:10:27Z<p>Mudrd8mz: /* Solutions */ Adding a note about Windows servers</p>
<hr />
<div>{{Security}}<br />
== Synopsis ==<br />
<br />
When you, as an administrator, [[Notifications|check for available updates]] or [[Automatic updates deployment|install an update]], your Moodle site needs to communicate with moodle.org. This communication is done via the secure HTTPS protocol. Your Moodle site validates the SSL certificate of moodle.org (such as the [https://moodle.org/plugins Moodle plugins directory]) and verifies its identity. To pass this verification, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed on your server. <br />
<br />
The SSL certificate for moodle.org has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA].<br />
<br />
== Problem ==<br />
<br />
If this CA certificate is missing, the remote site (moodle.org) can not be verified and so your Moodle site will refuse to fetch the data (to protect you against so called man-in-the-middle attack). The exact location of the certificate on your server depends on the OS type and other settings. On Linux servers it may be typically found at ''/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt'' for example.<br />
<br />
A missing CA certificate results in an error when checking for available updates and attempting to install them.<br />
<br />
== Solutions ==<br />
<br />
=== Update your operating system (recommended) ===<br />
<br />
The recommended way to fix this problem is to update your server's operating system so that it contains recent SSL certificates from common certificate authorities. This does not seem to help for Windows servers though. At Windows, the cURL library bundled with PHP does not use the CA certificates installed in the OS and you will have to use the alternative solution described below.<br />
<br />
For Debian and RedHat based distributions, CA certificates are distributed in the ''ca-certificates'' package. Gentoo servers provide them via the ''app-misc/ca-certificates'' ebuild. It's also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date on your server.<br />
<br />
=== Provide the CA certificate manually ===<br />
<br />
If updating the operating system is not an option for you, or the administrator of the server refuses to update the CA certificates on the server (despite there being no good reason for not doing so), or updating the CA installed in the OS did not help (such as in case of Windows servers), a possible workaround is to download the bundle of required certificates from the [http://curl.haxx.se/ca/ cURL] site. You need to download the file [http://curl.haxx.se/ca/cacert.pem cacert.pem] from there and put it into your ''moodledata/moodleorgca.crt'' file (i.e. download the cacert.pem file, rename it to moodleorgca.crt and upload it into your mooodledata). If this file is found in moodledata, Moodle will use it instead of relying on certificates provided by the operating system.<br />
<br />
It must be highlighted that having the CA certificate on your server's operating system as described above is really the recommended solution. The solution based on moodleorgca.crt should only be considered as a temporary fix (although it seems to be the only way to make it work at Windows servers).<br />
<br />
[[es:SSL certificate for moodle.org]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Workshop_FAQ&diff=102635Workshop FAQ2013-01-04T08:14:33Z<p>Mudrd8mz: Added the grades calculation FAQ</p>
<hr />
<div>{{Workshop}}<br />
==How the heck these grades are calculated?==<br />
<br />
Make sure you read carefully pages explaining [[Using_Workshop#Workshop_grading|workshop grading]] and [[Workshop grading strategies|grading strategies]].<br />
<br />
==How can I get the workshop to switch phase automatically?==<br />
<br />
In ''Settings > Workshop Administration > Edit settings'' tick the box 'Switch to the next phase after the submissions deadline' in the access control section. The workshop will then automatically switch to the assessment phase.<br />
<br />
==How can I make reviewing anonymous?==<br />
<br />
If you do not want your students to know whose work they are reviewing and who is reviewing their work, go to ''Settings>Workshop administration>Permissions'' and click the X next to student to prevent "view author names" ''mod/workshop:viewauthornames'' and "view reviewer names" ''mod/workshop:viewreviewernames''<br />
<br />
==See also==<br />
<br />
*Using Moodle [http://moodle.org/mod/forum/view.php?id=740 Workshop module forum]<br />
<br />
[[Category:FAQ]]<br />
<br />
[[de:Workshop FAQ]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Using_Workshop&diff=102634Using Workshop2013-01-04T08:10:06Z<p>Mudrd8mz: /* Grade for assessment */ Typos and headings</p>
<hr />
<div>{{Workshop}}<br />
==Workshop phases==<br />
The work flow for the Workshop module can be viewed as having five phases. The typical workshop activity can cover days or even weeks. The teacher switches the activity from one phase to another.<br />
<br />
The typical workshop follows a straight path from Setup to, Submission, Assessment, Grading/Evaluation, and ending with the Closed phased. However, an advanced recursive path is also possible.<br />
<br />
The progress of the activity is visualized in so called Workshop planner tool. It displays all Workshop phases and highlights the current one. It also lists all the tasks the user has in the current phase with the information of whether the task is finished or not yet finished or even failed.<br />
<br />
===Setup phase===<br />
<br />
In this initial phase, Workshop participants cannot do anything (neither modify their submissions nor their assessments). Course facilitators use this phase to change workshop settings, modify the grading strategy of tweak assessment forms. You can switch to this phase any time you need to change the Workshop setting and prevent users from modifying their work.<br />
<br />
===Submission phase===<br />
<br />
In the submission phase, Workshop participants submit their work. Access control dates can be set so that even if the Workshop is in this phase, submitting is restricted to the given time frame only. Submission start date (and time), submission end date (and time) or both can be specified.<br />
<br />
===Assessment phase===<br />
<br />
If the Workshop uses peer assessment feature, this is the phase when Workshop participants assess the submissions allocated to them for the review. As in the submission phase, access can be controlled by specified date and time since when and/or until when the assessment is allowed.<br />
<br />
===Grading evaluation phase===<br />
<br />
The major task during this phase is to calculate the final grades for submissions and for assessments and provide feedback for authors and reviewers. Workshop participants cannot modify their submissions or their assessments in this phase any more. Course facilitators can manually override the calculated grades. Also, selected submissions can be set as published so they become available to all Workshop participants in the next phase.<br />
<br />
===Closed===<br />
<br />
[[File:workshop final grades.png|thumb|A closed workshop]]{{New features}}Whenever the Workshop is being switched into this phase, the final grades calculated in the previous phase are pushed into the course [[Gradebook]].This will result in the Workshop grades appearing in the Gradebook and in the workshop (new in Moodle 2.4 onwards). Participants may view their submissions, their submission assessments and eventually other published submissions in this phase.<br />
<br />
==Workshop grading==<br />
<br />
The grades for a Workshop activity are obtained gradually at several stages and then they are finalized. The following scheme illustrates the process and also provides the information in what database tables the grade values are stored.<br />
<br />
[[Image:workshop_grades_calculation.png|400px|thumb|left|The scheme of grades calculation in Workshop]]<br />
<br clear="all"/><br />
<br />
As you can see, every participant gets two numerical grades into the course Gradebook. During the Grading evaluation phase, course facilitator can let Workshop module to calculate these final grades. Note that they are stored in Workshop module only until the activity is switched to the final (Closed) phase. Therefore it is pretty safe to play with grades unless you are happy with them and then close the Workshop and push the grades into the Gradebook. You can even switch the phase back, recalculate or override the grades and close the Workshop again so the grades are updated in the Gradebook again (should be noted that you can override the grades in the Gradebook, too).<br />
<br />
During the grading evaluation, Workshop grades report provides you with a comprehensive overview of all individual grades. The report uses various symbols and syntax:<br />
<br />
{| class="nicetable"<br />
|-<br />
! Value<br />
! Meaning<br />
|-<br />
| - (-) < Alice<br />
| There is an assessment allocated to be done by Alice, but it has been neither assessed nor evaluated yet<br />
|-<br />
| 68 (-) < Alice<br />
| Alice assessed the submission, giving the grade for submission 68. The grade for assessment (grading grade) has not been evaluated yet.<br />
|-<br />
| 23 (-) > Bob<br />
| Bob's submission was assessed by a peer, receiving the grade for submission 23. The grade for this assessment has not been evaluated yet.<br />
|-<br />
| 76 (12) < Cindy<br />
| Cindy assessed the submission, giving the grade 76. The grade for this assessment has been evaluated 12.<br />
|-<br />
| 67 (8) @ 4 < David<br />
| David assessed the submission, giving the grade for submission 67, receiving the grade for this assessment 8. His assessment has weight 4<br />
|-<br />
| 80 (<del>20</del> / <ins>17</ins>) > Eve<br />
| Eve's submission was assessed by a peer. Eve's submission received 80 and the grade for this assessment was calculated to 20. Teacher has overridden the grading grade to 17, probably with an explanation for the reviewer.<br />
|}<br />
<br />
=== Grade for submission ===<br />
<br />
The final grade for every submission is calculated as weighted mean of particular assessment grades given by all reviewers of this submission. The value is rounded to a number of decimal places set in the Workshop settings form.<br />
<br />
Course facilitator can influence the grade for a given submission in two ways:<br />
<br />
* by providing their own assessment, possibly with a higher weight than usual peer reviewers have<br />
* by overriding the grade to a fixed value<br />
<br />
=== Grade for assessment ===<br />
<br />
Grade for assessment tries to estimate the quality of assessments that the participant gave to the peers. This grade (also known as ''grading grade'') is calculated by the artificial intelligence hidden within the Workshop module as it tries to do typical teacher's job.<br />
<br />
During the grading evaluation phase, you use a Workshop subplugin to calculate grades for assessment. At the moment, only one subplugin is available called ''Comparison with the best assessment''. The following text describes the method used by this subplugin. Note that more grading evaluation subplugins can be developed as Workshop extensions.<br />
<br />
Grades for assessment are displayed in the braces () in the Workshop grades report. The final grade for assessment is calculated as the average of particular grading grades.<br />
<br />
There is not a single formula to describe the calculation. However the process is deterministic. Workshop picks one of the assessments as the ''best'' one - that is closest to the mean of all assessments - and gives it 100% grade. Then it measures a 'distance' of all other assessments from this best one and gives them the lower grade, the more different they are from the best (given that the best one represents a consensus of the majority of assessors). The parameter of the calculation is how strict we should be, that is how quickly the grades fall down if they differ from the best one.<br />
<br />
If there are just two assessments per submission, Workshop can not decide which of them is 'correct'. Imagine you have two reviewers - Alice and Bob. They both assess Cindy's submission. Alice says it is a rubbish and Bob says it is excellent. There is no way how to decide who is right. So Workshop simply says - ok, you both are right and I will give you both 100% grade for this assessment. To prevent it, you have two options:<br />
<br />
* Either you have to provide an additional assessment so the number of assessors (reviewers) is odd and workshop will be able to pick the best one. Typically, the teacher comes and provide their own assessment of the submission to judge it<br />
* Or you may decide that you trust one of the reviewers more. For example you know that Alice is much better in assessing than Bob is. In that case, you can increase the weight of Alice's assessment, let us say to "2" (instead of default "1"). For the purposes of calculation, Alice's assessment will be considered as if there were two reviewers having the exactly same opinion and therefore it is likely to be picked as the best one.<br />
<br />
'''Backward compatibility note'''<br />
<br />
In Workshop 1.x this case of exactly two assessors with the same weight is not handled properly and leads to wrong results as only the one of them is lucky to get 100% and the second get lower grade.<br />
<br />
'''It's not final grades what is compared'''<br />
<br />
It is very important to know that the grading evaluation subplugin ''Comparison with the best assessment'' does not compare the final grades. Regardless the grading strategy used, every filled assessment form can be seen as n-dimensional vector of normalized values. So the subplugin compares responses to all assessment form dimensions (criteria, assertions, ...). Then it calculates the distance of two assessments, using the variance statistics.<br />
<br />
To demonstrate it on example, let us say you use grading strategy Number of errors to peer-assess research essays. This strategy uses a simple list of assertions and the reviewer (assessor) just checks if the given assertion is passed or failed. Let us say you define the assessment form using three criteria:<br />
<br />
# Does the author state the goal of the research clearly? (yes/no)<br />
# Is the research methodology described? (yes/no)<br />
# Are references properly cited? (yes/no)<br />
<br />
Let us say the author gets 100% grade if all criteria are passed (that is answered "yes" by the assessor), 75% if only two criteria are passed, 25% if only one criterion is passed and 0% if the reviewer gives 'no' for all three statements.<br />
<br />
Now imagine the work by Daniel is assessed by three colleagues - Alice, Bob and Cindy. They all give individual responses to the criteria in order:<br />
<br />
* Alice: yes / yes / no<br />
* Bob: yes / yes / no<br />
* Cindy: no / yes / yes<br />
<br />
As you can see, they all gave 75% grade to the submission. But Alice and Bob agree in individual responses, too, while the responses in Cindy's assessment are different. The evaluation method ''Comparison with the best assessment'' tries to imagine, how a hypothetical absolutely fair assessment would look like. In the [[Development:Workshop 2.0 specification]], David refers to it as "how would Zeus assess this submission?" and we estimate it would be something like this (we have no other way):<br />
<br />
* Zeus 66% yes / 100% yes / 33% yes<br />
<br />
Then we try to find those assessments that are closest to this theoretically objective assessment. We realize that Alice and Bob are the best ones and give 100% grade for assessment to them. Then we calculate how much far Cindy's assessment is from the best one. As you can see, Cindy's response matches the best one in only one criterion of the three so Cindy's grade for assessment will not be as high.<br />
<br />
The same logic applies to all other grading strategies, adequately. The conclusion is that the grade given by the best assessor does not need to be the one closest to the average as the assessment are compared at the level of individual responses, not the final grades.<br />
<br />
==Groups and Workshop==<br />
When a workshop is used in a course using separate or visible groups and groupings, it is possible to filter by group in a drop-down menu at the Assessment phase, manual allocation page, grades report and so on. <br />
<br />
[[File:workshopdropdown.png |thumb|none|upright=2.0|alt="Group filtering" | Group filtering drop down]]<br />
<br />
==See also==<br />
<br />
* Using Moodle [http://moodle.org/mod/forum/view.php?id=740 Workshop module forum]<br />
* Using Moodle forum discussion [http://moodle.org/mod/forum/discuss.php?d=153268] where David explains a particular Workshop results<br />
* [http://www.slideshare.net/mark.drechsler/moodle-workshop-20-a-simplified-explanation Moodle Workshop 2.0 - a (simplified) explanation] presentation by Mark Drechsler<br />
* [[Development:Workshop]] for more information on the module infrastructure and ways how to extend provided functionality by developing own Workshop subplugins<br />
* [http://moodlefairy.posterous.com/a-brief-journey-into-the-moodle-20-workshop A Brief Journey into the Moodle 2.0 Workshop] at moodlefairy's posterous<br />
<br />
[[de:Workshop nutzen]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Template:Workshop&diff=102633Template:Workshop2013-01-03T19:00:24Z<p>Mudrd8mz: Added link to grading strategies</p>
<hr />
<div><div class="navtrail">[[Main page]] ► [[Managing a Moodle course]] ► [[Activities]] ► [[Workshop module]] ► [[{{PAGENAME}}]]</div><br />
<div class="sideblock right" style="width: 14em;"> <br />
<div class="header">[[Workshop module]]</div> <br />
<div class="content"><br />
* [[Workshop settings]]<br />
* [[Using Workshop]]<br />
* [[Workshop grading strategies|Grading strategies]]<br />
* [[Workshop_module_FAQ|Workshop FAQ]]<br />
</div><br />
</div><br />
<br />
<includeonly>[[Category:Workshop]]</includeonly><br />
<noinclude>This template will categorise articles that include it into [[:Category:Workshop]].</noinclude></div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Workshop_module&diff=102632Workshop module2013-01-03T18:58:48Z<p>Mudrd8mz: Added link to grading strategies</p>
<hr />
<div>{{Activities}}<br />
[[Image:workshop_icon_logo.gif]]'''Workshop''' is a peer assessment activity with many options. Students submit their work via an on line text tool and attachments. There are two grades for a student: their own work and their peer assessments of other students' work. <br />
<br />
[[Image:Workshopexample.png]]<br />
<br />
* [[Workshop settings]]<br />
* [[Using Workshop]]<br />
* [[Workshop grading strategies|Grading strategies]]<br />
* [[Workshop_module_FAQ|Workshop FAQ]]<br />
<br />
== Key features ==<br />
<br />
Workshop is similar to the [[Assignment module]] and extends its functionality in many ways. However, it is recommended that both course facilitator (teacher) and course participants (students) have at least some experience with the Assignment module before the Workshop is used in the course.<br />
<br />
* As in the Assignment, course participants submit their work during the Workshop activity. Every course participant submits their own work. The submission may consist of a text and attachments. Therefore, Workshop submission merges both ''Online text'' and ''Upload file'' types of the Assignment module. Support for team work (in the sense of one submission per group of participants) is out of scope of Workshop module.<br />
* The submissions are assessed using a structured assessment form defined by the course facilitator (teacher). Workshop supports several types of assessment forms. All of them allows multi-criteria assessment in comparison to the Assignment module where only one grade is given to a submission.<br />
* Workshop supports peer assessment process. Course participants may be asked to assess selected set of their peers' submissions. The module coordinates the collection and distribution of these assessments.<br />
* Course participants get actually two grades in a single Workshop activity - grade for their submission (that is how good their submitted work is) and grade for assessment (that is how well they assessed their peers). Workshop activity creates two grade items in the course [[Gradebook]] and they can be aggregated there as needed.<br />
* The process of peer assessment and understanding the assessment form can be practised in advance on so called example submissions. These examples are provided by the facilitator together with a reference assessment. Workshop participants can assess these examples and compare their assessment with the reference one.<br />
* The course facilitator can select some submissions and publish them so they are available to the others at the end of Workshop activity (in comparison to the Assignment module where submitted work is available only to the author and the facilitator).<br />
<br />
Workshop in Moodle 2.0 video:<br />
<br />
<mediaplayer>http://www.youtube.com/watch?v=8QypkOcAEaE</mediaplayer><br />
<br />
[[de:Workshop]]<br />
[[cs:Modul Workshop]]<br />
[[fr:Atelier]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=SSL_certificate_for_moodle.org&diff=102625SSL certificate for moodle.org2013-01-03T10:59:07Z<p>Mudrd8mz: Confirming the solution based on cacert.pem file from the cURL site</p>
<hr />
<div>{{Security}}<br />
== Synopsis ==<br />
<br />
When you, as an administrator, [[Notifications|check for available updates]] or [[Automatic updates deployment|install an update]], your Moodle site needs to communicate with moodle.org. This communication is done via the secure HTTPS protocol. Your Moodle site validates the SSL certificate of moodle.org (such as the [https://moodle.org/plugins Moodle plugins directory]) and verifies its identity. To pass this verification, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed on your server. <br />
<br />
The SSL certificate for moodle.org has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA].<br />
<br />
== Problem ==<br />
<br />
If this CA certificate is missing, the remote site (moodle.org) can not be verified and so your Moodle site will refuse to fetch the data (to protect you against so called man-in-the-middle attack). The exact location of the certificate on your server depends on the OS type and other settings. On Linux servers it may be typically found at ''/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt'' for example.<br />
<br />
A missing CA certificate results in an error when checking for available updates and attempting to install them.<br />
<br />
== Solutions ==<br />
<br />
=== Update your operating system (recommended) ===<br />
<br />
The recommended way to fix this problem is to update your server's operating system so that it contains recent SSL certificates from common certificate authorities. For Debian and RedHat based distributions, these certificates are distributed in the ''ca-certificates'' package. Gentoo servers provide them via the ''app-misc/ca-certificates'' ebuild. It's also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date on your server.<br />
<br />
=== Provide the CA certificate manually ===<br />
<br />
If updating the operating system is not an option for you and the administrator of the server refuses to update the CA certificates on the server (despite there being no good reason for not doing so), a possible workaround is to download the bundle of required certificates from the [http://curl.haxx.se/ca/ cURL] site. You need to download the file [http://curl.haxx.se/ca/cacert.pem cacert.pem] from there and put it into your ''moodledata/moodleorgca.crt'' file (i.e. download the cacert.pem file, rename it to moodleorgca.crt and upload it into your mooodledata). If this file is found in moodledata, Moodle will use it instead of relying on certificates provided by the operating system.<br />
<br />
It must be highlighted that having the CA certificate on your server's operating system as described above is really the recommended solution. The solution based on moodleorgca.crt should only be considered as a temporary fix.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=SSL_certificate_for_moodle.org&diff=102624SSL certificate for moodle.org2013-01-03T06:21:14Z<p>Mudrd8mz: Undo revision 102620 by Rezeau (talk)</p>
<hr />
<div>{{Security}}<br />
== Synopsis ==<br />
<br />
When you, as an administrator, [[Notifications|check for available updates]] or [[Automatic updates deployment|install an update]], your Moodle site needs to communicate with moodle.org. This communication is done via the secure HTTPS protocol. Your Moodle site validates the SSL certificate of moodle.org (such as the [https://moodle.org/plugins Moodle plugins directory]) and verifies its identity. To pass this verification, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed on your server. <br />
<br />
The SSL certificate for moodle.org has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA] and signed by their ''DigiCert High Assurance EV Root CA'' certificate.<br />
<br />
== Problem ==<br />
<br />
If this CA certificate is missing, the remote site (moodle.org) can not be verified and so your Moodle site will refuse to fetch the data (to protect you against so called man-in-the-middle attack). The exact location of the certificate on your server depends on the OS type and other settings. On Linux servers it may be typically found at ''/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt'' for example.<br />
<br />
A missing CA certificate results in an error when checking for available updates and attempting to install them.<br />
<br />
== Solutions ==<br />
<br />
=== Update your operating system (recommended) ===<br />
<br />
The recommended way to fix this problem is to update your server's operating system so that it contains recent SSL certificates from common certificate authorities. For Debian and RedHat based distributions, these certificates are distributed in the ''ca-certificates'' package. Gentoo servers provide them via the ''app-misc/ca-certificates'' ebuild. It's also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date on your server.<br />
<br />
=== Provide the CA certificate manually ===<br />
<br />
If updating the operating system is not an option for you and the administrator of the server refuses to update the CA certificates on the server (despite there being no good reason for not doing so), a possible workaround is to download the [https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt DigiCert High Assurance EV Root CA] certificate from [https://www.digicert.com/digicert-root-certificates.htm digicert.com] and put it into your ''moodledata/moodleorgca.crt'' file. If the certificate is found there, Moodle will use it instead of relying on the one provided by the operating system.<br />
<br />
It must be highlighted that having the CA certificate on your server's operating system as described above is really the recommended solution. The solution based on moodleorgca.crt should only be considered as a temporary fix.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=error/core_plugin/err_response_http_code&diff=102312error/core plugin/err response http code2012-12-04T15:18:34Z<p>Mudrd8mz: Redirected page to Available update notifications</p>
<hr />
<div>#REDIRECT [[Available update notifications]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=error/core_plugin/err_response_format_version&diff=102311error/core plugin/err response format version2012-12-04T15:18:13Z<p>Mudrd8mz: Redirected page to Available update notifications</p>
<hr />
<div>#REDIRECT [[Available update notifications]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=error/core_plugin/err_response_curl&diff=102310error/core plugin/err response curl2012-12-04T15:17:13Z<p>Mudrd8mz: Redirect to Available update notifications</p>
<hr />
<div>#REDIRECT [[Available update notifications]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Available_update_notifications&diff=102309Available update notifications2012-12-04T15:16:10Z<p>Mudrd8mz: Added infor about errors</p>
<hr />
<div>[[File:Pluginsoverview.png|thumb|left|Checking for available updates via the plugins overview page]]An administrator can configure update notifications for both Moodle core code and any contributed plugins installed on the site (from the [http://moodle.org/plugins plugins directory]) in ''Settings > Site Administration > Server > Update notifications''.<br />
<br />
If the automatic check for available updates is enabled and there is a new update available, a notification will be sent to all site admins via email and/or popup message (according to the admin's messaging preferences in their profile settings).<br />
<br />
{{New features}}In Moodle 2.4 onwards, updates deployment i.e. the option to update installed plugins from within Moodle may be enabled by ticking the updateautodeploy checkbox. When updates are available, ''Install this update'' buttons are shown on the [[Plugins overview]] page (''Settings > Site Administration > Plugins > Plugins overview''). See [[Automatic updates deployment]] for more details.<br />
<br />
An administrator can specify the required code maturity (stable, alpha, beta or release candidate) for update notifications, also whether notifications of new builds (normally released each week) are sent.<br />
<br />
[[File:updates check button.png|thumb|Checking for available updates via the notifications page]]An admin can also check for available updates for contributed plugins installed on the site using the 'Check for available updates' button in ''Settings > Site Administration > Plugins > [[Installing plugins|Plugins overview]]''. Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
Available updates for core code can also be checked via ''Settings > Site administration > Notifications''.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
# The information about available updates are available as a web service at download.moodle.org<br />
# When ''Check for updates'' button is pressed (or daily via cron), your Moodle fetches information about available updates from the web service and stores it locally.<br />
# The list of installed plugins is compared with the list of available updates. If a newer version of Moodle or a plugin is available, the Moodle informs site administrators.<br />
<br />
When calling the web service, your site must provide its own version and the list of all installed add-ons. No sensitive data (like the location of your site, any user data etc) are submitted.<br />
<br />
== Disabling update notifications ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications) it is desirable to not have the check for updates active. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdatenotifications = true;<br />
<br />
== Errors and exceptions ==<br />
<br />
When experiencing an error, please turn debugging on. The debug info will contain additional information about the reason of the error.<br />
<br />
=== Unable to fetch available updates data - unexpected cURL error ===<br />
<br />
See the debug info for the actual cURL error number and the error text.<br />
<br />
; cURL error 7 couldn't connect to host : Make sure that the site http://download.moodle.org is up and running at the moment. If it is down, your site can't call the web service to fetch the available updates info. Wait for the download.moodle.org site is up again and try to re-check.<br />
; cURL error 60 (SSL certificate problem) : This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site. See [[SSL certificate for moodle.org]] for more info.<br />
<br />
This error may also raise if your Moodle is configured to run behind a mis-configured proxy server.<br />
<br />
=== Unable to fetch available updates data - unexpected HTTP response code ===<br />
<br />
See the debug info for the actual HTTP response code. On success, the HTTP response code is 200. All other response codes throw this error.<br />
<br />
=== Unexpected version of the response format ===<br />
<br />
This could happen if you check for updates during the major Moodle upgrade. Please try to re-check for available updates once you finish upgrading your Moodle.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Automatic_updates_deployment&diff=102308Automatic updates deployment2012-12-04T14:44:10Z<p>Mudrd8mz: Available update notifications page moved</p>
<hr />
<div>{{New features}}[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on Plugins overview and Plugins check pages.<br />
<br />
This functionality requires that [[Available update notifications]] are enabled at the site.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
As a part of the information about available updates for the site, URL of the ZIP package with the new version of an installed plugin is returned. When ''Install this update'' button is pressed and the the deployment is confirmed at the next page, a standalone utility called ''mdeploy.php'' is executed.<br />
<br />
# The mdeploy utility authorizes the request to make sure you are coming ''exactly'' from the confirmation page displayed in the previous step.<br />
# The ZIP package with the new version is fetched from the [https://moodle.org/plugins Moodle plugins directory].<br />
# A simple integrity check is performed to make sure the ZIP was downloaded correctly.<br />
# The current version of the plugin code is archived into a directory at ''moodledata/mdeploy/archive/'' so you have a backup (just in case you had some local tweaks in the code, for example).<br />
# The current directory with the plugin is removed and replaced with the content of the downloaded ZIP.<br />
# Your browser is redirected to the page where the normal upgrade procedure happens.<br />
<br />
At this moment, you can deploy another available update (if there is such) or perform the upgrade procedure as if you uploaded the ZIP contents to your site manually.<br />
<br />
== Disabling updates deployment ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications, or sites that have their own solution for updates deployment - for example via [[Git for Administrators|Git checkouts]]) it is desirable to not to allow automatic updates deployment. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdateautodeploy = true;<br />
<br />
== Missing install button ==<br />
<br />
If the updates deployment feature is not enabled (or if it was disabled at the config.php file), no button to install the update is displayed. If the feature is enabled, the page displaying the list of available updates performs some pre-checks to make sure the deployment will work. If a pre-check fails, a short information with a help pop-up is displayed.<br />
<br />
=== Plugin files not writable ===<br />
<br />
During the deployment, Moodle will replace the whole folder with the plugin code with a new version. The web server process has to have write access to the folder and all its contents. There are several ways how to achieve this, depending on your web server setup and personal preferences. The exact location of the plugin folder depends on the type of the plugin. For a full list of locations see the Moodle path on https://docs.moodle.org/dev/Plugins<br />
<br />
Example: Let us assume your web server is an Apache running at a Linux server as the user ''www-data''. Your Moodle is installed at ''/var/www/vhosts/moodle/htdocs''. You want to give it write access to the folder with your Stamp collection activity module:<br />
<br />
# cd /var/www/vhosts/moodle/htdocs<br />
# cd mod<br />
# chown -R www-data stampcoll<br />
# chmod -R u+w stampcoll<br />
<br />
See also more about [[Installing plugins]].<br />
<br />
=== Can not download the package ===<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
There can also be a problem with the validation of the SSL certificate of the moodle.org site. See [[SSL certificate for moodle.org]] for more info.<br />
<br />
== Errors and exceptions ==<br />
<br />
[[File:mdeploy-exception.png|thumb|left|Error screen during the plugin deployment]]If anything goes wrong during the deployment, please read the error page carefully and copy the error message together with the debugging information for later reference. Also, check the mdeploy.log file. The mdeploy utility logs all the steps into this file located at ''moodledata/mdeploy/mdeploy.log''. The log file usually contains additional details and debugging information describing the reason of the failure.<br />
<br />
When you navigate back from the error screen, always remember to go back up to the screen with the list of available plugins (where you clicked the ''Install this update'' button originally). Just going back to the previous confirmation screen or even reloading the current page will not work as the request would not be authorized any more. Doing so leads to the ''unauthorized_access_exception'' with the message ''Unable to read the passphrase file.''<br />
<br />
The following section describes some errors that may raise and how to deal with them.<br clear="all" /><br />
<br />
=== Unable to download the package (download_file_exception) ===<br />
<br />
Check the bottom of the mdeploy.log file. It will probably contain a line starting with "cURL error" followed by the error number and the cURL error description.<br />
<br />
==== cURL error 7 couldn't connect to host ====<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
==== cURL error 60 SSL certificate problem ====<br />
<br />
This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site when fetching the ZIP package. See [[SSL certificate for moodle.org]] for more info.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Notifications&diff=102307Notifications2012-12-04T14:42:51Z<p>Mudrd8mz: Update notifications moved to a separate page</p>
<hr />
<div>{{Security}}<br />
==Update notifications==<br />
<br />
An administrator can configure update notifications for both Moodle core code and any contributed plugins installed on the site in ''Settings > Site Administration > Server > Update notifications''. See [[Available update notifications]] for more details.<br />
<br />
==Login failure notifications==<br />
<br />
An administrator can set up login failure notification in ''Settings > Site Administration > Security > Notifications''.<br />
<br />
===Display login failures to===<br />
<br />
Set this to administrators to be warned of anyone attempting to steal student or teacher logins. When set, a link stating the number of failed logins appears in the top right corner of the page when an administrator logs in. Click the link to access the login error page.<br />
<br />
===Email login failures===<br />
<br />
If you're concerned about login failures, you can set up email notification for administrators or any/all users who can change the site configuration.<br />
<br />
===Threshold for email notifications===<br />
<br />
This sets the number of failed logins for a given user from a single computer that will trigger notification.<br />
<br />
==Other notifications==<br />
<br />
The version of Moodle used may be found in ''Settings > Site administration > Notifications''.<br />
<br />
Other notifications listed on the page may include<br />
<br />
* [[Upgrade warnings|"Alpha" development code warning]]<br />
* [[Cron]] not run for at least 24 hours<br />
* Database tables are using MyISAM database engine - see [[Migration from MyISAM to InnoDB]] for advice on what to do<br />
* Site not yet [[Site registration|registered]]<br />
<br />
==See also==<br />
<br />
* [[:dev:Available update notifications|Available update notifications developer documentation]]<br />
* [[error/moodle/errortoomanylogins]]<br />
<br />
[[es:Notificaciones]]<br />
[[eu:Jakinarazpenak]]<br />
[[fr:Notifications]]<br />
[[de:Benachrichtigungen]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Available_update_notifications&diff=102306Available update notifications2012-12-04T14:41:32Z<p>Mudrd8mz: Added missing bit from the original page</p>
<hr />
<div>[[File:Pluginsoverview.png|thumb|left|Checking for available updates via the plugins overview page]]An administrator can configure update notifications for both Moodle core code and any contributed plugins installed on the site (from the [http://moodle.org/plugins plugins directory]) in ''Settings > Site Administration > Server > Update notifications''.<br />
<br />
If the automatic check for available updates is enabled and there is a new update available, a notification will be sent to all site admins via email and/or popup message (according to the admin's messaging preferences in their profile settings).<br />
<br />
{{New features}}In Moodle 2.4 onwards, updates deployment i.e. the option to update installed plugins from within Moodle may be enabled by ticking the updateautodeploy checkbox. When updates are available, 'Install this update' buttons are shown on the [[Plugins overview]] page ('' Settings > Site Administration > Plugins > Plugins overview''). <br />
<br />
An administrator can specify the required code maturity (stable, alpha, beta or release candidate) for update notifications, also whether notifications of new builds (normally released each week) are sent.<br />
<br />
[[File:updates check button.png|thumb|Checking for available updates via the notifications page]]An admin can also check for available updates for contributed plugins installed on the site using the 'Check for available updates' button in ''Settings > Site Administration > Plugins > [[Installing plugins|Plugins overview]]''. Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
Available updates for core code can also be checked via ''Settings > Site administration > Notifications''.<br />
<br />
== Disabling update notifications ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications) it is desirable to not have the check for updates active. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdatenotifications = true;</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Available_update_notifications&diff=102305Available update notifications2012-12-04T14:40:21Z<p>Mudrd8mz: Moved from Notifications to a separate page</p>
<hr />
<div>[[File:Pluginsoverview.png|thumb|left|Checking for available updates via the plugins overview page]]An administrator can configure update notifications for both Moodle core code and any contributed plugins installed on the site (from the [http://moodle.org/plugins plugins directory]) in ''Settings > Site Administration > Server > Update notifications''.<br />
<br />
If the automatic check for available updates is enabled and there is a new update available, a notification will be sent to all site admins via email and/or popup message (according to the admin's messaging preferences in their profile settings).<br />
<br />
{{New features}}In Moodle 2.4 onwards, updates deployment i.e. the option to update installed plugins from within Moodle may be enabled by ticking the updateautodeploy checkbox. When updates are available, 'Install this update' buttons are shown on the [[Plugins overview]] page ('' Settings > Site Administration > Plugins > Plugins overview''). <br />
<br />
An administrator can specify the required code maturity (stable, alpha, beta or release candidate) for update notifications, also whether notifications of new builds (normally released each week) are sent.<br />
<br />
[[File:updates check button.png|thumb|Checking for available updates via the notifications page]]An admin can also check for available updates for contributed plugins installed on the site using the 'Check for available updates' button in ''Settings > Site Administration > Plugins > [[Installing plugins|Plugins overview]]''. Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
Available updates for core code can also be checked via ''Settings > Site administration > Notifications''.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=admin/mdeploy/notwritable&diff=102304admin/mdeploy/notwritable2012-12-04T14:31:11Z<p>Mudrd8mz: Info moved</p>
<hr />
<div>#REDIRECT [[Automatic updates deployment]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Automatic_updates_deployment&diff=102303Automatic updates deployment2012-12-04T14:30:29Z<p>Mudrd8mz: /* Plugin files not writable */ Merged with the current admin/mdeploy/notwritable</p>
<hr />
<div>{{New features}}[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on Plugins overview and Plugins check pages.<br />
<br />
This functionality requires that [[Notifications|Update notifications]] is enabled at the site.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
As a part of the information about available updates for the site, URL of the ZIP package with the new version of an installed plugin is returned. When ''Install this update'' button is pressed and the the deployment is confirmed at the next page, a standalone utility called ''mdeploy.php'' is executed.<br />
<br />
# The mdeploy utility authorizes the request to make sure you are coming ''exactly'' from the confirmation page displayed in the previous step.<br />
# The ZIP package with the new version is fetched from the [https://moodle.org/plugins Moodle plugins directory].<br />
# A simple integrity check is performed to make sure the ZIP was downloaded correctly.<br />
# The current version of the plugin code is archived into a directory at ''moodledata/mdeploy/archive/'' so you have a backup (just in case you had some local tweaks in the code, for example).<br />
# The current directory with the plugin is removed and replaced with the content of the downloaded ZIP.<br />
# Your browser is redirected to the page where the normal upgrade procedure happens.<br />
<br />
At this moment, you can deploy another available update (if there is such) or perform the upgrade procedure as if you uploaded the ZIP contents to your site manually.<br />
<br />
== Disabling updates deployment ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications, or sites that have their own solution for updates deployment - for example via [[Git for Administrators|Git checkouts]]) it is desirable to not to allow automatic updates deployment. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdateautodeploy = true;<br />
<br />
== Missing install button ==<br />
<br />
If the updates deployment feature is not enabled (or if it was disabled at the config.php file), no button to install the update is displayed. If the feature is enabled, the page displaying the list of available updates performs some pre-checks to make sure the deployment will work. If a pre-check fails, a short information with a help pop-up is displayed.<br />
<br />
=== Plugin files not writable ===<br />
<br />
During the deployment, Moodle will replace the whole folder with the plugin code with a new version. The web server process has to have write access to the folder and all its contents. There are several ways how to achieve this, depending on your web server setup and personal preferences. The exact location of the plugin folder depends on the type of the plugin. For a full list of locations see the Moodle path on https://docs.moodle.org/dev/Plugins<br />
<br />
Example: Let us assume your web server is an Apache running at a Linux server as the user ''www-data''. Your Moodle is installed at ''/var/www/vhosts/moodle/htdocs''. You want to give it write access to the folder with your Stamp collection activity module:<br />
<br />
# cd /var/www/vhosts/moodle/htdocs<br />
# cd mod<br />
# chown -R www-data stampcoll<br />
# chmod -R u+w stampcoll<br />
<br />
See also more about [[Installing plugins]].<br />
<br />
=== Can not download the package ===<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
There can also be a problem with the validation of the SSL certificate of the moodle.org site. See [[SSL certificate for moodle.org]] for more info.<br />
<br />
== Errors and exceptions ==<br />
<br />
[[File:mdeploy-exception.png|thumb|left|Error screen during the plugin deployment]]If anything goes wrong during the deployment, please read the error page carefully and copy the error message together with the debugging information for later reference. Also, check the mdeploy.log file. The mdeploy utility logs all the steps into this file located at ''moodledata/mdeploy/mdeploy.log''. The log file usually contains additional details and debugging information describing the reason of the failure.<br />
<br />
When you navigate back from the error screen, always remember to go back up to the screen with the list of available plugins (where you clicked the ''Install this update'' button originally). Just going back to the previous confirmation screen or even reloading the current page will not work as the request would not be authorized any more. Doing so leads to the ''unauthorized_access_exception'' with the message ''Unable to read the passphrase file.''<br />
<br />
The following section describes some errors that may raise and how to deal with them.<br clear="all" /><br />
<br />
=== Unable to download the package (download_file_exception) ===<br />
<br />
Check the bottom of the mdeploy.log file. It will probably contain a line starting with "cURL error" followed by the error number and the cURL error description.<br />
<br />
==== cURL error 7 couldn't connect to host ====<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
==== cURL error 60 SSL certificate problem ====<br />
<br />
This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site when fetching the ZIP package. See [[SSL certificate for moodle.org]] for more info.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Automatic_updates_deployment&diff=102302Automatic updates deployment2012-12-04T14:25:44Z<p>Mudrd8mz: Added info about missing install button</p>
<hr />
<div>{{New features}}[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on Plugins overview and Plugins check pages.<br />
<br />
This functionality requires that [[Notifications|Update notifications]] is enabled at the site.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
As a part of the information about available updates for the site, URL of the ZIP package with the new version of an installed plugin is returned. When ''Install this update'' button is pressed and the the deployment is confirmed at the next page, a standalone utility called ''mdeploy.php'' is executed.<br />
<br />
# The mdeploy utility authorizes the request to make sure you are coming ''exactly'' from the confirmation page displayed in the previous step.<br />
# The ZIP package with the new version is fetched from the [https://moodle.org/plugins Moodle plugins directory].<br />
# A simple integrity check is performed to make sure the ZIP was downloaded correctly.<br />
# The current version of the plugin code is archived into a directory at ''moodledata/mdeploy/archive/'' so you have a backup (just in case you had some local tweaks in the code, for example).<br />
# The current directory with the plugin is removed and replaced with the content of the downloaded ZIP.<br />
# Your browser is redirected to the page where the normal upgrade procedure happens.<br />
<br />
At this moment, you can deploy another available update (if there is such) or perform the upgrade procedure as if you uploaded the ZIP contents to your site manually.<br />
<br />
== Disabling updates deployment ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications, or sites that have their own solution for updates deployment - for example via [[Git for Administrators|Git checkouts]]) it is desirable to not to allow automatic updates deployment. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdateautodeploy = true;<br />
<br />
== Missing install button ==<br />
<br />
If the updates deployment feature is not enabled (or if it was disabled at the config.php file), no button to install the update is displayed. If the feature is enabled, the page displaying the list of available updates performs some pre-checks to make sure the deployment will work. If a pre-check fails, a short information with a help pop-up is displayed.<br />
<br />
=== Plugin files not writable ===<br />
<br />
During the deployment, Moodle will replace the whole folder with the plugin code with a new version. The web server process has to have write access to the folder and all its contents. There are several ways how to achieve this, depending on your web server setup and personal preferences.<br />
<br />
Example: Let us assume your web server is an Apache running at a Linux server as the user ''www-data''. Your Moodle is installed at ''/var/www/vhosts/moodle/htdocs''. You want to give it write access to the folder with your Stamp collection activity module:<br />
<br />
# cd /var/www/vhosts/moodle/htdocs<br />
# cd mod<br />
# chown -R www-data stampcoll<br />
# chmod -R u+w stampcoll<br />
<br />
=== Can not download the package ===<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
There can also be a problem with the validation of the SSL certificate of the moodle.org site. See [[SSL certificate for moodle.org]] for more info.<br />
<br />
== Errors and exceptions ==<br />
<br />
[[File:mdeploy-exception.png|thumb|left|Error screen during the plugin deployment]]If anything goes wrong during the deployment, please read the error page carefully and copy the error message together with the debugging information for later reference. Also, check the mdeploy.log file. The mdeploy utility logs all the steps into this file located at ''moodledata/mdeploy/mdeploy.log''. The log file usually contains additional details and debugging information describing the reason of the failure.<br />
<br />
When you navigate back from the error screen, always remember to go back up to the screen with the list of available plugins (where you clicked the ''Install this update'' button originally). Just going back to the previous confirmation screen or even reloading the current page will not work as the request would not be authorized any more. Doing so leads to the ''unauthorized_access_exception'' with the message ''Unable to read the passphrase file.''<br />
<br />
The following section describes some errors that may raise and how to deal with them.<br clear="all" /><br />
<br />
=== Unable to download the package (download_file_exception) ===<br />
<br />
Check the bottom of the mdeploy.log file. It will probably contain a line starting with "cURL error" followed by the error number and the cURL error description.<br />
<br />
==== cURL error 7 couldn't connect to host ====<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
==== cURL error 60 SSL certificate problem ====<br />
<br />
This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site when fetching the ZIP package. See [[SSL certificate for moodle.org]] for more info.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Automatic_updates_deployment&diff=102301Automatic updates deployment2012-12-04T14:10:53Z<p>Mudrd8mz: Moved the SSL info to a separate page as it is related to other pages, too</p>
<hr />
<div>{{New features}}[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on Plugins overview and Plugins check pages.<br />
<br />
This functionality requires that [[Notifications|Update notifications]] is enabled at the site.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
As a part of the information about available updates for the site, URL of the ZIP package with the new version of an installed plugin is returned. When ''Install this update'' button is pressed and the the deployment is confirmed at the next page, a standalone utility called ''mdeploy.php'' is executed.<br />
<br />
# The mdeploy utility authorizes the request to make sure you are coming ''exactly'' from the confirmation page displayed in the previous step.<br />
# The ZIP package with the new version is fetched from the [https://moodle.org/plugins Moodle plugins directory].<br />
# A simple integrity check is performed to make sure the ZIP was downloaded correctly.<br />
# The current version of the plugin code is archived into a directory at ''moodledata/mdeploy/archive/'' so you have a backup (just in case you had some local tweaks in the code, for example).<br />
# The current directory with the plugin is removed and replaced with the content of the downloaded ZIP.<br />
# Your browser is redirected to the page where the normal upgrade procedure happens.<br />
<br />
At this moment, you can deploy another available update (if there is such) or perform the upgrade procedure as if you uploaded the ZIP contents to your site manually.<br />
<br />
== Disabling updates deployment ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications, or sites that have their own solution for updates deployment - for example via [[Git for Administrators|Git checkouts]]) it is desirable to not to allow automatic updates deployment. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdateautodeploy = true;<br />
<br />
== Errors and exceptions ==<br />
<br />
[[File:mdeploy-exception.png|thumb|left|Error screen during the plugin deployment]]If anything goes wrong during the deployment, please read the error page carefully and copy the error message together with the debugging information for later reference. Also, check the mdeploy.log file. The mdeploy utility logs all the steps into this file located at ''moodledata/mdeploy/mdeploy.log''. The log file usually contains additional details and debugging information describing the reason of the failure.<br />
<br />
When you navigate back from the error screen, always remember to go back up to the screen with the list of available plugins (where you clicked the ''Install this update'' button originally). Just going back to the previous confirmation screen or even reloading the current page will not work as the request would not be authorized any more. Doing so leads to the ''unauthorized_access_exception'' with the message ''Unable to read the passphrase file.''<br />
<br />
The following section describes some errors that may raise and how to deal with them.<br clear="all" /><br />
<br />
=== Unable to download the package (download_file_exception) ===<br />
<br />
Check the bottom of the mdeploy.log file. It will probably contain a line starting with "cURL error" followed by the error number and the cURL error description.<br />
<br />
==== cURL error 7 couldn't connect to host ====<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
==== cURL error 60 SSL certificate problem ====<br />
<br />
This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site when fetching the ZIP package. See [[SSL certificate for moodle.org]] for more info.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=SSL_certificate_for_moodle.org&diff=102300SSL certificate for moodle.org2012-12-04T14:09:45Z<p>Mudrd8mz: Basic information about the SSL certificate and possible problems</p>
<hr />
<div>== Synopsis ==<br />
<br />
Your site may communicate with moodle.org sites - for example when it [[Notifications|checks for available updates]] or when it [[Automatic updates deployment|installs an update]]. This communication is done via the secure HTTPS protocol. Your site validates the SSL certificate of the moodle.org site (such as the [https://moodle.org/plugins Moodle plugins directory]) and verifies its identity. To pass this verification, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed at your server. <br />
<br />
The SSL certificate of moodle.org sites has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA] and signed by their ''DigiCert High Assurance EV Root CA'' certificate.<br />
<br />
== Problem ==<br />
<br />
If this CA certificate is missing, the remote site (moodle.org) can not be verified and your Moodle refuses to fetch the data (to protect you against so called man-in-the-middle attack). The exact location of that certificate at your server depends on the OS type and other settings. At Linux servers it may be typically found at ''/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt'' for example.<br />
<br />
Missing CA certificate causes error when checking for available updates and attempting to install them.<br />
<br />
== Solutions ==<br />
<br />
=== Update your operating system (recommended) ===<br />
<br />
The recommended way to fix this problem is to update your server's operating system so that it contains recent SSL certificates of common certificate authorities. At Debian based distributions, these certificates are distributed in the ''ca-certificates'' package. Gentoo servers provide them via the ''app-misc/ca-certificates'' ebuild. It's also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date at your server.<br />
<br />
=== Provide the CA certificate manually ===<br />
<br />
If updating the operating system is not an option for you and the administrator of the server refuses to update the CA certificates at the server (there's not a good argument for that though), here is a workaround for you. You can download the [https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt DigiCert High Assurance EV Root CA] certificate from [https://www.digicert.com/digicert-root-certificates.htm digicert.com] and put it into your ''moodledata/moodleorgca.crt'' file. If the certificate is found there, Moodle will use it instead of relying on the one provided by the operating system.<br />
<br />
It must be highlighted that you really should get the CA certificate to your server's operating system as described above. The solution based on moodleorgca.crt should be considered as a temporary only.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Installing_add-ons&diff=102299Installing add-ons2012-12-04T13:38:00Z<p>Mudrd8mz: /* Plugin updating from within Moodle */</p>
<hr />
<div>{{Installing Moodle}}<br />
There are optional plugins available that can extend Moodle in all sorts of ways - new activities, new quiz question types, new reports, integrations with other systems and many more. This page gives some important advice you should consider before adding them and general advice on how to install them. <br />
<br />
''You should always look for a 'readme' file or other documentation supplied with the plugin and read that carefully.''<br />
<br />
== Before you do anything else... ==<br />
<br />
'''VERY IMPORTANT:''' Warning: Please be aware that some contributed modules and plugins have not been reviewed, and the quality and/or suitability for your Moodle site has not been checked. Please be careful when considering using one. It may not do what you expect, it may have serious security issues or it may even not work at all.<br />
<br />
* Do you '''really''' need the plugin? More functionality means more things to support, more things to (potentially) go wrong and more things to worry about at upgrade time. <br />
* Is the plugin supported and maintained? If something goes wrong can you get support? Will bugs be fixed?<br />
* If the plugin does not work in a future version of Moodle, what will you do about it?<br />
* Beware of ''patches''! If a plugin modifies or replaces core files then be very careful. It can only be guaranteed to work with the exact build (version) of Moodle it was created for and is highly unlikely to survive a Moodle upgrade.<br />
<br />
=== Moodle requirements ===<br />
<br />
* You must have access to your Moodle code files to upload or install the plugin. If you installed Moodle in the first place then you should be fine. There is no way to install plugins through the web interface.<br />
* Your plugin may impose additional requirements on the server. In particular, plugins to access other systems or services may need specific PHP plugins (e.g. LDAP or other database drivers). Check the documentation.<br />
<br />
==Downloads==<br />
<br />
Contributed plugins may be downloaded from the [http://moodle.org/plugins/ Moodle plugins directory].<br />
<br />
In addition, the [http://moodle.org/mod/data/view.php?id=6009 old Modules and Plugins database] and [http://moodle.org/mod/data/view.php?id=6552 old Themes database] are still available - some plugins have not been moved over.<br />
<br />
'''NOTE:''' Make sure you select the correct version. Most plugins for Moodle 2.0+ will work in all 2.x versions of Moodle. Question Types changed in Moodle 2.1 and require specific plugins for Moodle 2.1+. '''Plugins (and themes) for Moodle 1.9 and earlier will NOT work. There is no point trying!'''<br />
<br />
==Installation==<br />
<br />
First, establish the correct place in the moodle code 'tree' for the plugin. Some plugins need elements installed in multiple locations. To complicate matters not everybody packages up plugins in the same way. It's best to unzip/unpack the plugin in an empty directory first just to see what it looks like and to check for 'readme' files. Common locations are (there are others):<br />
<br />
* /path/to/moodle/mod/ - modules (i.e. activities and resources)<br />
* /path/to/moodle/blocks/ - blocks (in the sidebars)<br />
* /path/to/moodle/question/type/ - questiontypes<br />
* /path/to/moodle/course/format/ - course formats<br />
* /path/to/moodle/admin/report/ - admin reports<br />
* /path/to/moodle/theme/ - themes<br />
<br />
Then:<br />
<br />
# Download the zip file<br />
# Upload or copy it to your Moodle server<br />
# Unzip it in the right place for the plugin type (or follow plugin instructions). <br />
# In your Moodle site (as admin) go to ''Settings > Site administration > Notifications'' (you should, for most plugin types, get a message saying the plugin is installed)<br />
# Test the plugin<br />
<br />
Note: The plugin may contain language files. They'll be found by your Moodle automatically. These language strings can be customized using the standard ''Settings > Site administration > Language'' editing interface.<br />
<br />
===If you have problems...===<br />
<br />
* Check the file permissions. The web server needs to be able to read the plugin files. If the the rest of Moodle works then try to make the plugin permissions and ownership match. <br />
* Did you '''definitely''' unzip or install the block in the correct place?<br />
* Because Moodle scans plugin folders for new plugins you cannot have any other files or folders there. Make sure you deleted the zip file and don't try to rename (for example) an old version of the plugin to some other name - it will break.<br />
* Make sure the directory name for the plugin is correct. All the names '''have''' to match. If you change the name then it won't work.<br />
* Turn on [[Debugging]] - any error messages?<br />
* Ask in the appropriate forum in [http://moodle.org/course/view.php?id=5 Using Moodle] section 3, 'Moodle contrib'. Make sure you describe your system (including versions of MySQL, PHP etc.), what you tried and what happened. Copy and paste error messages exactly. Please provide the '''link''' to the version of the plugin you downloaded (some have very similar names).<br />
<br />
==Uninstalling a plugin==<br />
<br />
To uninstall a plugin<br />
# Go to ''Settings > Site Administration > Plugins > Plugins overview'' and click the Uninstall link opposite the plugin you wish to remove<br />
# Use a file manager to remove/delete the actual plugin directory as instructed, otherwise Moodle will reinstall it next time you access the site administration<br />
<br />
==Plugins overview==<br />
<br />
[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]The Plugins overview page in ''Settings > Site Administration > Plugins > Plugins overview'' lists all installed plugins, together with the version number, availability (enabled or disabled) and settings link (if applicable).<br />
<br />
''Note: The open or closed eye icon indicates whether a plugin is enabled or not. However, this icon is not clickable and you cannot change a plugin's availability from here.''<br />
<br />
A 'Check for available updates' button enables admins to quickly check for any updates available to core code and for any contributed plugins installed on the site (from the [http://moodle.org/plugins plugins directory]). Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.<br />
<br />
===Plugin updating from within Moodle===<br />
<br />
{{New features}}In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on the Plugins overview page. See [[Automatic updates deployment]] for more details.<br />
<br />
==See also==<br />
<br />
*[[Notifications]] for further details of update notifications<br />
*[[Contributed code FAQ]]<br />
*Using Moodle [http://moodle.org/mod/forum/view.php?id=44 Contributed plugins forum]<br />
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=131413 Moodle not installing a new Activity Module] forum discussion<br />
* [[Installing Moodle from Git repository#Installing a contributed extension from its Git repository|Installing a contributed extension from its Git repository]]<br />
<br />
For developers:<br />
<br />
*[[:dev:Category:Plugins|Plugins developer documentation]]<br />
*[[:dev:Plugin validation]]<br />
<br />
[[Category:Contributed code]]<br />
<br />
[[de:Plugins installieren]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Automatic_updates_deployment&diff=102298Automatic updates deployment2012-12-04T13:36:57Z<p>Mudrd8mz: Basic info about the feature and some of errors that may raise</p>
<hr />
<div>{{New features}}[[File:plugins overview.png|thumb|left|Plugins overview highlighting available update with install button]]In Moodle 2.4 onwards, an administrator can enable updates deployment in ''Settings > Site Administration > Server > Update notifications''. Then when updates are available, 'Install this update' buttons are shown on Plugins overview and Plugins check pages.<br />
<br />
This functionality requires that [[Notifications|Update notifications]] is enabled at the site.<br clear="all" /><br />
<br />
== How it works ==<br />
<br />
As a part of the information about available updates for the site, URL of the ZIP package with the new version of an installed plugin is returned. When ''Install this update'' button is pressed and the the deployment is confirmed at the next page, a standalone utility called ''mdeploy.php'' is executed.<br />
<br />
# The mdeploy utility authorizes the request to make sure you are coming ''exactly'' from the confirmation page displayed in the previous step.<br />
# The ZIP package with the new version is fetched from the [https://moodle.org/plugins Moodle plugins directory].<br />
# A simple integrity check is performed to make sure the ZIP was downloaded correctly.<br />
# The current version of the plugin code is archived into a directory at ''moodledata/mdeploy/archive/'' so you have a backup (just in case you had some local tweaks in the code, for example).<br />
# The current directory with the plugin is removed and replaced with the content of the downloaded ZIP.<br />
# Your browser is redirected to the page where the normal upgrade procedure happens.<br />
<br />
At this moment, you can deploy another available update (if there is such) or perform the upgrade procedure as if you uploaded the ZIP contents to your site manually.<br />
<br />
== Disabling updates deployment ==<br />
<br />
In a few circumstances (such as completely managed servers, which may have a lot of local modifications, or sites that have their own solution for updates deployment - for example via [[Git for Administrators|Git checkouts]]) it is desirable to not to allow automatic updates deployment. The feature may be disabled completely by adding the following code to the [[Configuration file|config.php file]]:<br />
<br />
$CFG->disableupdateautodeploy = true;<br />
<br />
== Errors and exceptions ==<br />
<br />
[[File:mdeploy-exception.png|thumb|left|Error screen during the plugin deployment]]If anything goes wrong during the deployment, please read the error page carefully and copy the error message together with the debugging information for later reference. Also, check the mdeploy.log file. The mdeploy utility logs all the steps into this file located at ''moodledata/mdeploy/mdeploy.log''. The log file usually contains additional details and debugging information describing the reason of the failure.<br />
<br />
When you navigate back from the error screen, always remember to go back up to the screen with the list of available plugins (where you clicked the ''Install this update'' button originally). Just going back to the previous confirmation screen or even reloading the current page will not work as the request would not be authorized any more. Doing so leads to the ''unauthorized_access_exception'' with the message ''Unable to read the passphrase file.''<br />
<br />
The following section describes some errors that may raise and how to deal with them.<br clear="all" /><br />
<br />
=== Unable to download the package (download_file_exception) ===<br />
<br />
Check the bottom of the mdeploy.log file. It will probably contain a line starting with "cURL error" followed by the error number and the cURL error description.<br />
<br />
==== cURL error 7 couldn't connect to host ====<br />
<br />
Make sure that the site http://moodle.org/plugins is up and running at the moment. If it is down, your site can't fetch the ZIP packages from it. Wait for the moodle.org site is up again and try to repeat the deployment procedure.<br />
<br />
==== cURL error 60 SSL certificate problem ====<br />
<br />
This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site when fetching the ZIP package.<br />
<br />
ZIP packages are downloaded via the secure HTTPS protocol. The mdeploy utility validates the SSL certificate of the remote site (which is the Moodle plugins directory in this case) and verifies its identity. To make this work, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed at your server. <br />
<br />
The SSL certificate of the Moodle plugins directory has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA] and signed by their ''DigiCert High Assurance EV Root CA'' certificate. If this CA certificate is missing, the remote site can not be verified and the mdeploy utility refuses to download the ZIP (to protect you from so called man-in-the-middle attack). The exact location of that certificate at your server depends on the OS type and other settings. At Linux servers it may be typically found at /usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt for example.<br />
<br />
The recommended way to fix this problem is to update your server's operating system so that it contains recent SSL certificates of common certificate authorities. At Debian based distributions, these certificates are distributed in the ''ca-certificates'' package. Gentoo servers provide them via the ''app-misc/ca-certificates'' ebuild. It's also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date at your server.<br />
<br />
If updating the operating system is not an option for you and the administrator of the server refuses to update the CA certificates at the server (there's not a good argument for that though), here is a workaround for you. You can download the [https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt DigiCert High Assurance EV Root CA] certificate from [https://www.digicert.com/digicert-root-certificates.htm digicert.com] and put it into your ''moodledata/moodleorgca.crt'' file. If the certificate is found there, Moodle will use it instead of relying on the one provided by the operating system.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=File:mdeploy-exception.png&diff=102294File:mdeploy-exception.png2012-12-04T12:45:41Z<p>Mudrd8mz: </p>
<hr />
<div></div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=AMOS&diff=102023AMOS2012-11-20T02:17:31Z<p>Mudrd8mz: /* Using the stage */</p>
<hr />
<div>{{Language}}<br />
'''AMOS stands for Automated Manipulation Of Strings. AMOS is a central repository of Moodle strings and their history. It tracks the addition of English strings into Moodle code, gathers translations, handles common translation tasks and generates language packages to be deployed on Moodle servers.'''<br />
<br />
The name was chosen in honour of [http://en.wikipedia.org/wiki/John_Amos_Comenius John Amos Comenius], the author of ''Janua linguarum reserata'' (Gate to Languages Unlocked). Sorry Tori ;-)<br />
<br />
AMOS is installed at http://lang.moodle.org. If you want to use it, please create an account there. Language pack [[Translation_credits|maintainers]] should then send an email to [mailto:translation@moodle.org translation@moodle.org] (Koen) to get write access for their language.<br />
<br />
AMOS provides support for community contributions into the translation. If you want to participate, just create an account at http://lang.moodle.org. There is no need to contact us in this case but you should definitely contact the language maintainer and coordinate your work.<br />
<br />
== Basic concepts ==<br />
<br />
[[image:amos-screenshot-navigation.png|100px|thumb|right|AMOS tools in the navigation block]]<br />
AMOS consists of several tools available via the main navigation block - Translator, Stage, Stashes, Contributions and Log.<br />
<br />
* User - AMOS is used by languages pack maintainers and by the community members who want to contribute<br />
* Translator - is a tool that allows you to filter strings you want to work on and translate them<br />
* Stage - is a temporary working area that holds the strings you have translated during the current session. Maintainers can permanently commit the stage into the strings repository. Contributors can submit the stage for maintainers.<br />
* Stashes - are snapshots of the stage. Imagine them as ordinary files at your computer where you can save your work. You can submit your stash to the language pack maintainers.<br />
* Contributions - is a database tracking all submitted contributions and their current status. Records in this database are like issues in Moodle tracker with the translated strings attached.<br />
* Repository - a database of all Moodle strings and their history running at lang.moodle.org server<br />
* Log - displays the log of all modifications of Moodle strings.<br />
<br />
== Translation workflow ==<br />
<br />
The following data flow diagram illustrates how AMOS tools are used during the translation process.<br />
<br />
[[image:amos-workflow.png]]<br />
<br />
The key AMOS component is the staging area or shortly the stage. It holds translated strings temporarily during your current login session. If you log out, the stage is cleared (though there is a backup - see below). There are several ways how translations can be staged, that is how translated strings can be put into the stage:<br />
<br />
* by using AMOS translator<br />
* by importing strings from an uploaded file<br />
* by applying a previously created stash<br />
* by applying a submitted contribution<br />
<br />
Language pack maintainers have write access into the AMOS strings repository. Therefore they can commit their stage permanently. Once the stage is committed, staged strings are stored in the AMOS repository. Every hour at xx:45, AMOS generates ZIP packages from the most recent snapshot of the repository. These ZIP packages are published at http://download.moodle.org/langpack/2.0/ for download. Moodle sites can install and update language packages automatically from the ''Site administration > Language > Language packs'' page.<br />
<br />
Community members do not have write access into the repository so they can't commit their stage. Instead, they can submit it to the maintainers. By submitting a stage, a new contribution record is created and language pack maintainers are notified by automatic email message. Maintainers can review the submitted contribution and, if they accept it, commit it on behalf of the contributor.<br />
<br />
The stage can be also saved so you can interrupt your work and continue next time you come back to the site. The stage is saved into so called stashing area. Stashing area consists of stashes. A new stash is nothing but a snapshot copy of your current stage. AMOS automatically keeps one stash for you as a backup copy of your most recent stage. A stash can be submitted to the maintainers, too.<br />
<br />
== AMOS tools ==<br />
<br />
=== Using the translator tool ===<br />
<br />
[[image:amos-screenshot-translator.png|300px|thumb|right|AMOS Translator tool]]<br />
The translator tool page has two main parts. At the top, there is a filter form (1). You use that filter to get the strings you want to translate. When the filter settings are saved (2), a table with the filtered strings is displayed below.<br />
<br />
Every row in the table represents a single string. The table has four columns. The first column (3) describes the version (or branch) where the string is used, its identifier and its component. You can see a text like<br />
<br />
2.0 [completiondate,coursereport_completion]<br />
<br />
That reads: this string is used in Moodle 2.0, its identifier is 'completiondate' and it belongs to 'courserepor_completion' component.<br />
<br />
The second column (4) contains the English original of the string. Below the text, you can see Google icon. Click that icon to get automatic translation of the string into the language being translated. The next column contains a code of the language that this string is being translated to (for example "cs" for Czech).<br />
<br />
Finally the last column contains the translation itself. If it is empty, the string is not translated yet, otherwise it displays the current translation. '''Click in the cell to turn it into the input editor.''' Insert the translation and click outside the cell to stage the translation. Note there is no submit button, the text is sent to the stage automatically in the background. You can see that the colour of the cell turned blue. Blue colour signalizes that the translation is currently staged.<br />
<br />
You have many options of how to use the strings filter. You can work on a single component or all missing strings at once. You can search for strings containing a given text (either in English or the translated string) etc. You can check for strings in older versions, too but those strings are read-only. They get automatically pulled into AMOS from the CVS repository of 1.x translations.<br />
<br />
The 'permalink' below the filter's submit button can be used to keep the current filter settings. For example, you can bookmark a setting use regularly or you can copy the link URL and send it to somebody so they can set their filter just by visiting that URL.<br />
<br />
When you finish translating, do not forget to visit the stage page. You probably want either commit it (if you are a lang pack maintainer) or submit it to maintainers so they can review your work and include it into the language pack.<br />
<br />
=== Using the stage ===<br />
<br />
[[image:amos-screenshot-stage-contrib.png|300px|thumb|right|Strings staged by a contributor]]<br />
The translated strings are put into a temporary area called ''stage'' immediately after the cursor leaves the editor field. The stage holds your work before it is either committed into the repository (if you are language pack maintainer) or submitted to the maintainers for inclusion or stashed.<br />
<br />
The stage is cleared when you logout. You have to explicitly commit or stash the stage so it is saved permanently. If you forget to do it, or there is a problem with the connectivity, your browser crashes or whatever, you can find your most recent snapshot of the stage in autosave stash.<br />
<br />
If you are language pack maintainer, you can commit the stage into the repository so your work is registered and the translated strings become part of the official language package. You can also propagate the strings to other branches by selecting the branches you want the string to go to and hit the propagate button. It is a wise thing to do that, to save work and to keep consistency in the wording over the versions.<br />
<br />
<br />
Updated language packages in ZIP format are published hourly at http://download.moodle.org/langpack/2.4/ - look at the bottom of the page to see the last update. At the same time, they become available for Moodle sites for automatic update.<br />
<br />
The stage can also be used to import strings from files and to merge or compare versions of language packs.<br />
<br />
=== Importing a file ===<br />
<br />
[[image:amos-screenshot-stage-empty.png|300px|thumb|right|Empty stage allows you to import strings from a file]]<br />
Strings can be translated offline and uploaded back to AMOS using the stage page. The only supported format at the moment is common PHP format used by Moodle where strings are defined in associative array called $string. For obvious security reasons, AMOS can not actually execute PHP files uploaded by users. Instead, it parses the uploaded file in a similar way as PHP parser, looking for patterns that are considered as valid string definition. That means that not every valid PHP code is valid string definition. AMOS parser requires following conditions are met:<br />
<br />
* the filename is valid component name used by Moodle, for example moodle.php, enrol_manual.php or workshop.php<br />
* the file is valid PHP code without syntax errors - that means is passes the PHP lint check<br />
* strings are defined as elements of global array $string<br />
* strings are single quoted constants<br />
<br />
Example of a valid file to import into AMOS (filename countries.php, Czech translation)<br />
<br />
<?php<br />
<br />
$string['AE'] = 'Spojené Arabské emiráty';<br />
$string['AF'] = 'Afghánistán';<br />
$string['CH'] = 'Švýcarsko';<br />
$string['HU'] = 'Maďarsko';<br />
<br />
?><br />
<br />
During the import, strings found in the file are added into your stage as if they were translated via web. You can commit them into repository if you have such privilege.<br />
<br />
=== Using stashes ===<br />
<br />
At any moment, you can save a snapshot of the current stage. We call such snapshot a ''stash''. Stashed strings are kept forever until you drop them manually (please do not abuse this and keep your stashes reasonable big). To manage your stash, click on Stashes in the right menu of AMOS. You just see a list of the stashes. There are "peekaboo" buttons that appear when you mouse hoover over the stashes. The stash can be ''applied'' so that the stashed strings are copied back to the stage. What the ''pop'' does is apply and drop (delete) the stash. ''drop'' is like delete. ''submit to maintainer'' opens a form for doing just that.<br />
<br />
There is one special stash record for every user called autosave stash. This stash keeps the most recent state of the stage. You may find it useful if you loose the current stage for any reason - your browser crashes, your internet connectivity dies or you accidentally unstage all strings. If that happens, just apply the autosave stash to get your work back. The autosave stash is updated every time you stage a string. So if your stage is empty and your autosave stash is full of strings and you go into the translator first without applying the stash, the autosave will be replaced with the new translated string. We recommend to experiment a bit with this feature first.<br />
<br />
=== Using the log tool ===<br />
<br />
The Log page allows even anonymous users to search in the history of commits tracked by AMOS. At the top of the page there is a filter that allows you to look for a particular information or report. It is important to realize how the filter actually works. Searching and filtering happens in two steps (this was necessary for performance reasons):<br />
<br />
* Firstly, commit records are searched based on the criteria specified in the Commit filter form. If there are more commits found matching the filter settings, only 100 most recent commits are processed.<br />
* Then, within the commits found, either all string modification records are returned, or you can filter these records, too. Settings in String filter form section are used in that case.<br />
<br />
By default, the filter looks for all commits since the last time you logged in and than displays only strings at the currently translated branch modified by those commits.<br />
<br />
===Language packs and Moodle versions===<br />
<br />
When a new Moodle version is released, it will become the default version on your Amos - Translator page (see tick boxes at the top).<br />
<br />
The suggested work flow is to continue your translation work for the new Moodle version and merge your work in the older versions.<br />
You can do that using the Amos - Stage page: Set the source version to the version you were working in and set the target version to the version you want the strings to be copied to.<br />
<br />
== Contributing to a language pack ==<br />
<br />
AMOS allows community members to help with the translation of Moodle strings. AMOS Contributions page tracks all submitted translations and their current status. Before you start working on a translation, please communicate with the language pack maintainer (to be found on https://docs.moodle.org/en/Translation_credits).<br />
<br />
=== Steps for the contributor ===<br />
<br />
[[image:amos-screenshot-contribution-new.png|300px|thumb|right|Submitting a contribution form]]<br />
# Contact the language pack maintainer about your intention to contribute to the language pack<br />
# Use AMOS translator interface to translate missing strings or amend the current translation<br />
# Go to the Stage page<br />
# Click 'Submit to maintainers' button<br />
# At 'Submitting a contribution' page, please provide a message for maintainers describing your work and why you would like to see your contribution included. You can cancel the submission at this moment yet. If you are sure, click 'Submit to maintainers'.<br />
# Your stage will submitted into the contributions database. If there were more languages affected by your contribution, the stage will be divided into separate contribution records, one per each language. The language pack maintainers will be notified by email about your new contribution.<br />
# Language pack maintainers will be able to apply your work into their stage, review it and eventually commit. You will receive automatically generated email when the status of contribution changes (typically when a maintainer starts a review of your work and then when they accept or reject it).<br />
# Use contribution record comments for further communication with the maintainer about the submitted translation.<br />
<br />
=== Steps for the maintainer, making own contributions===<br />
<br />
# Use AMOS translator interface to translate missing strings or amend the current translation<br />
# Go to the Stage page<br />
# Make a meaningful comment about your work in the 'Commit message' form<br />
# Click on 'Commit' <br />
<br />
=== Steps for the maintainer, approving users contributions===<br />
<br />
[[image:amos-screenshot-contribution-details.png|300px|thumb|right|Contribution details page]]<br />
# When a user submits new contribution, you will receive automatically generated email from AMOS<br />
# Go to the Contributions page to see a list of all new incoming contributions. Click the link in the table to open the contribution details page<br />
# Press 'Start review' button. That will assign the contribution to yourself, change the status from 'New' to 'In review', send automatically generated email to the contributor and will copy the submitted strings into your stage. You should check that your stage is empty before you apply the submitted strings, unless you want to merge several contributions into one commit.<br />
# Review the submitted strings, eventually edit them. Commit the stage. It is nice to mention the contributor's name in the commit message and attribute the original authorship to them.<br />
# Go back to the contribution record and change the status to Accepted or Rejected. Automatically generated email will be sent to the contributor whenever you change the status.<br />
# Use contribution record comments for further communication with the contributor about the submitted translation.<br />
# Accepted and Rejected contributions are not shown at the contributions page unless you press 'Show resolved contributions' button.<br />
<br />
==Suggesting improvements to English language strings==<br />
<br />
Suggested fixes for typos or misspellings and any other suggested improvements to English language strings may be submitted via AMOS by contributing them to the English (fixes) (en_fix) language pack (as described above in 'Contributing to a language pack'). They will then be reviewed and implemented in the English (en) language pack.<br />
<br />
== See also ==<br />
<br />
* [[Translation]] for more information about the process of Moodle 2.x translation<br />
* [[Development:Languages/AMOS]] for the AMOS internals documentation<br />
* [http://www.youtube.com/watch?v=JtY5zvEHnQ8 Accepting submissions] Instruction video for language pack maintainers<br />
* [http://www.youtube.com/watch?v=XClUZOuFfWo Contributing to a language pack] Instruction video for language pack contributors<br />
* [http://www.youtube.com/watch?v=xT2-ElTaH6M Changing the default language] Instruction video on how to change your default language<br />
<br />
[[fr:AMOS]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Random_Short-Answer_Matching_question_type&diff=101461Random Short-Answer Matching question type2012-10-22T08:41:52Z<p>Mudrd8mz: Fixed the link so it works now</p>
<hr />
<div>{{Questions}}Note: The Random Short-Answer Matching question type was previously a standard question type but was removed from core in Moodle 2.1 and is not available. See its [http://tracker.moodle.org/browse/MDL-27414 tracker entry].<br />
<br />
[[Category:Contributed code]]<br />
<br />
[[fr:Question à réponses aléatoires]]<br />
[[ja:ランダム記述組み合わせ問題タイプ]]<br />
[[de:Zufällige Kurzantwort-Zuordnung]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Stamp_collection_module&diff=100637Stamp collection module2012-09-21T18:03:23Z<p>Mudrd8mz: 2.0 installation instructions</p>
<hr />
<div>{{Activities}}<br />
{{Infobox plugin<br />
|type = Activity module<br />
|entry = http://moodle.org/plugins/view.php?plugin=mod_stampcoll<br />
|discussion = http://moodle.org/mod/forum/view.php?id=7175<br />
|maintainer = [[User:David Mudrak|David Mudrak]]<br />
}}<br />
<br />
By default, the module allows a teacher to give "stamps" (i.e. picture with a comment) to students so they collect these stamps. The activity can be used in many ways, such as motivative bonus marks, absence marks,<br />
certification records etc. <br />
<br />
The module uses capabilities to declare who can e.g. collect stamps or give stamps. Therefore, student can be allowed to give stamps to other students, the stamps may be given to teachers etc. Teachers can setup the module to show all stamps to all students, to show stamps only to the individual student to whom it was awarded or to hide stamps completely.<br />
<br />
The module was created and is currently maintained by [[User:David Mudrak|David Mudrak]].<br />
<br />
==Installation==<br />
<br />
* Moodle 2.x - see the instructions at the [http://moodle.org/plugins/view.php?plugin=mod_stampcoll plugin entry] in the Plugins directory.<br />
* Moodle 1.9 - checkout [[CVS for Administrators|CVS]] branch MOODLE_19_STABLE or download [http://download.moodle.org/plugins19/mod/stampcoll.zip 1.9 build]<br />
* Moodle 1.8 - checkout [[CVS for Administrators|CVS]] branch MOODLE_18_STABLE or download [http://download.moodle.org/plugins18/mod/stampcoll.zip 1.8 build]<br />
* Moodle 1.7 - is not supported nor tested. Maybe it works, maybe not. It was reported that the version for 1.6 worked in Moodle 1.7<br />
* Moodle 1.6 - checkout [[CVS for Administrators|CVS]] branch MOODLE_16_STABLE or download [http://download.moodle.org/plugins16/mod/stampcoll.zip 1.6 build]<br />
* Earlier version are not supported<br />
<br />
The source code for Moodle 1.x live in [[CVS for Administrators|CVS]] [http://cvs.moodle.org/contrib/plugins/mod/stampcoll/ contrib/plugins/mod/stampcoll].<br />
<br />
To checkout the current stable version for Moodle 1.9:<br />
cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co -d stampcoll -r MOODLE_19_STABLE contrib/plugins/mod/stampcoll<br />
<br />
Since Moodle 2.0, the source code is managed using Git. The official public repository of the plugin is at http://github.com/mudrd8mz/moodle-mod_stampcoll<br />
<br />
==How to report a bug==<br />
<br />
Please, use [[Tracker]]. Stamp collection if one of the components in "Non-core contributed modules" project. See the list of tracked issues at http://tracker.moodle.org/browse/CONTRIB/component/10271<br />
<br />
==Capabilities==<br />
<br />
Roles and capabilities are supported since the version for Moodle 1.9. During the upgrade, the module settings "Publish" and "Teacher can collect stamps" are converted automatically into the role overrides.<br />
<br />
{| cellpadding="3" cellspacing="0" border="1"<br />
!Capability<br />
!Description<br />
!Status<br />
|-<br />
|mod/stampcoll:collectstamps <br />
|a user can be given a stamp<br />
|implemented in 1.9<br />
|-<br />
|mod/stampcoll:givestamps<br />
|a user can give a stamp from her own pool (and the collection pool) to the other user<br />
|partially implemented in 1.9 (the pools not supported yet)<br />
|-<br />
|mod/stampcoll:viewotherstamps<br />
|a user can view stamps given to other users<br />
|implemented in 1.9<br />
|-<br />
|mod/stampcoll:viewownstamps<br />
|a user can view stamps given to her<br />
|implemented in 1.9<br />
|-<br />
|mod/stampcoll:managestamps<br />
|a user can do anything with stamps, i.e. give, remove and update them<br />
|implemented in 1.9<br />
|}<br />
<br />
==Feature ideas and requests==<br />
<br />
''Note: This section will be moved to the tracker feature reguests.''<br />
<br />
===Stamps pools (banks?)===<br />
There might be settings of a maximum number of stamps given in one collection (so called collection pool), given by a user (personal pool) and given to a user. All these limits can be combined (logical AND). Then there might be statistics like percentual/total number given from the collection/personal pool, the number of available (unassigned, free) stamps in pools etc.<br />
<br />
Another scenario: you have student teams. You allow team leaders to give stamp (via [[capability]]) and set a limited number of stamp they can give. Team leader can dispatch stamps from his/her pool to team members according to their contribution.<br />
<br />
===Grade based on the number of stamps collected===<br />
When the feature of maximum number of stamps that can be collected within particular collection is implemented, it is possible to compute the grade based on the number of stamps collected.<br />
<br />
===Ranking===<br />
Similar to overall feedback in the [[Quiz module]], provide a possibility to map a number of collected stamp to a rank (letter or word "grade"). E.g. no stamps collected => Novice, 1 stamp collected => Beginner, 2 stamps collected => Advanced user, 3 stamps collected => Expert.<br />
<br />
===Forum patch===<br />
The [[patch]] adding a possibility to tie a stamp collection with a [[Forum module]]. Display similar selection box as for forum grading and allow adding stamp for a forum post.<br />
<br />
===Ajax support===<br />
Give stamps by drag and drop from the pool (bank) to a user. <br />
<br />
===Site level settings===<br />
The list of URLs to default stamp images (e.g. to some files at frontpage files section etc.)<br />
<br />
===Exports===<br />
* text, CVS and Excel support<br />
<br />
===Group mode stamp awarding===<br />
A handy way to organize group competitions. Teachers should be able to award stamps for contributions (typically, forum posts and chat participation but other ideas are welcome too). Such stamps would be attributed not to the person who contributed but to his/her team and be accumulated by teams for later evaluation.<br />
<br />
David's note: Or, keep collecting stamps by individuals but display them in per-group (or grouping?) report. Simply sum all stamps collected by student in a given group and display them.<br />
<br />
==See also==<br />
<br />
* [http://moodle.org/mod/data/view.php?rid=1338 The module record in Modules and plugins database]<br />
* [http://moodle.org/mod/forum/view.php?id=7175 The module forum in Using Moodle at moodle.org]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Talk:Email_processing&diff=99792Talk:Email processing2012-08-03T13:49:39Z<p>Mudrd8mz: </p>
<hr />
<div>Do we really need this page? It seems a mixture of information, some of which is very old and some is for developers and thus better in the developer documentation. --[[User:Helen Foster|Helen Foster]] 00:54, 31 January 2012 (WST)<br />
<br />
Correct, this should go to DEV and also be marked as Obsolete. Note that I started work on MDL-34732 which will address this, too. --[[User:David Mudrak|David Mudrak]] 21:49, 3 August 2012 (WST)</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Talk:Email_processing&diff=99791Talk:Email processing2012-08-03T13:49:08Z<p>Mudrd8mz: </p>
<hr />
<div>Do we really need this page? It seems a mixture of information, some of which is very old and some is for developers and thus better in the developer documentation. --[[User:Helen Foster|Helen Foster]] 00:54, 31 January 2012 (WST)<br />
<br />
Correct, this should go to DEV and also be marked as Obsolete. Note that I started work on MDL-34732 which will address this, too.</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Administration_via_command_line&diff=99686Administration via command line2012-07-31T11:31:16Z<p>Mudrd8mz: /* Upgrading via command line */</p>
<hr />
<div>{{Installing Moodle}}<br />
If you have shell access to your web server, you may find various CLI (command line interface) scripts useful during Moodle administration. Core admin CLI tools are located in the <code>admin/cli/*</code> folder. Other plugins provide their CLI functionality via scripts in their own cli folder. For example, the enrol_db sync script is located in <code>enrol/db/cli/</code>.<br />
<br />
To avoid problems with access control, you should run them as the owner of the web server process. It is especially important for CLI installation and upgrade as they create new files in moodledata directory and the web server has to have write access to them. In Linux distributions, the user that runs the web server is usually apache or wwrun or httpd or something similar. As a root, you will probably want to execute Moodle CLI scripts like this:<br />
<br />
$ cd /path/to/your/moodle/dir<br />
$ sudo -u apache /usr/bin/php admin/cli/somescript.php --params<br />
<br />
Most of the scripts accept common --help (or -h) parameter to display the full usage information, for example:<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/install.php --help<br />
<br />
== Upgrading via command line ==<br />
<br />
Moodle can be upgraded from the command line. As with the installation script, there is either interactive or non-interactive mode of the upgrade. The script itself does not put the site into the maintenance mode, you have to do it on your own. Also, the script does not backup any data (if you read this page, you probably have some own scripts to backup your moodledata and the database, right?)<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/upgrade.php<br />
<br />
Upgrading via command line is a very comfortable way of Moodle upgrade if you use Git checkout of the Moodle source code (see [[Git for Administrators]]). See the following procedure how to upgrade your site within several seconds to the most recent version while preserving your eventual local customizations tracked in git repository:<br />
<br />
$ cd /var/www/sites/moodle/htdocs/<br />
$ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable<br />
$ git pull<br />
$ sudo -u apache /usr/bin/php admin/cli/upgrade.php<br />
$ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable<br />
<br />
== Installation via command line ==<br />
<br />
Since version 2.0, Moodle can be installed from the command line. There are two modes of installation. In interactive mode, the install script asks you for all data needed to properly set up new Moodle site. In non-interactive mode, you must provide all required data as the script parameters and then the new site is installed silently. The parameters can be passed in the interactive mode, too. The provided values are then used as the default values during the interactive session.<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs<br />
<br />
== Maintenance mode ==<br />
<br />
To switch your site into the maintenance mode via CLI, you can use<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable<br />
<br />
To turn the maintenance mode off, just execute the same script with --disable parameter.<br />
<br />
== Offline mode ==<br />
<br />
In some situations, you may want to switch your Moodle site into offline mode so that it is not accessible via the web but you can not stop the web server completely (typically because there are other web pages and applications running there). If a file called <code>climaintenance.html</code> exists in the root folder of moodledata directory, Moodle will automatically display the contents of that file instead of any other page.<br />
<br />
$ cd /var/www/sites/moodle/moodledata/<br />
$ echo '&lt;h1&gt;Sorry, maintenance in progress&lt;/h1&gt;' &gt; climaintenance.html<br />
<br />
You can prepare a nice formatted HTML page to inform your users about the server being down and keep in the moodledata directory under a name like <code>climaintenance.off</code> and rename it to the <code>climaintenance.html</code> if needed.<br />
<br />
== Custom site defaults ==<br />
<br />
During the install and upgrade via CLI, Moodle sets the administration variables to the default values. You can use different defaults. See MDL-17850 for details. Shortly, all you need to do is to add a file <code>local/defaults.php</code> into your Moodle installation. The format of the file is like<br />
<br />
<code php><br />
<?php<br />
$defaults['pluginname']['settingname'] = 'settingvalue'; // for plugins<br />
$defaults['moodle']['settingname'] = 'settingvalue'; // for core settings<br />
</code><br />
<br />
These defaults are used during install, upgrade and are also displayed as defaults at the Site administration pages.<br />
<br />
== Reset user password ==<br />
<br />
If you happen to forget your admin password (or you want to set a password for any other user of your Moodle system), you can use reset_password.php script. The script sets the correctly salted password for the given user.<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/reset_password.php<br />
<br />
== MySQL storage engine conversion ==<br />
<br />
If you run your Moodle site with MySQL database backend and use the default MyISAM as the storage engine for your tables, you may want to convert them to use some more reliable engine like InnoDB (actually, you should want to switch to PostgreSQL ;-) anyway).<br />
<br />
$ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB<br />
<br />
== Running cron via command line ==<br />
<br />
In versions 1.x, you could execute admin/cron.php either from command line or via the web. Since Moodle 2.0, only admin/cli/cron.php script can be run via command line.<br />
<br />
==Database transfer==<br />
<br />
A command line script for [[Database transfer]] may be found in ''admin/tool/dbtransfer/cli/migrate.php''. <br />
<br />
[[fr:Administration en ligne de commande]]<br />
[[de:Administration über Kommandozeile]]<br />
[[ja:コマンドライン経由の管理]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Talk:Assignment_upgrade_tool&diff=99291Talk:Assignment upgrade tool2012-07-18T08:17:20Z<p>Mudrd8mz: </p>
<hr />
<div>Wouldn't [[Assignment upgrade tool]] be a better name of this page? --[[User:David Mudrak|David Mudrak]] 02:33, 18 July 2012 (WST)<br />
<br />
I notice the page [[Assignment upgrade tool]] redirects to here. Maybe it is because Upgrade tool is shorter in terms of the assignment template? --[[User:Mary Cooch|Mary Cooch]] 05:43, 18 July 2012 (WST)<br />
<br />
Well yes, it's shorter. But imho it's conceptually wrong. In my mind, the "Upgrade tool" page would describe some general tool in Moodle used for/during upgrade. It's like if the page "Upgrade" described just how to upgrade the assignment from 2.2 to 2.3. Anyway, it's a thought. Thanks for all the great job you do in docs! --[[User:David Mudrak|David Mudrak]] 16:17, 18 July 2012 (WST)</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Talk:Assignment_upgrade_tool&diff=99285Talk:Assignment upgrade tool2012-07-17T18:33:45Z<p>Mudrd8mz: Created page with "Wouldn't Assignment upgrade tool be a better name of this page? --~~~~"</p>
<hr />
<div>Wouldn't [[Assignment upgrade tool]] be a better name of this page? --[[User:David Mudrak|David Mudrak]] 02:33, 18 July 2012 (WST)</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Restoring_file_aliases&diff=99152Restoring file aliases2012-07-13T12:28:28Z<p>Mudrd8mz: </p>
<hr />
<div>{{Reusing activities}}<br />
<br />
Since Moodle 2.3, course and activity backup files can contain ''aliases'' - i.e. special files that behave as a reference or a link to another file. The referenced file can be an external file (such as one stored at Dropbox) or a file stored in Moodle (such as a file in other activity/course or in some user's Private files area).<br />
<br />
During the restore process, Moodle does its best to try and restore the aliases correctly. However, there are many factors involved, most notably:<br />
<br />
* Is the restore happening at the same site the backup comes from?<br />
* What repository type was used to create the alias in the original course? In other words, what is the location of the referenced file.<br />
* Is the referenced file an external file?<br />
* Does the backup file contain the referenced file and if so, is that file selected to be restored, too?<br />
<br />
In some situations, aliases just can't be restored safely and are skipped.<br />
<br />
The following flowchart documents the implemented behaviour.<br />
<br />
[[Image:file-aliases-restore-flowchart.png|left|thumb|File aliases restore flowchart]]<br />
<br clear="all" /><br />
<br />
Note that this logic is applied whenever the restore process is executed. Apart from the obvious case of restoring an MBZ file, the backup and restore is also involved in<br />
<br />
* [[Import course data|importing course data]] from another course<br />
* [[Course homepage#Editing elements on your course homepage|duplicating an activity]] in a course using the x2 icon<br />
* deploying a community course via the [[Community finder block]]<br />
<br />
==See also==<br />
<br />
* MDL-33430</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Restoring_file_aliases&diff=99151Restoring file aliases2012-07-13T12:27:45Z<p>Mudrd8mz: </p>
<hr />
<div>{{Reusing activities}}<br />
<br />
Since Moodle 2.3, course and activity backup files can contain ''aliases'' - i.e. special files that behave as a reference or a link to another file. The referenced file can be an external file (such as one stored at Dropbox) or a file stored in Moodle (such as a file in other activity/course or in some user's Private files area).<br />
<br />
During the restore process, Moodle does its best to try and restore the aliases correctly. However, there are many factors involved, most notably:<br />
<br />
* Is the restore happening at the same site the backup comes from?<br />
* What repository type was used to create the alias in the original course? In other words, what is the location of the referenced file.<br />
* Is the referenced file an external file?<br />
* Does the backup file contain the referenced file and if so, is that file selected to be restored, too?<br />
<br />
In some situations, aliases just can't be restored safely and are skipped.<br />
<br />
The following flowchart documents the implemented behaviour.<br />
<br />
[[Image:file-aliases-restore-flowchart.png|left|thumb|File aliases restore flowchart]]<br />
<br clear="all" /><br />
<br />
Note that this logic is applied whenever the restore process is executed. Apart from the obvious case of restoring an MBZ file, the backup and restore is also involved in<br />
<br />
* [[Import course data|importing course data]] from another course<br />
* [[Course homepage#Editing elements on your course homepage|duplicating an activity]] in a course using the x2 icon<br />
* deploying a community course via the [[Community finder block]]<br />
<br />
==See also==<br />
<br />
* MDL-33430<br />
{{stub}}</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Restoring_file_aliases&diff=99150Restoring file aliases2012-07-13T12:27:02Z<p>Mudrd8mz: </p>
<hr />
<div>{{Reusing activities}}<br />
<br />
Since Moodle 2.3, course and activity backup files can contain ''aliases'' - i.e. special files that behave as a reference or a link to another file. The referenced file can be an external file (such as one stored at Dropbox) or a file stored in Moodle (such as a file in other activity/course or in some user's Private files area).<br />
<br />
During the restore process, Moodle does its best to try and restore the aliases correctly. However, there are many factors involved, most notably:<br />
<br />
* Does the restore happens at the same site the backup comes from?<br />
* What repository type was used to create the alias in the original course? In other words, what is the location of the referenced file.<br />
* Is the referenced file an external file?<br />
* Does the backup file contain the referenced file and if so, is that file selected to be restored, too?<br />
<br />
In some situations, aliases just can't be restored safely and are skipped.<br />
<br />
The following flowchart documents the implemented behaviour.<br />
<br />
[[Image:file-aliases-restore-flowchart.png|left|thumb|File aliases restore flowchart]]<br />
<br clear="all" /><br />
<br />
Note that this logic is applied whenever the restore process is executed. Apart from the obvious case of restoring an MBZ file, the backup and restore is also involved in<br />
<br />
* [[Import course data|importing course data]] from another course<br />
* [[Course homepage#Editing elements on your course homepage|duplicating an activity]] in a course using the x2 icon<br />
* deploying a community course via the [[Community finder block]]<br />
<br />
==See also==<br />
<br />
* MDL-33430<br />
{{stub}}</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Restoring_file_aliases&diff=99149Restoring file aliases2012-07-13T12:19:26Z<p>Mudrd8mz: </p>
<hr />
<div>{{Reusing activities}}<br />
<br />
Since Moodle 2.3, course and activity backup files can contain ''aliases'' - i.e. special files that behave as a reference or a link to another file. The referenced file can be an external file (such as one stored at Dropbox) or a file stored in Moodle (such as a file in other activity/course or in some user's Private files area).<br />
<br />
During the restore process, Moodle does its best to try and restore the aliases correctly. However, there are many factors involved depending on the type of restore, the location of the referenced file etc.). In some situations, aliases just can't be restored safely and are skipped.<br />
<br />
The following flowchart documents the implemented behaviour.<br />
<br />
[[Image:file-aliases-restore-flowchart.png|left|thumb|File aliases restore flowchart]]<br />
<br clear="all" /><br />
<br />
Note that this logic is applied whenever the restore process is executed. Apart from the obvious case of restoring an MBZ file, the backup and restore is also involved in<br />
<br />
* [[Import course data|importing course data]] from another course<br />
* [[Course homepage#Editing elements on your course homepage|duplicating an activity]] in a course using the x2 icon<br />
* deploying a community course via the [[Community finder block]]<br />
<br />
==See also==<br />
<br />
* MDL-33430<br />
{{stub}}</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Restoring_file_aliases&diff=99148Restoring file aliases2012-07-13T12:17:55Z<p>Mudrd8mz: Added the info and the flowchart</p>
<hr />
<div>{{Reusing activities}}<br />
<br />
Since Moodle 2.3, course and activity backup files can contain ''aliases'' - i.e. special files that behave as a reference or a link to another file. The referenced file can be an external file (such as one stored at Dropbox) or a file stored in Moodle (such as a file in other activity/course or in some user's Private files area).<br />
<br />
During the restore process, Moodle does its best to try and restore the aliases correctly. However, there are many factors involved depending on the type of restore, the location of the referenced file etc.). The following flowchart documents the implemented behaviour.<br />
<br />
[[Image:file-aliases-restore-flowchart.png|left|thumb|File aliases restore flowchart]]<br />
<br clear="all" /><br />
<br />
Note that this logic is applied whenever the restore process is executed. Apart from the obvious case of restoring an MBZ file, the backup and restore is also involved in<br />
<br />
* [[Import course data|importing course data]] from another course<br />
* [[Course homepage#Editing elements on your course homepage|duplicating an activity]] in a course using the x2 icon<br />
* deploying a community course via the [[Community finder block]]<br />
<br />
==See also==<br />
<br />
* MDL-33430<br />
{{stub}}</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=File:file-aliases-restore-flowchart.png&diff=99147File:file-aliases-restore-flowchart.png2012-07-13T12:04:45Z<p>Mudrd8mz: </p>
<hr />
<div></div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Performance_recommendations&diff=99112Performance recommendations2012-07-11T14:07:42Z<p>Mudrd8mz: /* PostgreSQL performance */ added link to Tuning Your PostgreSQL Server page</p>
<hr />
<div>{{Performance}}<br />
Moodle can be made to perform very well, at small usage levels or scaling up to many thousands of users. The factors involved in performance are basically the same as for any PHP-based database-driven system. When trying to optimize your server, try to focus on the factor which will make the most difference to the user. For example, if you have relatively more users browsing than accessing the database, look to improve the webserver performance.<br />
<br />
<br />
==Obtain a baseline benchmark==<br />
<br />
Before attempting any optimization, you should obtain a baseline benchmark of the component of the system you are trying to improve. For Linux try [http://lbs.sourceforge.net/ LBS] and for Windows use the Performance Monitor. Once you have quantitative data about how your system is performing currently, you'll be able to determine if the change you have made has had any real impact.<br />
<br />
The overall aim of adjustments to improve performance is to use RAM (cacheing) and to reduce disk-based activity. It is especially important to try to eliminate swap file usage as much as you can. If your system starts swapping, this is a sign that you need more RAM. <br />
<br />
The '''optimization order preference''' is usually: primary storage (more RAM), secondary storage (faster hard disks/improved hard disk configuration), processor (more and faster).<br />
<br />
==Scalability==<br />
<br />
Moodle's design (with clear separation of application layers) allows for strongly scalable setups. (Please check the list of [[Large installations|large Moodle installations]].)<br />
<br />
Large sites usually separate the web server and database onto separate servers, although for smaller installations this is typically not necessary.<br />
<br />
It is possible to load-balance a Moodle installation, for example by using more than one webserver. The separate webservers should query the same database and refer to the same filestore area, but otherwise the separation of the application layers is complete enough to make this kind of clustering feasible. Similarly, the database could be a cluster of servers (e.g. a MySQL cluster), but this is not an easy task and you should seek expert support, e.g. from a Moodle Partner.<br />
<br />
===Server cluster===<br />
<br />
Using Moodle forum discussions:<br />
<br />
*[http://moodle.org/mod/forum/discuss.php?d=57202 Moodle clustering]<br />
*[http://moodle.org/mod/forum/discuss.php?d=44470 Software load balancing]<br />
*[http://moodle.org/mod/forum/discuss.php?d=49986 TCP load balancing]<br />
*[http://moodle.org/mod/forum/discuss.php?d=88214 Installation for 3000 simultaneous users]<br />
<br />
==Hardware configuration==<br />
'''Note''': The fastest and most effective change that you can make to improve performance is to '''increase the amount of RAM on your web server''' - get as much as possible (e.g. 4GB or more). Increasing primary memory will reduce the need for processes to swap to disk and will enable your server to handle more users.<br />
* Better performance is gained by obtaining the best '''processor capability''' you can, i.e. dual or dual core processors. A modern BIOS should allow you to enable hyperthreading, but check if this makes a difference to the overall performance of the processors by using a [http://en.wikipedia.org/wiki/Super_PI CPU benchmarking tool].<br />
* If you can afford them, use '''SCSI hard disks''' instead of SATA drives. SATA drives will increase your system's CPU utilization, whereas SCSI drives have their own integrated processors and come into their own when you have multiple drives. If you must have SATA drives, check that your motherboard and the drives themselves support NCQ (Native Command Queuing).<br />
* Purchase hard disks with a '''low seek time'''. This will improve the overall speed of your system, especially when accessing Moodle's reports.<br />
* Size your '''swap file''' correctly. The general advice is to set it to 4 x physical RAM.<br />
* Use a '''RAID disk system'''. Although there are many different RAID configurations you can create, the following generally works best:<br />
** install a hardware RAID controller (if you can)<br />
** the operating system and swap drive on one set of disks configured as RAID-1.<br />
** Moodle, Web server and Database server on another set of disks configured as RAID-5.<br />
* Use '''gigabit ethernet''' for improved latency and throughput. This is especially important when you have your webserver and database server separated out on different hosts.<br />
* Check the settings on your '''network card'''. You may get an improvement in performance by increasing the use of buffers and transmit/receive descriptors (balance this with processor and memory overheads) and off-loading TCP checksum calculation onto the card instead of the OS.<br />
* Read this [http://moodle.org/mod/forum/discuss.php?d=68579 Case Study] on a server stress test with 300 users. <br />
* See this [http://elearning.sgu.ac.jp/doc/PT/ accompanying report] on network traffic and server loads.<br />
* See the [[Moodle.org configuration]]<br />
* Also see this SFSU presentation at Educause (using VMWare): [http://www.educause.edu/Resources/AnOpenSourceLMSforaMissionCrit/162843]<br />
<br />
==Operating System==<br />
* You can use [http://en.wikipedia.org/wiki/Linux Linux](recommended), Unix-based, Windows or Mac OS X for the server '''operating system'''. *nix operating systems generally require less memory than Mac OS X or Windows servers for doing the same task as the server is configured with just a shell interface. Additionally Linux does not have licensing fees attached, but can have a big learning curve if you're used to another operating system. If you have a large number of processors running SMP, you may also want to consider using a highly tuned OS such as [http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris].<br />
* Check your own OS and '''vendor specific instructions''' for optimization steps.<br />
** For Linux look at the [http://linuxperf.sourceforge.net/ Linux Performance Team] site. <br />
** For Linux investigate the hdparm command, e.g. hdparm -m16 -d1 can be used to enable read/write on multiple sectors and DMA. Mount disks with the async and noatime options.<br />
** For Windows set the sever to be optimized for network applications (Control Panel, Network Connections, LAN connection, Properties, File & Printer Sharing for Microsoft Networks, Properties, Optimization). You can also search the [http://technet.microsoft.com/ Microsoft TechNet site] for optimization documents.<br />
<br />
==Web server performance==<br />
<br />
Installing [http://www.mozilla.com/en-US/ Firefox] and the [https://addons.mozilla.org/en-US/firefox/addon/1843 firebug] extension will allow you to watch the time it takes for each page component to load. Also, the [https://addons.mozilla.org/en-US/firefox/addon/5369 Yslow] extension will evaluate your page against Yahoo's [http://www.skrenta.com/2007/05/14_rules_for_fast_web_pages_by_1.html 14 rules], full text [http://developer.yahoo.com/performance/rules.html Best Practices for Speeding Up Your Web Site], <strike>([http://video.yahoo.com/video/play?vid=1040890 video])</strike> for fast loading websites.<br />
<br />
===PHP performance===<br />
* You are strongly recommended to use a '''PHP accelerator''' to ease CPU load, such as [http://pecl.php.net/apc APC], [http://www.php-accelerator.co.uk/ PHPA], [http://trac.lighttpd.net/xcache/ Xcache], [http://sourceforge.net/projects/wincache WinCache] or [http://eaccelerator.net/ eAccelerator]. (Take care to choose a PHP accelerator that is known to work well with your version of PHP and note that Turck MMCache is [http://turckmmcache.exeprod.com/TheManifestoEnglish no longer maintained] and can cause failures with PHP 5). <br />
* Improvements in read/write performance can be improved by putting the cached PHP pages on a [[TMPFS]] filesystem - but remember that you'll lose the cache contents when there is a power failure or the server is rebooted.<br />
* Performance of PHP is better when installed as an '''Apache/IIS ISAPI module''' (rather than a CGI).<br />
* Also check the '''memory_limit''' in php.ini, reduce it to 16M for Moodle version earlier than 1.7 ([http://moodle.org/mod/forum/discuss.php?d=39656 See this forum discussion]). For Moodle 1.7 or later, it is recommended that the value of memory_limit should be 40M. As of [http://www.php.net/ChangeLog-5.php PHP 5.2.1] the default value for the memory_limit directive is 128M.<br />
* Also see [[PHP_settings_by_Moodle_version]]<br />
<br />
===Install HowTo===<br />
* [http://2bits.com/articles/installing-php-apc-gnulinux-centos-5.html APC on CentOS 5.x (linux)]<br />
* [http://fplanque.com/dev/linux/install-apc-php-cache-debian-lenny APC on Debian (linux)]<br />
* [http://www.linuxtuts.net/211-installing-memcached-php5-memcache-module-debian-apache2.html MemCache module on Debian (Apache2 and PHP5) ]<br />
* [http://noveckg.blogspot.com/2010/03/installing-memcached-on-centos-5x.html Installing Memcache on CentOS 5.x (linux)]<br />
* [http://noveckg.blogspot.com/2010/02/installing-eaccelerator-cache-for-php.html Installing eAccelerator on CentOS 5.x (linux)]<br />
* [https://docs.moodle.org/en/Installing_eAccelerator_In_Ubuntu_Server/ Installing eAccelerator on Ubuntu Server (linux)]<br />
<br />
===Apache performance===<br />
* If you are using Apache on a Windows server, use the build from [http://www.apachelounge.com Apache Lounge] which is reported to have [http://moodle.org/mod/forum/discuss.php?d=93358 performance and stability improvements] compared to the official Apache download. Note that this is an unofficial build, so may not keep up with official releases.<br />
* Set the '''MaxClients''' directive correctly. Use this formula to help (which uses 80% of available memory to leave room for spare):<br />
MaxClients = Total available memory * 80% / Max memory usage of apache process<br />
:Memory usage of apache process is usually 10MB but Moodle can easily use up to 100MB per process, so a general rule of thumb is to divide your available memory in megabytes by 100 to get a conservative setting for MaxClients. You are quite likely to find yourself lowering the MaxClients from its default of 150 on a Moodle server. To get a more accurate estimate read the value from the shell command:<br />
#ps -ylC httpd --sort:rss<br />
<br />
:If you need to increase the value of '''MaxClients''' beyond 256, you will also need to set the '''ServerLimit''' directive. <br />
<br />
:'''Warning''': Do not be tempted to set the value of MaxClients higher than your available memory as your server will consume more RAM than available and start to swap to disk. <br />
* Consider reducing the '''number of modules''' that Apache loads in the httpd.conf file to the minumum necessary to reduce the memory needed. <br />
* Use the '''latest version of Apache''' - Apache 2 has an improved memory model which reduces memory usage further.<br />
* For Unix/Linux systems, consider lowering '''MaxRequestsPerChild''' in httpd.conf to as low as 20-30 (if you set it any lower the overhead of forking begins to outweigh the benefits). <br />
* For a heavily loaded server, consider setting '''KeepAlive Off''' (do this only if your Moodle pages do not contain links to resources or uploaded images) or lowering the '''KeepAliveTimeout''' to between 2 and 5. The default is 15 (seconds) - the higher the value the more server processes will be kept waiting for possibly idle connections. A more accurate value for KeepAliveTimeout is obtained by observing how long it takes your users to download a page. After altering any of the KeepAlive variables, monitor your CPU utilization as there may be an additional overhead in initiating more worker processes/threads.<br />
* As an alternative to using KeepAlive Off, consider setting-up a '''Reverse Proxy server''' infront of the Moodle server to cache HTML files with images. You can then return Apache to using keep-alives on the Moodle server.<br />
* If you do not use a .htaccess file, set the '''AllowOverride''' variable to AllowOverride None to prevent .htaccess lookups.<br />
* Set '''DirectoryIndex''' correctly so as to avoid content-negotiation. Here's an example from a production server:<br />
DirectoryIndex index.php index.html index.htm<br />
* Unless you are doing development work on the server, set '''ExtendedStatus Off''' and disable mod_info as well as mod_status.<br />
* Leave '''HostnameLookups Off''' (as default) to reduce DNS latency.<br />
* Consider reducing the value of '''TimeOut''' to between 30 to 60 (seconds). <br />
* For the '''Options directive''', avoid Options Multiviews as this performs a directory scan. To reduce disk I/O further use<br />
Options -Indexes FollowSymLinks<br />
*'''Caching (unsupported)''' - ''Please note that this kind of caching may create major problems during upgrades.'' Apache can be told to make pages load a lot faster by specifying that the browser should cache some various page elements such as images and reuse them from local memory rather than ask for them again every time a page is requested. How to do this varies slightly between OSes but there are two basic steps:<br />
<br />
# Install and enable mod_expires - refer to documentation or man pages<br />
# Add this code to the virtual server config file within the <directory> section for the root directory (or within the .htaccess file if AllowOverrides is On):<br />
<IfModule mod_expires.c><br />
ExpiresActive On<br />
ExpiresDefault "access plus 1 seconds"<br />
ExpiresByType text/html "access plus 1 seconds"<br />
ExpiresByType image/gif "access plus 1 week"<br />
ExpiresByType image/jpeg "access plus 1 week"<br />
ExpiresByType image/png "access plus 1 week"<br />
ExpiresByType text/css "access plus 1 week"<br />
ExpiresByType text/javascript "access plus 1 week"<br />
ExpiresByType application/x-javascript "access plus 1 week"<br />
ExpiresByType text/xml "access plus 1 seconds"<br />
</IfModule><br />
<br />
The effect is to make everything stay in the cache except HTML and XML, which change dynamically. It's possible to gain a several hundred percent decrease in load times this way. Adjust the cache times according to how often your images etc change.<br />
<br />
* Compression reduces response times by reducing the size of the HTTP response<br />
# Install and enable mod_deflate - refer to documentation or man pages<br />
# Add this code to the virtual server config file within the <directory> section for the root directory (or within the .htaccess file if AllowOverrides is On):<br />
<ifModule mod_deflate.c><br />
AddOutputFilterByType DEFLATE text/html text/plain text/xml<br />
</ifmodule><br />
<br />
More info: [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net]<br />
<br />
===IIS performance===<br />
All alter this location in the registry:<br />
HKLM\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters\<br />
* The equivalent to KeepAliveTimeout is '''ListenBackLog''' (IIS - registry location is HKLM\ SYSTEM\ CurrentControlSet\ Services\ Inetinfo\ Parameters). Set this to between 2 to 5.<br />
*Change the '''MemCacheSize''' value to adjust the amount of memory (Mb) that IIS will use for its file cache (50% of available memory by default).<br />
*Change the '''MaxCachedFileSize''' to adjust the maximum size of a file cached in the file cache in bytes. Default is 262,144 (256K).<br />
*Create a new DWORD called '''ObjectCacheTTL''' to change the length of time (in milliseconds) that objects in the cache are held in memory. Default is 30,000 milliseconds (30 seconds).<br />
<br />
===Lighttpd, NginX and Cherokee performance===<br />
You can increase server performance by using a '''light-weight''' webserver like [http://www.lighttpd.net/ lighttpd], [http://nginx.net/ nginx] or [http://www.cherokee-project.com/ cherokee] in combination with PHP in FastCGI-mode. Lighttpd was originally created as a proof-of-concept[http://www.lighttpd.net/story] to address the [http://www.kegel.com/c10k.html C10k problem] and while primarily recommended for memory-limited servers, its design origins and asynchronous-IO model make it a suitable and proven[http://blog.lighttpd.net/articles/2006/12/28/lighttpd-powers-5-alexa-top-250-sites] alternative HTTP server for high-load websites and web apps, including Moodle. See the [[lighttpd | MoodleDocs Lighttpd page]] for additional information, configuration example and links.<br />
<br />
Alternatively, both [http://www.lighttpd.net/ lighttpd] and [http://nginx.net/ nginx] are capable of performing as a load-balancer and/or reverse-proxy to alleviate load on back-end servers[http://www.linuxjournal.com/article/10108], providing benefit without requiring an actual software change on existing servers.<br />
<br />
Do note that these are likely to be the least tested server environments of all particularly if you are using advanced features such as web services and/or Moodle Networking. They are probably best considered for heavily used Moodle sites with relatively simple configurations.<br />
<br />
==Database performance==<br />
<br />
Moodle contains a script which will display some key database performance statistics from the [http://phplens.com/lens/adodb/docs-perf.htm ADOdb performance monitor]. Run the script in your browser as in the following example:<br />
<br />
http://www.mymoodle.com/admin/dbperformance.php<br />
<br />
Use the data displayed as a guide to tune and improve the performance of your database server.<br />
<br />
===MySQL performance===<br />
<br />
The following are MySQL specific settings which can be adjusted for better performance in your my.cnf (my.ini in Windows). The file contains a list of settings and their values. To see the current values use these commands<br />
SHOW STATUS;<br />
SHOW VARIABLES; <br />
'''Important''': You must make backups of your database before attempting to change any MySQL server configuration. After any change to the my.cnf, restart mysqld.<br />
<br />
If you are able, the [http://mysqltuner.com/ MySQLTuner] tool can be run against your MySQL server and will calculate appropriate configuration values for most of the following settings based on your current load, status and variables automatically.<br />
<br />
* Enable the '''query cache''' with <br />
query_cache_type = 1. <br />
For most Moodle installs, set the following:<br />
query_cache_size = 36M <br />
query_cache_min_res_unit = 2K. <br />
The query cache will improve performance if you are doing few updates on the database. <br />
* Set the '''table cache''' correctly. For Moodle 1.6 set <br />
table_cache = 256 #(table_open_cache in MySQL > 5.1.2)<br />
(min), and for Moodle 1.7 set <br />
table_cache = 512 #(table_open_cache in MySQL > 5.1.2)<br />
(min). The table cache is used by all threads (connections), so monitor the value of opened_tables to further adjust - if opened_tables > 3 * table_cache(table_open_cache in MySQL > 5.1.2) then increase table_cache upto your OS limit. Note also that the figure for table_cache will also change depending on the number of modules and plugins you have installed. Find the number for your server by executing the mysql statement below. Look at the number returned and set table_cache to this value.<br />
mysql>SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='yourmoodledbname';<br />
* Set the '''thread cache''' correctly. Adjust the value so that your thread cache utilization is as close to 100% as possible by this formula:<br />
thread cache utilization (%) = (threads_created / connections) * 100<br />
* The '''key buffer''' can improve the access speed to Moodle's SELECT queries. The correct size depends on the size of the index files (.myi) and in Moodle 1.6 or later (without any additional modules and plugins), the recommendation for this value is key_buffer_size = 32M. Ideally you want the database to be reading once from the disk for every 100 requests so monitor that the value is suitable for your install by adjusting the value of key_buffer_size so that the following formulas are true:<br />
key_read / key_read_requests < 0.01<br />
key_write / key_write_requests <= 1.0<br />
* Set the '''maximum number of connections''' so that your users will not see a "Too many connections" message. Be careful that this may have an impact on the total memory used. MySQL connections usually last for milliseconds, so it is unusual even for a heavily loaded server for this value to be over 200.<br />
* Manage '''high burst activity'''. If your Moodle install uses a lot of quizzes and you are experiencing performance problems (check by monitoring the value of threads_connected - it should not be rising) consider increasing the value of back_log.<br />
* '''Optimize your tables weekly and after upgrading Moodle'''. It is good practice to also optimize your tables after performing a large data deletion exercise, e.g. at the end of your semester or academic year. This will ensure that index files are up to date. Backup your database first and then use:<br />
mysql>CHECK TABLE mdl_tablename;<br />
mysql>OPTIMIZE TABLE mdl_tablename;<br />
:The common tables in Moodle to check are mdl_course_sections, mdl_forum_posts, mdl_log and mdl_sessions (if using dbsessions). Any errors need to be corrected using REPAIR TABLE (see the [http://dev.mysql.com/doc/refman/5.0/en/repair-table.html MySQL manual] and this [http://moodle.org/mod/forum/discuss.php?d=58208#p279638 forum script]).<br />
* '''Maintain the key distribution'''. Every month or so it is a good idea to stop the mysql server and run these myisamchk commands.<br />
#myisamchk -a -S /pathtomysql/data/moodledir/*.MYI<br />
:'''Warning''': You must stop the mysql database process (mysqld) before running any myisamchk command. If you do not, you risk data loss.<br />
* Reduce the number of '''temporary tables saved to disk'''. Check this with the created_tmp_disk_tables value. If this is relatively large (>5%) increase tmp_table_size until you see a reduction. Note that this will have an impact on RAM usage.<br />
<br />
===PostgreSQL performance===<br />
<br />
There are some good papers around on tuning PostgreSQL (like [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server this one]), and Moodle's case does not seem to be different to the general case.<br />
<br />
The first thing to recognise is that if you really need to worry about tuning you should be using a separate machine for the database server. If you are not using a separate machine then the answers to many performance questions are substantially muddied by the memory requirements of the rest of the application.<br />
<br />
You should probably '''enable autovacuum''', unless you know what you are doing. Many e-learning sites have predictable periods of low use, so disabling autovacuum and running a specific vacuum at those times can be a good option. Or perhaps leave autovacuum running but do a full vacuum weekly in a quiet period.<br />
<br />
Set '''shared_buffers''' to something reasonable. For versions up to 8.1 my testing has shown that peak performance is almost always obtained with buffers < 10000, so if you are using such a version, and have more than 512M of RAM just set shared_buffers to 10,000 (8MB).<br />
<br />
The buffer management had a big overhaul in 8.2 and "reasonable" is now a much larger number. I have not conducted performance tests with 8.2, but the recommendations from others are generally that you should now scale shared_buffers much more with memory and may continue to reap benefits even up to values like 100,000 (80MB). Consider using 1-2% of system RAM.<br />
<br />
PostgreSQL will also assume that the operating system is caching its files, so setting '''effective_cache_size''' to a reasonable value is also a good idea. A reasonable value will usually be (total RAM - RAM in use by programs). If you are running Linux and leave the system running for a day or two you can look at 'free' and under the 'cached' column you will see what it currently is. Consider taking that number (which is kB) and dividing it by 10 (i.e. allow 20% for other programs cache needs and then divide by 8 to get pages). If you are not using a dedicated database server you will need to decrease that value to account for usage by other programs.<br />
<br />
Some other useful parameters that can have positive effects, and the values I would typically set them to on a machine with 4G RAM, are:<br />
<br />
work_mem = 10240<br />
<br />
That's 10M of RAM to use instead of on-disk sorting and so forth. That can give a big speed increase, but it is per connection and 200 connections * 10M is 2G, so it can theoretically chew up a lot of RAM.<br />
<br />
maintenance_work_mem = 163840<br />
<br />
That's 160M of RAM which will be used by (e.g.) VACUUM, index rebuild, cluster and so forth. This should only be used periodically and should be freed when those processes exit, so I believe it is well worth while.<br />
<br />
max_fsm_pages = 100000<br />
max_fsm_relations = 5000<br />
<br />
These are used to hold the free-space map, and if they are too small you will see performance degradation after the database has been operating for some time. The exact numbers to set can be gleaned from the output of VACUUM VERBOSE, which prints the required FSM pages at the end of it's run. The 5x increase seems to be useful for a Moodle installation, from experience.<br />
<br />
wal_buffers = 64<br />
<br />
These buffers are used for the write-ahead log, and there have been a number of reports on the PostgreSQL mailing lists of improvement from this level of increase.<br />
<br />
This is a little out of date now (version 8.0) but still worth a read: http://www.powerpostgresql.com/Docs<br />
<br />
And there is lots of good stuff here as well: http://www.varlena.com/GeneralBits/Tidbits/index.php<br />
<br />
''Based on Andrew McMillan's post at [http://moodle.org/mod/forum/discuss.php?d=68558 Tuning PostgreSQL] forum thread.''<br />
<br />
===Other database performance links===<br />
* Consider using a '''distributed cacheing system''' like [http://en.wikipedia.org/wiki/Memcached memcached] but note that memcached does not have any security features so it should be used behind a firewall.<br />
* Consider using PostgreSQL. See [[Arguments in favour of PostgreSQL]] and [http://moodle.org/mod/forum/discuss.php?d=49195 how to migrate from MySQL to PostgreSQL] (forum discussion).<br />
* [[Increasing the database connection lifetime | Try increasing the database connection lifetime]]<br />
* [http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html General advice on tuning MySQL parameters] (advice from the MySQL manual)<br />
* [http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/ InnoDB performance optimization] taken from the [http://www.mysqlperformanceblog.com/ MySQL performance blog] site.<br />
<br />
==Performance of different Moodle modules==<br />
<br />
Moodle's activity modules, filters, and other plugins can be activated/deactivated. If necessary, you may wish to deactivate some features (such as chat) if not required - but this isn't necessary. Some notes on the performance of certain modules:<br />
<br />
* The '''Chat''' module is [http://moodle.org/mod/forum/discuss.php?d=37979&parent=175079 said] to be a hog in terms of frequent HTTP requests to the main server. This can be reduced by setting the module to use ''Streamed'' updates, or, if you're using a Unix-based webserver, by running the chat in daemon mode. When using the Chat module use the configuration settings to tune for your expected load. Pay particular attention to the ''chat_old_ping'' and ''chat_refresh'' parameters as these can have greatest impact on server load.<br />
* The '''Quiz''' module is known to stretch database performance. Try to optimise your database server by tuning. See [http://moodle.org/mod/forum/discuss.php?d=25616&parent=120770 for a brief report on performance for 55 students simultaneously using quizzes]<br />
** See this Case Study for an extensive server stress test with 300 quiz users.[http://moodle.org/mod/forum/discuss.php?d=68579] And this accompanying report on network traffic and server loads. [http://elearning.sgu.ac.jp/doc/PT/]<br />
* The Moodle '''Cron''' task is triggered by calling the script ''cron.php''. If this is called over HTTP (e.g. using wget or curl) it can take a large amount of memory on large installations. If it is called by directly invoking the php command (e.g. ''php -f /path/to/moodle/directory/admin/cron.php'') efficiency can be much improved.<br />
* The '''Recent activities''' block is consuming to much resources if you have huge number of records <code>mdl_log</code>. this is being tested to optimize the SQL query.<br />
<br />
==Moodle Image Optimization==<br />
<br />
The base images delivered in the original Moodle distribution package provide unoptimized graphics, most of which can benefit from lossless recompression utilizing [http://optipng.sourceforge.net/ optipng] for PNGs, [http://www.lcdf.org/gifsicle/ gifsicle] for GIFs and [http://www.kokkonen.net/tjko/projects.html jpegoptim] for JPGs. Optimized graphics transfer faster and provide a faster perceived response for clients[http://www.websiteoptimization.com/speed/12/], especially distance learners. The following example will recursively optimize (without any loss of quality) all the graphics and image files included in a base Moodle installation directory on a server with the above commands installed and available.<br />
<br />
<pre><br />
find /example/directory/moodle-1.9 -iname *.png -exec optipng -o7 {} \;<br />
find /example/directory/moodle-1.9 -iname *.gif -exec gifsicle -O2 -b {} \;<br />
find /example/directory/moodle-1.9 -iname *.jpg -exec jpegoptim -p {} \;<br />
</pre><br />
<br />
Both [http://optipng.sourceforge.net/ optipng] and [http://www.lcdf.org/gifsicle/ gifsicle] are provided in the base repositories of most newer Linux distributions; [http://www.kokkonen.net/tjko/projects.html jpegoptim] must be downloaded and installed manually.<br />
<br />
==See also==<br />
<br />
*Using Moodle: [http://moodle.org/mod/forum/view.php?f=94 Hardware and Performance] forum<br />
<br />
There have been a lot of discussions on moodle.org about performance, here are some of the more interesting and (potentially) useful ones:<br />
<br />
* [http://moodle.org/mod/forum/discuss.php?d=83057 Performance woes!]<br />
* [http://moodle.org/mod/forum/discuss.php?d=57028 Performance perspectives - a little script]<br />
* [http://moodle.org/mod/forum/discuss.php?d=88927 Comments on planned server hardware]<br />
* [http://moodle.org/mod/forum/discuss.php?d=102978#p461624 Moodle performance in a pil by Martin Langhoff]<br />
<br />
[[es:Rendimiento]]<br />
[[fr:Performance]]<br />
[[ja:パフォーマンス]]<br />
[[de:Geschwindigkeitsempfehlungen]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=PostgreSQL&diff=99111PostgreSQL2012-07-11T14:05:42Z<p>Mudrd8mz: Added a link to Tuning Your PostgreSQL Server page</p>
<hr />
<div>{{Installing Moodle}}<br />
PostgreSQL is one of the two databases that is fully supported by Moodle. A database is a required component of any Moodle installation.<br />
<br />
== Creating Moodle Database ==<br />
<br />
These instructions assume that the database server and web server are on the same machine. If that is not the case you have some more work to do. See the PostgreSQL documentation for further details. <br />
<br />
* Log into the PostgreSQL command line client. The exact form depends on how your PostgreSQL is configured but will be something like<br />
<br />
$ psql -U postgres<br />
Password for user postgres:<br />
<br />
Enter the password for your 'postgres' user set during installation. After some preamble you should see the prompt ''postgres=#''.<br />
<br />
* Create the user for the Moodle database and assign a password:<br />
<br />
postgres=# CREATE USER moodleuser WITH PASSWORD 'yourpassword';<br />
<br />
Provide a suitably strong password. Please note that the actual authentication method depends on your PostgreSQL server's pg_hba.conf file. Some authentication methods (like ident) do not require the password.<br />
<br />
* Create the database:<br />
<br />
postgres=# CREATE DATABASE moodle WITH OWNER moodleuser;<br />
<br />
== Character set and collation ==<br />
<br />
If the PostgreSQL server's default collation does not suit your needs, you can provide explicit LC_CTYPE (character classification) and LC_COLLATE (string sort order) setting for your Moodle database. The following example creates new database called 'moodle' optimised for a Czech Moodle site:<br />
<br />
postgres=# CREATE DATABASE moodle WITH OWNER moodleuser ENCODING 'UTF8' LC_COLLATE='cs_CZ.utf8' LC_CTYPE='cs_CZ.utf8' TEMPLATE=template0;<br />
<br />
For more details refer to [http://www.postgresql.org/docs/9.1/static/multibyte.html Character Set Support] chapter in PostgreSQL manual.<br />
<br />
To make sure the database was created correctly, use the ''\l'' at the psql console or execute ''psql -l'' shell command. You should get something like<br />
<br />
postgres=# \l<br />
List of databases<br />
Name | Owner | Encoding | Collation | Ctype | Access privileges <br />
-----------+------------+----------+-------------+-------------+-----------------------<br />
moodle | moodleuser | UTF8 | cs_CZ.utf8 | cs_CZ.utf8 | <br />
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | <br />
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres<br />
: postgres=CTc/postgres<br />
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres<br />
: postgres=CTc/postgres<br />
<br />
== See also ==<br />
<br />
* [http://www.postgresql.org PostgreSQL home page]<br />
* [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server Tuning Your PostgreSQL Server]<br />
* [[Arguments in favour of PostgreSQL]]<br />
* [http://moodle.org/mod/forum/view.php?id=45 Using Moodle - Databases forum]<br />
* [http://en.wikipedia.org/wiki/Postgres Wikipedia article on PostgerSQL]<br />
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=49195 Upgrading to 1.6 and may need to switch to PostgreSQL] forum discussion<br />
<br />
[[Category:SQL databases]]<br />
<br />
[[ja:PostgreSQL]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=PostgreSQL&diff=99110PostgreSQL2012-07-11T13:45:33Z<p>Mudrd8mz: Wiki syntax improved and added information about charsets and collations</p>
<hr />
<div>{{Installing Moodle}}<br />
PostgreSQL is one of the two databases that is fully supported by Moodle. A database is a required component of any Moodle installation.<br />
<br />
== Creating Moodle Database ==<br />
<br />
These instructions assume that the database server and web server are on the same machine. If that is not the case you have some more work to do. See the PostgreSQL documentation for further details. <br />
<br />
* Log into the PostgreSQL command line client. The exact form depends on how your PostgreSQL is configured but will be something like<br />
<br />
$ psql -U postgres<br />
Password for user postgres:<br />
<br />
Enter the password for your 'postgres' user set during installation. After some preamble you should see the prompt ''postgres=#''.<br />
<br />
* Create the user for the Moodle database and assign a password:<br />
<br />
postgres=# CREATE USER moodleuser WITH PASSWORD 'yourpassword';<br />
<br />
Provide a suitably strong password. Please note that the actual authentication method depends on your PostgreSQL server's pg_hba.conf file. Some authentication methods (like ident) do not require the password.<br />
<br />
* Create the database:<br />
<br />
postgres=# CREATE DATABASE moodle WITH OWNER moodleuser;<br />
<br />
== Character set and collation ==<br />
<br />
If the PostgreSQL server's default collation does not suit your needs, you can provide explicit LC_CTYPE (character classification) and LC_COLLATE (string sort order) setting for your Moodle database. The following example creates new database called 'moodle' optimised for a Czech Moodle site:<br />
<br />
postgres=# CREATE DATABASE moodle WITH OWNER moodleuser ENCODING 'UTF8' LC_COLLATE='cs_CZ.utf8' LC_CTYPE='cs_CZ.utf8' TEMPLATE=template0;<br />
<br />
For more details refer to [http://www.postgresql.org/docs/9.1/static/multibyte.html Character Set Support] chapter in PostgreSQL manual.<br />
<br />
To make sure the database was created correctly, use the ''\l'' at the psql console or execute ''psql -l'' shell command. You should get something like<br />
<br />
postgres=# \l<br />
List of databases<br />
Name | Owner | Encoding | Collation | Ctype | Access privileges <br />
-----------+------------+----------+-------------+-------------+-----------------------<br />
moodle | moodleuser | UTF8 | cs_CZ.utf8 | cs_CZ.utf8 | <br />
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | <br />
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres<br />
: postgres=CTc/postgres<br />
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres<br />
: postgres=CTc/postgres<br />
<br />
== See also ==<br />
<br />
* [http://www.postgresql.org PostgreSQL home page]<br />
* [[Arguments in favour of PostgreSQL]]<br />
* [http://moodle.org/mod/forum/view.php?id=45 Using Moodle - Databases forum]<br />
* [http://en.wikipedia.org/wiki/Postgres Wikipedia article on PostgerSQL]<br />
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=49195 Upgrading to 1.6 and may need to switch to PostgreSQL] forum discussion<br />
<br />
[[Category:SQL databases]]<br />
<br />
[[ja:PostgreSQL]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=admin/upgradepluginsinfo&diff=96667admin/upgradepluginsinfo2012-03-26T13:39:19Z<p>Mudrd8mz: Redirected page to Installing plugins</p>
<hr />
<div>#REDIRECT [[Installing plugins]]</div>Mudrd8mzhttps://docs.moodle.org/26/en/index.php?title=Course_contents_block&diff=94982Course contents block2012-01-06T22:13:16Z<p>Mudrd8mz: </p>
<hr />
<div>'''Course contents block''' produces a table of contents for the course - ie a list of all visible topics/weeks in your course. Clicking at one of these links will display that particular section (topic or week).<br />
<br />
If the section has its name defined, the block uses it as the title for that section.<br />
<br />
If the section name is not defined but there is the section summary (description) available, the block automatically extracts a suitable title from that summary. If you start summary with a heading (H1, H2, H3, etc), it will use such heading text. If your summary starts with a bold text, it will be used as a section title. If the summary consists of several paragraphs, the first one will be used. Technically spoken, the plain text content of the first non-empty HTML DOM node from the section summary is used as the summary title.<br />
<br />
If the summary is empty, a customizable text "Unit X" (where X is the number) is displayed.<br />
<br />
You can combine this feature with the multi-language filter to generate course contents in the user's language.<br />
<br />
The block was written and is currently maintained by [[User:David Mudrak|David Mudrak]]<br />
<br />
[[Image:course-contents-block-screenshot.png|thumb|The topic title is automatically extracted from the section summary|400px|left]]<br />
<br clear="both" /><br />
<br />
==Installation==<br />
<br />
There is a public source code repository for the block at [https://github.com/mudrd8mz/moodle-block_course_contents github.com]. You can either clone that repository or just download the latest package there. Follow the instructions provided by Github or see [[Git for Administrators]] for details. This may be what you want:<br />
<br />
# cd /var/www/moodlesite/htdocs/blocks<br />
# git clone git://github.com/mudrd8mz/moodle-block_course_contents.git course_contents<br />
# cd course_contents<br />
# git checkout -b local_22_STABLE origin/MOODLE_22_STABLE<br />
<br />
If your Moodle dirroot is git checkout too, you may want to add the block directory into the list of ignored files:<br />
<br />
# cd /var/www/moodlesite/htdocs<br />
# echo /blocks/course_contents/ >> .git/info/exclude<br />
<br />
To download the block in ZIP or TAR.GZ packages, follow [https://github.com/mudrd8mz/moodle-block_course_contents/tags this page]<br />
<br />
==Examples==<br />
<br />
{| class="nicetable"<br />
! <center>Start of the section summary HTML</center><br />
! <center>Automatic course contents line</center><br />
<br />
|-<br />
| <nowiki>Welcome!<br />In this course, you will ...</nowiki><br />
| Welcome!<br />
<br />
|-<br />
| <nowiki><h1>Introduction</h1><p>In this course ...</p></nowiki><br />
| Introduction<br />
<br />
|-<br />
| <nowiki><h1><span>Lesson 1</span>: Introduction</h1></nowiki><br />
| Lesson 1<br />
<br />
|}<br />
<br />
==See also==<br />
<br />
* [http://moodle.org/plugins/pluginversions.php?plugin=block_course_contents Plugins database record]<br />
<br />
[[Category:Block]]<br />
[[Category:Contributed code]]</div>Mudrd8mz