<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/34/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Monidu</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/34/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Monidu"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/Special:Contributions/Monidu"/>
	<updated>2026-05-19T21:14:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Groups_FAQ&amp;diff=117368</id>
		<title>Groups FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Groups_FAQ&amp;diff=117368"/>
		<updated>2015-03-05T14:47:39Z</updated>

		<summary type="html">&lt;p&gt;Monidu: /* Is there any way to enable students to choose a group? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Grouping users}}&lt;br /&gt;
==General==&lt;br /&gt;
===What is the &#039;groups mode&#039; setting?===&lt;br /&gt;
&lt;br /&gt;
You can have several classes/groups working  in a single course with different (or the same) teacher. Groups mode is a way of filtering the students so that work and grades can be accessed separately. See [[Groups]] for more information. There are three different groups modes – No groups, Separate Groups, Visible Groups. In ‘Separate groups’ mode, each group can only see their own group – other groups are invisible. In ‘Visible groups’ mode, each group works in their own group, but can also see other groups.&lt;br /&gt;
&lt;br /&gt;
Teachers are normally able to see other teachers&#039; groups&#039;s activities as well as their own unless the capability [[Capabilities/moodle/site:accessallgroups]] has been set to &amp;quot;prevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===What is the difference between a cohort and a group?===&lt;br /&gt;
&lt;br /&gt;
A group exists only within a course. You might have a class 10B for example which you want to enrol in course 1 and course 2. The group would need to be created in both courses  and its members enrolled separately in both courses. [[Cohorts]] are groups of users created by admin which can then be brought in &amp;quot;en masse&amp;quot; to courses. So if class 10B is created as a cohort by admin, then it can be selected in those courses where enrolment via cohort has been enabled. (For more information on creating and using cohorts, see here: [[Cohorts]]) Once members of a cohort have been added to a course, they can be included in a group, either by using the &amp;quot;auto create groups&amp;quot; feature or by adding the members to an empty or pre-created group.&lt;br /&gt;
&lt;br /&gt;
===What is the &#039;force&#039; setting?===&lt;br /&gt;
&lt;br /&gt;
If force is set to yes, then all activities are group activities. This overrides any settings for individual activities.  If force is set to no, then activities are only group activities if they have been set to group mode.  In this case, each activity requires to be set to group mode individually.&lt;br /&gt;
&lt;br /&gt;
===Can I automatically add users to a group at the same time that I enroll them via a csv file?===&lt;br /&gt;
&lt;br /&gt;
Yes.  One of the optional field names that can be uploaded in the flat file is &amp;quot;group1, group2, etc&amp;quot;. The  group  must be associated to the corresponding course and the course short name used in the field course1. If the group doesn&#039;t already exist then Moodle will create the group. Here is an example of a portion of a csv file that would enroll students into a group entitled &#039;Class A&#039; within a course entitled &#039;Astro1&#039;. (Note that you can assign students to groups using this file even if they are already enrolled in Moodle, as you can select to update the user details when uploading the file.)&lt;br /&gt;
&lt;br /&gt;
 username, password, firstname, lastname, email, course1, group1,...&lt;br /&gt;
     jdoe, changeme, Jane, Doe, jdoe@email.org, Astro1, Class A,...&lt;br /&gt;
&lt;br /&gt;
===How do I assign a teacher to a group? Can a teacher be in more than one group?===&lt;br /&gt;
&lt;br /&gt;
You can assign a teacher to a group in exactly the same way that you assign a student to a group.&lt;br /&gt;
&lt;br /&gt;
===How do I restrict a teacher to view only information about the groups that they are in?===&lt;br /&gt;
&lt;br /&gt;
For Separate Groups mode, the capability [[Capabilities/moodle/site:accessallgroups|moodle/site:accessallgroups]] may be used to restrict access to all groups in a particular context. If this capability is removed from the teacher role (either within a course or globally if appropriate) then they will only see the students they teach when accessing the gradebook for example.&lt;br /&gt;
&lt;br /&gt;
To do this for all teachers globally:&lt;br /&gt;
#&#039;&#039;Site administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define roles&#039;&#039;&lt;br /&gt;
#Select the editing teacher role;&lt;br /&gt;
#Click to edit the role&lt;br /&gt;
#Click the Show advanced button&lt;br /&gt;
#Type in the search box &#039;&#039;accessallgroups&#039;&#039;&lt;br /&gt;
#When it appears, click &#039;&#039;Prevent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To do this within a course:&lt;br /&gt;
#&#039;&#039;Course administration &amp;gt; Users &amp;gt; Permissions&#039;&#039;&lt;br /&gt;
#Type &#039;&#039;accessallgroups&#039;&#039; into the filter&lt;br /&gt;
#Click the X to remove from the editing teacher (Teacher) role.&lt;br /&gt;
&lt;br /&gt;
===What determines whether students can see a teacher&#039;s profile?===&lt;br /&gt;
&lt;br /&gt;
A student can see the profile of all teachers that are members of their group or that have edit rights. &lt;br /&gt;
&lt;br /&gt;
===Can I use the same groups for more than one course?===&lt;br /&gt;
&lt;br /&gt;
Not directly, although there are some workarounds to accomplish this. &lt;br /&gt;
&lt;br /&gt;
* Use the [[Import_groups]] Import tool to import a file with the groups and settings (though not memberships). &lt;br /&gt;
* Create the groups by import or manually with enrollment keys on them and give the students group enrolment keys to enrol themselves into the right group for each course. &lt;br /&gt;
* Admins and managers can enrol users in bulk via File Upload or [[Cohorts]] to include group membership.&lt;br /&gt;
* Make a template with the enrolments and groups and restore it to a new course with user data.&lt;br /&gt;
&lt;br /&gt;
===Can a student be a member of more than one group? ===&lt;br /&gt;
Yes, a student can be in more than one group.  &lt;br /&gt;
&lt;br /&gt;
===If one student is in a group, do all students have to be in some group?===&lt;br /&gt;
No, a student does not have to belong to any group.&lt;br /&gt;
&lt;br /&gt;
===If I have several groups, can I make a specific activity or resource visible to just one of those groups?===&lt;br /&gt;
&lt;br /&gt;
Yes, you can add group restrictions as described in [[Groups]]. ([[Conditional activities]] must be enabled.)&lt;br /&gt;
&lt;br /&gt;
===I have two groups that meet on different days. Can I set up activities for different times for the two groups?===&lt;br /&gt;
&lt;br /&gt;
Yes, you can duplicate the activities and add group and date restrictions as described in [[Groups]].  ([[Conditional activities]] must be enabled.)&lt;br /&gt;
&lt;br /&gt;
===Can I have one set of groups for Activity A and another set of groups for Activity B?===&lt;br /&gt;
&lt;br /&gt;
You can create two different [[Groupings|groupings]] (a grouping is a set of groups), and assign different groupings to the two activities.&lt;br /&gt;
&lt;br /&gt;
===Is it possible to view all the groups in a course as a list to print out?===&lt;br /&gt;
&lt;br /&gt;
The groups overview page in &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Groups&#039;&#039; provides a table listing groups, group members and a user count.&lt;br /&gt;
&lt;br /&gt;
===When I try to add a student, they are always added to the first group, whichever group I select?===&lt;br /&gt;
&lt;br /&gt;
Make sure that the students name does not include any punctuation. There is also a workaround – give each group a temporary name at the start of the alphabet, put your students in the group and then rename the group. &lt;br /&gt;
&lt;br /&gt;
===How can I delete a group?===&lt;br /&gt;
&lt;br /&gt;
After clicking, &amp;quot;Groups&amp;quot; in &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Groups&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Select the group that you want to delete&lt;br /&gt;
# Click the &amp;quot;Delete selected group&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
===How can I import a list of students into a group?===&lt;br /&gt;
&lt;br /&gt;
Please check [[Upload users]].&lt;br /&gt;
&lt;br /&gt;
===How can I sort students automatically into groups during enrolment?===&lt;br /&gt;
&lt;br /&gt;
You can make use of [[Enrolment key|enrolment keys]]. Set an enrolment key in &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Enrolment methods &amp;gt; Self enrolment&#039;&#039; (to enforce the enrolment key dialogue form when students enrol). That key is only for students who should not be in a group and to keep out any unwanted students. Then in &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Groups&#039;&#039; you create your groups and add a different enrolment key for each group. When a student enrols, using an enrolment key that is connected to a certain group, the student will automatically be part of that group.&lt;br /&gt;
&lt;br /&gt;
===What is the difference between a group and a grouping?===&lt;br /&gt;
&lt;br /&gt;
See Groups versus groupings forum post http://moodle.org/mod/forum/discuss.php?d=131905. A grouping can be thought of as a category of groups.  A grouping is a meta group.  Student membership to a &amp;quot;grouping&amp;quot; can only happen by their membership to a group that is associated with the grouping.&lt;br /&gt;
&lt;br /&gt;
===What is an orphan group?===&lt;br /&gt;
&lt;br /&gt;
An orphan group is a group that does not belong to any grouping.&lt;br /&gt;
&lt;br /&gt;
===Is there any way to enable students to choose a group?===&lt;br /&gt;
There is a contributed module &amp;quot;[https://moodle.org/plugins/view.php?plugin=mod_choicegroup Group Choice]&amp;quot; which will do this. See also [http://www.youtube.com/watch?v=JQFaDLtHZdY&amp;amp;feature=player_embedded this screencast] on YouTube.&lt;br /&gt;
&lt;br /&gt;
===How can I view the participants list for just one group?===&lt;br /&gt;
&lt;br /&gt;
For this, you need Groups mode switched ON at course level in Course settings.&lt;br /&gt;
&lt;br /&gt;
==Activity modules and groups==&lt;br /&gt;
&lt;br /&gt;
Different activity modules vary as to how they treat groups – some have better support for groups than others! &lt;br /&gt;
&lt;br /&gt;
In general if you have questions about how an activity supports groups, you’re advised to post in the forum for the activity module, and not the groups forum. &lt;br /&gt;
&lt;br /&gt;
===Which activity modules do NOT support group mode?===&lt;br /&gt;
&lt;br /&gt;
All activity modules support the use of group mode apart from Glossary, Lesson, and SCORM.&lt;br /&gt;
&lt;br /&gt;
===What happens if I switch an activity from being in non-groups mode to being in groups mode?===&lt;br /&gt;
&lt;br /&gt;
This depends on the activity module in question.&lt;br /&gt;
&lt;br /&gt;
For forums, posts made before the forum is put into groups mode are visible to all students after you have put the forum into group mode. However students cannot reply to these posts if they have no group (i.e. blank). &lt;br /&gt;
&lt;br /&gt;
===What happens if I change the groups for an activity in groups mode e.g. if I move a student from one group to another?===&lt;br /&gt;
&lt;br /&gt;
Again this depends on the activity module. You may find that grades or activity logs are lost, so check for the specific activity module first. &lt;br /&gt;
&lt;br /&gt;
===How do I post a message in a forum that only one group can see?===&lt;br /&gt;
&lt;br /&gt;
Before you click &#039;Add a new topic&#039;, you need to choose the group from the Separate groups drop-down menu at the top left. &lt;br /&gt;
&lt;br /&gt;
===As a teacher I want to put the same post in each group&#039;s forum with students able to reply to that post. How can I do this?===&lt;br /&gt;
&lt;br /&gt;
You need to post the same message into the forum for each group. There is currently no way to do this in one go if you want students to be able to reply to your post. If you don&#039;t mind students not being able to reply, then you can of course just post the message to all participants.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Groupings FAQ]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?f=320 Groups forum]&lt;br /&gt;
* [http://youtu.be/amyQjAESkZM Moodle Forum Types and Group Mode] MoodleBites video on YouTube&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[fr:FAQ des groupes]]&lt;br /&gt;
[[ru:FAQ по группам]]&lt;br /&gt;
[[de:Gruppen_FAQ]]&lt;br /&gt;
[[es:Grupos FAQ]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Comments&amp;diff=113752</id>
		<title>Comments</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Comments&amp;diff=113752"/>
		<updated>2014-07-17T11:53:50Z</updated>

		<summary type="html">&lt;p&gt;Monidu: /* Enabling comments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{More features}}&lt;br /&gt;
A [[Comments block|comments block]] can be added to any page in Moodle, enabling users to easily add comments. A similar interface enables comments to be added to glossary, database activity and blog entries. The comments interface uses AJAX so that comments are added instantly without needing a page refresh.&lt;br /&gt;
&lt;br /&gt;
[[Image:Comments block.png]]&lt;br /&gt;
&lt;br /&gt;
==Enabling comments==&lt;br /&gt;
&lt;br /&gt;
Comments can be disabled/enabled by an administrator in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced features&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
As from Moodle 2.6, this enables or disabled the students to add comments on all assignment submissions.&lt;br /&gt;
&lt;br /&gt;
==Blog comments==&lt;br /&gt;
&lt;br /&gt;
Blog comments are enabled by default. The feature may be disabled in &#039;&#039;Site administration &amp;gt; Appearance &amp;gt; Blog&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Comments report==&lt;br /&gt;
&lt;br /&gt;
A list of all comments added may be found in &#039;&#039;Site administration &amp;gt; Reports &amp;gt; Comments&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Commentsreport.png]]&lt;br /&gt;
&lt;br /&gt;
==Comments capabilities==&lt;br /&gt;
&lt;br /&gt;
*[[Capabilities/moodle/comment:delete|Delete comments]]&lt;br /&gt;
*[[Capabilities/moodle/comment:post|Post comments]]&lt;br /&gt;
*[[Capabilities/moodle/comment:view|View comments]]&lt;br /&gt;
*[[Capabilities/mod/data:comment|Add comments to a database activity]]&lt;br /&gt;
*[[Capabilities/mod/data:managecomments|Manage comments in a database activity]]&lt;br /&gt;
*[[Capabilities/mod/glossary:comment|Add comments to glossary entries]]&lt;br /&gt;
*[[Capabilities/mod/glossary:managecomments|Manage comments in a glossary]]&lt;br /&gt;
*[[Capabilities/mod/wiki:editcomment|Add comments to pages in a wiki]]&lt;br /&gt;
*[[Capabilities/mod/wiki:managecomment|Manage comments in a wiki]]&lt;br /&gt;
*[[Capabilities/mod/wiki:viewcomment|View comments in a wiki]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Comments FAQ]]&lt;br /&gt;
* MDL-23605 (Dis)allowing users to create Comments block on their profile&lt;br /&gt;
&lt;br /&gt;
[[Category:Comments]]&lt;br /&gt;
[[Category:Report]]&lt;br /&gt;
[[Category:Site administration]]&lt;br /&gt;
&lt;br /&gt;
[[eu:Iruzkinak_2.0]]&lt;br /&gt;
[[de:Kommentare]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Assignment_settings&amp;diff=113751</id>
		<title>Assignment settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Assignment_settings&amp;diff=113751"/>
		<updated>2014-07-17T11:42:05Z</updated>

		<summary type="html">&lt;p&gt;Monidu: Submission comments changes from Moodle 2.6 onwards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Assignment}}&lt;br /&gt;
&lt;br /&gt;
==Adding and editing an Assignment activity==&lt;br /&gt;
*To add a new Assignment activity to your course, login with the appropriate access rights (e.g.editing teacher, course creator or administrator) and Turn Editing On. Within the required Week or Topic Block click Add and Activity or Resource link. &lt;br /&gt;
*In the Add an activity or resource dialogue box that appears, select Assignment and click Add.&lt;br /&gt;
*To edit an existing Assignment activity, login to your course with the appropriate access rights (e.g. editing teacher, course creator or administrator) and Turn Editing On. Select the Update icon against the relevant Assignment item.&lt;br /&gt;
*Alternatively, after logging into your course simply click on the name of the Assignment activity you wish to edit and then click the Edit Settings link under Assignment administration within the Settings block.&lt;br /&gt;
&lt;br /&gt;
The following configuration options are available when creating or editing/updating any Assignment activity. Only General,Availability and Submission types are open by default;the others are collapsed. To expand everything, click the &amp;quot;Expand all&amp;quot; link top right. &lt;br /&gt;
Click on any screenshot to see it full size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General ==&lt;br /&gt;
The General section allows you to give your assignment a name and description. &lt;br /&gt;
{|&lt;br /&gt;
|[[File:assignmentgeneral26.png|General settings for an assignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Assignment name===&lt;br /&gt;
Give your Assignment a name (e.g. “Report on Topic 1 Content”). The title entered here will be the name that learners see in the course content area. Learners will click on this name to view the details of the assignment and, if applicable, submit their work.&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
Provide instructions for your students here so they are clear what they have to do. &lt;br /&gt;
Click the icon on the left to expand the toolbar and drag the bottom right of the text box out to expand it.&lt;br /&gt;
&lt;br /&gt;
You can also provide information or resources related to the assignment, such as a video clip, an image, or a link to a webpage.&lt;br /&gt;
&lt;br /&gt;
===Display description on course page===&lt;br /&gt;
Enabling this will display the description on the course page just below the link to the assignment activity.&lt;br /&gt;
&lt;br /&gt;
==Availability==&lt;br /&gt;
{|&lt;br /&gt;
|[[File:AssignAvailability.png|thumb|450px|Availability settings for an assignment]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===Allow submissions from===&lt;br /&gt;
The Allow submissions from setting prevents students from submitting their assignment before the shown date. A teacher can to set a day, month, year and time (24 hour clock) from which learners can begin to submit their assignments. Please note that this setting does not hide the activity from the learners. Instead, the learner will see the activity, be able to view the instructions and use any materials you have included in the description, but the learner will not be able to submit or complete the assignment until the Allow submissions from date.&lt;br /&gt;
&lt;br /&gt;
This setting is enabled (ticked/checked) by default and is set at the day and time you added the assignment. To disable this, remove the tick/check.&lt;br /&gt;
&lt;br /&gt;
===Due date===&lt;br /&gt;
The Due date setting establishes when the assignment is due. Submissions will still be allowed after this date, but any assignments submitted after this date are marked as late.&lt;br /&gt;
&lt;br /&gt;
This option allows an teacher to set a day, month, year and time (24 hour clock) before which learners must submit their assignment.&lt;br /&gt;
&lt;br /&gt;
By default the Due date is Enabled (ticked) and is set at 7 days ahead of the day and time you selected Add Assignment. To disable this feature, simply ensure the Enable checkbox is not marked. For more information on using the Due Date see Assignment FAQ&lt;br /&gt;
&lt;br /&gt;
Note: Assignments without a Due date will appear on the My home page with “No Due date” displayed.&lt;br /&gt;
&lt;br /&gt;
===Cut-off date===&lt;br /&gt;
&lt;br /&gt;
The Cut-off date is the date beyond which students will not be able to send in their assignment as the button for doing so will no longer be displayed. After that date (or time) a teacher may, on request, grant an extension by going to the class assignment grading screen, clicking the &amp;quot;Edit&amp;quot; column and choosing &amp;quot;grant extension&amp;quot; for the relevant student. &lt;br /&gt;
&lt;br /&gt;
For more details, see this Youtube screencast [http://www.youtube.com/watch?v=UaL0LzZwyYI&amp;amp;feature=share&amp;amp;list=UUCRg_EbhU9tdpLdiGGN1Mgg Assignment Extensions]&lt;br /&gt;
&lt;br /&gt;
===Always show description===&lt;br /&gt;
&lt;br /&gt;
If the &#039;Always show description&#039; checkbox is ticked, the assignment description is always shown. If the checkbox is not ticked, the assignment description will be hidden until the &#039;Allow submissions from&#039; date.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:alwaysshowdescription.png|thumb|450px|Assignment description hidden until the &#039;Allow submissions from&#039; date.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If &#039;Allow submissions from&#039; is disabled, then this setting has no meaning: the assignment description will always be visible to students.&lt;br /&gt;
&lt;br /&gt;
==Submission types==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:26submissioncomments.png|thumb|450px|Select the type of submission here]]&lt;br /&gt;
|}&lt;br /&gt;
Here you can decide how you wish students to submit their work to you. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that if Submission comments are enabled in &#039;&#039;Administration&amp;gt;Plugins&amp;gt;Activity modules&amp;gt;Assignment&amp;gt;Submission plugins&#039;&#039; then students will be able to add a note to their teacher on submitting work. If Blind marking is enabled, student comments display as from &amp;quot;Participant 01 etc&amp;quot; to avoid revealing identities. These comments will appear in the grading table in the Submission comments column.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Online text===&lt;br /&gt;
Learners can type their response directly in Moodle using the text editor.&lt;br /&gt;
&lt;br /&gt;
{{New features}}It&#039;s possible to set a word limit on an online text assignment. Students get a warning if they try to exceed the word limit:&lt;br /&gt;
&lt;br /&gt;
[[File:onlinetextwordlimit.png|center|]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; Numbers (such as in addresses) are counted as words; structures such as I&#039;m where an apostrophe replaces a part of a word are only counted as one word.&lt;br /&gt;
&lt;br /&gt;
===File submissions===&lt;br /&gt;
Learners can upload and edit one or more files of any type the teacher can  open.&lt;br /&gt;
&lt;br /&gt;
If the student uploads a pdf file, the teacher can annotate it within the browser, and on saving, the annotated file is made available to the student. See section 5.3.1 Annotating pdfs in [[Using Assignment]]&lt;br /&gt;
&lt;br /&gt;
Note: This requires Ghostscript to be enabled on the server. This can be checked in &#039;&#039;Administration&amp;gt;Site administration&amp;gt;Plugins&amp;gt;Activity modules&amp;gt;Assignments&amp;gt;Feedback plugins&amp;gt;Annotate pdf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Maximum number of uploaded files===&lt;br /&gt;
Here you can decide the maximum number of files which may be uploaded by each learner. (It might be helpful to display the number in the assignment description.)&lt;br /&gt;
&lt;br /&gt;
===Maximum submission size===&lt;br /&gt;
This setting specifies the maximum size per file of each of the files that the students can upload as part of their submission. This maximum upload size may only be equal to or less than the course limit (which in turn may only be equal to or less than the site limit). The maximum size of each file is displayed to students at the point where they upload files.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:submission comments.jpg|thumb|Submission comments]]&lt;br /&gt;
|[[File:maximum file size.jpg|thumb|Maximum file size]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feedback types==&lt;br /&gt;
(This setting is collapsed by default)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:feedbacktypes.png|Feedback types]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Feedback comments===&lt;br /&gt;
Setting this to yes means that markers can leave feedback comments for each submission. It enables the Feedback Comments column in the grading table.(To access the grading table, click on the assignment activity and then &#039;&#039;View/Grade all Submissions&#039;&#039;).&lt;br /&gt;
Feedback comments are also accessible by clicking on the green tick in the grade column on the grading table.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:feedback comments.jpg|thumb|The Feedback comments column]]&lt;br /&gt;
|[[FIle:feedback comments 2.jpg|thumb|Type feedback comments into the box]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Offline grading worksheet===&lt;br /&gt;
&lt;br /&gt;
If set to yes, the teacher will have a link to download the grading list as a spreadsheet. They will then be able to enter grades and feedback comments offline:&lt;br /&gt;
 (Not working for non English users, yet. See https://tracker.moodle.org/browse/MDL-40597)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:emptygradebook.png|thumb|The empty gradebook on Moodle]]&lt;br /&gt;
|[[File:downloadgradingworksheet.png|thumb|The dropdown to download the list]]&lt;br /&gt;
|[[File:excelgrades.png|thumb|Editing the grades offline]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When the teacher has completed their grading offline, they can then upload the spreadsheet, confirm the changes and the grades and comments will be transferred over into Moodle&#039;s gradebook:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:uploadgradingworksheet.png|thumb|Uploading the grading worksheet]]&lt;br /&gt;
|[[File:confirmchanges.png|thumb|Confirming the changes]]&lt;br /&gt;
|[[File:fullgradebook.png|thumb|Grades and feedback transferred into Moodle]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See also [http://www.somerandomthoughts.com/blog/2012/11/19/offline-grading-worksheet-in-moodle-2-4-assignment/ Offline grading worksheet] blog post by Gavin Henrick.&lt;br /&gt;
&lt;br /&gt;
===Feedback files===&lt;br /&gt;
This allows  markers to upload files with feedback when marking. These files may be the marked up student assignments, documents with comments, a completed marking guide, or spoken audio feedback. It enables the Feedback Files column in the grading table. (To access the  grading table click on the assignment activity and then &#039;&#039;View/Grade all Submissions&#039;&#039;)To upload feedback files, click on the green tick in the grade column on the grading table and then upload either with drag and drop or using the [[File picker]].&lt;br /&gt;
&lt;br /&gt;
Feedback is displayed to students on the assignment submission page. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:feedback files.jpg|thumb|The Feedback files column]]&lt;br /&gt;
|[[File:feedback files 2.jpg|thumb|Upload files here]]&lt;br /&gt;
|[[File:feedback view for students.jpg|thumb|Student view with comments and file feedback both enabled]]&lt;br /&gt;
|}&lt;br /&gt;
====Uploading multiple feedback files====&lt;br /&gt;
&lt;br /&gt;
It is also possible to upload multiple feedback files as a zip, from the dropdown above the grading list:&lt;br /&gt;
&lt;br /&gt;
#Download the students&#039; assignments using the &amp;quot;Download all submissions&amp;quot; link from the same dropdown menu;&lt;br /&gt;
#Extract the folder offline and add your comments to the student&#039;s submissions.Keep the names the same.&lt;br /&gt;
#Select the students&#039; submissions and zip them into a new folder. Important: Don&#039;t just edit them inside their original folder and re-zip this; it will not work. The folder name does not matter as long as the feedback files have the same names as before.&lt;br /&gt;
#Upload this newly zipped folder.&lt;br /&gt;
#You will be presented with a confirmation screen displaying your feedback files.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:mutiplefeedbackzip.png|thumb|Choose from the dropdown menu]]&lt;br /&gt;
|[[File:multiplezip1.png|thumb|Confirmation screen displaying the feedback files to be uploaded]]&lt;br /&gt;
|[[File:multiplezip2.png|thumb|Screen confirming uploaded feedback]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039;If you zip files on a Mac, you may get a folder included in the zip called _MACOSX_ which needs to be removed otherwise moodle will not recognise the changes in the files.&lt;br /&gt;
&lt;br /&gt;
===Comment inline===&lt;br /&gt;
{{New features}}&lt;br /&gt;
If set to Yes, a teacher can comment directly on the text which a student has submitted as an online text type assignment.&lt;br /&gt;
&lt;br /&gt;
==Submission settings==&lt;br /&gt;
(This setting is collapsed by default)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:submissionsettings.png|Submission settings]]&lt;br /&gt;
|}&lt;br /&gt;
===Require students click submit button===&lt;br /&gt;
Students can upload draft versions of the assignment until such time as they are ready to submit.Once they click the submit button they indicate to the teacher that they have finished working on the assignment. In earlier versions of Moodle this was called &#039;&#039;&amp;quot;Send for marking&amp;quot;&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
They can then longer edit their submission. If they need to change it, they must ask the teacher who can revert the assignment to draft status.&lt;br /&gt;
&lt;br /&gt;
To revert to the draft stage, click on the assignment activity and then View/Grade all Submissions. Locate the student and click the action icon in the Edit column. Select Revert the submission to draft.&lt;br /&gt;
&lt;br /&gt;
If this setting is No, then students do not have to to click a submit button and are able to make changes to uploaded files at any time.&lt;br /&gt;
&lt;br /&gt;
If this setting is No but the teacher wishes to grade students work, then you can stop students from making further changes by using Prevent submission changes. Prevent submission changes can also be used in cases where students have neglected to click the Submit button and grading has commenced.&lt;br /&gt;
To prevent submission changes, click on the assignment activity, then click on the View/Grade all submissions button. On the grading table, locate the student and click the action icon in the Edit column. Select Prevent submission changes.&lt;br /&gt;
&lt;br /&gt;
To do either of these with a number of students, use the &#039;&#039;With selected&#039;&#039; menu at the bottom of the grading table.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:revert to draft.jpg|thumb|Reverting to draft]]&lt;br /&gt;
|[[File:prevent submission changes.jpg|thumb|Prevent submission changes]]&lt;br /&gt;
|[[File:with selected.jpg|thumb|&amp;quot;With selected&amp;quot;..]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To do either of these with a number of students, use the &#039;&#039;With selected&#039;&#039; menu at the bottom of the grading table.&lt;br /&gt;
&lt;br /&gt;
===Require that students accept the Submission statement===&lt;br /&gt;
&lt;br /&gt;
An administrator can define a &amp;quot;Submission statement&amp;quot;, ie, a statement where students promise the work is their own and which they must agree to before submitting their work. This may be done via &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Plugins&amp;gt;Activity modules&amp;gt;Assignment.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If preferred, the available default statement which may be used instead: &#039;&#039;This assignment is my own work, except where I have acknowledged the use of the works of other people&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If the administrator has given teachers the option of using a submission statement or not, then it will be available in the assignment settings screen. The section [[#Submission_Statement]] explains how an administrator can set this up.&lt;br /&gt;
&lt;br /&gt;
For more details, see this blog post [http://ourlearning.co.uk/2012/10/moodle-assignment-all-my-own-work/ &amp;quot;All my own work&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
When this setting is enabled, students will have to check a button before they can submit their assignment:&lt;br /&gt;
&lt;br /&gt;
If the administrator has forced the statement throughout the site, a teacher will not have this option in the settings but a student will see the statement when accessing their assignment.&lt;br /&gt;
&lt;br /&gt;
===Attempts reopened===&lt;br /&gt;
&lt;br /&gt;
This setting allows the teacher to decide how submissions are reopened. The default is &amp;quot;Never&amp;quot;, in that students may only submit once. However, a teacher can set this to &amp;quot;Manually&amp;quot; and reopen it themselves for the student to resubmit, or to &amp;quot;Automatically until pass&amp;quot;. The student must then keep trying and resubmitting until they get a pass grade. [[Grade_items#Activity-based_grade_items|Passing grades]] are set in the Gradebook. &#039;&#039;(Note that for this you need to set the assignment so that students have to click &#039;submit for marking&#039;. If not, then, unless you manually lock a student&#039;s assignment, then they can continue to edit it for as long as they like.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Maximum attempts===&lt;br /&gt;
&lt;br /&gt;
If a student is allowed to resubmit, this setting will determine how many times they can resubmit before they are no longer allowed to do so. (For example, if a student has to keep trying until they get a pass grade, the teacher might decide that ten attempts is enough even though they have not yet passed!)&lt;br /&gt;
&lt;br /&gt;
==Groups submission settings==&lt;br /&gt;
(This setting is collapsed by default)&lt;br /&gt;
{|&lt;br /&gt;
|[[File:groupsubmissionsettings.png|Group submission settings]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Students submit in groups===&lt;br /&gt;
&lt;br /&gt;
If this box is ticked, then students are able to collaborate on an assignment. This might involve for example, working in the same online text area, or one student uploading an MS Powerpoint which another student downloads, improves and re-uploads to the common assignment area.&lt;br /&gt;
&lt;br /&gt;
When grading, the teacher may choose to give a common grade and feedback to all students in the group or to give individual grades and feedback to each member.&lt;br /&gt;
&lt;br /&gt;
If no groups have been made, then Moodle will make a default group of every student in the course.  (Note also that if a student is in more than one group then their submission will be made to the default group.)&lt;br /&gt;
&lt;br /&gt;
For more details see this Youtube video [http://www.youtube.com/watch?v=G16gYZJFCrM&amp;amp;feature=share&amp;amp;list=UUCRg_EbhU9tdpLdiGGN1Mgg Group Assignment 2.4]&lt;br /&gt;
&lt;br /&gt;
===Require all group members submit===&lt;br /&gt;
&lt;br /&gt;
This setting will only appear if the teacher has ticked the &amp;quot;Require students click submit button&amp;quot; earlier. The assignment will not be classed as &amp;quot;submitted&amp;quot; until all members of the group have made a contribution. When one student has submitted, the other members of the group will be able to see who still has to submit.&lt;br /&gt;
&lt;br /&gt;
===Grouping for student groups===&lt;br /&gt;
If a particular grouping is selected here, then the gradebook will display any other groups and non-grouped students in the &amp;quot;default group&amp;quot;, while naming the group(s) that are in the chosen grouping. If &amp;quot;none&amp;quot; is selected, then the gradebook will display the names of all groups and put any non-grouped students in the &amp;quot;default group&amp;quot;. See this [https://moodle.org/mod/forum/discuss.php?d=216399#p942913 forum post on grouping for student groups] for examples of how this might be used.&lt;br /&gt;
&lt;br /&gt;
==Notifications==&lt;br /&gt;
(This setting is collapsed by default)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:notifications25.png|Notifications]]&lt;br /&gt;
|}&lt;br /&gt;
===Notify graders about submissions===&lt;br /&gt;
Teachers will receive a message (of a type they choose) whenever a student submits an assignment.  Please note if you are using the assignment in Groups Mode (eg Separate or Visible Groups), the teacher will need to be a member of the group in order to receive the submission notification.&lt;br /&gt;
===Notify graders about late submission===&lt;br /&gt;
Teachers will receive a message (of a type they choose)whenever a student submits a late assignment.  Please note if you are using the assignment in Groups Mode (eg Separate or Visible Groups), the teacher will need to be a member of the group in order to receive the submission notification.&lt;br /&gt;
&lt;br /&gt;
==Grade==&lt;br /&gt;
(This setting is collapsed by default)&lt;br /&gt;
{|&lt;br /&gt;
|[[File:point1.png|Grade]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Grade===&lt;br /&gt;
*Select [[Grade points|Points]] or [[Scales|Scale]] from the dropdown. If you will not be giving a grade for the assignment, choose No Grade.&lt;br /&gt;
*Then select your points or chosen scale.&lt;br /&gt;
&lt;br /&gt;
===Grading method===&lt;br /&gt;
&lt;br /&gt;
There are 3 options:&lt;br /&gt;
* Simple direct grading (entering a grade or scale item)&lt;br /&gt;
* [[Marking guide]]&lt;br /&gt;
* [[Rubric]]&lt;br /&gt;
&lt;br /&gt;
===Grade Category===&lt;br /&gt;
Any custom [[Grade_categories|Grade Categories]] that have been created within your site or course will be listed here and will be available for selection.  Select the required Grade Category to add this assignment as a [[Grade_items|Grade item]] within this Category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Blind marking===&lt;br /&gt;
&lt;br /&gt;
If this setting is enabled, then a teacher will not see the names of students who have submitted their assignments. Instead, they will see randomly generated Participant numbers. (The student view of the assignment does not change.) This is also the case if student comments have been enabled. Once they have graded the assignment, it is however possible for teachers to see who submitted what by clicking on &amp;quot;Reveal student identities&amp;quot; in the Assignment settings.&lt;br /&gt;
&lt;br /&gt;
====Returning Marks to Students ====&lt;br /&gt;
Because of the nature of blind marking, the students cannot see the final grade until all of the students names have been revealed.  This is found in Assignment Settings &amp;gt; Reveal Student Names.  However, feedback comments will appear.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; Beacuse of this, the  level of anonymity might not suit the privacy requirements of your establishment. See this tracker entry MDL-35390 - &amp;quot;Blind Marking is not so blind&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more details on this feature, see this Youtube video [http://youtu.be/Biiw3E13mgM Blind marking in 2.4].&lt;br /&gt;
&lt;br /&gt;
===Use marking workflow===&lt;br /&gt;
When set to Yes, teachers will be able to specify the stage they are at in their grading of individual assignments (as in the screenshot below)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:26markingworkflow.png|thumb|Marking workflow state in the individual grading screen]]&lt;br /&gt;
|[[File:26quickgradingworkflow.png|thumb|Dropdown to select marking workflow state when quick grading]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One advantage of using marking workflow is that the grades can be hidden from students until they are set to &#039;Released&#039;. The actual list of steps are:&lt;br /&gt;
&lt;br /&gt;
* Not marked (the marker has not yet started) &lt;br /&gt;
* In marking (the marker has started but not yet finished) &lt;br /&gt;
* Marking completed (the marker has finished but might need to go back for checking/corrections) &lt;br /&gt;
* In review (the marking is now with the teacher in charge for quality checking) &lt;br /&gt;
* Ready for release (the teacher in charge is satisfied with the marking but wait before giving students access to the marking) &lt;br /&gt;
* Released (the student can access the grades/feedback)&lt;br /&gt;
&lt;br /&gt;
====Example use cases====&lt;br /&gt;
&lt;br /&gt;
One marker, Marker, wants to release all grades at the same time &lt;br /&gt;
* Marker enables &amp;quot;Use marking workflow&amp;quot; &lt;br /&gt;
* Marker marks each submission and transitions the grading to &amp;quot;Marking completed&amp;quot; as each submission is graded. &lt;br /&gt;
* Marker then uses the batch operations to transition all grades to &amp;quot;Released&amp;quot; at the same time. &lt;br /&gt;
&lt;br /&gt;
Multiple markers, &lt;br /&gt;
* Marker enables &amp;quot;Use marking workflow&amp;quot; &lt;br /&gt;
* Marker marks each submission and transitions the grading to &amp;quot;Marking completed&amp;quot; as each submission is graded. &lt;br /&gt;
* Marker then uses the batch operations to transition all grades to &amp;quot;Released&amp;quot; at the same time.&lt;br /&gt;
&lt;br /&gt;
===Use marking allocation===&lt;br /&gt;
If marking workflow (see above) is set to Yes, it is possible to enable marking allocation. This means that teachers can be selected to grade or review the submitted work of specific students. Colleagues can monitor progress through the displayed marking workflow states:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:26markingworkflowallocatedmarkers.png|thumb|Allocated markers on the grading screen]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common module settings==&lt;br /&gt;
See [[Common module settings]]&lt;br /&gt;
&lt;br /&gt;
==Restrict access settings==&lt;br /&gt;
The [[Restrict_access_settings|Restrict access]] area becomes visible in Moodle activities and resource settings if [[Conditional_activities|Conditional Activities]] have been enabled.&lt;br /&gt;
&lt;br /&gt;
==Locally assigned roles==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Administration &amp;gt; Assignment administration &amp;gt; Locally assigned roles&#039;&#039; selected users can be given additional roles in the activity. See the Using Moodle [http://moodle.org/mod/forum/discuss.php?d=98208 Custom role for &#039;Course Monitor&#039;] forum discussion for an example.&lt;br /&gt;
&lt;br /&gt;
==Assignment capabilities==&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities/mod/assign:exportownsubmission|Export own submission]]&lt;br /&gt;
* [[Capabilities/mod/assign:grade|Grade assignment]]&lt;br /&gt;
* [[Capabilities/mod/assign:submit|Submit assignment]]&lt;br /&gt;
* [[Capabilities/mod/assign:view|View assignment]]&lt;br /&gt;
&lt;br /&gt;
Role permissions for the activity can be changed in &#039;&#039;Settings &amp;gt; Assignment administration &amp;gt; Permissions&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Site administration settings==&lt;br /&gt;
&lt;br /&gt;
The following configuration options are available for an administrator under &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; Assignment&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Assignment settings===&lt;br /&gt;
====Feedback plugin====&lt;br /&gt;
The comments that are pushed to the gradebook from the assignment are limited to a single text only comment. An Administrator can specify which of the feedback plugins will be push comments to the gradebook. On a standard Moodle install the choices are &amp;quot;Feedback comments&amp;quot; (default) or &amp;quot;Feedback file&amp;quot; but there may be additional options if your Moodle install contains additional feedback plugins.&lt;br /&gt;
&lt;br /&gt;
====Show recent submissions====&lt;br /&gt;
This option allows everyone to see notifications of submissions in [[Recent activity]] reports and the Recent Activity Block, within a course context.  Note that the default for this option is No which means students will not be able to see when classmates have submitted or updated any Assignments.&lt;br /&gt;
&lt;br /&gt;
====Send submission receipt to students====&lt;br /&gt;
This switch will enable submission receipts for students. Students will receive a notification every time they successfully submit an assignment.&lt;br /&gt;
{|&lt;br /&gt;
|[[File:ass_settings.jpg|thumb|350px|Submission receipts settings]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Submission Statement====&lt;br /&gt;
&lt;br /&gt;
An administrator can enter text in the box here which will appear when students are about to submit their assignment. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:newsubmissionstatement.png|thumb|Admin view of Submission statement set up screen - click to enlarge]]&lt;br /&gt;
|[[File:submissionstatement.png|thumb|Student view when about to submit - click to enlarge]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If it is left as the default &amp;quot;No&amp;quot;, then teachers will have the choice within their own assignments to force this or not.&lt;br /&gt;
&lt;br /&gt;
====Default assignment settings====&lt;br /&gt;
The administrator can specify here the default assignment settings which may be set as &#039;Advanced&#039; (ie, they will appear when clicking &#039;Show more&#039;) or &#039;Locked&#039; (ie the teacher cannot change them.)&lt;br /&gt;
{|&lt;br /&gt;
|[[File:26assignmentdefaults.png|thumb|Default, Advanced and Locked checkboxes]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following configuration options are available for an administrator under &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Assignment&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Submission plugins===&lt;br /&gt;
====Manage assignment submission plugins====&lt;br /&gt;
Here you can change the order, check the settings or uninstall a particular submission plugin.&lt;br /&gt;
====File submissions====&lt;br /&gt;
&#039;&#039;&#039;Enabled by default&#039;&#039;&#039; If set, this submission method will be enabled by default for all new assignments.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum submission size&#039;&#039;&#039; An Administrator can specify the maximum size of any individual file uploaded within the assignment module across all courses on the site. This limit may be equal to or less than course file upload limit.&lt;br /&gt;
&lt;br /&gt;
====Online text submissions====&lt;br /&gt;
&#039;&#039;&#039;Enabled by default&#039;&#039;&#039; If set, this submission method will be enabled by default for all new assignments.&lt;br /&gt;
&lt;br /&gt;
====Submission comments====&lt;br /&gt;
&lt;br /&gt;
As from Moodle 2.6, this setting does not exist anymore on a per-assignment basis. Instead, the global &amp;quot;Enable comments&amp;quot; setting (in &#039;&#039;Site Administration &amp;gt; Advanced features&#039;&#039;) enables or disables comments for all assignment submissions. If comments are enabled, students will be able to send a message to their teacher when submitting their assignment.&lt;br /&gt;
&lt;br /&gt;
===Feedback plugins===&lt;br /&gt;
====Manage assignment feedback plugins====&lt;br /&gt;
Here you can change the order, check the settings or uninstall a particular feedback plugin.&lt;br /&gt;
====Feedback comments====&lt;br /&gt;
&#039;&#039;&#039;Enabled by default&#039;&#039;&#039; If set, this submission method will be enabled by default for all new assignments.&lt;br /&gt;
====Annotate pdf====&lt;br /&gt;
&lt;br /&gt;
Here you can upload stamps for teachers to use when annotating student pdfs.  You can also check the ghostscript path:&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Selection_116.png|thumb|Ghostscript not installed or incorrectly installed]]&lt;br /&gt;
|[[File:Selection_115.png|thumb|Ghostscript correctly installed]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the default stamps are deleted by accident, they can be found in mod/assign/feedback/editpdf/pix and re-uploaded.&lt;br /&gt;
&lt;br /&gt;
====File feedback====&lt;br /&gt;
&#039;&#039;&#039;Enabled by default&#039;&#039;&#039; If set, this submission method will be enabled by default for all new assignments.&lt;br /&gt;
&lt;br /&gt;
===Offline grading worksheet===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabled by default&#039;&#039;&#039; If set, this will be enabled by default for all new assignments&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
Synergy Learning blog post: [http://www.synergy-learning.com/moodle-2-5-improvements-assignment-resubmissions/ Assignment resubmissions]&lt;br /&gt;
[[de:Aufgabe konfigurieren]]&lt;br /&gt;
[[fr:Ajouter/modifier un devoir]]&lt;br /&gt;
[[ja:課題を追加/編集する]]&lt;br /&gt;
[[es:Configuraciones de tarea]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83172</id>
		<title>Group choice activity</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83172"/>
		<updated>2011-05-02T08:59:52Z</updated>

		<summary type="html">&lt;p&gt;Monidu: /* Operation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
&lt;br /&gt;
This module allows students to enrol themselves in a group within a course. The teacher can choose from which groups the students can chose, and the maximum nummber of students allowed in each group.&lt;br /&gt;
&lt;br /&gt;
The students can view the members of each group before making a choise, and (if the teacher allows it) change their selected group until the deadline.&lt;br /&gt;
&lt;br /&gt;
This module is heavily based on the &amp;quot;choice&amp;quot; activity module, and behaves roughly like it : making a choice enrols you in a group, changing your choice unenrols you from the precedent group and enrols you in the new one, and so on.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
*unzip, and copy into Moodle&#039;s /mod folder&lt;br /&gt;
&lt;br /&gt;
*visit administration page to install module&lt;br /&gt;
&lt;br /&gt;
*use in any course as wished&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
#create groups within your course&lt;br /&gt;
#create a choicegroup activity and select groups from which users can chose from&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=4704 choicegroup] is a Modules and plugins database page that has download links and more information&lt;br /&gt;
&lt;br /&gt;
*Discussions: [http://moodle.org/mod/forum/discuss.php?d=174424]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83171</id>
		<title>Group choice activity</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83171"/>
		<updated>2011-05-02T08:29:56Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
&lt;br /&gt;
This module allows students to enrol themselves in a group within a course. The teacher can choose from which groups the students can chose, and the maximum nummber of students allowed in each group.&lt;br /&gt;
&lt;br /&gt;
The students can view the members of each group before making a choise, and (if the teacher allows it) change their selected group until the deadline.&lt;br /&gt;
&lt;br /&gt;
This module is heavily based on the &amp;quot;choice&amp;quot; activity module, and behaves roughly like it : making a choice enrols you in a group, changing your choice unenrols you from the precedent group and enrols you in the new one, and so on.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
*unzip, and copy into Moodle&#039;s /mod folder&lt;br /&gt;
&lt;br /&gt;
*visit administration page to install module&lt;br /&gt;
&lt;br /&gt;
*use in any course as wished&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
#create groups within your course&lt;br /&gt;
#create choicegroup activity and select groups from which user can chose from&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=4704 choicegroup] is a Modules and plugins database page that has download links and more information&lt;br /&gt;
&lt;br /&gt;
*Discussions: [http://moodle.org/mod/forum/discuss.php?d=174424]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/mod&amp;diff=83170</id>
		<title>mod/choicegroup/mod</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/mod&amp;diff=83170"/>
		<updated>2011-05-02T08:15:45Z</updated>

		<summary type="html">&lt;p&gt;Monidu: Redirected page to mod/choicegroup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[mod/choicegroup]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/view&amp;diff=83169</id>
		<title>mod/choicegroup/view</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/view&amp;diff=83169"/>
		<updated>2011-05-02T08:14:53Z</updated>

		<summary type="html">&lt;p&gt;Monidu: Redirected page to mod/choicegroup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[mod/choicegroup]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/view&amp;diff=83168</id>
		<title>mod/choicegroup/view</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=mod/choicegroup/view&amp;diff=83168"/>
		<updated>2011-05-02T08:13:47Z</updated>

		<summary type="html">&lt;p&gt;Monidu: Created page with &amp;quot;[redirect:mod/choicegroup]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[redirect:mod/choicegroup]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83167</id>
		<title>Group choice activity</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83167"/>
		<updated>2011-05-02T08:13:00Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
&lt;br /&gt;
This module allows students to enrol themselves in a group within a course. The teacher can choose from which groups the students can chose, and the maximum nummber of students allowed in each group.&lt;br /&gt;
&lt;br /&gt;
The students can view the members of each group before making a choise, and (if the teacher allows it) change their selected group until the deadline.&lt;br /&gt;
&lt;br /&gt;
This module is heavily based on the &amp;quot;choice&amp;quot; activity module, and behaves roughly like it : making a choice enrols you in a group, changing your choice unenrols you from the precedent group and enrols you in the new one, and so on.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
*unzip, and copy into Moodle&#039;s /mod folder&lt;br /&gt;
&lt;br /&gt;
*visit administration page to install module&lt;br /&gt;
&lt;br /&gt;
*use in any course as wished&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
#create groups within your course&lt;br /&gt;
#create choicegroup activity and select groups from which user can chose from&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83166</id>
		<title>Group choice activity</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Group_choice_activity&amp;diff=83166"/>
		<updated>2011-05-02T08:12:50Z</updated>

		<summary type="html">&lt;p&gt;Monidu: Created page with &amp;quot;==General information==  This module allows students to enrol themselves in a group within a course. The teacher can choose from which groups the students can chose, and the maxi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
&lt;br /&gt;
This module allows students to enrol themselves in a group within a course. The teacher can choose from which groups the students can chose, and the maximum nummber of students allowed in each group.&lt;br /&gt;
&lt;br /&gt;
The students can view the members of each group before making a choise, and (if the teacher allows it) change their selected group until the deadline.&lt;br /&gt;
&lt;br /&gt;
This module is heavily based on the &amp;quot;choice&amp;quot; activity module, and behaves roughly like it : making a choice enrols you in a group, changing your choice unenrols you from the precedent group and enrols you in the new one, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
*unzip, and copy into Moodle&#039;s /mod folder&lt;br /&gt;
&lt;br /&gt;
*visit administration page to install module&lt;br /&gt;
&lt;br /&gt;
*use in any course as wished&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
#create groups within your course&lt;br /&gt;
#create choicegroup activity and select groups from which user can chose from&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Jabber_settings&amp;diff=80450</id>
		<title>Jabber settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Jabber_settings&amp;diff=80450"/>
		<updated>2011-01-17T13:30:06Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jabber is one of the messaging output plugins (one-way). Output messaging plugins allow delivery of messages to the user when certain events occur (such as assignment notifications, subscribed forum posts, etc.). These plugins are installed in &amp;lt;code&amp;gt;moodle/message/output&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The core messaging output plugins are :&lt;br /&gt;
*email&lt;br /&gt;
*Jabber&lt;br /&gt;
*popup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Individual users can choose to be contacted via Jabber or other messaging plugins for various notification types and depending on whether they&#039;re online or offline Moodle. They do so by visiting their profile page and clicking on the &#039;&#039;Messaging&#039;&#039; link in the &#039;&#039;Settings&#039;&#039; block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location: &#039;&#039;Site administration &amp;gt; Server &amp;gt; Jabber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Jabber_settings&amp;diff=80449</id>
		<title>Jabber settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Jabber_settings&amp;diff=80449"/>
		<updated>2011-01-17T13:28:41Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jabber is one of the messaging output plugins (one-way). Output messaging plugins allow delivery of messages to the user when certain events occur (such as assignment notifications, subscribed forum posts, etc.). These plugins are installed in &amp;lt;code&amp;gt;moodle/message/output&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The core messaging output plugins are :&lt;br /&gt;
*email&lt;br /&gt;
*Jabber&lt;br /&gt;
*popup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Individual users can choose to be contacted via Jabber or other messaging plugins for various notification types and depending on whether they&#039;re online or offline Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location: &#039;&#039;Site administration &amp;gt; Server &amp;gt; Jabber&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54336</id>
		<title>Capabilities/moodle/user:editownmessageprofile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54336"/>
		<updated>2009-04-15T08:55:50Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle_2.0}}&lt;br /&gt;
See [[Development:Messaging 2.0]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54335</id>
		<title>Capabilities/moodle/user:editownmessageprofile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54335"/>
		<updated>2009-04-15T08:54:59Z</updated>

		<summary type="html">&lt;p&gt;Monidu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Development:Messaging 2.0]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54334</id>
		<title>Capabilities/moodle/user:editownmessageprofile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Capabilities/moodle/user:editownmessageprofile&amp;diff=54334"/>
		<updated>2009-04-15T08:54:41Z</updated>

		<summary type="html">&lt;p&gt;Monidu: New page: See Messaging 2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Messaging 2.0]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Development:Setting_up_Eclipse&amp;diff=25242</id>
		<title>Development:Setting up Eclipse</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Development:Setting_up_Eclipse&amp;diff=25242"/>
		<updated>2007-07-20T10:50:40Z</updated>

		<summary type="html">&lt;p&gt;Monidu: /* Installing the necessary plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.eclipse.org/ Eclipse] is an IDE originally designed for Java, but now with plugins for many languages including PHP. It has lots of very powerful features, and it is the editor that some Moodle developers like to use. Other (more) popular choices are vim and emacs.&lt;br /&gt;
&lt;br /&gt;
However, Eclipse is not the easiest program in the world to get started with, so I&#039;m going to take you through it step by step. These instructions assume Eclipse 3.2, the current version at the time of writing. It should not change much between releases.&lt;br /&gt;
&lt;br /&gt;
This article started off as a brain-dump by [[User:Tim Hunt|Tim Hunt]]. Since then, several other people have worked through it and made corrections, so the information here should be pretty accurate.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
Eclipse is written in Java, so I recommend getting the latest Java runtime environment from http://java.com/ for maximum speed and reliability.&lt;br /&gt;
&lt;br /&gt;
Eclipse is quite big, so I recommend lots of memory in your computer. I have used it on Windows, MacOS X and Linux, in each case with 1GB of memory, and that is plenty.&lt;br /&gt;
&lt;br /&gt;
==Installing Eclipse==&lt;br /&gt;
&lt;br /&gt;
Go to http://www.eclipse.org/downloads/. Click on the link corresponding to your operating system where it says &#039;&#039;&#039;Eclipse Classic&#039;&#039;&#039;. Choose a Mirror, and wait for the ~100MB download.&lt;br /&gt;
&lt;br /&gt;
You will notice that what you have got is a zip file (unless your system automatically decompresses it for you).&lt;br /&gt;
&lt;br /&gt;
On Windows, unzip it into &#039;&#039;&#039;C:\Program Files&#039;&#039;&#039; (all the files go into an &#039;&#039;&#039;Eclipse&#039;&#039;&#039; folder there). Then look in the Eclipse folder and drag Eclipse.exe to the Start menu/Desktop/Quicklaunch bar to make a shortcut for starting it.&lt;br /&gt;
&lt;br /&gt;
On MacOS, unzip and copy the Eclipse folder into Applications. Go into the Eclipse folder and drag the Eclipse app to the Dock for ease of launching.&lt;br /&gt;
&lt;br /&gt;
On Linux, unzip somewhere suitable, and make an easy way to launch it.&lt;br /&gt;
&lt;br /&gt;
==The first time you run Eclipse==&lt;br /&gt;
&lt;br /&gt;
The first time you launch Eclipse it does a bit of setup stuff, for instance, it create a &#039;&#039;&#039;workspace&#039;&#039;&#039;. This is where it stores the things you are working on. The default location is sensible on all platforms, so use that. &lt;br /&gt;
&lt;br /&gt;
For some reason, every time you start Eclipse, it asks you which workspace you want to use. I have never seen the need to have more than one, so I recommend turning on the checkbox that says &amp;quot;Don&#039;t ask me this again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Another thing that happens the first time you run Eclipse is that you arrive at a welcome screen. This has links to various bits of help, which you can read if you like, but you probably don&#039;t need to if you are following these instructions. So find the button on the welcome page that closes it and gets you to the main Eclipse screen.&lt;br /&gt;
&lt;br /&gt;
==Installing the necessary plugins==&lt;br /&gt;
&lt;br /&gt;
By default, Eclipse comes with the Java tools. For everything else you will need to install some plugins.&lt;br /&gt;
&lt;br /&gt;
If you are sitting behind a web proxy, from the &#039;&#039;&#039;Window&#039;&#039;&#039; menu choose &#039;&#039;&#039;Preferences ...&#039;&#039;&#039;. Choose &#039;&#039;&#039;Install/Update&#039;&#039;&#039; from the tree view on the left, and enter the proxy information in the boxes on the right. If you aren&#039;t behind a proxy, ignore this step.&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;Help&#039;&#039;&#039; menu choose &#039;&#039;&#039;Software Updates -&amp;gt; Find and Install&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the first screen of the wizard, make sure that &amp;quot;Search for new features to install&amp;quot; is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The next screen is a list of upgrade sites to check. You need to add one to the list, so click the &#039;&#039;&#039;New Remote Site ...&#039;&#039;&#039; Button.&lt;br /&gt;
&lt;br /&gt;
In the pop-up dialog, give the remote site a name like &#039;&#039;&#039;PHPeclipse Update Site&#039;&#039;&#039;; set the URL to http://phpeclipse.sourceforge.net/update/releases/; then click &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Back in the wizard, turn on just two things in the box &amp;quot;Sites to include in search&amp;quot;:&lt;br /&gt;
* Your newly created &#039;&#039;&#039;Phpeclipse Update Site&#039;&#039;&#039;; and&lt;br /&gt;
* the one called &#039;&#039;&#039;Europa Discovery Site&#039;&#039;&#039;.&lt;br /&gt;
Then click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
It goes off sees what updates are available at those sites. As it does so, it may occasionally pop up a dialog asking you to choose a mirror. Each time, select a sensible one.&lt;br /&gt;
&lt;br /&gt;
Eventually, you get to a new wizard for selecting and installing the updates you want. The ones you want (you may have to search the tree structure) are, &#039;&#039;&#039;PHPeclipse&#039;&#039;&#039; (from your newly created PHPEclipse Update Site) and all the &#039;&#039;&#039;Web Standard Tools (WST)&#039;&#039;&#039; (usually under Europa Discovery Site --&amp;gt; Web and J2EE Development).&lt;br /&gt;
&lt;br /&gt;
Next, and very importantly, you must click the &#039;&#039;&#039;Select Required&#039;&#039;&#039; button which should resolve dependencies and remove the warning message you are probably worrying about. Then you can click the &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
Read and agree to all the license agreements. Then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;, and wait for the plugins to download.&lt;br /&gt;
&lt;br /&gt;
Once the downloads have finished, a warning will pop-up telling you that all the plugins you downloaded are not digitally signed. The Eclipse Foundation build digital signing of plugins into their architecture as a security measure, and then did not sign any of their own plugins! Anyway, click the &#039;&#039;&#039;Install All&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
Finally, a window will pop up asking you to restart Eclipse. Do so.&lt;br /&gt;
&lt;br /&gt;
==Setting the preferences for Moodle development==&lt;br /&gt;
&lt;br /&gt;
Now go to the &#039;&#039;&#039;Window&#039;&#039;&#039; menu, and choose &#039;&#039;&#039;Preferences ...&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Eclipse preferences are immense, with a tree view on the left, which selects which screen to display on the right. Don&#039;t panic, we&#039;ll guide you through it.&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
&lt;br /&gt;
If you have strong feelings about fonts (I would hate to edit code an anything except Andale Mono), choose &#039;&#039;&#039;General -&amp;gt; Appearance -&amp;gt; Colors and Fonts&#039;&#039;&#039; from the tree on the left. Then on the right look under &#039;&#039;&#039;Basic&#039;&#039;&#039; and change &#039;&#039;&#039;Text Font&#039;&#039;&#039;. All the other editor font settings will inherit from this, so this is probably the only one you have to change.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;General -&amp;gt; Content Types&#039;&#039;&#039;, select PHP Source File, and add &#039;&#039;&#039;*.html&#039;&#039;&#039; to the box at the bottom.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;General -&amp;gt; Editors -&amp;gt; File Associations&#039;&#039;&#039;, if it is not already there, add &#039;&#039;&#039;*.php&#039;&#039;&#039; to the top box. With &#039;&#039;&#039;*.php&#039;&#039;&#039; selected in the top box, make sure &#039;&#039;&#039;PHP Editor&#039;&#039;&#039; is set to default in the bottom box. With &#039;&#039;&#039;*.html&#039;&#039;&#039; selected in the top box, select &#039;&#039;&#039;PHP Editor&#039;&#039;&#039; in the bottom box and click the &#039;&#039;&#039;Default&#039;&#039;&#039; button to change it, because in Moodle, most HTML files actually contain PHP code.&lt;br /&gt;
&lt;br /&gt;
If you use a web proxy, enter the details under &#039;&#039;&#039;Internet -&amp;gt; Proxy Settings&#039;&#039;&#039;. (Yes, I know you have entered the somewhere else before. Now you have to enter them again here. I don&#039;t know why. You just do.)&lt;br /&gt;
&lt;br /&gt;
===PHP Settings===&lt;br /&gt;
&lt;br /&gt;
These are all hidden under the &#039;&#039;&#039;PHPeclipse Web Development&#039;&#039;&#039; bit of the tree.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; Browser Preview Defaults&#039;&#039;&#039;, turn off both checkboxes.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP&#039;&#039;&#039;, on the &#039;&#039;&#039;Appearance&#039;&#039;&#039; tab, set &#039;&#039;&#039;Displayed tab width&#039;&#039;&#039; to 4.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP&#039;&#039;&#039;, on the &#039;&#039;&#039;Typing&#039;&#039;&#039; tab, turn off all the options except &#039;&#039;&#039;Pasting for correct indentation&#039;&#039;&#039;, &#039;&#039;&#039;Insert spaces for tab&#039;&#039;&#039; and &#039;&#039;&#039;Close PHPdocs and comments&#039;&#039;&#039; and &#039;&#039;&#039;Remove trailing spaces on editor save&#039;&#039;&#039;. It would be nice to turn on more of these options, but most of the rest don&#039;t work very well.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Formatter&#039;&#039;&#039;, on the &#039;&#039;&#039;New Lines&#039;&#039;&#039; tab, turn on &#039;&#039;&#039;Clear all blank lines&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Formatter&#039;&#039;&#039;, on the &#039;&#039;&#039;Style&#039;&#039;&#039; tab, turn off &#039;&#039;&#039;Indentation is represented by a tab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Templates&#039;&#039;&#039;, I like to define a new template to help with debugging:&lt;br /&gt;
;Name&lt;br /&gt;
:dump &lt;br /&gt;
;Description&lt;br /&gt;
:Dump a PHP variable&lt;br /&gt;
;Pattern&lt;br /&gt;
&amp;lt;pre&amp;gt;echo &#039;&amp;amp;lt;pre&amp;gt;&#039;; //DONOTCOMMIT&lt;br /&gt;
    print_r(${cursor});&lt;br /&gt;
echo &#039;&amp;amp;lt;/pre&amp;gt;&#039;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can do other useful things with templates too.&lt;br /&gt;
&lt;br /&gt;
There is a really stupid bug. Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; Project Defaults&#039;&#039;&#039;, you would like to add &amp;quot;.&amp;quot; to the &#039;&#039;&#039;Include Paths&#039;&#039;&#039;, but you can&#039;t using the GUI. You will have to edit one of the Eclipse config files by hand. So&lt;br /&gt;
# Note down the path to your Eclipse profile. On Windows it will be something like &#039;&#039;&#039;C:/Documents and settings/XXXX/workspace&#039;&#039;&#039;, and on Unixy systems something like &#039;&#039;&#039;~/workspace&#039;&#039;&#039;.&lt;br /&gt;
# Close Eclipse. &lt;br /&gt;
# Open the file &#039;&#039;&#039;net.sourceforge.phpeclipse.ui.prefs&#039;&#039;&#039; that is in the directory &#039;&#039;&#039;(your workspace)/.metadata/.plugins/org.eclipse.core.runtime/.settings&#039;&#039;&#039; in a text editor.&lt;br /&gt;
# Look for a line in the file that starts &#039;&#039;&#039;_php_include_paths=&#039;&#039;&#039; If it is not there, add it at the end.&lt;br /&gt;
# Change this line to say &#039;&#039;&#039;_php_include_paths=.&#039;&#039;&#039;&lt;br /&gt;
# Run Eclipse again.&lt;br /&gt;
&lt;br /&gt;
===CVS Settings===&lt;br /&gt;
&lt;br /&gt;
These are all hidden under the &#039;&#039;&#039;Team&#039;&#039;&#039; bit of the tree.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; SSH2 Connection Method&#039;&#039;&#039;, you can set up a public/private key pair. If you do this, you won&#039;t have to keep typing your Sourceforge password when doing CVS operations. See http://sourceforge.net/docs/F02/ for the instructions of what you have to do at the Sourceforge end to make this work. That should make it clear what you have to do in Eclipse.&lt;br /&gt;
&lt;br /&gt;
The rest of the ones in this section are personal preferences, but I recommend them because the default settings are very irritating.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team&#039;&#039;&#039;, set &#039;&#039;&#039;Perspectives&#039;&#039;&#039; to &#039;&#039;&#039;None&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; Annotate&#039;&#039;&#039; set &#039;&#039;&#039;Use Quick Diff annotate mode for local file annotations&#039;&#039;&#039; to &#039;&#039;&#039;Yes&#039;&#039;&#039;, and &#039;&#039;&#039;Open perspective after a &#039;Show Annotations&#039; operation&#039;&#039;&#039; to &#039;&#039;&#039;No&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; Label Decorations&#039;&#039;&#039;, switch to the &#039;&#039;&#039;Icon Decorations&#039;&#039;&#039; tab and turn on all the settings, and then on the &#039;&#039;&#039;Text Decorations&#039;&#039;&#039; tab change both &#039;&#039;&#039;File Decoration&#039;&#039;&#039; and &#039;&#039;&#039;Folder Decoration&#039;&#039;&#039; to be just &#039;&#039;&#039;{name}&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Web and XML settings===&lt;br /&gt;
&lt;br /&gt;
Foreach XXX in CSS, HTML, Javascript, XML:&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Web and XML -&amp;gt; XXX Files -&amp;gt;XXX Source&#039;&#039;&#039;, choose &#039;&#039;&#039;Indent using spaces&#039;&#039;&#039; and &#039;&#039;&#039;indentation size&#039;&#039;&#039; 4.&lt;br /&gt;
&lt;br /&gt;
==Checking out the Moodle code==&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;File&#039;&#039;&#039; menu, choose &#039;&#039;&#039;New -&amp;gt; Project ...&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In the wizard that pops up, choose &#039;&#039;&#039;CVS -&amp;gt; Projects from CVS&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Select &#039;&#039;&#039;Create a new repository location&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fill in&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; border: 1px solid orange; padding: 0 1em;&amp;quot;&amp;gt;&lt;br /&gt;
For anonymous CVS access use&lt;br /&gt;
;Host&lt;br /&gt;
:XX.cvs.moodle.org&lt;br /&gt;
where XX.cvs.moodle.org is one of [[CVS_for_Administrators#CVS_Servers|these mirrors]]&lt;br /&gt;
;Repository path&lt;br /&gt;
:/cvsroot/moodle&lt;br /&gt;
;User&lt;br /&gt;
:anonymous&lt;br /&gt;
;Password&lt;br /&gt;
:(leave blank)&lt;br /&gt;
;Connection type&lt;br /&gt;
:pserver&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
;Host&lt;br /&gt;
:moodle.cvs.sourceforge.net&lt;br /&gt;
;Repository path&lt;br /&gt;
:/cvsroot/moodle&lt;br /&gt;
;User&lt;br /&gt;
:(your sourceforge username)&lt;br /&gt;
;Password&lt;br /&gt;
:(if you set up the SSH2 key thing in preferences, leave this blank, otherwise, type in your sourceforge password.)&lt;br /&gt;
;Connection type&lt;br /&gt;
:extssh&lt;br /&gt;
(CVS experts, if you are confused by that last one, know it is an Eclipse-specific thing.) Then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the next screen of the Wizard, choose &#039;&#039;&#039;Use an existing module&#039;&#039;&#039;. Wait a moment, then select &#039;&#039;&#039;moodle&#039;&#039;&#039; from the list. Click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the next screen, make sure the option &#039;&#039;&#039;Check out as a project configured using the New Project Wizard&#039;&#039;&#039; is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Refresh Tags&#039;&#039;&#039;, then choose the branch you want. For now leave it set to &#039;&#039;&#039;HEAD&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you  will find yourself back at the start of the &#039;&#039;&#039;New Project&#039;&#039;&#039; Wizard. This is because of the option you chose three paragraphs ago. This time you should select &#039;&#039;&#039;PHP -&amp;gt; PHP Project&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Make up a project name. &#039;&#039;&#039;moodle&#039;&#039;&#039; would be sensible.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;, and wait while all the moodle files are checked out of CVS.&lt;br /&gt;
&lt;br /&gt;
Once it has finished, it will probably ask you if you want to switch to the PHP perspective. Answer &#039;&#039;&#039;Yes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you also need the 1.6 stable branch, or another branch, repeat all the other steps with a few changes:&lt;br /&gt;
* This time you can choose &#039;&#039;&#039;Use and existing repository location&#039;&#039;&#039; instead of typing all the sourceforge CVS details again.&lt;br /&gt;
* Select the appropriate branch.&lt;br /&gt;
* Use a different project name.&lt;br /&gt;
&lt;br /&gt;
==Let your development web server know where your files are==&lt;br /&gt;
&lt;br /&gt;
Either by editing you web server&#039;s config files, or using a symbolic link. Make sure your webserver can see your new working set of files at a sensible URL, so you can test the code you are working on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Quick tour of some cool features, and remaining configuration changes==&lt;br /&gt;
&lt;br /&gt;
I find the default workbench setup is pretty good. Here is a quick guide to some of the bits.&lt;br /&gt;
&lt;br /&gt;
===Navigator===&lt;br /&gt;
&lt;br /&gt;
To the left is the &#039;&#039;&#039;Navigator&#039;&#039;&#039;. This is a tree view of all your files. If you double-click on a file, it opens in the editor in the middle. Try opening &#039;&#039;&#039;course/lib.php&#039;&#039;&#039; now. You will notice that it comes up nicely syntax-hightlighted.&lt;br /&gt;
&lt;br /&gt;
===Error highlighting===&lt;br /&gt;
&lt;br /&gt;
In the middle of the file, just type any old text, for example &amp;quot;I like Eclipse&amp;quot;. Obviously, this is not valid PHP syntax, and Eclipse will notice this, and put a red underline under it. Also, by the scrollbar is a ruler with a red mark in it to show the error.&lt;br /&gt;
&lt;br /&gt;
You will see some yellow marks lower down the ruler. There are warnings. Click on one, and you will be taked to where that warning is in the file. Hover your mouse over the warning, and you will get a tooltip explaining what the problem might be.&lt;br /&gt;
&lt;br /&gt;
Save the edited file. (Don&#039;t worry that it is broken, we&#039;ll clean up the mess later.) Notice that a red error marker is added to the file in the navigator, so you can see that there is a problem. Also, error markers are added to the course folder, and the whole project, so you could see there was an error even if the navigator tree was collapsed.&lt;br /&gt;
&lt;br /&gt;
You will probably find lots of warnings that the config.php file can&#039;t be found. In the navigator, find the file &#039;&#039;&#039;config-dist.php&#039;&#039;&#039;. Do &#039;&#039;&#039;Copy&#039;&#039;&#039; then &#039;&#039;&#039;Paste&#039;&#039;&#039; and choose to call the new file &#039;&#039;&#039;config.php&#039;&#039;&#039;. Edit this new config.php as normal. You should fine that most of the include file warnings have gone now.&lt;br /&gt;
&lt;br /&gt;
Notice also that there is another marker on each file icon. A little yellow cylinder on most files, but a white-on-brown star on the one you have edited. This is telling you the CVS status of each file. The brown stars are changes you have made but not checked in yet.&lt;br /&gt;
&lt;br /&gt;
===Outline===&lt;br /&gt;
&lt;br /&gt;
Over to the right is the Outline view. This shows a list of functions and classes defined in this file. By default, they are listed in the same order as in the file, but if you click on the &#039;&#039;&#039;az&#039;&#039;&#039; toolbar button, they are sorted into alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Click on the function name &#039;&#039;&#039;add_course_module&#039;&#039;&#039; in the Outline. You will see that the editor scrolls to the definition of that function.&lt;br /&gt;
&lt;br /&gt;
===Code navigation===&lt;br /&gt;
&lt;br /&gt;
In that function, hover the mouse pointer over the function name &#039;&#039;&#039;insert_record&#039;&#039;&#039;. After a while, the documentation for that function will appear in a big tooltip.&lt;br /&gt;
&lt;br /&gt;
Hold down CTRL, move the mouse pointer over the function name &#039;&#039;&#039;insert_record&#039;&#039;&#039;, then click. Eclipse should load &#039;&#039;&#039;dmllib.php&#039;&#039;&#039;, and scroll you to where this function is defined.&lt;br /&gt;
&lt;br /&gt;
In the main Eclipse toolbar, there are forward and back arrows like in a web browser. Click back now to get back to &#039;&#039;&#039;course/lib.php&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Open resource===&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;Navigate&#039;&#039;&#039; menu, choose &#039;&#039;&#039;Open Resource...&#039;&#039;&#039;. In the dialog that pops up, start typing a filename for instance type &#039;&#039;&#039;moodlel&#039;&#039;&#039;. In the box in the middle of the dialog, you will see it list all the files in the project whose names start that way. At the bottom is a box which lists the different folders that contain a file with that name. This can be a very quick way of opening files with fairly unique names like moodlelib.php, without having to click through the levels of the navigator tree. Of course, it is not so useful for an index.php file! Click OK now to open moodlelib.php. (It would actually work if you just did CTRL + Shift + R, moodlel, Enter.)&lt;br /&gt;
&lt;br /&gt;
===Multi-file search===&lt;br /&gt;
&lt;br /&gt;
Scroll down moodlelib a little bit, and double click on the name of the constant &#039;&#039;&#039;MOODLE_INTERNAL&#039;&#039;&#039; where it is defined, so that the text is selected. Then, from the &#039;&#039;&#039;Search&#039;&#039;&#039; menu, choose &#039;&#039;&#039;Search...&#039;&#039;&#039;. Notice that the &#039;&#039;&#039;Containing text&#039;&#039;&#039; box has already been filled in for you with the text you just selected. Of course you can just type text into this box without selecting it first. Notice that you can do regular expression searches, but leave that turned off for now. In the &#039;&#039;&#039;File name patterns&#039;&#039;&#039; box type &#039;&#039;&#039;*.css, *.html, *.inc, *.js, *.php, *.xml&#039;&#039;&#039;. (This is the most useful general setting for working on moodle. Eclipse will remember this setting, so you only have to enter it once.) Click &#039;&#039;&#039;Search&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The search results will appear in a new view underneath the editor. That view has a toolbar with yellow up and down arrows. Click the down arrow a few times and it will take you to the first few matches in the code, opening the relevant files as necessary.&lt;br /&gt;
&lt;br /&gt;
===Synchronize view===&lt;br /&gt;
&lt;br /&gt;
I think this is my favorite feature. From the &#039;&#039;&#039;Window&#039;&#039;&#039; menu, select &#039;&#039;&#039;Show View -&amp;gt; Other...&#039;&#039;&#039;. In the dialog that pops up, select &#039;&#039;&#039;Team -&amp;gt; Synchronize&#039;&#039;&#039;, then click &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This opens the Synchronize view below the editor. The view has a toolbar. Click on the first toolbar button, which pops up the Synchronize wizard.&lt;br /&gt;
&lt;br /&gt;
On the first screen, there will probably only be one option: &#039;&#039;&#039;CVS&#039;&#039;&#039;. Make sure that is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Scope&#039;&#039;&#039;, choose &#039;&#039;&#039;Workspace&#039;&#039;&#039;, then click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wait while it talks to the CVS server. After a while, you will see that the Synchronize view lists course/lib.php, and something called &#039;&#039;&#039;.project.... That is, it is listing just the files you have edited, but not checked in yet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.project&#039;&#039;&#039; is something that belongs to Eclipse that we don&#039;t care about. So select it and bring up the context menu, and choose &#039;&#039;&#039;Add to .cvsignore...&#039;&#039;&#039;. In the dialog that pops up, choose the top option, then click &#039;&#039;&#039;OK&#039;&#039;&#039;. Then you will find the Synchronize view shows you a &#039;&#039;&#039;.cvsignore&#039;&#039;&#039; file that you aren&#039;t interested in, so add that to .cvsignore too!&lt;br /&gt;
&lt;br /&gt;
If you double-click on &#039;&#039;&#039;course/lib.php&#039;&#039;&#039; here, you will see that it opens the compare editor, which is a nice graphical display of the changes in this file.&lt;br /&gt;
&lt;br /&gt;
If you select a file or files here, then bring up the context menu, you will see the option to &#039;&#039;&#039;Commit...&#039;&#039;&#039; the changes. (But don&#039;t do that now!). This is the easiest way to commit things in Eclipse.&lt;br /&gt;
&lt;br /&gt;
However, our changes were rubbish, so we want to undo them. So open the context menu again, and choose &#039;&#039;&#039;Override and Update&#039;&#039;&#039;. This checks a clean copy of the file out of CVS, removing our changes.&lt;br /&gt;
&lt;br /&gt;
Note that the easiest way to do an ordinary CVS Update is to select the top-level project-folder in the Navigator view on the left, open the context menu, and choose &#039;&#039;&#039;Team -&amp;gt; Update&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
That&#039;s all the really important features. I sure you can learn everything else on your own. An you could always read the built in help!&lt;br /&gt;
&lt;br /&gt;
===Creating a patch===&lt;br /&gt;
&lt;br /&gt;
In the synchronise view, right click on an item (file or folder) and choose &#039;&#039;&#039;Create Patch...&#039;&#039;&#039;. Or in the navigator, right click on an item and choose &#039;&#039;&#039;Team -&amp;gt; Create Patch...&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This brings up a two-page wizard. On the first page you can select where you want the patch made. For small patches it can be useful to create them on the clipboard, but normally you will want to save them in a file.&lt;br /&gt;
&lt;br /&gt;
On the second page, you can set some options, but normally you don&#039;t need to change the defaults which are &#039;&#039;&#039;Unified&#039;&#039;&#039; diff format, and Patch root set to &#039;&#039;&#039;Workspace&#039;&#039;&#039;. Well, sometimes it is helpful to change the second one to &#039;&#039;&#039;Project&#039;&#039;&#039; but it is not important.&lt;br /&gt;
&lt;br /&gt;
There is a corresponding apply patch wizard that you can use to apply a patch to a project.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
&lt;br /&gt;
There is an excellent series of articles published by IBM on using Eclipse for Drupal developement here : [http://www-128.ibm.com/developerworks/ibm/osource/index.html Using open source software to design, develop, and deploy a collaborative Web site Tools and techniques for getting relatively complicated Web sites up and running quickly].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer|Setting up Eclipse]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/34/en/index.php?title=Development:Setting_up_Eclipse&amp;diff=25241</id>
		<title>Development:Setting up Eclipse</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/34/en/index.php?title=Development:Setting_up_Eclipse&amp;diff=25241"/>
		<updated>2007-07-20T10:49:19Z</updated>

		<summary type="html">&lt;p&gt;Monidu: /* Installing Eclipse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.eclipse.org/ Eclipse] is an IDE originally designed for Java, but now with plugins for many languages including PHP. It has lots of very powerful features, and it is the editor that some Moodle developers like to use. Other (more) popular choices are vim and emacs.&lt;br /&gt;
&lt;br /&gt;
However, Eclipse is not the easiest program in the world to get started with, so I&#039;m going to take you through it step by step. These instructions assume Eclipse 3.2, the current version at the time of writing. It should not change much between releases.&lt;br /&gt;
&lt;br /&gt;
This article started off as a brain-dump by [[User:Tim Hunt|Tim Hunt]]. Since then, several other people have worked through it and made corrections, so the information here should be pretty accurate.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
Eclipse is written in Java, so I recommend getting the latest Java runtime environment from http://java.com/ for maximum speed and reliability.&lt;br /&gt;
&lt;br /&gt;
Eclipse is quite big, so I recommend lots of memory in your computer. I have used it on Windows, MacOS X and Linux, in each case with 1GB of memory, and that is plenty.&lt;br /&gt;
&lt;br /&gt;
==Installing Eclipse==&lt;br /&gt;
&lt;br /&gt;
Go to http://www.eclipse.org/downloads/. Click on the link corresponding to your operating system where it says &#039;&#039;&#039;Eclipse Classic&#039;&#039;&#039;. Choose a Mirror, and wait for the ~100MB download.&lt;br /&gt;
&lt;br /&gt;
You will notice that what you have got is a zip file (unless your system automatically decompresses it for you).&lt;br /&gt;
&lt;br /&gt;
On Windows, unzip it into &#039;&#039;&#039;C:\Program Files&#039;&#039;&#039; (all the files go into an &#039;&#039;&#039;Eclipse&#039;&#039;&#039; folder there). Then look in the Eclipse folder and drag Eclipse.exe to the Start menu/Desktop/Quicklaunch bar to make a shortcut for starting it.&lt;br /&gt;
&lt;br /&gt;
On MacOS, unzip and copy the Eclipse folder into Applications. Go into the Eclipse folder and drag the Eclipse app to the Dock for ease of launching.&lt;br /&gt;
&lt;br /&gt;
On Linux, unzip somewhere suitable, and make an easy way to launch it.&lt;br /&gt;
&lt;br /&gt;
==The first time you run Eclipse==&lt;br /&gt;
&lt;br /&gt;
The first time you launch Eclipse it does a bit of setup stuff, for instance, it create a &#039;&#039;&#039;workspace&#039;&#039;&#039;. This is where it stores the things you are working on. The default location is sensible on all platforms, so use that. &lt;br /&gt;
&lt;br /&gt;
For some reason, every time you start Eclipse, it asks you which workspace you want to use. I have never seen the need to have more than one, so I recommend turning on the checkbox that says &amp;quot;Don&#039;t ask me this again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Another thing that happens the first time you run Eclipse is that you arrive at a welcome screen. This has links to various bits of help, which you can read if you like, but you probably don&#039;t need to if you are following these instructions. So find the button on the welcome page that closes it and gets you to the main Eclipse screen.&lt;br /&gt;
&lt;br /&gt;
==Installing the necessary plugins==&lt;br /&gt;
&lt;br /&gt;
By default, Eclipse comes with the Java tools. For everything else you will need to install some plugins.&lt;br /&gt;
&lt;br /&gt;
If you are sitting behind a web proxy, from the &#039;&#039;&#039;Window&#039;&#039;&#039; menu choose &#039;&#039;&#039;Preferences ...&#039;&#039;&#039;. Choose &#039;&#039;&#039;Install/Update&#039;&#039;&#039; from the tree view on the left, and enter the proxy information in the boxes on the right. If you aren&#039;t behind a proxy, ignore this step.&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;Help&#039;&#039;&#039; menu choose &#039;&#039;&#039;Software Updates -&amp;gt; Find and Install&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the first screen of the wizard, make sure that &amp;quot;Search for new features to install&amp;quot; is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The next screen is a list of upgrade sites to check. You need to add one to the list, so click the &#039;&#039;&#039;New Remote Site ...&#039;&#039;&#039; Button.&lt;br /&gt;
&lt;br /&gt;
In the pop-up dialog, give the remote site a name like &#039;&#039;&#039;PHPeclipse Update Site&#039;&#039;&#039;; set the URL to http://phpeclipse.sourceforge.net/update/releases/; then click &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Back in the wizard, turn on just two things in the box &amp;quot;Sites to include in search&amp;quot;:&lt;br /&gt;
* Your newly created &#039;&#039;&#039;Phpeclipse Update Site&#039;&#039;&#039;; and&lt;br /&gt;
* the one called &#039;&#039;&#039;Callisto Discovery Site&#039;&#039;&#039;.&lt;br /&gt;
Then click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
It goes off sees what updates are available at those sites. As it does so, it may occasionally pop up a dialog asking you to choose a mirror. Each time, select a sensible one.&lt;br /&gt;
&lt;br /&gt;
Eventually, you get to a new wizard for selecting and installing the updates you want. The ones you want (you may have to search the tree structure) are, &#039;&#039;&#039;PHPeclipse&#039;&#039;&#039; (from your newly created PHPEclipse Update Site) and all the &#039;&#039;&#039;Web Standard Tools (WST)&#039;&#039;&#039; (usually under Callisto Discovery Site --&amp;gt; Web and J2EE Development).&lt;br /&gt;
&lt;br /&gt;
Next, and very importantly, you must click the &#039;&#039;&#039;Select Required&#039;&#039;&#039; button which should resolve dependencies and remove the warning message you are probably worrying about. Then you can click the &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
Read and agree to all the license agreements. Then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;, and wait for the plugins to download.&lt;br /&gt;
&lt;br /&gt;
Once the downloads have finished, a warning will pop-up telling you that all the plugins you downloaded are not digitally signed. The Eclipse Foundation build digital signing of plugins into their architecture as a security measure, and then did not sign any of their own plugins! Anyway, click the &#039;&#039;&#039;Install All&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
Finally, a window will pop up asking you to restart Eclipse. Do so.&lt;br /&gt;
&lt;br /&gt;
==Setting the preferences for Moodle development==&lt;br /&gt;
&lt;br /&gt;
Now go to the &#039;&#039;&#039;Window&#039;&#039;&#039; menu, and choose &#039;&#039;&#039;Preferences ...&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Eclipse preferences are immense, with a tree view on the left, which selects which screen to display on the right. Don&#039;t panic, we&#039;ll guide you through it.&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
&lt;br /&gt;
If you have strong feelings about fonts (I would hate to edit code an anything except Andale Mono), choose &#039;&#039;&#039;General -&amp;gt; Appearance -&amp;gt; Colors and Fonts&#039;&#039;&#039; from the tree on the left. Then on the right look under &#039;&#039;&#039;Basic&#039;&#039;&#039; and change &#039;&#039;&#039;Text Font&#039;&#039;&#039;. All the other editor font settings will inherit from this, so this is probably the only one you have to change.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;General -&amp;gt; Content Types&#039;&#039;&#039;, select PHP Source File, and add &#039;&#039;&#039;*.html&#039;&#039;&#039; to the box at the bottom.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;General -&amp;gt; Editors -&amp;gt; File Associations&#039;&#039;&#039;, if it is not already there, add &#039;&#039;&#039;*.php&#039;&#039;&#039; to the top box. With &#039;&#039;&#039;*.php&#039;&#039;&#039; selected in the top box, make sure &#039;&#039;&#039;PHP Editor&#039;&#039;&#039; is set to default in the bottom box. With &#039;&#039;&#039;*.html&#039;&#039;&#039; selected in the top box, select &#039;&#039;&#039;PHP Editor&#039;&#039;&#039; in the bottom box and click the &#039;&#039;&#039;Default&#039;&#039;&#039; button to change it, because in Moodle, most HTML files actually contain PHP code.&lt;br /&gt;
&lt;br /&gt;
If you use a web proxy, enter the details under &#039;&#039;&#039;Internet -&amp;gt; Proxy Settings&#039;&#039;&#039;. (Yes, I know you have entered the somewhere else before. Now you have to enter them again here. I don&#039;t know why. You just do.)&lt;br /&gt;
&lt;br /&gt;
===PHP Settings===&lt;br /&gt;
&lt;br /&gt;
These are all hidden under the &#039;&#039;&#039;PHPeclipse Web Development&#039;&#039;&#039; bit of the tree.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; Browser Preview Defaults&#039;&#039;&#039;, turn off both checkboxes.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP&#039;&#039;&#039;, on the &#039;&#039;&#039;Appearance&#039;&#039;&#039; tab, set &#039;&#039;&#039;Displayed tab width&#039;&#039;&#039; to 4.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP&#039;&#039;&#039;, on the &#039;&#039;&#039;Typing&#039;&#039;&#039; tab, turn off all the options except &#039;&#039;&#039;Pasting for correct indentation&#039;&#039;&#039;, &#039;&#039;&#039;Insert spaces for tab&#039;&#039;&#039; and &#039;&#039;&#039;Close PHPdocs and comments&#039;&#039;&#039; and &#039;&#039;&#039;Remove trailing spaces on editor save&#039;&#039;&#039;. It would be nice to turn on more of these options, but most of the rest don&#039;t work very well.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Formatter&#039;&#039;&#039;, on the &#039;&#039;&#039;New Lines&#039;&#039;&#039; tab, turn on &#039;&#039;&#039;Clear all blank lines&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Formatter&#039;&#039;&#039;, on the &#039;&#039;&#039;Style&#039;&#039;&#039; tab, turn off &#039;&#039;&#039;Indentation is represented by a tab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; PHP -&amp;gt; Templates&#039;&#039;&#039;, I like to define a new template to help with debugging:&lt;br /&gt;
;Name&lt;br /&gt;
:dump &lt;br /&gt;
;Description&lt;br /&gt;
:Dump a PHP variable&lt;br /&gt;
;Pattern&lt;br /&gt;
&amp;lt;pre&amp;gt;echo &#039;&amp;amp;lt;pre&amp;gt;&#039;; //DONOTCOMMIT&lt;br /&gt;
    print_r(${cursor});&lt;br /&gt;
echo &#039;&amp;amp;lt;/pre&amp;gt;&#039;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can do other useful things with templates too.&lt;br /&gt;
&lt;br /&gt;
There is a really stupid bug. Under &#039;&#039;&#039;PHPeclipse Web Development -&amp;gt; Project Defaults&#039;&#039;&#039;, you would like to add &amp;quot;.&amp;quot; to the &#039;&#039;&#039;Include Paths&#039;&#039;&#039;, but you can&#039;t using the GUI. You will have to edit one of the Eclipse config files by hand. So&lt;br /&gt;
# Note down the path to your Eclipse profile. On Windows it will be something like &#039;&#039;&#039;C:/Documents and settings/XXXX/workspace&#039;&#039;&#039;, and on Unixy systems something like &#039;&#039;&#039;~/workspace&#039;&#039;&#039;.&lt;br /&gt;
# Close Eclipse. &lt;br /&gt;
# Open the file &#039;&#039;&#039;net.sourceforge.phpeclipse.ui.prefs&#039;&#039;&#039; that is in the directory &#039;&#039;&#039;(your workspace)/.metadata/.plugins/org.eclipse.core.runtime/.settings&#039;&#039;&#039; in a text editor.&lt;br /&gt;
# Look for a line in the file that starts &#039;&#039;&#039;_php_include_paths=&#039;&#039;&#039; If it is not there, add it at the end.&lt;br /&gt;
# Change this line to say &#039;&#039;&#039;_php_include_paths=.&#039;&#039;&#039;&lt;br /&gt;
# Run Eclipse again.&lt;br /&gt;
&lt;br /&gt;
===CVS Settings===&lt;br /&gt;
&lt;br /&gt;
These are all hidden under the &#039;&#039;&#039;Team&#039;&#039;&#039; bit of the tree.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; SSH2 Connection Method&#039;&#039;&#039;, you can set up a public/private key pair. If you do this, you won&#039;t have to keep typing your Sourceforge password when doing CVS operations. See http://sourceforge.net/docs/F02/ for the instructions of what you have to do at the Sourceforge end to make this work. That should make it clear what you have to do in Eclipse.&lt;br /&gt;
&lt;br /&gt;
The rest of the ones in this section are personal preferences, but I recommend them because the default settings are very irritating.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team&#039;&#039;&#039;, set &#039;&#039;&#039;Perspectives&#039;&#039;&#039; to &#039;&#039;&#039;None&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; Annotate&#039;&#039;&#039; set &#039;&#039;&#039;Use Quick Diff annotate mode for local file annotations&#039;&#039;&#039; to &#039;&#039;&#039;Yes&#039;&#039;&#039;, and &#039;&#039;&#039;Open perspective after a &#039;Show Annotations&#039; operation&#039;&#039;&#039; to &#039;&#039;&#039;No&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Team -&amp;gt; CVS -&amp;gt; Label Decorations&#039;&#039;&#039;, switch to the &#039;&#039;&#039;Icon Decorations&#039;&#039;&#039; tab and turn on all the settings, and then on the &#039;&#039;&#039;Text Decorations&#039;&#039;&#039; tab change both &#039;&#039;&#039;File Decoration&#039;&#039;&#039; and &#039;&#039;&#039;Folder Decoration&#039;&#039;&#039; to be just &#039;&#039;&#039;{name}&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Web and XML settings===&lt;br /&gt;
&lt;br /&gt;
Foreach XXX in CSS, HTML, Javascript, XML:&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Web and XML -&amp;gt; XXX Files -&amp;gt;XXX Source&#039;&#039;&#039;, choose &#039;&#039;&#039;Indent using spaces&#039;&#039;&#039; and &#039;&#039;&#039;indentation size&#039;&#039;&#039; 4.&lt;br /&gt;
&lt;br /&gt;
==Checking out the Moodle code==&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;File&#039;&#039;&#039; menu, choose &#039;&#039;&#039;New -&amp;gt; Project ...&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In the wizard that pops up, choose &#039;&#039;&#039;CVS -&amp;gt; Projects from CVS&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Select &#039;&#039;&#039;Create a new repository location&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fill in&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; border: 1px solid orange; padding: 0 1em;&amp;quot;&amp;gt;&lt;br /&gt;
For anonymous CVS access use&lt;br /&gt;
;Host&lt;br /&gt;
:XX.cvs.moodle.org&lt;br /&gt;
where XX.cvs.moodle.org is one of [[CVS_for_Administrators#CVS_Servers|these mirrors]]&lt;br /&gt;
;Repository path&lt;br /&gt;
:/cvsroot/moodle&lt;br /&gt;
;User&lt;br /&gt;
:anonymous&lt;br /&gt;
;Password&lt;br /&gt;
:(leave blank)&lt;br /&gt;
;Connection type&lt;br /&gt;
:pserver&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
;Host&lt;br /&gt;
:moodle.cvs.sourceforge.net&lt;br /&gt;
;Repository path&lt;br /&gt;
:/cvsroot/moodle&lt;br /&gt;
;User&lt;br /&gt;
:(your sourceforge username)&lt;br /&gt;
;Password&lt;br /&gt;
:(if you set up the SSH2 key thing in preferences, leave this blank, otherwise, type in your sourceforge password.)&lt;br /&gt;
;Connection type&lt;br /&gt;
:extssh&lt;br /&gt;
(CVS experts, if you are confused by that last one, know it is an Eclipse-specific thing.) Then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the next screen of the Wizard, choose &#039;&#039;&#039;Use an existing module&#039;&#039;&#039;. Wait a moment, then select &#039;&#039;&#039;moodle&#039;&#039;&#039; from the list. Click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
On the next screen, make sure the option &#039;&#039;&#039;Check out as a project configured using the New Project Wizard&#039;&#039;&#039; is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Refresh Tags&#039;&#039;&#039;, then choose the branch you want. For now leave it set to &#039;&#039;&#039;HEAD&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you  will find yourself back at the start of the &#039;&#039;&#039;New Project&#039;&#039;&#039; Wizard. This is because of the option you chose three paragraphs ago. This time you should select &#039;&#039;&#039;PHP -&amp;gt; PHP Project&#039;&#039;&#039;, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Make up a project name. &#039;&#039;&#039;moodle&#039;&#039;&#039; would be sensible.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Finish&#039;&#039;&#039;, and wait while all the moodle files are checked out of CVS.&lt;br /&gt;
&lt;br /&gt;
Once it has finished, it will probably ask you if you want to switch to the PHP perspective. Answer &#039;&#039;&#039;Yes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you also need the 1.6 stable branch, or another branch, repeat all the other steps with a few changes:&lt;br /&gt;
* This time you can choose &#039;&#039;&#039;Use and existing repository location&#039;&#039;&#039; instead of typing all the sourceforge CVS details again.&lt;br /&gt;
* Select the appropriate branch.&lt;br /&gt;
* Use a different project name.&lt;br /&gt;
&lt;br /&gt;
==Let your development web server know where your files are==&lt;br /&gt;
&lt;br /&gt;
Either by editing you web server&#039;s config files, or using a symbolic link. Make sure your webserver can see your new working set of files at a sensible URL, so you can test the code you are working on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Quick tour of some cool features, and remaining configuration changes==&lt;br /&gt;
&lt;br /&gt;
I find the default workbench setup is pretty good. Here is a quick guide to some of the bits.&lt;br /&gt;
&lt;br /&gt;
===Navigator===&lt;br /&gt;
&lt;br /&gt;
To the left is the &#039;&#039;&#039;Navigator&#039;&#039;&#039;. This is a tree view of all your files. If you double-click on a file, it opens in the editor in the middle. Try opening &#039;&#039;&#039;course/lib.php&#039;&#039;&#039; now. You will notice that it comes up nicely syntax-hightlighted.&lt;br /&gt;
&lt;br /&gt;
===Error highlighting===&lt;br /&gt;
&lt;br /&gt;
In the middle of the file, just type any old text, for example &amp;quot;I like Eclipse&amp;quot;. Obviously, this is not valid PHP syntax, and Eclipse will notice this, and put a red underline under it. Also, by the scrollbar is a ruler with a red mark in it to show the error.&lt;br /&gt;
&lt;br /&gt;
You will see some yellow marks lower down the ruler. There are warnings. Click on one, and you will be taked to where that warning is in the file. Hover your mouse over the warning, and you will get a tooltip explaining what the problem might be.&lt;br /&gt;
&lt;br /&gt;
Save the edited file. (Don&#039;t worry that it is broken, we&#039;ll clean up the mess later.) Notice that a red error marker is added to the file in the navigator, so you can see that there is a problem. Also, error markers are added to the course folder, and the whole project, so you could see there was an error even if the navigator tree was collapsed.&lt;br /&gt;
&lt;br /&gt;
You will probably find lots of warnings that the config.php file can&#039;t be found. In the navigator, find the file &#039;&#039;&#039;config-dist.php&#039;&#039;&#039;. Do &#039;&#039;&#039;Copy&#039;&#039;&#039; then &#039;&#039;&#039;Paste&#039;&#039;&#039; and choose to call the new file &#039;&#039;&#039;config.php&#039;&#039;&#039;. Edit this new config.php as normal. You should fine that most of the include file warnings have gone now.&lt;br /&gt;
&lt;br /&gt;
Notice also that there is another marker on each file icon. A little yellow cylinder on most files, but a white-on-brown star on the one you have edited. This is telling you the CVS status of each file. The brown stars are changes you have made but not checked in yet.&lt;br /&gt;
&lt;br /&gt;
===Outline===&lt;br /&gt;
&lt;br /&gt;
Over to the right is the Outline view. This shows a list of functions and classes defined in this file. By default, they are listed in the same order as in the file, but if you click on the &#039;&#039;&#039;az&#039;&#039;&#039; toolbar button, they are sorted into alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Click on the function name &#039;&#039;&#039;add_course_module&#039;&#039;&#039; in the Outline. You will see that the editor scrolls to the definition of that function.&lt;br /&gt;
&lt;br /&gt;
===Code navigation===&lt;br /&gt;
&lt;br /&gt;
In that function, hover the mouse pointer over the function name &#039;&#039;&#039;insert_record&#039;&#039;&#039;. After a while, the documentation for that function will appear in a big tooltip.&lt;br /&gt;
&lt;br /&gt;
Hold down CTRL, move the mouse pointer over the function name &#039;&#039;&#039;insert_record&#039;&#039;&#039;, then click. Eclipse should load &#039;&#039;&#039;dmllib.php&#039;&#039;&#039;, and scroll you to where this function is defined.&lt;br /&gt;
&lt;br /&gt;
In the main Eclipse toolbar, there are forward and back arrows like in a web browser. Click back now to get back to &#039;&#039;&#039;course/lib.php&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Open resource===&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;Navigate&#039;&#039;&#039; menu, choose &#039;&#039;&#039;Open Resource...&#039;&#039;&#039;. In the dialog that pops up, start typing a filename for instance type &#039;&#039;&#039;moodlel&#039;&#039;&#039;. In the box in the middle of the dialog, you will see it list all the files in the project whose names start that way. At the bottom is a box which lists the different folders that contain a file with that name. This can be a very quick way of opening files with fairly unique names like moodlelib.php, without having to click through the levels of the navigator tree. Of course, it is not so useful for an index.php file! Click OK now to open moodlelib.php. (It would actually work if you just did CTRL + Shift + R, moodlel, Enter.)&lt;br /&gt;
&lt;br /&gt;
===Multi-file search===&lt;br /&gt;
&lt;br /&gt;
Scroll down moodlelib a little bit, and double click on the name of the constant &#039;&#039;&#039;MOODLE_INTERNAL&#039;&#039;&#039; where it is defined, so that the text is selected. Then, from the &#039;&#039;&#039;Search&#039;&#039;&#039; menu, choose &#039;&#039;&#039;Search...&#039;&#039;&#039;. Notice that the &#039;&#039;&#039;Containing text&#039;&#039;&#039; box has already been filled in for you with the text you just selected. Of course you can just type text into this box without selecting it first. Notice that you can do regular expression searches, but leave that turned off for now. In the &#039;&#039;&#039;File name patterns&#039;&#039;&#039; box type &#039;&#039;&#039;*.css, *.html, *.inc, *.js, *.php, *.xml&#039;&#039;&#039;. (This is the most useful general setting for working on moodle. Eclipse will remember this setting, so you only have to enter it once.) Click &#039;&#039;&#039;Search&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The search results will appear in a new view underneath the editor. That view has a toolbar with yellow up and down arrows. Click the down arrow a few times and it will take you to the first few matches in the code, opening the relevant files as necessary.&lt;br /&gt;
&lt;br /&gt;
===Synchronize view===&lt;br /&gt;
&lt;br /&gt;
I think this is my favorite feature. From the &#039;&#039;&#039;Window&#039;&#039;&#039; menu, select &#039;&#039;&#039;Show View -&amp;gt; Other...&#039;&#039;&#039;. In the dialog that pops up, select &#039;&#039;&#039;Team -&amp;gt; Synchronize&#039;&#039;&#039;, then click &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This opens the Synchronize view below the editor. The view has a toolbar. Click on the first toolbar button, which pops up the Synchronize wizard.&lt;br /&gt;
&lt;br /&gt;
On the first screen, there will probably only be one option: &#039;&#039;&#039;CVS&#039;&#039;&#039;. Make sure that is selected, then click &#039;&#039;&#039;Next &amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Under &#039;&#039;&#039;Scope&#039;&#039;&#039;, choose &#039;&#039;&#039;Workspace&#039;&#039;&#039;, then click &#039;&#039;&#039;Finish&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wait while it talks to the CVS server. After a while, you will see that the Synchronize view lists course/lib.php, and something called &#039;&#039;&#039;.project.... That is, it is listing just the files you have edited, but not checked in yet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.project&#039;&#039;&#039; is something that belongs to Eclipse that we don&#039;t care about. So select it and bring up the context menu, and choose &#039;&#039;&#039;Add to .cvsignore...&#039;&#039;&#039;. In the dialog that pops up, choose the top option, then click &#039;&#039;&#039;OK&#039;&#039;&#039;. Then you will find the Synchronize view shows you a &#039;&#039;&#039;.cvsignore&#039;&#039;&#039; file that you aren&#039;t interested in, so add that to .cvsignore too!&lt;br /&gt;
&lt;br /&gt;
If you double-click on &#039;&#039;&#039;course/lib.php&#039;&#039;&#039; here, you will see that it opens the compare editor, which is a nice graphical display of the changes in this file.&lt;br /&gt;
&lt;br /&gt;
If you select a file or files here, then bring up the context menu, you will see the option to &#039;&#039;&#039;Commit...&#039;&#039;&#039; the changes. (But don&#039;t do that now!). This is the easiest way to commit things in Eclipse.&lt;br /&gt;
&lt;br /&gt;
However, our changes were rubbish, so we want to undo them. So open the context menu again, and choose &#039;&#039;&#039;Override and Update&#039;&#039;&#039;. This checks a clean copy of the file out of CVS, removing our changes.&lt;br /&gt;
&lt;br /&gt;
Note that the easiest way to do an ordinary CVS Update is to select the top-level project-folder in the Navigator view on the left, open the context menu, and choose &#039;&#039;&#039;Team -&amp;gt; Update&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
That&#039;s all the really important features. I sure you can learn everything else on your own. An you could always read the built in help!&lt;br /&gt;
&lt;br /&gt;
===Creating a patch===&lt;br /&gt;
&lt;br /&gt;
In the synchronise view, right click on an item (file or folder) and choose &#039;&#039;&#039;Create Patch...&#039;&#039;&#039;. Or in the navigator, right click on an item and choose &#039;&#039;&#039;Team -&amp;gt; Create Patch...&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This brings up a two-page wizard. On the first page you can select where you want the patch made. For small patches it can be useful to create them on the clipboard, but normally you will want to save them in a file.&lt;br /&gt;
&lt;br /&gt;
On the second page, you can set some options, but normally you don&#039;t need to change the defaults which are &#039;&#039;&#039;Unified&#039;&#039;&#039; diff format, and Patch root set to &#039;&#039;&#039;Workspace&#039;&#039;&#039;. Well, sometimes it is helpful to change the second one to &#039;&#039;&#039;Project&#039;&#039;&#039; but it is not important.&lt;br /&gt;
&lt;br /&gt;
There is a corresponding apply patch wizard that you can use to apply a patch to a project.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
&lt;br /&gt;
There is an excellent series of articles published by IBM on using Eclipse for Drupal developement here : [http://www-128.ibm.com/developerworks/ibm/osource/index.html Using open source software to design, develop, and deploy a collaborative Web site Tools and techniques for getting relatively complicated Web sites up and running quickly].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer|Setting up Eclipse]]&lt;/div&gt;</summary>
		<author><name>Monidu</name></author>
	</entry>
</feed>