<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lfrodrigues</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lfrodrigues"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/Special:Contributions/Lfrodrigues"/>
	<updated>2026-04-20T23:58:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44375</id>
		<title>Development:Messaging</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44375"/>
		<updated>2008-09-25T17:42:34Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Sending a Message */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Messageing API is a new core system in Moodle to allow communication of messages to users. It&#039;s based on the events system, so a module will trigger an event with the attached message data and the message output processor will try to deliver the message to the correct place.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting up a provider===&lt;br /&gt;
* db/messages.php (list the types of providers)&lt;br /&gt;
* /lang/XX/messages/providercomponent_providername.html (documentation)&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Setting up a processor===&lt;br /&gt;
&lt;br /&gt;
===Sending a Message===&lt;br /&gt;
&lt;br /&gt;
Whenever you need to send a message, it should “tell” the system about it.   So, using the message as an example, we first define an object as follows:&lt;br /&gt;
&lt;br /&gt;
 $eventdata = new object();&lt;br /&gt;
 $eventdata-&amp;gt;component        = &amp;quot;message&amp;quot;;&lt;br /&gt;
 $eventdata-&amp;gt;name             = &amp;quot;instantmessage&amp;quot;;&lt;br /&gt;
 $eventdata-&amp;gt;userfrom         = $userfrom;&lt;br /&gt;
 $eventdata-&amp;gt;userto           = $userto;&lt;br /&gt;
 $eventdata-&amp;gt;subject          = &amp;quot;IM&amp;quot;;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessage      = $message;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessageformat = FORMAT_PLAIN;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessagehtml  = &amp;quot;&amp;quot;;&lt;br /&gt;
 $eventdata-&amp;gt;smallmessage     = &amp;quot;&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
Then we post the object as an event and forget about it:&lt;br /&gt;
&lt;br /&gt;
 events_trigger(&#039;message_send&#039;, $eventdata);&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44374</id>
		<title>Development:Messaging</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44374"/>
		<updated>2008-09-25T17:41:57Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Messageing API is a new core system in Moodle to allow communication of messages to users. It&#039;s based on the events system, so a module will trigger an event with the attached message data and the message output processor will try to deliver the message to the correct place.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting up a provider===&lt;br /&gt;
* db/messages.php (list the types of providers)&lt;br /&gt;
* /lang/XX/messages/providercomponent_providername.html (documentation)&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
===Setting up a processor===&lt;br /&gt;
&lt;br /&gt;
===Sending a Message===&lt;br /&gt;
&lt;br /&gt;
Whenever you need to send a message, it should “tell” the system about it.   So, using the message as an example, we first define an object as follows:&lt;br /&gt;
&lt;br /&gt;
 $eventdata = new object();&lt;br /&gt;
 $eventdata-&amp;gt;component        = &#039;message&#039;;&lt;br /&gt;
 $eventdata-&amp;gt;name             = &#039;instantmessage&#039;;&lt;br /&gt;
 $eventdata-&amp;gt;userfrom         = $userfrom;&lt;br /&gt;
 $eventdata-&amp;gt;userto           = $userto;&lt;br /&gt;
 $eventdata-&amp;gt;subject          = &amp;quot;IM&amp;quot;;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessage      = $message;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessageformat = FORMAT_PLAIN;&lt;br /&gt;
 $eventdata-&amp;gt;fullmessagehtml  = &#039;&#039;;&lt;br /&gt;
 $eventdata-&amp;gt;smallmessage     = &#039;&#039;; &lt;br /&gt;
&lt;br /&gt;
Then we post the object as an event and forget about it:&lt;br /&gt;
&lt;br /&gt;
 events_trigger(&#039;message_send&#039;, $eventdata);&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44373</id>
		<title>Development:Messaging</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44373"/>
		<updated>2008-09-25T16:31:02Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Messageing API is a new core system in Moodle to allow communication of messages to users. It&#039;s based on the events system, so a module will trigger an event with the attached message data and the message output processor will try to deliver the message to the correct place.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files to Create==&lt;br /&gt;
/db/messages.php (list the types of providers)&lt;br /&gt;
/lang/XX/messages/providercomponent_providername.html (documentation)&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44369</id>
		<title>Development:Messaging</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:Messaging&amp;diff=44369"/>
		<updated>2008-09-25T13:30:32Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: New page: The Messageing API is a new core system in Moodle to allow communication of messages to users. It&amp;#039;s based on the events system, so a module will trigger an event with the attached message ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Messageing API is a new core system in Moodle to allow communication of messages to users. It&#039;s based on the events system, so a module will trigger an event with the attached message data and the message output processor will try to deliver the message to the correct place.&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=25528</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=25528"/>
		<updated>2007-08-01T18:26:36Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The status of this project is being tracked here:  [http://tracker.moodle.org/browse/MDL-10107 MDL-10107]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
&lt;br /&gt;
moodlelib.php still needs to be adapted to the new system since it still uses emails&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
* exercise&lt;br /&gt;
* quiz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
*./admin/handlevirus.php&lt;br /&gt;
*./admin/process_email.php&lt;br /&gt;
*./backup/backup_scheduled.php&lt;br /&gt;
*./course/pending.php&lt;br /&gt;
*./enrol/authorize/enrol.php&lt;br /&gt;
*./enrol/authorize/localfuncs.php&lt;br /&gt;
*./enrol/authorize/uploadcsv.php&lt;br /&gt;
*./enrol/flatfile/enrol.php&lt;br /&gt;
*./enrol/imsenterprise/enrol.php&lt;br /&gt;
*./enrol/manual/enrol.php&lt;br /&gt;
*./enrol/paypal/ipn.php&lt;br /&gt;
*./error/index.php&lt;br /&gt;
*./lib/moodlelib.php&lt;br /&gt;
*./lib/uploadlib.php&lt;br /&gt;
*./message/lib.php&lt;br /&gt;
*./mod/assignment/lib.php&lt;br /&gt;
*./mod/exercise/lib.php&lt;br /&gt;
*./mod/forum/lib.php&lt;br /&gt;
*./mod/journal/lib.php&lt;br /&gt;
*./mod/lesson/essay.php&lt;br /&gt;
*./mod/workshop/lib.php&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
* Ideally, the live chat element would allow some way to elegantly hold 2 or more separate conversations at once. Currently, this involves having multiple messaging windows open at once and trying to work out who has just said something when it &#039;dings&#039; in the background is difficult. A tabbed interface like the accordion theme/google chat would be ideal.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=25527</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=25527"/>
		<updated>2007-08-01T18:20:32Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Modules/Files with send emails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The status of this project is being tracked here:  [http://tracker.moodle.org/browse/MDL-10107 MDL-10107]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
* exercise&lt;br /&gt;
* quiz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
*./admin/handlevirus.php&lt;br /&gt;
*./admin/process_email.php&lt;br /&gt;
*./backup/backup_scheduled.php&lt;br /&gt;
*./course/pending.php&lt;br /&gt;
*./enrol/authorize/enrol.php&lt;br /&gt;
*./enrol/authorize/localfuncs.php&lt;br /&gt;
*./enrol/authorize/uploadcsv.php&lt;br /&gt;
*./enrol/flatfile/enrol.php&lt;br /&gt;
*./enrol/imsenterprise/enrol.php&lt;br /&gt;
*./enrol/manual/enrol.php&lt;br /&gt;
*./enrol/paypal/ipn.php&lt;br /&gt;
*./error/index.php&lt;br /&gt;
*./lib/moodlelib.php&lt;br /&gt;
*./lib/uploadlib.php&lt;br /&gt;
*./message/lib.php&lt;br /&gt;
*./mod/assignment/lib.php&lt;br /&gt;
*./mod/exercise/lib.php&lt;br /&gt;
*./mod/forum/lib.php&lt;br /&gt;
*./mod/journal/lib.php&lt;br /&gt;
*./mod/lesson/essay.php&lt;br /&gt;
*./mod/workshop/lib.php&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
* Ideally, the live chat element would allow some way to elegantly hold 2 or more separate conversations at once. Currently, this involves having multiple messaging windows open at once and trying to work out who has just said something when it &#039;dings&#039; in the background is difficult. A tabbed interface like the accordion theme/google chat would be ideal.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24669</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24669"/>
		<updated>2007-06-27T10:48:05Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Modules/Files with send emails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The status of this project is being tracked here:  [http://tracker.moodle.org/browse/MDL-10107 MDL-10107]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
* exercise&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
*./admin/handlevirus.php&lt;br /&gt;
*./admin/process_email.php&lt;br /&gt;
*./backup/backup_scheduled.php&lt;br /&gt;
*./course/pending.php&lt;br /&gt;
*./enrol/authorize/enrol.php&lt;br /&gt;
*./enrol/authorize/localfuncs.php&lt;br /&gt;
*./enrol/authorize/uploadcsv.php&lt;br /&gt;
*./enrol/flatfile/enrol.php&lt;br /&gt;
*./enrol/imsenterprise/enrol.php&lt;br /&gt;
*./enrol/manual/enrol.php&lt;br /&gt;
*./enrol/paypal/ipn.php&lt;br /&gt;
*./error/index.php&lt;br /&gt;
*./lib/moodlelib.php&lt;br /&gt;
*./lib/uploadlib.php&lt;br /&gt;
*./message/lib.php&lt;br /&gt;
*./mod/assignment/lib.php&lt;br /&gt;
*./mod/exercise/lib.php&lt;br /&gt;
*./mod/forum/lib.php&lt;br /&gt;
*./mod/journal/lib.php&lt;br /&gt;
*./mod/lesson/essay.php&lt;br /&gt;
*./mod/workshop/lib.php&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
* Ideally, the live chat element would allow some way to elegantly hold 2 or more separate conversations at once. Currently, this involves having multiple messaging windows open at once and trying to work out who has just said something when it &#039;dings&#039; in the background is difficult. A tabbed interface like the accordion theme/google chat would be ideal.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24455</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24455"/>
		<updated>2007-06-19T13:35:51Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Modules/Files with send emails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The status of this project is being tracked here:  [http://tracker.moodle.org/browse/MDL-10107 MDL-10107]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
* exercise&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*./admin/handlevirus.php&lt;br /&gt;
*./admin/process_email.php&lt;br /&gt;
*./backup/backup_scheduled.php&lt;br /&gt;
*./course/pending.php&lt;br /&gt;
*./enrol/authorize/enrol.php&lt;br /&gt;
*./enrol/authorize/localfuncs.php&lt;br /&gt;
*./enrol/authorize/uploadcsv.php&lt;br /&gt;
*./enrol/flatfile/enrol.php&lt;br /&gt;
*./enrol/imsenterprise/enrol.php&lt;br /&gt;
*./enrol/manual/enrol.php&lt;br /&gt;
*./enrol/paypal/ipn.php&lt;br /&gt;
*./error/index.php&lt;br /&gt;
*./lib/moodlelib.php&lt;br /&gt;
*./lib/uploadlib.php&lt;br /&gt;
*./message/lib.php&lt;br /&gt;
*./mod/assignment/lib.php&lt;br /&gt;
*./mod/exercise/lib.php&lt;br /&gt;
*./mod/forum/lib.php&lt;br /&gt;
*./mod/journal/lib.php&lt;br /&gt;
*./mod/lesson/essay.php&lt;br /&gt;
*./mod/workshop/lib.php&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
* Ideally, the live chat element would allow some way to elegantly hold 2 or more separate conversations at once. Currently, this involves having multiple messaging windows open at once and trying to work out who has just said something when it &#039;dings&#039; in the background is difficult. A tabbed interface like the accordion theme/google chat would be ideal.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24417</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24417"/>
		<updated>2007-06-18T19:27:22Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Modules/Files with send emails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
* exercise&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
* Ideally, the live chat element would allow some way to elegantly hold 2 or more separate conversations at once. Currently, this involves having multiple messaging windows open at once and trying to work out who has just said something when it &#039;dings&#039; in the background is difficult. A tabbed interface like the accordion theme/google chat would be ideal.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:Modules&amp;diff=24416</id>
		<title>Development:Modules</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:Modules&amp;diff=24416"/>
		<updated>2007-06-18T17:50:00Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Activity modules&#039;&#039;&#039; reside in the &#039;mod&#039; directory. Each module is in a separate subdirectory and consists of the following mandatory elements (plus extra scripts unique to each module):&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;mod.html&#039;&#039; - a form to set up or update an instance of this module&lt;br /&gt;
* &#039;&#039;version.php&#039;&#039; - defines some meta-info and provides upgrading code&lt;br /&gt;
* &#039;&#039;icon.gif&#039;&#039; - a 16x16 icon for the module&lt;br /&gt;
* &#039;&#039;db/&#039;&#039; - SQL dumps of all the required db tables and data (for each database type)&lt;br /&gt;
* &#039;&#039;index.php&#039;&#039; - a page to list all instances in a course&lt;br /&gt;
* &#039;&#039;view.php&#039;&#039; - a page to view a particular instance&lt;br /&gt;
* &#039;&#039;lib.php&#039;&#039; - any/all functions defined by the module should be in here. If the modulename is called widget, then the required functions include:&lt;br /&gt;
:* widget_install() - will be called during the installation of the module&lt;br /&gt;
:* widget_add_instance() - code to add a new instance of widget&lt;br /&gt;
:* widget_update_instance() - code to update an existing instance&lt;br /&gt;
:* widget_delete_instance() - code to delete an instance&lt;br /&gt;
:* widget_user_outline() - given an instance, return a summary of a user&#039;s contribution&lt;br /&gt;
:* widget_user_complete() - given an instance, print details of a user&#039;s contribution&lt;br /&gt;
:* Other functions available but not required are:&lt;br /&gt;
:** widget_delete_course() - code to clean up anything that would be leftover after all instances are deleted&lt;br /&gt;
:** widget_process_options() - code to pre-process the form data from module settings&lt;br /&gt;
:* To avoid possible conflict, any module functions should be named starting with widget_ and any constants you define should start with WIDGET_&lt;br /&gt;
* &#039;&#039;config.html&#039;&#039; - (optional) a form to set up or update global settings of this module&lt;br /&gt;
* Lastly, each module will have some language files that contain strings for that module.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: When creating a new module, the new name of the module must not contain numbers or other special characters! &lt;br /&gt;
&lt;br /&gt;
You should also make sure that your activity module provides appropriate support for groups and metacourses. &lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* http://download.moodle.org/download.php/modules/NEWMODULE.zip - new module template for starting module development. Please follow the README instructions inside the zip.&lt;br /&gt;
* Using Moodle [http://moodle.org/course/view.php?id=5 Activity modules] forum&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=66165 A new resource type: where do I put the language strings?] forum discussion&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=65986 New Module Template Code for Moodle 1.7] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer|Modules]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&lt;br /&gt;
[[es:Módulos de actividades (desarrollador)]]&lt;br /&gt;
[[ja:モジュール (開発者)]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24117</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=24117"/>
		<updated>2007-06-08T14:02:57Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
Modules will triger an &amp;quot;Register Message Source&amp;quot; event in widget_add_instance() and a &amp;quot;Remove Message Source&amp;quot; in widget_delete_instance() -- Is this correct?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23511</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23511"/>
		<updated>2007-05-23T03:19:26Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Important Forum Posts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=38838&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23510</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23510"/>
		<updated>2007-05-23T03:18:03Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==Mockups==&lt;br /&gt;
&lt;br /&gt;
===User Profile mockup===&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Improved search interface===&lt;br /&gt;
&lt;br /&gt;
===Improved history view===&lt;br /&gt;
&lt;br /&gt;
===Administrator reports===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
&lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
(I really don&#039;t think this can be any more efficient than events, really, and the advantages of using events are too great.  If events system doesn&#039;t cut it then we can optimise that.  --  [[User:Martin Dougiamas|Martin Dougiamas]] 08:31, 15 May 2007 (CDT))&lt;br /&gt;
&lt;br /&gt;
==Plugins==&lt;br /&gt;
&lt;br /&gt;
Plugins should be located under the &amp;quot;message&amp;quot; directory eg:&lt;br /&gt;
&lt;br /&gt;
/message/output/browser  (special case, as hooks need to also be included elsewhere as in 1.8)&lt;br /&gt;
/message/output/email &lt;br /&gt;
/message/output/jabber&lt;br /&gt;
&lt;br /&gt;
The plugins should be full Moodle citizens with db directories, version.php files etc.&lt;br /&gt;
&lt;br /&gt;
==Message Sources==&lt;br /&gt;
&lt;br /&gt;
Somehow all the modules need to register themselves as a *message source* so that the messaging GUI can easily list all the sources.&lt;br /&gt;
&lt;br /&gt;
We could develop something new, or we could extend the [[Development:Events|Events API]] so that modules can optionally use the events.php mechanism to register themselves as known &amp;quot;triggers&amp;quot; (sources) of certain events.  I&#039;m inclining strongly toward this latter method.&lt;br /&gt;
&lt;br /&gt;
A catch-all category of &amp;quot;Other messages&amp;quot; would be applied to any unknown incoming messages for which no settings are defined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other ideas from the community==&lt;br /&gt;
&lt;br /&gt;
*The ability to black-list individual users or groups/groupings site-wide.&lt;br /&gt;
*The ability to grey-list individual users or groups/groupings site-wide (only able to IM specified roles at site or course level).&lt;br /&gt;
*The ability to add an attachment to IMs (with a maximum size selected at the site level). I would think that this ability could be limited by role, and turned on or off at the site level.&lt;br /&gt;
* As a teacher, you want to send different messages at the same time to many students. There should be an option, where teacher selects many individual student or a group of students or the entire class,  types in the individual messages next to the student name, and does a one click send to all&lt;br /&gt;
* Finding history of messages is very difficult. It needs more options, you should be able to select a period between two dates and find all sent / received messages within those dates.&lt;br /&gt;
* The &amp;quot;pop up&amp;quot; window for message is clumsy, and the css is not properly defined&lt;br /&gt;
* The message block can presently be used for live chat also, if both participants are online. However, it is not &amp;quot;designed&amp;quot; for the same, more features could be added, allowing one to see who  all students of the community are online, and an option to start chat with them.&lt;br /&gt;
&lt;br /&gt;
==Important Forum Posts==&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=63401&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23187</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23187"/>
		<updated>2007-05-10T16:20:43Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* System Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues_system_overview.png]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:lfrodrigues_system_overview.png&amp;diff=23186</id>
		<title>File:lfrodrigues system overview.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:lfrodrigues_system_overview.png&amp;diff=23186"/>
		<updated>2007-05-10T16:20:11Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23185</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23185"/>
		<updated>2007-05-10T16:19:27Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* System Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:lfrodrigues:system_overview]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23184</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23184"/>
		<updated>2007-05-10T16:19:00Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23100</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23100"/>
		<updated>2007-05-07T17:55:25Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
===Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23099</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23099"/>
		<updated>2007-05-07T17:55:02Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Possible implementarions==&lt;br /&gt;
I see two ways of implementing this. My main problem at this stage is that I really don&#039;t know if there are real peformance gains with a new system.&lt;br /&gt;
===Using Events===&lt;br /&gt;
New messages are posted as events. The core messaging code has a handler to grab them and to choose how&lt;br /&gt;
to process them.&lt;br /&gt;
&lt;br /&gt;
Martin told me that if the system gets too &amp;quot;popular these messages become COULD be a little heavy on the system&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This approach seams the easiest a better because I would reuse a lot of code (good software practice) but don&#039;t know about the performance escalates   &lt;br /&gt;
==Develop a new class===&lt;br /&gt;
I could also implement a completely separate and probably much simpler system where all modules just call a function to add a new message to a queue. The system would the process the messages and choose how to process them.&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23097</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23097"/>
		<updated>2007-05-07T15:31:41Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Files that need channging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need changing===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23095</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23095"/>
		<updated>2007-05-07T15:31:23Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
[[Image:Lfrodrigues-_messaging_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need channging===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Lfrodrigues-_messaging_config.jpg&amp;diff=23093</id>
		<title>File:Lfrodrigues- messaging config.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Lfrodrigues-_messaging_config.jpg&amp;diff=23093"/>
		<updated>2007-05-07T15:27:01Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: Initial mockup for the messaging profile options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Initial mockup for the messaging profile options&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23091</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23091"/>
		<updated>2007-05-07T15:00:18Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
=Project Information=&lt;br /&gt;
&lt;br /&gt;
==User Profile mockup==&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
===Files that need channging===&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
===Modules/Files with send emails===&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23061</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23061"/>
		<updated>2007-05-05T13:07:54Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: /* Logs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
With modules/files need to be adapted to the new system?&lt;br /&gt;
* the ones with send email&lt;br /&gt;
* ??&lt;br /&gt;
&lt;br /&gt;
== Modules/Files with send emails ==&lt;br /&gt;
&lt;br /&gt;
This modules/files send email using email_to_user, is there any other?&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
&lt;br /&gt;
* journal, &lt;br /&gt;
* forum, &lt;br /&gt;
* lesson, &lt;br /&gt;
* workshop, &lt;br /&gt;
* assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
* /lib/moodlelib.php&lt;br /&gt;
* /admin/process_email.php&lt;br /&gt;
* /enrol/imsenterprise/enrol.php&lt;br /&gt;
* /enrol/manual/enrol.php&lt;br /&gt;
* /enrol/paypal/ipn.php&lt;br /&gt;
* /enrol/flatfile/enrol.php&lt;br /&gt;
* /enrol/authorize/uploadcsv.php&lt;br /&gt;
* /enrol/authorize/localfuncs.php&lt;br /&gt;
* /error/index.php&lt;br /&gt;
* /message/lib.php&lt;br /&gt;
* /backup/backup_scheduled.php&lt;br /&gt;
* /course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23060</id>
		<title>Student projects/Messaging improvements</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Messaging_improvements&amp;diff=23060"/>
		<updated>2007-05-05T13:03:00Z</updated>

		<summary type="html">&lt;p&gt;Lfrodrigues: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Programmer:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
Modules that send emails, will use the new system:&lt;br /&gt;
journal, forum, lesson, workshop, assignment&lt;br /&gt;
&lt;br /&gt;
Other files that need changing:&lt;br /&gt;
/lib/moodlelib.php&lt;br /&gt;
&lt;br /&gt;
./admin/process_email.php&lt;br /&gt;
&lt;br /&gt;
./enrol/imsenterprise/enrol.php&lt;br /&gt;
&lt;br /&gt;
./enrol/manual/enrol.php&lt;br /&gt;
&lt;br /&gt;
./enrol/paypal/ipn.php&lt;br /&gt;
&lt;br /&gt;
./enrol/flatfile/enrol.php&lt;br /&gt;
&lt;br /&gt;
./enrol/authorize/uploadcsv.php&lt;br /&gt;
&lt;br /&gt;
./enrol/authorize/localfuncs.php&lt;br /&gt;
&lt;br /&gt;
./error/index.php&lt;br /&gt;
&lt;br /&gt;
./message/lib.php&lt;br /&gt;
&lt;br /&gt;
./backup/backup_scheduled.php&lt;br /&gt;
&lt;br /&gt;
./course/pending.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back: [[Student_projects]]&lt;/div&gt;</summary>
		<author><name>Lfrodrigues</name></author>
	</entry>
</feed>