https://wiki.mahara.org/api.php?action=feedcontributions&user=Andrewnicols&feedformat=atomMahara Wiki - User contributions [en-gb]2024-03-29T15:47:28ZUser contributionsMediaWiki 1.35.10https://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2012-05-23&diff=3389Developer Area/Developer Meetings/2012-05-232012-04-27T09:07:12Z<p>Andrewnicols: Created page with "===Agenda for the 17th Mahara Developer Meeting=== [http://www.timeanddate.com/worldclock/fixedtime.html?msg=17th+Mahara+Developer+Meeting&iso=20120523T0730 Wednesday, 23rd May 2…"</p>
<hr />
<div>===Agenda for the 17th Mahara Developer Meeting===<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?msg=17th+Mahara+Developer+Meeting&iso=20120523T0730 Wednesday, 23rd May 2012, 07:30 UTC]<br />
<br />
Chair: Melissa Draper (elky)<br />
<br />
# Items from last meeting<br />
## anitsirk to update the roadmap<br />
## dajan to raise appropriate issues in the tracker<br />
## anzeljg To put together a quick wiki page with some information (possibly code too)<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings&diff=3388Developer Area/Developer Meetings2012-04-27T09:05:32Z<p>Andrewnicols: Add minutes for meeting 16 and agenda for 17</p>
<hr />
<div>Regular developer meetings are held on IRC in the #mahara-dev channel. An IRC bot will be used to take minutes of these meetings and agendas made available on these pages before-hand.<br />
<br />
'''If you don't have an IRC client, you can [http://webchat.freenode.net/?channels=mahara-dev join us using your web browser].'''<br />
<br />
See [http://mahara.org/interaction/forum/topic.php?id=2070 <font color="rgb(160, 11, 11)">http://mahara.org/interaction/forum/topic.php?id=2070</font>] for more information on the first IRC meeting.<br />
<br />
{| summary="Summary including Time, Date, Agenda, Minutes and IRC Logs from meetings" width="600" border="1" cellpadding="1px" style="border-collapse: collapse; border: 1px solid;"<br />
! style="text-align: center" | Dev. meeting<br />
! style="text-align: center" | Date/Time<br />
! style="text-align: center" | Agenda<br />
! style="text-align: center" | Minutes<br />
! style="text-align: center" | IRC Log<br />
|-<br />
| style="text-align: center" | 1<br />
| style="text-align: left" | Wednesday 10 November 2010 - 07:30 UTC<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2010-11-10|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-11-10-07.34.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-11-10-07.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 2<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/meetingdetails.html?year=2010&month=12&day=14&hour=19&min=30&sec=0&p1=22&p2=189&p3=268&iv=1800 Tuesday 14 December 2010 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2010-12-14|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-12-14-19.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-12-14-19.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 3<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=19&month=1&year=2011&hour=7&min=30&sec=0&p1=0 Wednesday, 19 January 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-01-19|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-01-19-07.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-01-19-07.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 4<br />
| style="text-align: left" |<br />
[http://bit.ly/e29nNk Thursday, 17 February 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-02-17|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-02-17-19.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-02-17-19.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 5<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=23&month=3&year=2011&hour=7&min=30&sec=0&p1=0 Wednesday, 23 March 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-03-23|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-03-23-07.31.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-03-23-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 6<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=20&month=4&year=2011&hour=19&min=30&sec=0&p1=0 Wednesday 20 April 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-04-20|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-04-20-19.40.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-04-20-19.40.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 7<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110525T0730 Wednesday 25 May 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-05-25|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-05-25-07.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-05-25-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 8<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110629T1930 Wednesday 29 June 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-06-29|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-06-29-19.35.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-06-29-19.35.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 9<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110803T0730 Wednesday, 3 August 2011 - 07:30:00 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-08-03|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-08-03-07.34.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-08-03-07.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 10<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110906T1930 Tuesday, 6 September 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-09-06|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-09-06-19.34.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-09-06-19.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 11<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111005T0730 Wednesday, 5 October 2011 - 7:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-10-05|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-10-05-07.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-10-05-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 12<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111108T1930 Tuesday, 8 November 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-11-08|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-11-08-19.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-11-08-19.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 13<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111206T0730 Tuesday, 6 December 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-12-06|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-12-06-07.32.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-12-06-07.32.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 14<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20120131T1930 Tuesday, 31 January 2012 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-01-31|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-01-31-19.33.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-01-31-19.33.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 15<br />
| style="text-align: left" | [http://www.timeanddate.com/worldclock/fixedtime.html?iso=20120327T0730 Tuesday, 27 March 2012, 7:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-03-27|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-27-07.41.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-27-07.41.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 16<br />
| style="text-align: left" | [http://www.timeanddate.com/worldclock/fixedtime.html?msg=16th+Mahara+Developer+Meeting&iso=20120425T20 Wednesday, 25 April 2012, 20:00 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-04-25|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-04-25-20.02.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-04-25-20.02.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 17<br />
| style="text-align: left" | [http://www.timeanddate.com/worldclock/fixedtime.html?msg=17th+Mahara+Developer+Meeting&iso=20120523T0730 Wednesday, 23rd May 2012, 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-05-23|Agenda]]<br />
| style="text-align: center" | Minutes<br />
| style="text-align: center" | IRC Log<br />
<br />
|}<br />
<br />
The meeting logs and minutes are also [https://gitorious.org/mahara/minutes archived on Gitorious].<br />
<br />
===Other meetings===<br />
<br />
{| summary="Summary including Time, Date, Agenda, Minutes and IRC Logs from meetings" width="600" border="1" cellpadding="1px" style="border-collapse: collapse; border: 1px solid;"<br />
! style="text-align: center" | Meeting title<br />
! style="text-align: center" | Date/Time<br />
! style="text-align: center" | Agenda<br />
! style="text-align: center" | Minutes<br />
! style="text-align: center" | IRC Log<br />
|-<br />
| style="text-align: center" | Theme / plugin repository<br />
| style="text-align: left" | Thursday, 8 March 2012, 18:00-19:30 UTC<br />
| style="text-align: center" |<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-08-18.21.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-08-18.21.log.html IRC Log]<br />
|}<br />
<br />
===Useful info===<br />
<br />
* [[Developer_Area/Developer_Meetings/Chair_Duties|Chair Duties]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2012-04-25&diff=3361Developer Area/Developer Meetings/2012-04-252012-04-25T13:37:06Z<p>Andrewnicols: Rewritten agenda by topic</p>
<hr />
<div>===Agenda for the 16th Mahara Developer Meeting===<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?msg=16th+Mahara+Developer+Meeting&iso=20120425T20 Wednesday, 25 April 2012, 20:00 UTC]<br />
<br />
Chair: Andrew Nicols<br />
<br />
# Items from last meeting<br />
## fmarier already completed his two action items during the last meeting. Check the minutes for the results.<br />
## anzeljg joins the slovenian team on launchpad so that we could make it the owner of the mahara translation<br />
# Roadmap for 1.6 (dajan)<br />
# Laurent Opprecht's "Notes" plugin (University of Geneva) as a way to improve the actual "Notes" block in Mahara (dajan)<br />
# Laurent Opprecht's "Extresource" plugin with OEmbed protocol to improve the way of embedding "things"in Mahara (dajan)<br />
# Upcoming Mahara Events:<br />
## First Maharamoot francophone in Nîmes, May 20-22nd. Spread the word around you (dajan)<br />
## MaharaUK 2012 3rd July 2012 in Lancaster (dobedobedoh)<br />
# Update on Skins work (anzeljg)<br />
# Repository Plugins (anzeljg)<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2012-04-25&diff=3204Developer Area/Developer Meetings/2012-04-252012-04-20T09:03:46Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 16th Mahara Developer Meeting===<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?msg=16th+Mahara+Developer+Meeting&iso=20120425T20 Wednesday, 25 April 2012, 20:00 UTC]<br />
<br />
Chair: Andrew Nicols<br />
<br />
# Items from last meeting<br />
## fmarier already completed his two action items during the last meeting. Check the minutes for the results.<br />
## anzeljg joins the slovenian team on launchpad so that we could make it the owner of the mahara translation<br />
#<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings&diff=3203Developer Area/Developer Meetings2012-04-20T09:03:19Z<p>Andrewnicols: </p>
<hr />
<div>Regular developer meetings are held on IRC in the #mahara-dev channel. An IRC bot will be used to take minutes of these meetings and agendas made available on these pages before-hand.<br />
<br />
'''If you don't have an IRC client, you can [http://webchat.freenode.net/?channels=mahara-dev join us using your web browser].'''<br />
<br />
See [http://mahara.org/interaction/forum/topic.php?id=2070 <font color="rgb(160, 11, 11)">http://mahara.org/interaction/forum/topic.php?id=2070</font>] for more information on the first IRC meeting.<br />
<br />
{| summary="Summary including Time, Date, Agenda, Minutes and IRC Logs from meetings" width="600" border="1" cellpadding="1px" style="border-collapse: collapse; border: 1px solid;"<br />
! style="text-align: center" | Dev. meeting<br />
! style="text-align: center" | Date/Time<br />
! style="text-align: center" | Agenda<br />
! style="text-align: center" | Minutes<br />
! style="text-align: center" | IRC Log<br />
|-<br />
| style="text-align: center" | 1<br />
| style="text-align: left" | Wednesday 10 November 2010 - 07:30 UTC<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2010-11-10|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-11-10-07.34.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-11-10-07.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 2<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/meetingdetails.html?year=2010&month=12&day=14&hour=19&min=30&sec=0&p1=22&p2=189&p3=268&iv=1800 Tuesday 14 December 2010 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2010-12-14|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-12-14-19.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2010/mahara-dev.2010-12-14-19.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 3<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=19&month=1&year=2011&hour=7&min=30&sec=0&p1=0 Wednesday, 19 January 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-01-19|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-01-19-07.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-01-19-07.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 4<br />
| style="text-align: left" |<br />
[http://bit.ly/e29nNk Thursday, 17 February 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-02-17|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-02-17-19.30.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-02-17-19.30.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 5<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=23&month=3&year=2011&hour=7&min=30&sec=0&p1=0 Wednesday, 23 March 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-03-23|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-03-23-07.31.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-03-23-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 6<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?day=20&month=4&year=2011&hour=19&min=30&sec=0&p1=0 Wednesday 20 April 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-04-20|Agenda]]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-04-20-19.40.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-04-20-19.40.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 7<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110525T0730 Wednesday 25 May 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-05-25|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-05-25-07.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-05-25-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 8<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110629T1930 Wednesday 29 June 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-06-29|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-06-29-19.35.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-06-29-19.35.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 9<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110803T0730 Wednesday, 3 August 2011 - 07:30:00 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-08-03|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-08-03-07.34.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-08-03-07.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 10<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110906T1930 Tuesday, 6 September 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-09-06|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-09-06-19.34.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-09-06-19.34.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 11<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111005T0730 Wednesday, 5 October 2011 - 7:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-10-05|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-10-05-07.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-10-05-07.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 12<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111108T1930 Tuesday, 8 November 2011 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-11-08|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-11-08-19.31.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-11-08-19.31.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 13<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111206T0730 Tuesday, 6 December 2011 - 07:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2011-12-06|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-12-06-07.32.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2011/mahara-dev.2011-12-06-07.32.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 14<br />
| style="text-align: left" |<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?iso=20120131T1930 Tuesday, 31 January 2012 - 19:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-01-31|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-01-31-19.33.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-01-31-19.33.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 15<br />
| style="text-align: left" | [http://www.timeanddate.com/worldclock/fixedtime.html?iso=20120327T0730 Tuesday, 27 March 2012, 7:30 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-03-27|Agenda]]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-27-07.41.html Minutes]<br />
| style="text-align: center" | [http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-27-07.41.log.html IRC Log]<br />
|-<br />
| style="text-align: center" | 16<br />
| style="text-align: left" | [http://www.timeanddate.com/worldclock/fixedtime.html?msg=16th+Mahara+Developer+Meeting&iso=20120425T20 Wednesday, 25 April 2012, 20:00 UTC]<br />
| style="text-align: center" |<br />
[[Developer Area/Developer Meetings/2012-04-25|Agenda]]<br />
| style="text-align: center" | Minutes<br />
| style="text-align: center" | IRC Log<br />
|}<br />
<br />
The meeting logs and minutes are also [https://gitorious.org/mahara/minutes archived on Gitorious].<br />
<br />
===Other meetings===<br />
<br />
{| summary="Summary including Time, Date, Agenda, Minutes and IRC Logs from meetings" width="600" border="1" cellpadding="1px" style="border-collapse: collapse; border: 1px solid;"<br />
! style="text-align: center" | Meeting title<br />
! style="text-align: center" | Date/Time<br />
! style="text-align: center" | Agenda<br />
! style="text-align: center" | Minutes<br />
! style="text-align: center" | IRC Log<br />
|-<br />
| style="text-align: center" | Theme / plugin repository<br />
| style="text-align: left" | Thursday, 8 March 2012, 18:00-19:30 UTC<br />
| style="text-align: center" |<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-08-18.21.html Minutes]<br />
| style="text-align: center" |<br />
[http://meetbot.mahara.org/mahara-dev/2012/mahara-dev.2012-03-08-18.21.log.html IRC Log]<br />
|}<br />
<br />
===Useful info===<br />
<br />
* [[Developer_Area/Developer_Meetings/Chair_Duties|Chair Duties]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2012-04-24&diff=3202Developer Area/Developer Meetings/2012-04-242012-04-20T09:02:31Z<p>Andrewnicols: moved Developer Area/Developer Meetings/2012-04-24 to Developer Area/Developer Meetings/2012-04-25:&#32;Date change</p>
<hr />
<div>#REDIRECT [[Developer Area/Developer Meetings/2012-04-25]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2012-04-25&diff=3201Developer Area/Developer Meetings/2012-04-252012-04-20T09:02:31Z<p>Andrewnicols: moved Developer Area/Developer Meetings/2012-04-24 to Developer Area/Developer Meetings/2012-04-25:&#32;Date change</p>
<hr />
<div>===Agenda for the 16th Mahara Developer Meeting===<br />
[http://www.timeanddate.com/worldclock/fixedtime.html?msg=16th+Mahara+Developer+Meeting&iso=20120424T20 Tuesday, 24 April 2012, 20:00 UTC]<br />
<br />
Chair: Andrew Nicols<br />
<br />
# Items from last meeting<br />
## fmarier already completed his two action items during the last meeting. Check the minutes for the results.<br />
## anzeljg joins the slovenian team on launchpad so that we could make it the owner of the mahara translation<br />
#<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara&diff=3123System Administrator's Guide/Installing Mahara2012-03-22T09:46:15Z<p>Andrewnicols: </p>
<hr />
<div><font size="larger">'''<span style="background-color: rgb(192, 192, 192)">Nearby:</span>'''<span style="background-color: rgb(192, 192, 192)"> [[System Administrator's Guide/Upgrading Mahara|Upgrading Mahara]]</span></font>'''<br />'''<br />
<br />
This is a guide to installing Mahara. It's mainly targeted at the main platform on which people will install it (Linux with Apache), though [[System Administrator's Guide/Requirements|Mahara can be installed on other platforms]].<br />
<br />
Mahara is a web application. This means it's not just an executable file you can download and run. You need a server to put it on (you can use your desktop as a server if you're just trialling it). You'll need to install other software for it to run too - such as the Apache web server and PostgreSQL database system. Another alternative is to use shared hosting (see below for more information).<br />
<br />
If you're running Debian/Ubuntu, a lot of the required software (and even Mahara itself) can be installed using <code>apt-get</code>. If you're using some other linux distribution, you may be able to use your distribution specific install tool also.<br />
<br />
<div id="section_1"><br />
<br />
==Dependencies==<br />
<br />
Mahara is mainly designed for use on Linux, using the Apache web server, PostgreSQL database server and PHP. We also support its use with the MySQL database server.<br />
<br />
In addition, members of the community have successfully got Mahara running on [[System Administrator's Guide/Installing Mahara/MAC Installation|Mac OSX]] and [[System Administrator's Guide/Installing Mahara/Installing Mahara in Wampserver|Windows]], and have also managed to use [[System Administrator's Guide/Installing Mahara/Mahara on fastcgi%2f%2fnginx|nginx]] instead of Apache. The Mahara developers fix bugs found that prevent running on these platforms, but don't explicitly test them from day to day, so you may have less luck than using a Linux box with Apache.<br />
<br />
===Hardware===<br />
<br />
See [[System Administrator's Guide/Requirements#Hardware|Hardware Requirements]]<br />
<br />
===Software===<br />
<br />
See [[System Administrator's Guide/Requirements#Software|Software Requirements]]<br />
<br />
==Get the code, and put on your webserver==<br />
<br />
In order for your Mahara to run, you need to put a copy of the code on your own server. You can either [[Download Mahara|download a standard build of Mahara]], or [[Developer Area/Getting Code from Git|check out the project from the git repository]] if you know how git works (this option is mainly for developers).<br />
<br />
Once you have the code, copy the contents of the <code>htdocs/</code> directory to your webserver. It is best if you either:<br />
<br />
* Copy the entire directory, then rename it to something like 'mahara' - so you will see your site at <code>example.org/mahara/</code>; or<br />
* Copy the contents of the <code>htdocs/</code> directory to the top level public directory (often called <code>htdocs</code> or <code>public_html</code>) of your webserver, so you can see your site at <code>example.org.</code><br />
<br />
If you are unfamiliar with Ubuntu and need an in more detailed explanation about how to install the files and configure Apache, go to the [[System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu|step-by-step guide]].<br />
<br />
</div><div id="section_5"><br />
<br />
==Create the Database==<br />
<br />
You need to create a database for Mahara and ensure that the webserver is able to connect to it. Instructions for the command line follow, if you have access to a CPanel or similar software you can create the database using it instead.<br />
<br />
Your database must be UTF8 encoded. The commands below create a UTF8 encoded database, if you use CPanel etc., then you will have to make sure it creates you a UTF8 database.<br />
<br />
'''Command line instructions for Postgres:'''<br />
<br />
<nowiki># Run these commands while su'd to the 'postgres' user<br />
# If you need to create a database user:<br />
createuser -SRDP (username)<br />
# Actual database creation<br />
createdb -O (username who will be connecting) -EUTF8 (databasename)</nowiki><br />
<br />
'''Command line instructions for MySQL:'''<br />
<br />
mysql --user=root -p<br />
<br />
[enter password]<br />
<br />
create database (databasename) character set UTF8;<br />
<br />
grant all on (databasename).* to 'username'@'localhost' identified by 'password';<br />
<br />
By the way, if possible, [[System Administrator's Guide/PostgreSQL or MySQL%3f|try to use PostgreSQL for your database]] if you can.<br />
<br />
</div><div id="section_6"><br />
<br />
==Create the Dataroot Directory==<br />
<br />
This is a directory where Mahara will write files that are uploaded to it, as well as some other files it needs to run. The main point about this directory is that it is one that the web server can write to. The other main point is that it cannot be inside the directory where your Mahara code is! In fact, if you have a public_html directory, it should not be inside that at all.<br />
<br />
On your webserver, you will need to make this directory. If you have a public_html directory, make the directory alongside it. You can give it a name like 'maharadata'. Once you are done, you should have this directory structure (ignoring files):<br />
<br />
<code>.../yourusername/public_html</code><br />
<code>.../yourusername/maharadata</code><br />
<br />
You will need to make the maharadata directory writable by the web server user. You can either change its owner to be the web server user, or you can <code>chmod</code> it to 777. The latter isn't recommended, but if you're on shared hosting it's what you'll probably have to do. FTP programs will allow you to chmod the directory.<br />
<br />
</div><div id="section_7"><br />
<br />
==Create Mahara's config.php==<br />
<br />
In the Mahara htdocs directory is <code>config-dist.php</code>. You need to make a copy of this called <code>config.php</code>. You then need to go through the file and make changes where appropriate. The file is commented, and there are not many settings to change. However, take special note of the following settings:<br />
<br />
* '''database connection details''' — ensure you include the database connection details by inserting the proper values for $cfg-&gt;dbname, $cfg-&gt;dbuser, $cfg-&gt;dbpass, $cfg-&gt;dbprefix.<br />
** '''Note''': You do ''not'' need to set dbprefix, unlike Moodle. Try not using it first, and see if it works. If you find you ''do'' need it, you may find it best to leave dbprefix empty and add the prefix directly to $cfg-&gt;dbname, $cfg-&gt;dbuser values.<br />
* '''dataroot''' - set this to the filesystem path to the directory you made that the web server user can write to. Please note this is a filesystem path, which on linux will look like <code>/path/to/your/directory</code> and on windows will look like <code>C:\path\to\your\directory</code>. This is NOT a web address such as http://example.org/maharadata!<br />
* '''directorypermissions''' - if you're on a server where you do not have root access, you should change this from 0700 to 0777 or similar, so that you can download your dataroot later for backup purposes, and install language packs.<br />
<br />
</div><div id="section_8"><br />
<br />
==Apache Configuration==<br />
<br />
''<span style="background-color: rgb(255, 204, 153)">'''Note:''' If you're on shared hosting, you probably are not able to change this, so you can ignore this section.</span>''<br />
<br />
The simplest of Apache VirtualHost configurations will be sufficient:<br />
<br />
<br />
ServerName example.org<br />
DocumentRoot /path/to/mahara/htdocs<br />
<br />
ErrorLog /var/log/apache2/mahara.error.log<br />
CustomLog /var/log/apache2/mahara.access.log combined<br />
<br />
<br />
AllowOverride All<br />
<br />
<br />
<br />
Please note that your apache configuration should contain '''no ServerAliases'''. Mahara expects to be accessed through ONE URL. This gives certainty that cookies are set for the right domain, and also means that SSL certificates for the networking functionality can be generated for this one URL. If you use a server alias, you should expect to see problems like having to log in twice, and potentially SSO between your site and others breaking.<br />
<br />
However, you can still make both example.org and www.example.org work for your site, if you use a second VirtualHost directive as well as the one above:<br />
<br />
<br />
ServerName www.example.org<br />
# You _can_ add ServerAliases here if you want more than one URL to<br />
# redirect to your main site<br />
# ServerAlias foo.example.org<br />
<br />
Redirect Permanent / http://example.org/<br />
<br />
<br />
</div><div id="section_9"><br />
<br />
==Adjust your PHP settings==<br />
<br />
In your php.ini file (often found in /etc/php5/apache2/php.ini), make sure you have these:<br />
<br />
register_globals off<br />
magic_quotes_runtime off<br />
magic_quotes_sybase off<br />
magic_quotes_gpc off<br />
log_errors on<br />
allow_call_time_pass_reference off<br />
upload_max_filesize 50M<br />
post_max_size 50M<br />
<br />
</div><div id="section_10"><br />
<br />
==Run the Installer==<br />
<br />
As of version 1.5.0 of Mahara, there are now two options for installing Mahara. Most users will want to use the web-based installer but more advanced users may wish to use the Command-Line Interface installer as an alternative.<br />
<br />
=== Using the web-based installer ===<br />
<br />
Once you have set up your config.php (and apache configuration, if not on shared hosting), you should now be able to navigate to the Mahara installation using your web browser. This will pop up a page stating the conditions of using Mahara, and will ask for agreement. If you agree with the conditions, click "agree" and Mahara will install itself into your database. Click continue, and you will be asked to change the administrator's password, then you'll be logged in to your new Mahara installation. '''Congratulations!'''<br />
<br />
'''Note:''' The admin's username is ''''admin''''. Before Mahara 1.2, you will have to log in before you can change your password. The admin's default password is '''mahara'''.<br />
<br />
===Run the Command-Line Interface Installer===<br />
<br />
Since version 1.5.0, Mahara has had a command-line installation and upgrade toolset which provide an excellent alternative to the web-based installer.<br />
<br />
The Command Line Interface (CLI) installer needs to be run as the same user that your web server will run as because it creates a number of directories and sets file ownerships within the document root.<br />
<br />
Navigate to the mahara/htdocs directory and run:<br />
<code><br />
php admin/cli/install.php --adminpassword='examplepassword' --adminemail=youremailaddress<br />
</code><br />
<br />
You can optionally specify the <code>--verbose</code> option to see exactly what the installation process does or <code>--help</code> for additional help on the options to the installer.<br />
<br />
<div id="section_11"><br />
<br />
===What if the installation process breaks with an error?===<br />
<br />
Sometimes this can happen. Normally this is because of some misconfiguration in your system - for example, you haven't granted your database user permission to create tables, or you aren't using a high enough version of your database (see the [[System Administrator's Guide/Installing Mahara#1.%20Dependencies|dependencies]]). Sometimes, it's because of a bug in the Mahara installer. In order to find out, you will need to check the error log for your webserver. Mahara dumps detailed information in there where a bug occurs.<br />
<br />
The message might show you that the problem is with your configuration, but if it looks like a problem with Mahara, you should make a [https://bugs.launchpad.net/mahara/+filebug bug report] with the information from your logs, so we can fix it.<br />
<br />
If you were able to fix the problem, you might need to drop and re-create your database again, so you're starting the installation again without any of the previously installed tables in the way.<br />
<br />
</div><div id="section_12"><br />
<br />
===Final Tasks (don't forget!): Email &amp; Cron Job===<br />
<br />
1. You may wish to check that Mahara can send email by trying to register on your site. If you receive a registration email, all is well. If you get a message saying "Sorry, your registration attempt was unsuccessful. This is our fault, not yours...", then you will need to install a mail transport agent (such as sendmail, exim, postfix, nullmailer) on your server, or specify an outgoing (SMTP) mail server in your config.php (form version 1.4 mail settings can be configured in ''Configure Site -> Site options -> Email''). See the [[System Administrator's Guide/Installing Mahara/Troubleshooting|troubleshooting page]], or [http://mahara.org/interaction/forum/topic.php?id=985 this thread] for more details.<br />
<br />
2. You will need to set up a cron job to hit <font face="Courier New">htdocs/lib/cron.php</font> every minute. Mahara implements its own cron internally, so hitting cron every minute is sufficient to make everything work.<br />
<br />
If you don't set up the cron job, you will find that RSS feeds will not update, and some email notifications won't be sent out, such as forum post notifications.<br />
<br />
You can set it up using the command line 'php' command to run the cron script, or by using a command line web browser such as lynx or w3m.<br />
<br />
Something like the following in a crontab file will be sufficient:<br />
<br />
<nowiki>* * * * * curl http://your-mahara-site.org/lib/cron.php</nowiki><br />
<br />
If you run cron using curl, the cron output will be logged in your apache error log. If you wish to separate where it's logged to away from your apache logs (which is a particularly good idea, though slightly harder to set up), read the [[System Administrator's Guide/Cron Job|separate article about Mahara's cron]].<br />
<br />
</div><div id="section_13"><br />
<br />
==Secure your Mahara installation==<br />
<br />
There are a few things that can be done to increase the security of your installation by enabling '''virus scanning''' and extra '''spam protections'''.<br />
<br />
Have a look under Sites options, Security settings.<br />
<br />
</div><div id="section_14"><br />
<br />
==My Mahara is installed - now what?==<br />
<br />
Congratulations on getting your Mahara installed! Now read the [[System Administrator's Guide/Next Steps|Next Steps article]] to see what you can do now - for example, installing a new language pack and theme.<br />
<br />
And if you haven't already, now might be a good time to join the Mahara community - you can get help and ideas for your Mahara from a world-wide community of enthusiastic users. We hope to see you on the forums soon!<br />
<br />
</div><div id="section_15"><br />
<br />
==Troubleshooting==<br />
<br />
If you are having problems installing Mahara, please check out the [[System Administrator's Guide/Installing Mahara/Troubleshooting|Installation Instructions Troubleshooting Page]] for answers to some common problems.<br />
<br />
</div></div><br />
<br />
==Mahara and Shared Hosting==<br />
<br />
Shared hosting [[System Administrator's Guide/Requirements#Can I use shared hosting.3f|isn't as good as having a machine where you can have administrator access]]. If you would still like to install Mahara on shared hosting, a detailed guide with screen shots and video tutorials is available on http://mygreatlearningsite.com/. This guide will show you how to install Mahara via cPanel and is designed for users who don't any previous experience with creating websites or setting up databases.<br />
<br />
You could also try [http://www.softaculous.com/softwares/cms/Mahara Softaculous] and [http://mahara.org/interaction/forum/topic.php?id=4277 let us know if that works for you] as we have not tried it and don't know how well the installation process there works.<br />
<br />
==Subpages==<br />
<br />
* [[System_Administrator's_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu|How to install Mahara in Ubuntu]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Installing_Mahara_in_Wampserver|Installing Mahara in Wampserver]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Installing_on_CentOS_5.x|Installing on CentOS 5.x]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/MAC_Installation|Mahara on Mac OS X]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Mahara_on_fastcgi//nginx|Mahara on fastcgi/nginx]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Troubleshooting|Troubleshooting]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Mahara_RPM_packaging|Mahara RPM packaging]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara&diff=3122System Administrator's Guide/Installing Mahara2012-03-22T09:36:46Z<p>Andrewnicols: Add notes on installing using the CLI installer</p>
<hr />
<div><font size="larger">'''<span style="background-color: rgb(192, 192, 192)">Nearby:</span>'''<span style="background-color: rgb(192, 192, 192)"> [[System Administrator's Guide/Upgrading Mahara|Upgrading Mahara]]</span></font>'''<br />'''<br />
<br />
This is a guide to installing Mahara. It's mainly targeted at the main platform on which people will install it (Linux with Apache), though [[System Administrator's Guide/Requirements|Mahara can be installed on other platforms]].<br />
<br />
Mahara is a web application. This means it's not just an executable file you can download and run. You need a server to put it on (you can use your desktop as a server if you're just trialling it). You'll need to install other software for it to run too - such as the Apache web server and PostgreSQL database system. Another alternative is to use shared hosting (see below for more information).<br />
<br />
If you're running Debian/Ubuntu, a lot of the required software (and even Mahara itself) can be installed using <code>apt-get</code>. If you're using some other linux distribution, you may be able to use your distribution specific install tool also.<br />
<br />
<div id="section_1"><br />
<br />
==Dependencies==<br />
<br />
Mahara is mainly designed for use on Linux, using the Apache web server, PostgreSQL database server and PHP. We also support its use with the MySQL database server.<br />
<br />
In addition, members of the community have successfully got Mahara running on [[System Administrator's Guide/Installing Mahara/MAC Installation|Mac OSX]] and [[System Administrator's Guide/Installing Mahara/Installing Mahara in Wampserver|Windows]], and have also managed to use [[System Administrator's Guide/Installing Mahara/Mahara on fastcgi%2f%2fnginx|nginx]] instead of Apache. The Mahara developers fix bugs found that prevent running on these platforms, but don't explicitly test them from day to day, so you may have less luck than using a Linux box with Apache.<br />
<br />
===Hardware===<br />
<br />
See [[System Administrator's Guide/Requirements#Hardware|Hardware Requirements]]<br />
<br />
===Software===<br />
<br />
See [[System Administrator's Guide/Requirements#Software|Software Requirements]]<br />
<br />
==Get the code, and put on your webserver==<br />
<br />
In order for your Mahara to run, you need to put a copy of the code on your own server. You can either [[Download Mahara|download a standard build of Mahara]], or [[Developer Area/Getting Code from Git|check out the project from the git repository]] if you know how git works (this option is mainly for developers).<br />
<br />
Once you have the code, copy the contents of the <code>htdocs/</code> directory to your webserver. It is best if you either:<br />
<br />
* Copy the entire directory, then rename it to something like 'mahara' - so you will see your site at <code>example.org/mahara/</code>; or<br />
* Copy the contents of the <code>htdocs/</code> directory to the top level public directory (often called <code>htdocs</code> or <code>public_html</code>) of your webserver, so you can see your site at <code>example.org.</code><br />
<br />
If you are unfamiliar with Ubuntu and need an in more detailed explanation about how to install the files and configure Apache, go to the [[System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu|step-by-step guide]].<br />
<br />
</div><div id="section_5"><br />
<br />
==Create the Database==<br />
<br />
You need to create a database for Mahara and ensure that the webserver is able to connect to it. Instructions for the command line follow, if you have access to a CPanel or similar software you can create the database using it instead.<br />
<br />
Your database must be UTF8 encoded. The commands below create a UTF8 encoded database, if you use CPanel etc., then you will have to make sure it creates you a UTF8 database.<br />
<br />
'''Command line instructions for Postgres:'''<br />
<br />
<nowiki># Run these commands while su'd to the 'postgres' user<br />
# If you need to create a database user:<br />
createuser -SRDP (username)<br />
# Actual database creation<br />
createdb -O (username who will be connecting) -EUTF8 (databasename)</nowiki><br />
<br />
'''Command line instructions for MySQL:'''<br />
<br />
mysql --user=root -p<br />
<br />
[enter password]<br />
<br />
create database (databasename) character set UTF8;<br />
<br />
grant all on (databasename).* to 'username'@'localhost' identified by 'password';<br />
<br />
By the way, if possible, [[System Administrator's Guide/PostgreSQL or MySQL%3f|try to use PostgreSQL for your database]] if you can.<br />
<br />
</div><div id="section_6"><br />
<br />
==Create the Dataroot Directory==<br />
<br />
This is a directory where Mahara will write files that are uploaded to it, as well as some other files it needs to run. The main point about this directory is that it is one that the web server can write to. The other main point is that it cannot be inside the directory where your Mahara code is! In fact, if you have a public_html directory, it should not be inside that at all.<br />
<br />
On your webserver, you will need to make this directory. If you have a public_html directory, make the directory alongside it. You can give it a name like 'maharadata'. Once you are done, you should have this directory structure (ignoring files):<br />
<br />
<code>.../yourusername/public_html</code><br />
<code>.../yourusername/maharadata</code><br />
<br />
You will need to make the maharadata directory writable by the web server user. You can either change its owner to be the web server user, or you can <code>chmod</code> it to 777. The latter isn't recommended, but if you're on shared hosting it's what you'll probably have to do. FTP programs will allow you to chmod the directory.<br />
<br />
</div><div id="section_7"><br />
<br />
==Create Mahara's config.php==<br />
<br />
In the Mahara htdocs directory is <code>config-dist.php</code>. You need to make a copy of this called <code>config.php</code>. You then need to go through the file and make changes where appropriate. The file is commented, and there are not many settings to change. However, take special note of the following settings:<br />
<br />
* '''database connection details''' — ensure you include the database connection details by inserting the proper values for $cfg-&gt;dbname, $cfg-&gt;dbuser, $cfg-&gt;dbpass, $cfg-&gt;dbprefix.<br />
** '''Note''': You do ''not'' need to set dbprefix, unlike Moodle. Try not using it first, and see if it works. If you find you ''do'' need it, you may find it best to leave dbprefix empty and add the prefix directly to $cfg-&gt;dbname, $cfg-&gt;dbuser values.<br />
* '''dataroot''' - set this to the filesystem path to the directory you made that the web server user can write to. Please note this is a filesystem path, which on linux will look like <code>/path/to/your/directory</code> and on windows will look like <code>C:\path\to\your\directory</code>. This is NOT a web address such as http://example.org/maharadata!<br />
* '''directorypermissions''' - if you're on a server where you do not have root access, you should change this from 0700 to 0777 or similar, so that you can download your dataroot later for backup purposes, and install language packs.<br />
<br />
</div><div id="section_8"><br />
<br />
==Apache Configuration==<br />
<br />
''<span style="background-color: rgb(255, 204, 153)">'''Note:''' If you're on shared hosting, you probably are not able to change this, so you can ignore this section.</span>''<br />
<br />
The simplest of Apache VirtualHost configurations will be sufficient:<br />
<br />
<br />
ServerName example.org<br />
DocumentRoot /path/to/mahara/htdocs<br />
<br />
ErrorLog /var/log/apache2/mahara.error.log<br />
CustomLog /var/log/apache2/mahara.access.log combined<br />
<br />
<br />
AllowOverride All<br />
<br />
<br />
<br />
Please note that your apache configuration should contain '''no ServerAliases'''. Mahara expects to be accessed through ONE URL. This gives certainty that cookies are set for the right domain, and also means that SSL certificates for the networking functionality can be generated for this one URL. If you use a server alias, you should expect to see problems like having to log in twice, and potentially SSO between your site and others breaking.<br />
<br />
However, you can still make both example.org and www.example.org work for your site, if you use a second VirtualHost directive as well as the one above:<br />
<br />
<br />
ServerName www.example.org<br />
# You _can_ add ServerAliases here if you want more than one URL to<br />
# redirect to your main site<br />
# ServerAlias foo.example.org<br />
<br />
Redirect Permanent / http://example.org/<br />
<br />
<br />
</div><div id="section_9"><br />
<br />
==Adjust your PHP settings==<br />
<br />
In your php.ini file (often found in /etc/php5/apache2/php.ini), make sure you have these:<br />
<br />
register_globals off<br />
magic_quotes_runtime off<br />
magic_quotes_sybase off<br />
magic_quotes_gpc off<br />
log_errors on<br />
allow_call_time_pass_reference off<br />
upload_max_filesize 50M<br />
post_max_size 50M<br />
<br />
</div><div id="section_10"><br />
<br />
==Run the Web Based Installer==<br />
<br />
Once you have set up your config.php (and apache configuration, if not on shared hosting), you should now be able to navigate to the Mahara installation using your web browser. This will pop up a page stating the conditions of using Mahara, and will ask for agreement. If you agree with the conditions, click "agree" and Mahara will install itself into your database. Click continue, and you will be asked to change the administrator's password, then you'll be logged in to your new Mahara installation. '''Congratulations!'''<br />
<br />
'''Note:''' The admin's username is ''''admin''''. Before Mahara 1.2, you will have to log in before you can change your password. The admin's default password is '''mahara'''.<br />
<br />
<div id="section_11"><br />
<br />
===What if the installation process breaks with an error?===<br />
<br />
Sometimes this can happen. Normally this is because of some misconfiguration in your system - for example, you haven't granted your database user permission to create tables, or you aren't using a high enough version of your database (see the [[System Administrator's Guide/Installing Mahara#1.%20Dependencies|dependencies]]). Sometimes, it's because of a bug in the Mahara installer. In order to find out, you will need to check the error log for your webserver. Mahara dumps detailed information in there where a bug occurs.<br />
<br />
The message might show you that the problem is with your configuration, but if it looks like a problem with Mahara, you should make a [https://bugs.launchpad.net/mahara/+filebug bug report] with the information from your logs, so we can fix it.<br />
<br />
If you were able to fix the problem, you might need to drop and re-create your database again, so you're starting the installation again without any of the previously installed tables in the way.<br />
<br />
</div><div id="section_12"><br />
<br />
===Final Tasks (don't forget!): Email &amp; Cron Job===<br />
<br />
1. You may wish to check that Mahara can send email by trying to register on your site. If you receive a registration email, all is well. If you get a message saying "Sorry, your registration attempt was unsuccessful. This is our fault, not yours...", then you will need to install a mail transport agent (such as sendmail, exim, postfix, nullmailer) on your server, or specify an outgoing (SMTP) mail server in your config.php (form version 1.4 mail settings can be configured in ''Configure Site -> Site options -> Email''). See the [[System Administrator's Guide/Installing Mahara/Troubleshooting|troubleshooting page]], or [http://mahara.org/interaction/forum/topic.php?id=985 this thread] for more details.<br />
<br />
2. You will need to set up a cron job to hit <font face="Courier New">htdocs/lib/cron.php</font> every minute. Mahara implements its own cron internally, so hitting cron every minute is sufficient to make everything work.<br />
<br />
If you don't set up the cron job, you will find that RSS feeds will not update, and some email notifications won't be sent out, such as forum post notifications.<br />
<br />
You can set it up using the command line 'php' command to run the cron script, or by using a command line web browser such as lynx or w3m.<br />
<br />
Something like the following in a crontab file will be sufficient:<br />
<br />
<nowiki>* * * * * curl http://your-mahara-site.org/lib/cron.php</nowiki><br />
<br />
If you run cron using curl, the cron output will be logged in your apache error log. If you wish to separate where it's logged to away from your apache logs (which is a particularly good idea, though slightly harder to set up), read the [[System Administrator's Guide/Cron Job|separate article about Mahara's cron]].<br />
<br />
</div><div id="section_13"><br />
<br />
==Run the Command-Line Installer==<br />
<br />
Since version 1.5.0, Mahara has had a command-line installation and upgrade toolset which provide an excellent alternative to the web-based installer.<br />
<br />
The Command Line Interface (CLI) installer needs to be run as the same user that your web server will run as because it creates a number of directories and sets file ownerships within the document root.<br />
<br />
Navigate to the mahara/htdocs directory and run:<br />
<code><br />
php admin/cli/install.php --adminpassword='examplepassword' --adminemail=youremailaddress<br />
</code><br />
<br />
You can optionally specify the <code>--verbose</code> option to see exactly what the installation process does or <code>--help</code> for additional help on the options to the installer.<br />
<br />
==Secure your Mahara installation==<br />
<br />
There are a few things that can be done to increase the security of your installation by enabling '''virus scanning''' and extra '''spam protections'''.<br />
<br />
Have a look under Sites options, Security settings.<br />
<br />
</div><div id="section_14"><br />
<br />
==My Mahara is installed - now what?==<br />
<br />
Congratulations on getting your Mahara installed! Now read the [[System Administrator's Guide/Next Steps|Next Steps article]] to see what you can do now - for example, installing a new language pack and theme.<br />
<br />
And if you haven't already, now might be a good time to join the Mahara community - you can get help and ideas for your Mahara from a world-wide community of enthusiastic users. We hope to see you on the forums soon!<br />
<br />
</div><div id="section_15"><br />
<br />
==Troubleshooting==<br />
<br />
If you are having problems installing Mahara, please check out the [[System Administrator's Guide/Installing Mahara/Troubleshooting|Installation Instructions Troubleshooting Page]] for answers to some common problems.<br />
<br />
</div></div><br />
<br />
==Mahara and Shared Hosting==<br />
<br />
Shared hosting [[System Administrator's Guide/Requirements#Can I use shared hosting.3f|isn't as good as having a machine where you can have administrator access]]. If you would still like to install Mahara on shared hosting, a detailed guide with screen shots and video tutorials is available on http://mygreatlearningsite.com/. This guide will show you how to install Mahara via cPanel and is designed for users who don't any previous experience with creating websites or setting up databases.<br />
<br />
You could also try [http://www.softaculous.com/softwares/cms/Mahara Softaculous] and [http://mahara.org/interaction/forum/topic.php?id=4277 let us know if that works for you] as we have not tried it and don't know how well the installation process there works.<br />
<br />
==Subpages==<br />
<br />
* [[System_Administrator's_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu|How to install Mahara in Ubuntu]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Installing_Mahara_in_Wampserver|Installing Mahara in Wampserver]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Installing_on_CentOS_5.x|Installing on CentOS 5.x]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/MAC_Installation|Mahara on Mac OS X]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Mahara_on_fastcgi//nginx|Mahara on fastcgi/nginx]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Troubleshooting|Troubleshooting]]<br />
* [[System_Administrator's_Guide/Installing_Mahara/Mahara_RPM_packaging|Mahara RPM packaging]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2706Proposals/Email to Journal2011-11-01T15:07:25Z<p>Andrewnicols: Add summary for IMAP fetching</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
This could also be made to support uploading of files to groups.<br />
<br />
'''External Videos'''<br />
Links to external videos, such as youtube could be replaced with proper embed code. For instance a link like <nowiki>http://www.youtube.com/watch?v=hl64aiheIPI</nowiki> could be replaced with the full <nowiki><embed></nowiki> code for that external video repository.<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====Receiving E-Mail====<br />
<br />
Following initial discussion, I can see two main options for this:<br />
<br />
* a specific e-mail address format; and<br />
* an e-mail mailbox which is polled using IMAP.<br />
<br />
=====E-mail Address Format=====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
The benefit of this approach is that messages are received straight into Mahara in a timely fashion.<br />
<br />
=====Mailbox Fetch over IMAP=====<br />
<br />
This option allows for greater adoption - for example in a shared hosting environment where it is not possible to modify the MTA configuration to direct e-mail to a php script.<br />
<br />
The idea behind this option is to have a single e-mail account (e.g. incoming@mahara.local). This account would be checked using the IMAP protocol by a function called from the Mahara Cron.<br />
<br />
Each message in the inbox is retrieved one-by-one and processed based on the certain keywords in the subject.<br />
<br />
The recipient is matched against the e-mail address in a users profile, and if none are found, the message is rejected.<br />
<br />
For a message where the recipient does match a users profile, the subject is then analysed:<br />
<br />
<keyword>: <rest of subject><br />
<br />
If a valid keyword is found, then a message is posted into the journal associated with this keyword<br />
If no keyword is found, or the keyword is invalid, then the message is posted into the default journal.<br />
<br />
This allows for subjects such as:<br />
<br />
Subject: FWD: blah blah blah<br />
<br />
to be published into the default journal, providing a keyword of FWD is not already established for that user.<br />
<br />
A keyword could also be used for storing attachments within a message.<br />
Subject: save<br />
<br />
And groups could also be catered for:<br />
Subject: group-<keyword>-save<br />
<br />
The benefit of this option is that it would allow for wider adoption.<br />
This option is provided at the cost of timeliness to publish. Additionally, locking may have to be visited to prevent an e-mail from being published multiple times.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
It would also be ideal if the system supported some level of localisation as mentioned above.<br />
<br />
====Security Concerns====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal. This would not require that the user log on to Mahara - just that they click the link and have a web browser available.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.<br />
<br />
====Other Issues====<br />
<br />
<br />
=====Configuration Complexity=====<br />
<br />
In order for this feature to work, a certain amount of configuration would be required:<br />
* an MX record would be required for the mahara host; and<br />
* the Mail Transfer Agent would need the appropriate configuration.<br />
<br />
I suspect that this may be a limiting for many smaller installations, particularly those offered on shared hosting. I suspect that most shared hosting providers would not allow the relevant MTA configuration for this to work. It may be possible to provide a cron job to check a mailbox via IMAP for new posts, though this would still require appropriate configuration.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Moodle//Mahara_Integration&diff=2705System Administrator's Guide/Moodle//Mahara Integration2011-11-01T10:06:08Z<p>Andrewnicols: 1.2 is well in the past now</p>
<hr />
<div>[[Image:mahoodle.jpg|mahoodle.jpg]]The integration between Moodle and Mahara has been affectionately named "Mahoodle". It allows true single-signon between both systems - no password sharing required, and users' profile information is ported across. In addition, from Mahara 1.2, users are able to [[System Administrator's Guide/Moodle%2f%2fMahara Integration/View Submission|submit Mahara Views to Moodle for assessment]] (with a plugin for Moodle).<br />
<br />
The best instructions for setting up the integration can be found in the PDF entitled "Mahoodle", which you can find attached to this wiki page. The instructions and screenshots are a little out of date, but the process works.<br />
<br />
More up to date instructions and screenshots are available in the mahoodle-updated-en.odp and mahoodle-updated-en.pdf files attached to this wiki page. You should also read the original Mahoodle.pdf file to get more detailed explanations about the whole process.<br />
<br />
===Files===<br />
<br />
*[[File:Mahoodle.pdf]]<br />
*[[File:Mahoodle-updated-en.odp]]<br />
*[[File:Mahoodle-updated-en.pdf]]<br />
<br />
===Subpages===<br />
<br />
* [[System_Administrator's_Guide/Moodle//Mahara_Integration/View_Submission|Mahara-Moodle View Submission]]<br />
* [[Moodle 2.x]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu&diff=2670System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu2011-10-21T15:40:31Z<p>Andrewnicols: /* Mahara Configuration */</p>
<hr />
<div>If you are unfamiliar with Linux in general, and Debian-based distributions in particular, this guide will show you how to proceed, in addition to the "Installing Mahara" document.<br />
<br />
This guide is just for installing a development site of Mahara as a localhost. For a production site, you would read the complete "[https://help.ubuntu.com/8.04/serverguide/C/index.html Ubuntu Server Guide]" documentation.<br />
<br />
These instructions assume that you're running a fresh installation of Ubuntu 11.10 or similar.<br />
<br />
== Install Required Packages ==<br />
<br />
<code><br />
sudo apt-get install apache2 php5 postgresql-9.1 php5-gd php5-pgsql php5-xmlrpc php5-curl<br />
</code><br />
<br />
This should install all the dependencies we need.<br />
<br />
After installing the packages, just follow the instructions provided in the "[[System Administrator's Guide/Installing Mahara|Installing Mahara]]" main document to unzip and install the Mahara folders.<br />
<br />
== Download and unpack Mahara ==<br />
<br />
In this example, we install mahara to /srv/www/[hostname], and store our data in /srv/data/[hostname].<br />
<br />
<code><br />
cd /srv/<br />
mkdir data www<br />
cd www<br />
wget http://launchpad.net/mahara/1.4/1.4.0/+download/mahara-1.4.0.zip<br />
unzip mahara-1.4.0.zip<br />
rm mahara-1.4.0.zip<br />
mv mahara-1.4.0 [hostname]<br />
</code><br />
<br />
== Configure the Database ==<br />
<br />
The easiest way to create the database is to switch to the postgres user.<br />
<br />
We'll create a new user (mahara), and also a new database (also mahara).<br />
<br />
<code><br />
sudo su - postgres<br />
createuser -SRDP mahara<br />
[password]<br />
[confirm password]<br />
createdb -O mahara -EUTF8 mahara<br />
exit<br />
</code><br />
<br />
== Configure Apache2 ==<br />
<br />
The next step is to add your Mahara site as a new virtual hosts. There are many ways of doing so but this is the most straight forward:<br />
<br />
# Create a new file called "mahara.conf" (for instance) at /etc/apache2/sites-available.<br />
# You need to edit that file by typing from the console:<br />
<br />
sudo gedit /etc/apache2/sites-available/mahara.conf<br />
<br />
(or alternatively "sudo nano /etc/apache2/sites-available").<br />
<br />
The following is a very basic example of an Apache configuration for Mahara. You'll need to put this into the mahara.conf file you just opened<br />
<br />
<code><br />
&lt;VirtualHost [hostname]&gt;<br />
ServerName [hostname]<br />
DocumentRoot /srv/www/[hostname/htdocs<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
&lt;/Directory&gt;<br />
&lt;Directory /srv/www/[hostname]/htdocs/&gt;<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
&lt;/Directory&gt;<br />
ErrorLog /var/log/apache2/error.log<br />
CustomLog /var/log/apache2/access.log combined<br />
&lt;/VirtualHost&gt;<br />
</code><br />
<br />
We'll then need to enable the site. On Ubuntu, Apache comes with a suite of commands for doing this kind of thing. We'll use the Apache2 Enable Site command:<br />
<br />
<code><br />
sudo a2ensite mahara.conf<br />
</code><br />
<br />
== DNS/Friendly Name ==<br />
<br />
Depending on what you chose as your host name, you may need to add a DNS entry, or a line to the /etc/hosts file.<br />
<br />
In this example, I'm running mahara on my local system for development/demonstration purposes. I don't have proper DNS available so I'm adding my mahara.local domain.<br />
<br />
<code><br />
sudo gedit /etc/hosts<br />
</code><br />
<br />
And add:<br />
<code><br />
127.0.0.1 [hostname]<br />
</code><br />
<br />
== Mahara Configuration ==<br />
<br />
The next step is to create the config.php from the config-dist.php. This step is pretty well explain at the "[[System Administrator's Guide/Installing Mahara|Mahara Configuration]]", but essentialy we'll<br />
<br />
<code><br />
cd /srv/data/[hostname]/htdocs<br />
sudo cp config-dist.php config.php<br />
sudo gedit config.php<br />
</code><br />
<br />
The key items to set are:<br />
* $cfg-&gt;wwwroot<br />
* $cfg-&gt;dataroot<br />
* $cfg-&gt;dbname<br />
* $cfg-&gt;dbuser<br />
* $cfg-&gt;dbpass<br />
<br />
If you've followed the steps so far, the following should work<br />
<code><br />
&lt;?php<br />
$cfg = new stdClass();<br />
$cfg-&gt;wwwroot = 'http://[hostname]';<br />
$cfg-&gt;dataroot = '/srv/data/[hostname]';<br />
$cfg-&gt;dbname = 'mahara';<br />
$cfg-&gt;dbuser = 'mahara';<br />
$cfg-&gt;dbpass = '[password]';<br />
</code><br />
<br />
We'll need to make sure that the web server can write to the data directory (dataroot). To do this, we'll change who owns the directory with the chown command.<br />
Apache2 typically runs as the user 'www-data' on Debian and Ubuntu:<br />
<br />
<code><br />
sudo chown -R www-data:www-data /srv/data/[hostname]<br />
</code><br />
<br />
There is a very good-and short-[http://catcode.com/teachmod/ tutorial ] about how to change permissions and groups of users in Ubuntu by using the chmod command. It only takes 10 minutes to read it and it really gives you a good insight.<br />
<br />
== Install Mahara ==<br />
<br />
You should now be ready to actually install Mahara. Open your browser of choice, and visit the site (e.g. http://[hostname])<br />
<br />
After checking you're ready to proceed, Mahara will install and ask for an e-mail address and password for your admin user.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu&diff=2669System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu2011-10-21T15:40:04Z<p>Andrewnicols: /* Configure Apache2 */</p>
<hr />
<div>If you are unfamiliar with Linux in general, and Debian-based distributions in particular, this guide will show you how to proceed, in addition to the "Installing Mahara" document.<br />
<br />
This guide is just for installing a development site of Mahara as a localhost. For a production site, you would read the complete "[https://help.ubuntu.com/8.04/serverguide/C/index.html Ubuntu Server Guide]" documentation.<br />
<br />
These instructions assume that you're running a fresh installation of Ubuntu 11.10 or similar.<br />
<br />
== Install Required Packages ==<br />
<br />
<code><br />
sudo apt-get install apache2 php5 postgresql-9.1 php5-gd php5-pgsql php5-xmlrpc php5-curl<br />
</code><br />
<br />
This should install all the dependencies we need.<br />
<br />
After installing the packages, just follow the instructions provided in the "[[System Administrator's Guide/Installing Mahara|Installing Mahara]]" main document to unzip and install the Mahara folders.<br />
<br />
== Download and unpack Mahara ==<br />
<br />
In this example, we install mahara to /srv/www/[hostname], and store our data in /srv/data/[hostname].<br />
<br />
<code><br />
cd /srv/<br />
mkdir data www<br />
cd www<br />
wget http://launchpad.net/mahara/1.4/1.4.0/+download/mahara-1.4.0.zip<br />
unzip mahara-1.4.0.zip<br />
rm mahara-1.4.0.zip<br />
mv mahara-1.4.0 [hostname]<br />
</code><br />
<br />
== Configure the Database ==<br />
<br />
The easiest way to create the database is to switch to the postgres user.<br />
<br />
We'll create a new user (mahara), and also a new database (also mahara).<br />
<br />
<code><br />
sudo su - postgres<br />
createuser -SRDP mahara<br />
[password]<br />
[confirm password]<br />
createdb -O mahara -EUTF8 mahara<br />
exit<br />
</code><br />
<br />
== Configure Apache2 ==<br />
<br />
The next step is to add your Mahara site as a new virtual hosts. There are many ways of doing so but this is the most straight forward:<br />
<br />
# Create a new file called "mahara.conf" (for instance) at /etc/apache2/sites-available.<br />
# You need to edit that file by typing from the console:<br />
<br />
sudo gedit /etc/apache2/sites-available/mahara.conf<br />
<br />
(or alternatively "sudo nano /etc/apache2/sites-available").<br />
<br />
The following is a very basic example of an Apache configuration for Mahara. You'll need to put this into the mahara.conf file you just opened<br />
<br />
<code><br />
&lt;VirtualHost [hostname]&gt;<br />
ServerName [hostname]<br />
DocumentRoot /srv/www/[hostname/htdocs<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
&lt;/Directory&gt;<br />
&lt;Directory /srv/www/[hostname]/htdocs/&gt;<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
&lt;/Directory&gt;<br />
ErrorLog /var/log/apache2/error.log<br />
CustomLog /var/log/apache2/access.log combined<br />
&lt;/VirtualHost&gt;<br />
</code><br />
<br />
We'll then need to enable the site. On Ubuntu, Apache comes with a suite of commands for doing this kind of thing. We'll use the Apache2 Enable Site command:<br />
<br />
<code><br />
sudo a2ensite mahara.conf<br />
</code><br />
<br />
== DNS/Friendly Name ==<br />
<br />
Depending on what you chose as your host name, you may need to add a DNS entry, or a line to the /etc/hosts file.<br />
<br />
In this example, I'm running mahara on my local system for development/demonstration purposes. I don't have proper DNS available so I'm adding my mahara.local domain.<br />
<br />
<code><br />
sudo gedit /etc/hosts<br />
</code><br />
<br />
And add:<br />
<code><br />
127.0.0.1 [hostname]<br />
</code><br />
<br />
== Mahara Configuration ==<br />
<br />
The next step is to create the config.php from the config-dist.php. This step is pretty well explain at the "[[System Administrator's Guide/Installing Mahara|Mahara Configuration]]", but essentialy we'll<br />
<br />
<code><br />
cd /srv/data/[hostname]/htdocs<br />
sudo cp config-dist.php config.php<br />
sudo gedit config.php<br />
</code><br />
<br />
The key items to set are:<br />
* $cfg-&gt;wwwroot<br />
* $cfg-&gt;dataroot<br />
* $cfg-&gt;dbname<br />
* $cfg-&gt;dbuser<br />
* $cfg-&gt;dbpass<br />
<br />
If you've followed the steps so far, the following should work<br />
<code><br />
&lt;?php<br />
<br />
$cfg = new stdClass();<br />
$cfg-&gt;wwwroot = 'http://[hostname]';<br />
$cfg-&gt;dataroot = '/srv/data/[hostname]';<br />
$cfg-&gt;dbname = 'mahara';<br />
$cfg-&gt;dbuser = 'mahara';<br />
$cfg-&gt;dbpass = '[password]';<br />
<br />
</code><br />
<br />
We'll need to make sure that the web server can write to the data directory (dataroot). To do this, we'll change who owns the directory with the chown command.<br />
Apache2 typically runs as the user 'www-data' on Debian and Ubuntu:<br />
<br />
<code><br />
sudo chown -R www-data:www-data /srv/data/[hostname]<br />
</code><br />
<br />
There is a very good-and short-[http://catcode.com/teachmod/ tutorial ] about how to change permissions and groups of users in Ubuntu by using the chmod command. It only takes 10 minutes to read it and it really gives you a good insight.<br />
<br />
== Install Mahara ==<br />
<br />
You should now be ready to actually install Mahara. Open your browser of choice, and visit the site (e.g. http://[hostname])<br />
<br />
After checking you're ready to proceed, Mahara will install and ask for an e-mail address and password for your admin user.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu&diff=2668System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu2011-10-21T15:38:46Z<p>Andrewnicols: /* Download and unpack Mahara */</p>
<hr />
<div>If you are unfamiliar with Linux in general, and Debian-based distributions in particular, this guide will show you how to proceed, in addition to the "Installing Mahara" document.<br />
<br />
This guide is just for installing a development site of Mahara as a localhost. For a production site, you would read the complete "[https://help.ubuntu.com/8.04/serverguide/C/index.html Ubuntu Server Guide]" documentation.<br />
<br />
These instructions assume that you're running a fresh installation of Ubuntu 11.10 or similar.<br />
<br />
== Install Required Packages ==<br />
<br />
<code><br />
sudo apt-get install apache2 php5 postgresql-9.1 php5-gd php5-pgsql php5-xmlrpc php5-curl<br />
</code><br />
<br />
This should install all the dependencies we need.<br />
<br />
After installing the packages, just follow the instructions provided in the "[[System Administrator's Guide/Installing Mahara|Installing Mahara]]" main document to unzip and install the Mahara folders.<br />
<br />
== Download and unpack Mahara ==<br />
<br />
In this example, we install mahara to /srv/www/[hostname], and store our data in /srv/data/[hostname].<br />
<br />
<code><br />
cd /srv/<br />
mkdir data www<br />
cd www<br />
wget http://launchpad.net/mahara/1.4/1.4.0/+download/mahara-1.4.0.zip<br />
unzip mahara-1.4.0.zip<br />
rm mahara-1.4.0.zip<br />
mv mahara-1.4.0 [hostname]<br />
</code><br />
<br />
== Configure the Database ==<br />
<br />
The easiest way to create the database is to switch to the postgres user.<br />
<br />
We'll create a new user (mahara), and also a new database (also mahara).<br />
<br />
<code><br />
sudo su - postgres<br />
createuser -SRDP mahara<br />
[password]<br />
[confirm password]<br />
createdb -O mahara -EUTF8 mahara<br />
exit<br />
</code><br />
<br />
== Configure Apache2 ==<br />
<br />
The next step is to add your Mahara site as a new virtual hosts. There are many ways of doing so but this is the most straight forward:<br />
<br />
# Create a new file called "mahara.conf" (for instance) at /etc/apache2/sites-available.<br />
# You need to edit that file by typing from the console:<br />
<br />
sudo gedit /etc/apache2/sites-available/mahara.conf<br />
<br />
(or alternatively "sudo nano /etc/apache2/sites-available").<br />
<br />
The following is a very basic example of an Apache configuration for Mahara. You'll need to put this into the mahara.conf file you just opened<br />
<br />
<code><br />
&lt;VirtualHost [hostname]&gt;<br />
ServerName [hostname]<br />
DocumentRoot /srv/www/[hostname/htdocs<br />
<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
&lt;/Directory&gt;<br />
&lt;Directory /srv/www/[hostname]/htdocs/&gt;<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
&lt;/Directory&gt;<br />
<br />
<br />
ErrorLog /var/log/apache2/error.log<br />
CustomLog /var/log/apache2/access.log combined<br />
&lt;/VirtualHost&gt;<br />
</code><br />
<br />
We'll then need to enable the site. On Ubuntu, Apache comes with a suite of commands for doing this kind of thing. We'll use the Apache2 Enable Site command:<br />
<br />
<code><br />
sudo a2ensite mahara.conf<br />
</code><br />
<br />
<br />
== DNS/Friendly Name ==<br />
<br />
Depending on what you chose as your host name, you may need to add a DNS entry, or a line to the /etc/hosts file.<br />
<br />
In this example, I'm running mahara on my local system for development/demonstration purposes. I don't have proper DNS available so I'm adding my mahara.local domain.<br />
<br />
<code><br />
sudo gedit /etc/hosts<br />
</code><br />
<br />
And add:<br />
<code><br />
127.0.0.1 [hostname]<br />
</code><br />
<br />
== Mahara Configuration ==<br />
<br />
The next step is to create the config.php from the config-dist.php. This step is pretty well explain at the "[[System Administrator's Guide/Installing Mahara|Mahara Configuration]]", but essentialy we'll<br />
<br />
<code><br />
cd /srv/data/[hostname]/htdocs<br />
sudo cp config-dist.php config.php<br />
sudo gedit config.php<br />
</code><br />
<br />
The key items to set are:<br />
* $cfg-&gt;wwwroot<br />
* $cfg-&gt;dataroot<br />
* $cfg-&gt;dbname<br />
* $cfg-&gt;dbuser<br />
* $cfg-&gt;dbpass<br />
<br />
If you've followed the steps so far, the following should work<br />
<code><br />
&lt;?php<br />
<br />
$cfg = new stdClass();<br />
$cfg-&gt;wwwroot = 'http://[hostname]';<br />
$cfg-&gt;dataroot = '/srv/data/[hostname]';<br />
$cfg-&gt;dbname = 'mahara';<br />
$cfg-&gt;dbuser = 'mahara';<br />
$cfg-&gt;dbpass = '[password]';<br />
<br />
</code><br />
<br />
We'll need to make sure that the web server can write to the data directory (dataroot). To do this, we'll change who owns the directory with the chown command.<br />
Apache2 typically runs as the user 'www-data' on Debian and Ubuntu:<br />
<br />
<code><br />
sudo chown -R www-data:www-data /srv/data/[hostname]<br />
</code><br />
<br />
There is a very good-and short-[http://catcode.com/teachmod/ tutorial ] about how to change permissions and groups of users in Ubuntu by using the chmod command. It only takes 10 minutes to read it and it really gives you a good insight.<br />
<br />
== Install Mahara ==<br />
<br />
You should now be ready to actually install Mahara. Open your browser of choice, and visit the site (e.g. http://[hostname])<br />
<br />
After checking you're ready to proceed, Mahara will install and ask for an e-mail address and password for your admin user.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=System_Administrator%27s_Guide/Installing_Mahara/How_to_install_Mahara_in_Ubuntu&diff=2667System Administrator's Guide/Installing Mahara/How to install Mahara in Ubuntu2011-10-21T15:38:19Z<p>Andrewnicols: Complete rewrite to suggest Postgres rather than the evils of MySQL</p>
<hr />
<div>If you are unfamiliar with Linux in general, and Debian-based distributions in particular, this guide will show you how to proceed, in addition to the "Installing Mahara" document.<br />
<br />
This guide is just for installing a development site of Mahara as a localhost. For a production site, you would read the complete "[https://help.ubuntu.com/8.04/serverguide/C/index.html Ubuntu Server Guide]" documentation.<br />
<br />
These instructions assume that you're running a fresh installation of Ubuntu 11.10 or similar.<br />
<br />
== Install Required Packages ==<br />
<br />
<code><br />
sudo apt-get install apache2 php5 postgresql-9.1 php5-gd php5-pgsql php5-xmlrpc php5-curl<br />
</code><br />
<br />
This should install all the dependencies we need.<br />
<br />
After installing the packages, just follow the instructions provided in the "[[System Administrator's Guide/Installing Mahara|Installing Mahara]]" main document to unzip and install the Mahara folders.<br />
<br />
== Download and unpack Mahara ==<br />
<br />
In this example, we install mahara to /srv/www/[hostname], and store our data in /srv/data/[hostname].<br />
<br />
<code><br />
cd /srv/<br />
mkdir data www<br />
cd www<br />
wget http://launchpad.net/mahara/1.4/1.4.0/+download/mahara-1.4.0.zip<br />
unzip mahara-1.4.0.zip<br />
rm mahara-1.4.0.zip<br />
mv mahara-1.4.0 [hostname]<br />
</code><br />
<br />
== Configure the Database ==<br />
<br />
The easiest way to create the database is to switch to the postgres user.<br />
<br />
We'll create a new user (mahara), and also a new database (also mahara).<br />
<br />
<code><br />
sudo su - postgres<br />
createuser -SRDP mahara<br />
[password]<br />
[confirm password]<br />
createdb -O mahara -EUTF8 mahara<br />
exit<br />
</code><br />
<br />
== Configure Apache2 ==<br />
<br />
The next step is to add your Mahara site as a new virtual hosts. There are many ways of doing so but this is the most straight forward:<br />
<br />
# Create a new file called "mahara.conf" (for instance) at /etc/apache2/sites-available.<br />
# You need to edit that file by typing from the console:<br />
<br />
sudo gedit /etc/apache2/sites-available/mahara.conf<br />
<br />
(or alternatively "sudo nano /etc/apache2/sites-available").<br />
<br />
The following is a very basic example of an Apache configuration for Mahara. You'll need to put this into the mahara.conf file you just opened<br />
<br />
<code><br />
&lt;VirtualHost [hostname]&gt;<br />
ServerName [hostname]<br />
DocumentRoot /srv/www/[hostname/htdocs<br />
<br />
&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
&lt;/Directory&gt;<br />
&lt;Directory /srv/www/[hostname]/htdocs/&gt;<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
&lt;/Directory&gt;<br />
<br />
<br />
ErrorLog /var/log/apache2/error.log<br />
CustomLog /var/log/apache2/access.log combined<br />
&lt;/VirtualHost&gt;<br />
</code><br />
<br />
We'll then need to enable the site. On Ubuntu, Apache comes with a suite of commands for doing this kind of thing. We'll use the Apache2 Enable Site command:<br />
<br />
<code><br />
sudo a2ensite mahara.conf<br />
</code><br />
<br />
<br />
== DNS/Friendly Name ==<br />
<br />
Depending on what you chose as your host name, you may need to add a DNS entry, or a line to the /etc/hosts file.<br />
<br />
In this example, I'm running mahara on my local system for development/demonstration purposes. I don't have proper DNS available so I'm adding my mahara.local domain.<br />
<br />
<code><br />
sudo gedit /etc/hosts<br />
</code><br />
<br />
And add:<br />
<code><br />
127.0.0.1 [hostname]<br />
</code><br />
<br />
== Mahara Configuration ==<br />
<br />
The next step is to create the config.php from the config-dist.php. This step is pretty well explain at the "[[System Administrator's Guide/Installing Mahara|Mahara Configuration]]", but essentialy we'll<br />
<br />
<code><br />
cd /srv/data/[hostname]/htdocs<br />
sudo cp config-dist.php config.php<br />
sudo gedit config.php<br />
</code><br />
<br />
The key items to set are:<br />
* $cfg-&gt;wwwroot<br />
* $cfg-&gt;dataroot<br />
* $cfg-&gt;dbname<br />
* $cfg-&gt;dbuser<br />
* $cfg-&gt;dbpass<br />
<br />
If you've followed the steps so far, the following should work<br />
<code><br />
&lt;?php<br />
<br />
$cfg = new stdClass();<br />
$cfg-&gt;wwwroot = 'http://[hostname]';<br />
$cfg-&gt;dataroot = '/srv/data/[hostname]';<br />
$cfg-&gt;dbname = 'mahara';<br />
$cfg-&gt;dbuser = 'mahara';<br />
$cfg-&gt;dbpass = '[password]';<br />
<br />
</code><br />
<br />
We'll need to make sure that the web server can write to the data directory (dataroot). To do this, we'll change who owns the directory with the chown command.<br />
Apache2 typically runs as the user 'www-data' on Debian and Ubuntu:<br />
<br />
<code><br />
sudo chown -R www-data:www-data /srv/data/[hostname]<br />
</code><br />
<br />
There is a very good-and short-[http://catcode.com/teachmod/ tutorial ] about how to change permissions and groups of users in Ubuntu by using the chmod command. It only takes 10 minutes to read it and it really gives you a good insight.<br />
<br />
== Install Mahara ==<br />
<br />
You should now be ready to actually install Mahara. Open your browser of choice, and visit the site (e.g. http://[hostname])<br />
<br />
After checking you're ready to proceed, Mahara will install and ask for an e-mail address and password for your admin user.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-10-05&diff=2560Developer Area/Developer Meetings/2011-10-052011-09-28T10:42:04Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 11th Mahara Developer Meeting===<br />
Chair: Andrew Nicols<br />
<br />
# Items from previous meeting<br />
#* dan_p LUNS to investigate adding a new mahara integration project to run selenium tests<br />
# Where should we put unit tests? [Francois and Andrew]<br />
# Wiki [zzmonty]:<br />
#* adding standard extensions to the Mahara Wiki (http://en.wikipedia.org/wiki/Special:Version) so that it will make adding wiki pages easier.<br />
#* the LocalSettings.php file from the Mahara Wiki needs to be updated, so that file extensions like .zip can be uploaded. Not fixing this will affect where to place user contributed themes, extensions, unit tests, etc.<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-10-05&diff=2559Developer Area/Developer Meetings/2011-10-052011-09-28T08:22:47Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 11th Mahara Developer Meeting===<br />
Chair: Andrew Nicols<br />
<br />
# Items from previous meeting<br />
#* dan_p LUNS to investigate adding a new mahara integration project to run selenium tests<br />
# Where should we put unit tests? [Francois and Andrew]<br />
# Wiki:<br />
#* adding standard extensions to the Mahara Wiki (http://en.wikipedia.org/wiki/Special:Version) so that it will make adding wiki pages easier.<br />
#* the LocalSettings.php file from the Mahara Wiki needs to be updated, so that file extensions like .zip can be uploaded. Not fixing this will affect where to place user contributed themes, extensions, unit tests, etc.<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-10-05&diff=2558Developer Area/Developer Meetings/2011-10-052011-09-28T08:15:57Z<p>Andrewnicols: Adjust agenda</p>
<hr />
<div>===Agenda for the 11th Mahara Developer Meeting===<br />
Chair: Andrew Nicols<br />
<br />
# Items from previous meeting<br />
#* dan_p LUNS to investigate adding a new mahara integration project to run selenium tests<br />
# Where should we put unit tests? [Francois and Andrew]<br />
# Wiki:<br />
#* Adding standard extensions to the Mahara Wiki (http://en.wikipedia.org/wiki/Special:Version) so that it will make adding wiki pages easier.<br />
#* the LocalSettings.php file from the Mahara Wiki needs to be updated, so that file extensions like .zip can be uploaded. Not fixing this will affect where to place user contributed themes, extensions, unit tests, etc.<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/CLI_Framework&diff=2445Developer Area/CLI Framework2011-09-15T18:11:25Z<p>Andrewnicols: More documentation on using the framework -- still to come</p>
<hr />
<div>To facilitate creation of Command Line Interface (CLI) scripts, a CLI framework has been created for Mahara.<br />
<br />
This is a ''work in progress''<br />
<br />
== Features ==<br />
The CLI framework has been designed to make creating CLI scripts easier. To this end, it has a number of features.<br />
In it's basic operation it supports:<br />
* retrieval of options by both long, and short name; and<br />
* retrieval of additional arguments.<br />
<br />
In it's extended operation it's features include:<br />
* help/usage creation supporting:<br />
** descriptions;<br />
** default values;<br />
** example values; and<br />
** word wrapping of text.<br />
* option validation;<br />
* log level control (ability to turn on verbosity); and an<br />
* option getter supporting:<br />
** long and short option names.<br />
<br />
== Usage ==<br />
The CLI library is located in ''/htdocs/lib/cli.php'' and needs to be included to be used. CLI should also be defined. Standard mahara incantation still applies (e.g. you must still include init.php and define INTERNAL.<br />
<br />
=== Basic Usage ===<br />
For basic usage, you can retrieve settings for various options, other words (not in the valid format), and short versions of longer options.<br />
<br />
For example, using the following command line options:<br />
<br />
php htdocs/admin/cli/example.php --argument=value --argument2 -x -q=n pony<br />
<br />
with the following code:<br />
<br />
<?php<br />
<br />
define('CLI', true);<br />
define('INTERNAL', true);<br />
include(dirname(dirname(__FILE__)) . '/init.php');<br />
<br />
$cli = get_cli();<br />
$cli->set_cli_shortoptions(array('x' => 'argumentx', 'q' => 'question'));<br />
<br />
$argument = $cli->get_cli_param('argument');<br />
$argument2 = $cli->get_cli_param('argument2');<br />
$argumentx = $cli->get_cli_param('argumentx');<br />
$question = $cli->get_cli_param('question');<br />
$unmatched = $cli->get_cli_unmatched();<br />
<br />
would mean that:<br />
<br />
$argument = 'value';<br />
$argument2 = true;<br />
$argumentx = true;<br />
$question = 'n';<br />
$unmatched = array('pony');<br />
<br />
=== Extended Usage ===<br />
The extended format requires much more setting up, but also offers a number of other features.<br />
<br />
Basic operation:<br />
<br />
php htdocs/admin/cli/example.php --argument=value --argument2 -x -q=n pony<br />
<br />
with the following code:<br />
<br />
<?php<br />
<br />
define('CLI', true);<br />
define('INTERNAL', true);<br />
include(dirname(dirname(__FILE__)) . '/init.php');<br />
<br />
$cli = get_cli();<br />
<br />
$options = array();<br />
$options['argument'] = new stdClass();<br />
$options['argument']->exampleValue = 'value';<br />
$options['argument']->description = 'This is an example description for argument';<br />
<br />
$options['argument2'] = new stdClass();<br />
$options['argument2']->description = 'This is an example description for argument2 - it takes no value';<br />
<br />
$options['argumentx'] = new stdClass();<br />
$options['argumentx']->description = 'This is an example description for argumentx - it takes no value and has an alias';<br />
$options['argumentx']->shortoptions = array('x');<br />
<br />
$options['question'] = new stdClass();<br />
$options['question']->exampleValue = 'value';<br />
$options['question']->description = 'This is an example description for question - it typicaly takes an argument and has an alias of q';<br />
$options['question']->shortoptions = array('q');<br />
<br />
$settings = new stdClass();<br />
$settings->options = $options;<br />
$settings->allowunmatched = true;<br />
$settings->info = 'Some information about what this script does';<br />
<br />
$cli->setup($settings);</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/CLI_Framework&diff=2444Developer Area/CLI Framework2011-09-15T17:56:26Z<p>Andrewnicols: Beginnings of CLI framework usage and description</p>
<hr />
<div>To facilitate creation of Command Line Interface (CLI) scripts, a CLI framework has been created for Mahara.<br />
<br />
This is a ''work in progress''<br />
<br />
== Features ==<br />
The CLI framework has been designed to make creating CLI scripts easier. To this end, it has a number of features:<br />
* help/usage creation supporting:<br />
** descriptions;<br />
** default values;<br />
** example values; and<br />
** word wrapping of text.<br />
* option validation;<br />
* log level control (ability to turn on verbosity); and an<br />
* option getter supporting:<br />
** long and short option names.<br />
<br />
== Usage ==<br />
Basic usage is currently documented in htdocs/lib/cli.php</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area&diff=2443Developer Area2011-09-15T17:48:55Z<p>Andrewnicols: </p>
<hr />
<div>Here is a bunch of developer documentation for Mahara, including design, policy and specific feature documents.<br />
<br />
This is for people who want to understand how Mahara works, or want to develop new code or plugins for Mahara. If you want to customise your Mahara - e.g. change the language/theme, or simply install plugins, check out the [[Customising]] section.<br />
<br />
==Developer Documentation==<br />
<br />
* [[Developer Area/Mahara Architecture Introduction|Mahara Architecture Introduction]] - this series of articles explains how Mahara fits together, where it's pluggable and why it's written the way it is.<br />
* [[Developer Area/Plugins|Plugins]] - (soon to be) your one-stop-shop for information about developing plugins for Mahara<br />
* [[Developer Area/Language Packs|Language Packs]] - how to write a language pack for Mahara, and how to contribute it back<br />
* [[Developer Area/Documentation Wishlist|Wishlist]] - what documentation did you find missing and would like people to contribute?<br />
<br />
<div style="clear:both; width:96%; background-color:#eee; float:left;padding:1% 2% 2% 2%;margin-top:30px;margin-bottom:30px;"><br />
<div style="float:left; width:25%; margin-right:5%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for architecture information that developers need to know.<br />
<br />
--><br />
<h3>Finding your way around</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Mahara_Architecture_Introduction|Mahara Architecture Introduction]]<br />
* [[Developer_Area/Core_Subsystems|Core Subsystems]]<br />
* [[Developer_Area/Database_conventions|Database conventions]]<br />
* [[Developer_Area/Development_Tutorials|Development Tutorials]]<br />
* [[Developer_Area/HowToWriteAViewTemplate|How to write a view template]]<br />
* [[Developer_Area/Import//Export|Import/Export]]<br />
* [[Developer_Area/Language_Packs|Language Packs]]<br />
* [[Developer_Area/Plugins|Plugins]]<br />
* [[Developer_Area/Release_Policy|Release Policy]]<br />
* [[Developer_Area/CLI_Framework|Command Line Interface Framework]]<br />
<br />
</div><br />
</div><br />
<div style="float:left; width:25%; margin-left:7.5%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for getting development environments set up<br />
<br />
--><br />
<h3>Getting set up</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Developer_Tools|Setting up your development tools]]<br />
* [[Developer Area/Developer Environment|Setting up a development environment]]<br />
* [[Developer_Area/Getting_Code_from_Git|Getting Code from Git]]<br />
* [[Developer_Area/Changing_Hostnames|Changing Hostnames]]<br />
<br />
</div><br />
<div style="height:20px;"></div><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for submitting improvements (bug reports, patches, etc)<br />
<br />
--><br />
<h3>Contributing improvements</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [http://mahara.org/tracker/ How to submit good bug reports]<br />
* [[Developer_Area/Bug_Status|Bug Status Policy]]<br />
* [[Developer_Area/Bite_Sized|Bite sized code tasks]]<br />
* [[Developer_Area/Coding_guidelines|Coding guidelines]]<br />
* [[Developer_Area/Contributing_Code|Contributing Code]]<br />
* [[Developer_Area/Code_Review|Commit Policy]]<br />
* [[Developer_Area/How_to_Review_Code|How to Review Code]]<br />
* [[Developer_Area/Unit_Testing|Unit Testing]]<br />
<br />
</div><br />
</div><br />
<div style="float:right; width:25%; margin-left:4%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for contact info<br />
<br />
--><br />
<h3>Join in the discussion</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
We have [http://mahara.org/group/view.php?id=1 a discussion forum] on mahara.org.<br />
<br />
You can also find us in #mahara-dev on irc.freenode.net<br />
<br />
If you have not got an IRC client or cannot connect with one, you can use the [http://webchat.freenode.net/?channels=mahara-dev&uio=MTE9MTAz8d freenode web client]. <br />
</div><br />
<div style="height:20px;"></div><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for the dev team<br />
<br />
--><br />
<h3>Meeting minutes & dev team notes</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Current_Tasks|Current Tasks]]<br />
* [[Developer_Area/Developer_Meetings|Developer Meetings]]<br />
* [[Developer_Area/Packaging|Packaging]]<br />
* [[Developer_Area/Release_Instructions|Release Instructions]]<br />
* [[Developer_Area/Security_Team|Security Team]]<br />
* [[Developer_Area/Specifications_in_Development|Specifications in Development]]<br />
<br />
</div><br />
</div><br />
<br />
</div><br />
<br />
==Useful Resources==<br />
<br />
* You can [https://code.launchpad.net/~vcs-imports/mahara/master/+subscribe subscribe to the master branch] on Launchpad to receive an email everytime a commit is made. There is also an [http://gitorious.org/mahara/mahara.atom RSS feed of commits] if you prefer to receive information that way.<br />
* #mahara-dev on freenode (irc.freenode.org) is an IRC channel where the core developers discuss the development of Mahara. This channel is not for support of Mahara (use #mahara instead), but you can lurk and listen in on developer conversations - and even hear about the latest new features as they're added ;)<br />
<br />
[[Category:Developer Area]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-10-05&diff=2391Developer Area/Developer Meetings/2011-10-052011-09-08T10:04:03Z<p>Andrewnicols: Reminder to get a chair person</p>
<hr />
<div>===Agenda for the 11th Mahara Developer Meeting===<br />
Chair: Andrew Nicols<br />
<br />
# Items from previous meeting<br />
#* dan_p LUNS to investigate adding a new mahara integration project to run selenium tests<br />
# Next meeting and Chair<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-10-05&diff=2390Developer Area/Developer Meetings/2011-10-052011-09-08T10:03:48Z<p>Andrewnicols: Add items from previous meeting</p>
<hr />
<div>===Agenda for the 11th Mahara Developer Meeting===<br />
Chair: Andrew Nicols<br />
<br />
# Items from previous meeting<br />
#* dan_p LUNS to investigate adding a new mahara integration project to run selenium tests<br />
# Next meeting<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Talk:Developer_Area/Testing/Unit_Testing&diff=2376Talk:Developer Area/Testing/Unit Testing2011-09-06T20:04:48Z<p>Andrewnicols: Thoughts, etc on the implementation of phpunit testing</p>
<hr />
<div>Just some issues I've come across when rebasing, updating, etc the unit test branch which will need consideration for when we integrate with Jenkins<br />
<br />
== Databases ==<br />
Just a note to say that we should probably test both MySQL and PostgreSQL<br />
<br />
== Require Installation ==<br />
Due to the way that init.php works, to run the unit tests, a completed installation is required. This must also be up to date.<br />
We need to consider how we're going to do this. My initial thought is to:<br />
* Create a CLI installer (very easy to do as the unit test work has done the groundwork for this) - this is also really handy more generally<br />
* Create a new database for each patch going through gerrit and use the CLI installer to install the main mahara<br />
* Set the admin password ;)<br />
* Then run the unit tests<br />
* At the end, drop the database<br />
<br />
This has the benefit that we test the full installation - if mahara cannot be installed (at least through the CLI), we need to know!<br />
It also has the benefit that we don't leave stale testing tables around. We drop all tables between unit tests, and if tests are interrupted mid-way through, then the test tables may not be fully removed. Unfortunately, some components cannot be uninstalled in a transaction. This is rare, but I have seen it happen. Once this happens, the unit tests fail to either install, or clean the stale tables and re-install. As a result, all future unit tests are then broken.<br />
This also ensures that we can run multiple tests simultaneously.<br />
The current implemtation of the unit tests replaced the current db prefix with tst_ so multiple tests in the same database will also fail<br />
<br />
== Testing Database Upgrades ==<br />
At present, database upgrades are not tested. I think that this is not within the scope of the initial unit test functionality, but should not be forgotten.<br />
Where the version number (or any plugin's version number) has changed (and possibly in other scenarios too) we need to install the previous commit, then check out the current commit, and then test an upgrade.<br />
Again, this should be done for both PostgreSQL and MySQL</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Testing/Unit_Testing&diff=2248Developer Area/Testing/Unit Testing2011-08-01T15:46:55Z<p>Andrewnicols: Created page with "= Unit Test Introduction = Work is currently underway to integrate phpunit unit testing in to Mahara. Documentation for phpunit is available at http://www.phpunit.de/manual/curre…"</p>
<hr />
<div>= Unit Test Introduction =<br />
Work is currently underway to integrate phpunit unit testing in to Mahara.<br />
Documentation for phpunit is available at http://www.phpunit.de/manual/current/en/<br />
<br />
= Setup and Running =<br />
You'll need to already have mahara set up and installed. Default settings are copied from your running configuration and overridden with unit test settings.<br />
<br />
* Install phpunit on your development machine;<br />
* Switch to a user with permission to access your dataroot directory. In debian this would be:<br />
sudo su - www-data<br />
* Change directory to the root of the mahara git tree (the directory that htdocs is in)<br />
cd $path_to_mahara<br />
* Run phpunit:<br />
phpunit .<br />
<br />
= Best Practices =<br />
TODO</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area&diff=2242Developer Area2011-08-01T15:16:52Z<p>Andrewnicols: </p>
<hr />
<div>Here is a bunch of developer documentation for Mahara, including design, policy and specific feature documents.<br />
<br />
This is for people who want to understand how Mahara works, or want to develop new code or plugins for Mahara. If you want to customise your Mahara - e.g. change the language/theme, or simply install plugins, check out the [[Customising]] section.<br />
<br />
==Developer Documentation==<br />
<br />
* [[Developer Area/Mahara Architecture Introduction|Mahara Architecture Introduction]] - this series of articles explains how Mahara fits together, where it's pluggable and why it's written the way it is.<br />
* [[Developer Area/Plugins|Plugins]] - (soon to be) your one-stop-shop for information about developing plugins for Mahara<br />
* [[Developer Area/Language Packs|Language Packs]] - how to write a language pack for Mahara, and how to contribute it back<br />
<br />
<div style="clear:both; width:96%; background-color:#eee; float:left;padding:1% 2% 2% 2%;margin-top:30px;margin-bottom:30px;"><br />
<div style="float:left; width:25%; margin-right:5%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for architecture information that developers need to know.<br />
<br />
--><br />
<h3>Finding your way around</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Mahara_Architecture_Introduction|Mahara Architecture Introduction]]<br />
* [[Developer_Area/Core_Subsystems|Core Subsystems]]<br />
* [[Developer_Area/Database_conventions|Database conventions]]<br />
* [[Developer_Area/Development_Tutorials|Development Tutorials]]<br />
* [[Developer_Area/HowToWriteAViewTemplate|How to write a view template]]<br />
* [[Developer_Area/Import//Export|Import/Export]]<br />
* [[Developer_Area/Language_Packs|Language Packs]]<br />
* [[Developer_Area/Plugins|Plugins]]<br />
* [[Developer_Area/Release_Policy|Release Policy]]<br />
<br />
</div><br />
</div><br />
<div style="float:left; width:25%; margin-left:7.5%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for getting development environments set up<br />
<br />
--><br />
<h3>Getting set up</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Developer_Tools|Setting up your development tools]]<br />
* [[Developer Area/Developer Environment|Setting up a development environment]]<br />
* [[Developer_Area/Getting_Code_from_Git|Getting Code from Git]]<br />
* [[Developer_Area/Changing_Hostnames|Changing Hostnames]]<br />
<br />
</div><br />
<div style="height:20px;"></div><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for submitting improvements (bug reports, patches, etc)<br />
<br />
--><br />
<h3>Contributing improvements</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [http://mahara.org/tracker/ How to submit good bug reports]<br />
* [[Developer_Area/Bug_Status|Bug Status Policy]]<br />
* [[Developer_Area/Bite_Sized|Bite sized code tasks]]<br />
* [[Developer_Area/Coding_guidelines|Coding guidelines]]<br />
* [[Developer_Area/Contributing_Code|Contributing Code]]<br />
* [[Developer_Area/Code_Review|Commit Policy]]<br />
* [[Developer_Area/How_to_Review_Code|How to Review Code]]<br />
* [[Developer_Area/Unit_Testing|Unit Testing]]<br />
<br />
</div><br />
</div><br />
<div style="float:right; width:25%; margin-left:4%;"><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for contact info<br />
<br />
--><br />
<h3>Join in the discussion</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
We have [http://mahara.org/group/view.php?id=1 a discussion forum] on mahara.org.<br />
<br />
You can also find us in #mahara-dev on irc.freenode.net<br />
<br />
If you have not got an IRC client or cannot connect with one, you can use the [http://webchat.freenode.net/?channels=mahara-dev&uio=MTE9MTAz8d freenode web client]. <br />
</div><br />
<div style="height:20px;"></div><br />
<div style="text-align:center;"><br />
<!-- <br />
<br />
# This section is for guides for the dev team<br />
<br />
--><br />
<h3>Meeting minutes & dev team notes</h3><br />
</div><br />
<div style="background-color:white;border-top:3px solid #666;border-bottom:1px solid #999;padding:20px;"><br />
* [[Developer_Area/Current_Tasks|Current Tasks]]<br />
* [[Developer_Area/Developer_Meetings|Developer Meetings]]<br />
* [[Developer_Area/Packaging|Packaging]]<br />
* [[Developer_Area/Release_Instructions|Release Instructions]]<br />
* [[Developer_Area/Security_Team|Security Team]]<br />
* [[Developer_Area/Specifications_in_Development|Specifications in Development]]<br />
<br />
</div><br />
</div><br />
<br />
</div><br />
<br />
==Useful Resources==<br />
<br />
* You can [https://code.launchpad.net/~vcs-imports/mahara/master/+subscribe subscribe to the master branch] on Launchpad to receive an email everytime a commit is made. There is also an [http://gitorious.org/mahara/mahara.atom RSS feed of commits] if you prefer to receive information that way.<br />
* #mahara-dev on freenode (irc.freenode.org) is an IRC channel where the core developers discuss the development of Mahara. This channel is not for support of Mahara (use #mahara instead), but you can lurk and listen in on developer conversations - and even hear about the latest new features as they're added ;)<br />
<br />
[[Category:Developer Area]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-08-03&diff=2241Developer Area/Developer Meetings/2011-08-032011-08-01T15:16:17Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 9th Mahara Developer Meeting===<br />
<br />
# Items from previous meeting<br />
# Unit Testing (dobedobedoh)<br />
# Agenda items<br />
# Next meeting<br />
# Any other business<br />
<br />
====Unit Testing (dobedobedoh)====<br />
I've updated the phpunit branch that Mjollnir` worked on in 2009 and rebased it on master. It required a few minor tweaks and is mostly Mjollnir`'s work.<br />
I'd like to look at integrating it into master ASAP with the view that we can get some unit tests started and included in Mahara 1.5.<br />
<br />
The current branch is available at https://git.luns.net.uk/?p=mahara.git;a=shortlog;h=refs/heads/phpunit.<br />
With the new age of Gerrit, I didn't want to simply push all of the commits -- not least because some are missing Mjollnir`'s Sign-off, but also because there are several commits which could/should be squashed.<br />
I'd like to generate some discussion on the best way to proceed with this integration whilst still retaining original authorship if/where possible as this is a topic which may pop up from time to time.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-08-03&diff=2237Developer Area/Developer Meetings/2011-08-032011-08-01T15:06:50Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 9th Mahara Developer Meeting===<br />
<br />
# Items from previous meeting<br />
# Unit Testing<br />
# Agenda items<br />
# Next meeting<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2095Proposals/Email to Journal2011-07-04T10:51:33Z<p>Andrewnicols: Add e-mail files to groups suggestion from Dirk Meyer</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
This could also be made to support uploading of files to groups.<br />
<br />
'''External Videos'''<br />
Links to external videos, such as youtube could be replaced with proper embed code. For instance a link like <nowiki>http://www.youtube.com/watch?v=hl64aiheIPI</nowiki> could be replaced with the full <nowiki><embed></nowiki> code for that external video repository.<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====E-mail Address Format====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
It would also be ideal if the system supported some level of localisation as mentioned above.<br />
<br />
====Security Concerns====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal. This would not require that the user log on to Mahara - just that they click the link and have a web browser available.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.<br />
<br />
====Other Issues====<br />
<br />
<br />
=====Configuration Complexity=====<br />
<br />
In order for this feature to work, a certain amount of configuration would be required:<br />
* an MX record would be required for the mahara host; and<br />
* the Mail Transfer Agent would need the appropriate configuration.<br />
<br />
I suspect that this may be a limiting for many smaller installations, particularly those offered on shared hosting. I suspect that most shared hosting providers would not allow the relevant MTA configuration for this to work. It may be possible to provide a cron job to check a mailbox via IMAP for new posts, though this would still require appropriate configuration.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals&diff=2094Proposals2011-07-04T10:42:42Z<p>Andrewnicols: Rename E-mail to Journal, to E-mail to Mahara as suggestions are not limited to journals</p>
<hr />
<div>This section contains specifications that are currently in development. Once they are finalised, they should be moved either into the Roadmap temporarily, until the new feature is released, and then into User documentation.<br />
<br />
=Not done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Content_Management_System|Content Management System]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_revamp|Groups revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_csv_create|Groups CSV Creation]]<br />
* [[Developer_Area/Specifications_in_Development/Walled_Gardens|Isolated Institutions]]<br />
* [[Developer_Area/Specifications_in_Development/New_Slideshow|New Slideshow plugin]]<br />
* [[Developer_Area/Specifications_in_Development/Metadata_for_views_and_artefacts|Metadata for views and artefacts]]<br />
* [[Developer_Area/Specifications_in_Development/More_flexible_use_of_profile_information|More flexible use of profile information]]<br />
* [[Developer_Area/Specifications_in_Development/Moving_between_SSO_institutions|Moving between SSO institutions]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views|Multipage Views]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views_Take_2|Multipage Views Take 2]]<br />
* [[Developer_Area/Specifications_in_Development/Navigation_Revamp|Navigation Revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Objectionable_content_reporting|Objectionable content reporting]]<br />
* [[Developer_Area/Specifications_in_Development/PDF_Export|PDF Export]]<br />
* [[Developer_Area/Specifications_in_Development/Search_2.0|Search 2.0]]<br />
* [[Developer_Area/Specifications_in_Development/Site_and_Institutional_defined_tags|Site and Institutional defined tags]]<br />
* [[Developer_Area/Specifications_in_Development/Text_box_block_attachments_and_inline_images|Text box block attachments and inline images]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes|Tracking Outcomes]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes_FunctionalSpec|Tracking Outcomes Functional Specification]]<br />
* [[Developer_Area/Specifications_in_Development/Forum_Badges|Forum Badges]]<br />
* [[Developer_Area/Specifications_in_Development/Email_to_Journal|Email to Mahara]]<br />
* [[Developer_Area/Specifications_in_Development/Site_Statistics_Extension|Site Statistics Extension]]<br />
<br />
=Done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Anti-spam|Anti-spam]] (1.3)<br />
* [[Developer_Area/Specifications_in_Development/Search_1.1|Search 1.1]] (1.5)<br />
* [[Developer_Area/Specifications_in_Development/Sitemaps|Sitemaps]] (1.5)</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2087Proposals/Email to Journal2011-07-03T08:32:58Z<p>Andrewnicols: Clarification on draft processing</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====E-mail Address Format====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
It would also be ideal if the system supported some level of localisation as mentioned above.<br />
<br />
====Security Concerns====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal. This would not require that the user log on to Mahara - just that they click the link and have a web browser available.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.<br />
<br />
====Other Issues====<br />
<br />
<br />
=====Configuration Complexity=====<br />
<br />
In order for this feature to work, a certain amount of configuration would be required:<br />
* an MX record would be required for the mahara host; and<br />
* the Mail Transfer Agent would need the appropriate configuration.<br />
<br />
I suspect that this may be a limiting for many smaller installations, particularly those offered on shared hosting. I suspect that most shared hosting providers would not allow the relevant MTA configuration for this to work. It may be possible to provide a cron job to check a mailbox via IMAP for new posts, though this would still require appropriate configuration.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Done/Site_Statistics_Extension&diff=2086Proposals/Done/Site Statistics Extension2011-07-02T22:15:35Z<p>Andrewnicols: Created page with "====Preamble==== I think it'd be really handy if site administrators could get more of an idea as to mahara usage trends. Mahara recently started to display some graphs to admin…"</p>
<hr />
<div>====Preamble====<br />
<br />
I think it'd be really handy if site administrators could get more of an idea as to mahara usage trends.<br />
Mahara recently started to display some graphs to administrators to show the current state of play (e.g. number of users, avg friends/user, etc), but it would be cool to see how things have changed over time.<br />
<br />
Please note that this is '''''not''''' a suggestion to monitor individual users, but to have a look at trends for the site as a whole.<br />
<br />
<br />
This is currently a space filler for when I have time to finish filling it in<br />
<br />
The basic concept is to add additional functions to the main plugin code to allow each plugin to define various stats to monitor for trending.<br />
As an example, the journal artefact plugin could define several metrics to collect such as:<br />
* current number of entries (and those in draft form);<br />
* average entries per user;<br />
* number of journals;<br />
* average number of journals per user;<br />
* average comments/entry.<br />
<br />
Core mahara could also benefit from several metrics -- for example:<br />
* logins since the last data colletion;<br />
* file uploads since the last data colletion;<br />
<br />
These metrics could be collected by a cron entry on a frequent basis (e.g. /15 minutes). Nothing fancy needs to be done -- just a query whose results are then stored in a table.<br />
<br />
Admin users could then choose to display these in various graph forms to see trends which may influence how they support mahara -- e.g. peak usage times to avoid maintenance within that window.<br />
<br />
More information will go in to this proposal at some point in the near future when I've considered it some more...</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals&diff=2085Proposals2011-07-02T22:08:05Z<p>Andrewnicols: Add link to a new feature proposal</p>
<hr />
<div>This section contains specifications that are currently in development. Once they are finalised, they should be moved either into the Roadmap temporarily, until the new feature is released, and then into User documentation.<br />
<br />
=Not done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Content_Management_System|Content Management System]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_revamp|Groups revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_csv_create|Groups CSV Creation]]<br />
* [[Developer_Area/Specifications_in_Development/Walled_Gardens|Isolated Institutions]]<br />
* [[Developer_Area/Specifications_in_Development/New_Slideshow|New Slideshow plugin]]<br />
* [[Developer_Area/Specifications_in_Development/Metadata_for_views_and_artefacts|Metadata for views and artefacts]]<br />
* [[Developer_Area/Specifications_in_Development/More_flexible_use_of_profile_information|More flexible use of profile information]]<br />
* [[Developer_Area/Specifications_in_Development/Moving_between_SSO_institutions|Moving between SSO institutions]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views|Multipage Views]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views_Take_2|Multipage Views Take 2]]<br />
* [[Developer_Area/Specifications_in_Development/Navigation_Revamp|Navigation Revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Objectionable_content_reporting|Objectionable content reporting]]<br />
* [[Developer_Area/Specifications_in_Development/PDF_Export|PDF Export]]<br />
* [[Developer_Area/Specifications_in_Development/Search_2.0|Search 2.0]]<br />
* [[Developer_Area/Specifications_in_Development/Site_and_Institutional_defined_tags|Site and Institutional defined tags]]<br />
* [[Developer_Area/Specifications_in_Development/Text_box_block_attachments_and_inline_images|Text box block attachments and inline images]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes|Tracking Outcomes]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes_FunctionalSpec|Tracking Outcomes Functional Specification]]<br />
* [[Developer_Area/Specifications_in_Development/Forum_Badges|Forum Badges]]<br />
* [[Developer_Area/Specifications_in_Development/Email_to_Journal|Email to Journal]]<br />
* [[Developer_Area/Specifications_in_Development/Site_Statistics_Extension|Site Statistics Extension]]<br />
<br />
=Done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Anti-spam|Anti-spam]] (1.3)<br />
* [[Developer_Area/Specifications_in_Development/Search_1.1|Search 1.1]] (1.5)<br />
* [[Developer_Area/Specifications_in_Development/Sitemaps|Sitemaps]] (1.5)</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2084Proposals/Email to Journal2011-07-02T21:59:44Z<p>Andrewnicols: Add some additional notes on complexity</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====E-mail Address Format====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
It would also be ideal if the system supported some level of localisation as mentioned above.<br />
<br />
====Security Concerns====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.<br />
<br />
====Other Issues====<br />
<br />
<br />
=====Configuration Complexity=====<br />
<br />
In order for this feature to work, a certain amount of configuration would be required:<br />
* an MX record would be required for the mahara host; and<br />
* the Mail Transfer Agent would need the appropriate configuration.<br />
<br />
I suspect that this may be a limiting for many smaller installations, particularly those offered on shared hosting. I suspect that most shared hosting providers would not allow the relevant MTA configuration for this to work. It may be possible to provide a cron job to check a mailbox via IMAP for new posts, though this would still require appropriate configuration.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2083Proposals/Email to Journal2011-07-02T21:50:31Z<p>Andrewnicols: Correct headings</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====E-mail Address Format====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
====Security Concerns====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2082Proposals/Email to Journal2011-07-02T21:50:02Z<p>Andrewnicols: Initial Specification Suggestion</p>
<hr />
<div>====Preamble====<br />
<br />
In his keynote presentation at Mahara UK 2011, Mark Osborne described how he currently uses Posterous to e-mail blog posts from his mobile phone to Posterous. He then uses a RSS feed, imported into Mahara to display them on his Pages.<br />
<br />
It strikes me that this is something that Mahara itself should support. There should be a way for users to e-mail journal entries in to Mahara.<br />
<br />
====Overview of suggested functionality====<br />
<br />
The functionality should allow users to submit both journal posts, and drafts.<br />
It should also support submission of entries to each of a users different journals.<br />
<br />
'''Message Subject'''<br />
The subject of the e-mail could (and probably should) be used directly for the Journal entry.<br />
<br />
'''Attachments'''<br />
It should also allow users to e-mail multi-media files within the message subject (e.g. pictures, video, audio) which could then be saved to the users file storage space, and included as normal within the journal entry.<br />
<br />
As a related feature, users could also e-mail files to Mahara solely for storage in Mahara and not specifically for a journal entry (e.g. e-mail a video from a users mobile phone for later use in other areas of Mahara).<br />
<br />
'''Tags'''<br />
The processor should also attempt to parse the e-mail to extract certain additional information from it. An example would be that of tags. These could be specified by specifying a line at the bottom of the e-mail such as:<br />
<br />
Tags: foo, bar, baz<br />
<br />
To indicate that the tags foo, bar, and baz should be applied to the journal entry.<br />
<br />
====E-mail Address Format====<br />
<br />
E-mail is currently processed for the '''''VERP''''' feature in Mahara. When e-mail is sent from Mahara, the VERP system changes the Reply-To address of the outgoing e-mail to something that it can parse. This includes an obfuscated copy of the intended e-mail address, userid, and site key. If a sent e-mail is returned by the MTA, this address is parsed by Mahara. As a result of this use-case, the address format is intended to be machine readable, rather than human readable -- for example:<br />
<br />
AAA-BAQAAAA==dd1d93ca86ee049bd72e830f55e03bec@bounces.mahara.local<br />
<br />
For an e-mail to journal-like feature to be a useful feature, the recipient address would need to be in a more human-readabla format. For example:<br />
<br />
<username>-journal[-<journaltitle>][-draft]@mahara.local<br />
<br />
Where the journaltitle is an optional variable relating to the specific journal that a user wishes to post to. if a user doesn't specify the journaltitle, then a users' default journal is used.<br />
The addition of an optional journaltitle could be added to journals for this purpose.<br />
<br />
For the case of users wishing to e-mail files for storage then an address format such as<br />
<username>-storefiles@mahara.local<br />
<br />
If possible, it would be best if the static text strings could be localised (e.g. journal, draft, storefiles).<br />
<br />
It should only be possible to submit posts went sent from an e-mail address within the users profile -- otherwise e-mail should be given a draft status.<br />
<br />
====Technical Changes and Thoughts====<br />
<br />
Incoming e-mail should be handled by an e-mail processing script. Some e-mail is already processed by ''htdocs/lib/processemail.php'' for the VERP feature of Mahara.<br />
This could be extended to support journal posts, in addition to MTA returns (for VERP).<br />
It may be preferable to use a different mail domain for incoming e-mail than for VERP e-mail to help with the logic for this.<br />
<br />
It would probably be best to move the processmail function from ''htdocs/lib/user.php'' to ''htdocs/lib/mahara.php''. It should then be possible to separate out VERP-related e-mail from incoming e-mail.<br />
<br />
Here are some other technical thoughts relating to the feature:<br />
* HTML E-mail would have to be processed and passed through HTML Purifier;<br />
* any attachments included within the e-mail would have to be stripped out and stored within the users file storage space. They would then have to be included back into the journal entry;<br />
* any attachments must still fit within the user quota;<br />
* an appropriate mechanism would have to be considered if the user quota was insufficient;<br />
<br />
====Security Concerns=====<br />
<br />
E-mail isn't exactly a secure system. It's far to easy to fake the sender on an e-mail so this concern would need to be seriously considered.<br />
An attacker knowing the e-mail address of a user, and their username, would be able to forge e-mail which would immediately be displayed within that user's journal.<br />
<br />
I have considered a number of options:<br />
* only allow draft status on journal entries;<br />
* changing the incoming address to an address similar to that used by the Secret URL feature; and<br />
* include a secret metadata field within the e-mail (e.g. Passcode: 12345 as per the Tags suggestion).<br />
<br />
=====Draft Only=====<br />
<br />
Whilst seeming slightly limiting at first, the draft only feature may be one of the best options.<br />
Rather than an e-mail being published straight to a (potentially) world-readable journal without any chance for the user to check that entry's content, it would be saved as a draft.<br />
The user could at any point log in to mahara to actually publish the entry.<br />
<br />
Upon receiving a journal entry draft, Mahara could then send that user a confirmation e-mail informing them that an entry was successfully received. The entry text could be displayed.<br />
They could have the option of clicking a link to confirm that the e-mail is valid and allowing them to publish the entry on their Journal.<br />
<br />
As an extension of this, it could be combined with the existing VERP functionality to allow a user to simply reply to the confirmation e-mail to publish the entry.<br />
<br />
In my opinion, this is probably the best option combining ease of use, with a reasonable level of user verification.<br />
<br />
=====Secret posting address=====<br />
<br />
Initially I considered this a reasonable solution to the problem, but am concerned with the usability of the feature if this were imposed.<br />
<br />
The idea behind this option would be that, rather than the suggested e-mail address format, users could generate a per-journal e-mail address for e-mailing data to. This would ideally be a short string to make it easier to type into a mobile device. As an example kadsjijlaf3@mahara.local<br />
<br />
After speaking with several people who work with end users, I feel that this option is less than ideal. It would require users to store the journal's e-mail address within their address book, and this may mean that they are less likely to actually use the functionality. If a user created a new journal for a specific project, then they would have to create a new address and store this somewhere accessible.<br />
<br />
=====Metadata Field within the message subject or body=====<br />
<br />
This is similar to secret posting address option but even less user friendly.<br />
Within the body or the subject of the e-mail, a pass phrase, or pass code could be included.<br />
<br />
This requires even more work for users, and leaves potential for users to inadvertently expose their passphrase somehow.<br />
<br />
====</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals&diff=2063Proposals2011-06-29T21:43:47Z<p>Andrewnicols: Add back e-mail to journal</p>
<hr />
<div>This section contains specifications that are currently in development. Once they are finalised, they should be moved either into the Roadmap temporarily, until the new feature is released, and then into User documentation.<br />
<br />
=Not done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Content_Management_System|Content Management System]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_revamp|Groups revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_csv_create|Groups CSV Creation]]<br />
* [[Developer_Area/Specifications_in_Development/Walled_Gardens|Isolated Institutions]]<br />
* [[Developer_Area/Specifications_in_Development/New_Slideshow|New Slideshow plugin]]<br />
* [[Developer_Area/Specifications_in_Development/Metadata_for_views_and_artefacts|Metadata for views and artefacts]]<br />
* [[Developer_Area/Specifications_in_Development/More_flexible_use_of_profile_information|More flexible use of profile information]]<br />
* [[Developer_Area/Specifications_in_Development/Moving_between_SSO_institutions|Moving between SSO institutions]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views|Multipage Views]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views_Take_2|Multipage Views Take 2]]<br />
* [[Developer_Area/Specifications_in_Development/Navigation_Revamp|Navigation Revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Objectionable_content_reporting|Objectionable content reporting]]<br />
* [[Developer_Area/Specifications_in_Development/PDF_Export|PDF Export]]<br />
* [[Developer_Area/Specifications_in_Development/Search_2.0|Search 2.0]]<br />
* [[Developer_Area/Specifications_in_Development/Site_and_Institutional_defined_tags|Site and Institutional defined tags]]<br />
* [[Developer_Area/Specifications_in_Development/Text_box_block_attachments_and_inline_images|Text box block attachments and inline images]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes|Tracking Outcomes]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes_FunctionalSpec|Tracking Outcomes Functional Specification]]<br />
* [[Developer_Area/Specifications_in_Development/Forum_Badges|Forum Badges]]<br />
* [[Developer_Area/Specifications_in_Development/Email_to_Journal|Email to Journal]]<br />
<br />
=Done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Anti-spam|Anti-spam]] (1.3)<br />
* [[Developer_Area/Specifications_in_Development/Search_1.1|Search 1.1]] (1.5)<br />
* [[Developer_Area/Specifications_in_Development/Sitemaps|Sitemaps]] (1.5)</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals&diff=2060Proposals2011-06-29T21:21:03Z<p>Andrewnicols: </p>
<hr />
<div>This section contains specifications that are currently in development. Once they are finalised, they should be moved either into the Roadmap temporarily, until the new feature is released, and then into User documentation.<br />
<br />
=Not done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Content_Management_System|Content Management System]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_revamp|Groups revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Groups_csv_create|Groups CSV Creation]]<br />
* [[Developer_Area/Specifications_in_Development/Walled_Gardens|Isolated Institutions]]<br />
* [[Developer_Area/Specifications_in_Development/New_Slideshow|New Slideshow plugin]]<br />
* [[Developer_Area/Specifications_in_Development/Metadata_for_views_and_artefacts|Metadata for views and artefacts]]<br />
* [[Developer_Area/Specifications_in_Development/More_flexible_use_of_profile_information|More flexible use of profile information]]<br />
* [[Developer_Area/Specifications_in_Development/Moving_between_SSO_institutions|Moving between SSO institutions]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views|Multipage Views]]<br />
* [[Developer_Area/Specifications_in_Development/Multipage_Views_Take_2|Multipage Views Take 2]]<br />
* [[Developer_Area/Specifications_in_Development/Navigation_Revamp|Navigation Revamp]]<br />
* [[Developer_Area/Specifications_in_Development/Objectionable_content_reporting|Objectionable content reporting]]<br />
* [[Developer_Area/Specifications_in_Development/PDF_Export|PDF Export]]<br />
* [[Developer_Area/Specifications_in_Development/Search_2.0|Search 2.0]]<br />
* [[Developer_Area/Specifications_in_Development/Site_and_Institutional_defined_tags|Site and Institutional defined tags]]<br />
* [[Developer_Area/Specifications_in_Development/Text_box_block_attachments_and_inline_images|Text box block attachments and inline images]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes|Tracking Outcomes]]<br />
* [[Developer_Area/Specifications_in_Development/Tracking_Outcomes_FunctionalSpec|Tracking Outcomes Functional Specification]]<br />
* [[Developer_Area/Specifications_in_Development/Email_to_Journal|Email to Journal]]<br />
<br />
=Done=<br />
<br />
* [[Developer_Area/Specifications_in_Development/Anti-spam|Anti-spam]] (1.3)<br />
* [[Developer_Area/Specifications_in_Development/Search_1.1|Search 1.1]] (1.5)<br />
* [[Developer_Area/Specifications_in_Development/Sitemaps|Sitemaps]] (1.5)</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Proposals/Email_to_Journal&diff=2059Proposals/Email to Journal2011-06-29T21:20:29Z<p>Andrewnicols: Initial information on what the feature entails</p>
<hr />
<div>Holding page for a new feature I have in mind<br />
<br />
Following from Mark Osborne's keynote at maharauk11, he mentioned that they currently use posterous to e-mail posts to blogs on the move.<br />
This should be relatively easy to implement for journals in mahara.<br />
<br />
I've got some notes on this which I'll add here shortly.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Plugin_migration_between_Mahara_1.3_and_1.4&diff=2017Developer Area/Plugin migration between Mahara 1.3 and 1.42011-06-28T14:24:31Z<p>Andrewnicols: </p>
<hr />
<div>Mahara 1.4 has some changes to the menu bars. For example the top level tabs 'Profile' and 'My Portfolio' have become 'Content' and 'Portfolio'.<br />
<br />
Also, the 'My' has been dropped from some other tabs such that, for example, 'My Plans' becomes 'Plans' and has moved from under the 'My Portfolio' tab to 'Content'. <br />
<br />
The table below has examples of the code differences required for plugins in Mahara 1.3 and Mahara 1.4. <br />
<br />
This may help anyone upgrading a plugin to work in Mahara 1.4 or backporting a plugin to Mahara 1.3 and ensuring that the plugins are correctly located on the menu bar<br />
<br />
It is not comprehensive. Feel free to add further examples<br />
<br />
{| border="1"<br />
!Plugin<br />
!File<br />
!Mahara 1.3<br />
!Mahara 1.4<br />
|-<br />
|blocktype<br />
/externalfeed<br />
<br />
|lib.php<br />
|<br />
public static function get_categories() {<br />
return array(''''feeds'''');<br />
}<br />
|<br />
public static function get_categories() {<br />
return array(''''external'''');<br />
}<br />
|-<br />
|blocktype<br />
/externalvideo<br />
<br />
|lib.php<br />
|<br />
public static function get_categories() {<br />
return array(''''fileimagevideo'''');<br />
}<br />
|<br />
public static function get_categories() {<br />
return array(''''external'''');<br />
}<br />
|-<br />
|artefact<br />
/plans<br />
|lib.php<br />
|<br />
public static function menu_items() {<br />
return array(<br />
array(<br />
'path' => ''''myportfolio'''/plans',<br />
'url' => 'artefact/plans/',<br />
'title' => get_string(''''myplans'''', 'artefact.plans'),<br />
'weight' => 40,<br />
),<br />
);<br />
}<br />
|<br />
public static function menu_items() {<br />
return array(<br />
'content/plans' => array(<br />
'path' => ''''content'''/plans',<br />
'url' => 'artefact/plans/',<br />
'title' => get_string(''''Plans'''', 'artefact.plans'),<br />
'weight' => 60,<br />
),<br />
);<br />
}<br />
|-<br />
|<br />
artefact/plans<br />
|<br />
index.php<br />
new.php<br />
plan.php<br />
|<br />
define('MENUITEM', ''''myportfolio'''/plans');<br />
|<br />
define('MENUITEM', ''''content'''/plans');<br />
|-<br />
|<br />
artefact/learning<br />
|<br />
lib.php<br />
|<br />
public static function menu_items() {<br />
return array(<br />
array(<br />
'path' => ''''profile'''/mylearning',<br />
'title' => get_string('mylearning', 'artefact.learning'),<br />
'url' => 'artefact/learning/',<br />
'weight' => 20,<br />
)<br />
);<br />
}<br />
|<br />
public static function menu_items() {<br />
return array(<br />
array(<br />
'path' => ''''content'''/mylearning',<br />
'title' => get_string('mylearning', 'artefact.learning'),<br />
'url' => 'artefact/learning/',<br />
'weight' => 20,<br />
)<br />
);<br />
}<br />
|}<br />
<br />
<br />
In some cases, it may be worth considering conditional statements to enable a plugin to work with either Mahara 1.3 or 1.4. For example<br />
<br />
public static function get_categories() {<br />
require_once(get_config('libroot') . 'version.php');<br />
$release = $config->release;<br />
if ($release < 1.4) {<br />
return array('feeds');<br />
}<br />
return array('external');<br />
}</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Customising/Language_Strings&diff=1973Customising/Language Strings2011-06-23T11:04:24Z<p>Andrewnicols: </p>
<hr />
<div>From Mahara 1.2, administrators can put modified (or new) language files into the local/lang directory, and the strings in those files will override the strings in the installed language packs.<br />
<br />
For example, say you want to change the string "Logout" to "Let me out!". This string is defined in htdocs/lang/en.utf8/mahara.php. You can create the file htdocs/local/lang/en.utf8/mahara.php with the following contents:<br />
<br />
<?php<br />
<br />
$string['logout'] = "Let me out!";<br />
<br />
There is no need to edit the original language files, so updating the site to newer versions of Mahara will be easier -- there is no need to merge local changes to the language files with the updated versions.<br />
<br />
Strings used by plugins are stored in files like htdocs/artefact/file/lang/en.utf8/artefact.file.php. These strings can be overridden by creating htdocs/local/lang/en.utf8/artefact.file.php.<br />
[[Category:Customising]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Developer_Area/Developer_Meetings/2011-06-29&diff=1881Developer Area/Developer Meetings/2011-06-292011-06-22T13:16:05Z<p>Andrewnicols: </p>
<hr />
<div>===Agenda for the 8th Mahara Developer Meeting===<br />
<br />
# Items from previous meeting<br />
# [[Developer_Area/Bug_Status|Bug status]] proposal: [Francois]<br />
## every new feature on master should have a bug report associated with it<br />
## fixes for bugs that have never been in a release should be marked as "fix released" with no milestone<br />
## when using 'fix committed', you must set the milestone to indicate which release will get that fix<br />
## add requirement for bug number in commit messages to Makefile for jenkins [Andrew]<br />
# [http://maharauk.org MaharaUK2011]: [Stacey]<br />
## General discussion about the recent Mahara Conference UK 2011 and anything of interest that came about from that<br />
# Mahara Reviewer application: [[User:Hughdavenport|[Hugh]]]<br />
# Invitation to join the [[Developer_Area/Packaging|Debian Packaging]] team [Francois]<br />
# [http://docs.moodle.org/dev/MNet MNet future] [Ruslan]<br />
# Something Else [Person]<br />
# Next meeting<br />
# Any other business</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Code_of_Conduct&diff=1644Code of Conduct2011-05-25T08:28:33Z<p>Andrewnicols: /* About this Code of Conduct */</p>
<hr />
<div>Members of the Mahara community need to work together effectively, and this code of conduct lays down the ground rules for our cooperation. In the free software world, we collaborate freely on a volunteer basis to build software for everyone's benefit. We improve on the work of others, which we have been given freely, and then share our improvements on the same basis. That collaboration depends on good relationships between developers. To this end, we've agreed on the following code of conduct to help define the ways that we think collaboration and cooperation should work. This code of conduct covers our behaviour as members of the Mahara Community, in any forum, mailing list, wiki, website, Internet relay chat (IRC) channel, public meeting or private correspondence.<br />
<br />
====Be considerate====<br />
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Mahara has many of users and contributors. Even if it's not obvious at the time, our contributions to Mahara will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.<br />
<br />
====Be respectful====<br />
The Mahara community and its members treat one another with respect. Everyone can make a valuable contribution to Mahara. We may not always agree, but disagreement is no excuse for poor behaviour and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the community to be respectful when dealing with other contributors as well as with people outside the project and with users of Mahara.<br />
<br />
====Be collaborative====<br />
Collaboration is central to Mahara and to the larger free software community. We encourage individuals and teams to work together whether inside or outside the Mahara Project. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream projects that we are involved with and others in the free software community to coordinate our efforts in all areas whether they be technical, advocacy or documentation. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.<br />
<br />
====When we disagree, we consult others====<br />
Disagreements, both social and technical, happen all the time and the Mahara community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have a governance group which help to decide the right course for Mahara. There are also several project teams and team leaders, who may be able to help us figure out the best direction for Mahara. When our goals differ dramatically, we encourage the creation of feature branches, so that the community can test new ideas and contribute to the discussion.<br />
<br />
====When we are unsure, we ask for help====<br />
Nobody knows everything, and nobody is expected to be perfect in the Mahara community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.<br />
<br />
====Step down considerately====<br />
Members of every project come and go and Mahara is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimises disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.<br />
<br />
====About this Code of Conduct====<br />
The Mahara code of conduct is based upon the [http://www.ubuntu.com/community/conduct Ubuntu Code of Conduct], which is licensed under the [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0] licence. You may re-use it for your own project, and modify it as you wish, just please allow others to use your modifications and give credit to the Mahara and Ubuntu Projects! Mailing lists and web forums are an important part of the Mahara community platform. This code of conduct applies to your behaviour in those forums too. Please follow these guidelines in addition to the general code of conduct:<br />
<br />
* Please use a valid email address to which direct responses can be made.<br />
* Please avoid flamewars, trolling, personal attacks, and repetitive arguments.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Code_of_Conduct&diff=1374Code of Conduct2011-05-18T09:08:20Z<p>Andrewnicols: Add links to ubuntu's CoC and the CC license</p>
<hr />
<div>Members of the Mahara community need to work together effectively, and this code of conduct lays down the ground rules for our cooperation. In the free software world, we collaborate freely on a volunteer basis to build software for everyone's benefit. We improve on the work of others, which we have been given freely, and then share our improvements on the same basis. That collaboration depends on good relationships between developers. To this end, we've agreed on the following code of conduct to help define the ways that we think collaboration and cooperation should work. This code of conduct covers our behaviour as members of the Mahara Community, in any forum, mailing list, wiki, website, Internet relay chat (IRC) channel, public meeting or private correspondence.<br />
<br />
====Be considerate====<br />
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Mahara has many of users and contributors. Even if it's not obvious at the time, our contributions to Mahara will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.<br />
<br />
====Be respectful====<br />
The Mahara community and its members treat one another with respect. Everyone can make a valuable contribution to Mahara. We may not always agree, but disagreement is no excuse for poor behaviour and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the community to be respectful when dealing with other contributors as well as with people outside the project and with users of Mahara.<br />
<br />
====Be collaborative====<br />
Collaboration is central to Mahara and to the larger free software community. We encourage individuals and teams to work together whether inside or outside the Mahara Project. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream projects that we are involved with and others in the free software community to coordinate our efforts in all areas whether they be technical, advocacy or documentation. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.<br />
<br />
====When we disagree, we consult others====<br />
Disagreements, both social and technical, happen all the time and the Mahara community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have a governance group which help to decide the right course for Mahara. There are also several project teams and team leaders, who may be able to help us figure out the best direction for Mahara. When our goals differ dramatically, we encourage the creation of feature branches, so that the community can test new ideas and contribute to the discussion.<br />
<br />
====When we are unsure, we ask for help====<br />
Nobody knows everything, and nobody is expected to be perfect in the Mahara community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.<br />
<br />
====Step down considerately====<br />
Members of every project come and go and Mahara is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimises disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.<br />
<br />
====About this Code of Conduct====<br />
The Mahara code of conduct is based upon the [http://www.ubuntu.com/community/conduct Ubuntu Code of Conduct], wbich is licensed under the [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0] licence. You may re-use it for your own project, and modify it as you wish, just please allow others to use your modifications and give credit to the Mahara and Ubuntu Projects! Mailing lists and web forums are an important part of the Mahara community platform. This code of conduct applies to your behaviour in those forums too. Please follow these guidelines in addition to the general code of conduct:<br />
<br />
* Please use a valid email address to which direct responses can be made.<br />
* Please avoid flamewars, trolling, personal attacks, and repetitive arguments.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=User:Andrewnicols&diff=1372User:Andrewnicols2011-05-18T08:57:42Z<p>Andrewnicols: Created page with "I'm Andrew Nicols - see my website at [http://www.andrewrn.co.uk] Amongst other things, I'm a core Mahara Developer"</p>
<hr />
<div>I'm Andrew Nicols - see my website at [http://www.andrewrn.co.uk]<br />
<br />
Amongst other things, I'm a core Mahara Developer</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Code_of_Conduct&diff=1371Code of Conduct2011-05-18T08:56:39Z<p>Andrewnicols: </p>
<hr />
<div>Members of the Mahara community need to work together effectively, and this code of conduct lays down the ground rules for our cooperation. In the free software world, we collaborate freely on a volunteer basis to build software for everyone's benefit. We improve on the work of others, which we have been given freely, and then share our improvements on the same basis. That collaboration depends on good relationships between developers. To this end, we've agreed on the following code of conduct to help define the ways that we think collaboration and cooperation should work. This code of conduct covers our behaviour as members of the Mahara Community, in any forum, mailing list, wiki, website, Internet relay chat (IRC) channel, public meeting or private correspondence.<br />
<br />
====Be considerate====<br />
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Mahara has many of users and contributors. Even if it's not obvious at the time, our contributions to Mahara will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.<br />
<br />
====Be respectful====<br />
The Mahara community and its members treat one another with respect. Everyone can make a valuable contribution to Mahara. We may not always agree, but disagreement is no excuse for poor behaviour and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the community to be respectful when dealing with other contributors as well as with people outside the project and with users of Mahara.<br />
<br />
====Be collaborative====<br />
Collaboration is central to Mahara and to the larger free software community. We encourage individuals and teams to work together whether inside or outside the Mahara Project. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream projects that we are involved with and others in the free software community to coordinate our efforts in all areas whether they be technical, advocacy or documentation. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.<br />
<br />
====When we disagree, we consult others====<br />
Disagreements, both social and technical, happen all the time and the Mahara community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have a governance group which help to decide the right course for Mahara. There are also several project teams and team leaders, who may be able to help us figure out the best direction for Mahara. When our goals differ dramatically, we encourage the creation of feature branches, so that the community can test new ideas and contribute to the discussion.<br />
<br />
====When we are unsure, we ask for help====<br />
Nobody knows everything, and nobody is expected to be perfect in the Mahara community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.<br />
<br />
====Step down considerately====<br />
Members of every project come and go and Mahara is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimises disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.<br />
<br />
====About this Code of Conduct====<br />
The Mahara code of conduct is based upon the Ubuntu Code of Conduct, wish is licensed under the Creative Commons Attribution-Share Alike 3.0 licence. You may re-use it for your own project, and modify it as you wish, just please allow others to use your modifications and give credit to the Mahara and Ubuntu Projects! Mailing lists and web forums are an important part of the Mahara community platform. This code of conduct applies to your behaviour in those forums too. Please follow these guidelines in addition to the general code of conduct:<br />
Please use a valid email address to which direct responses can be made.<br />
Please avoid flamewars, trolling, personal attacks, and repetitive arguments.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Mahara.org_forums_-_Code_of_Conduct&diff=1364Mahara.org forums - Code of Conduct2011-05-17T20:20:18Z<p>Andrewnicols: moved Mahara.org forums - Code of Conduct to Code of Conduct:&#32;This is a more generic code of conduct for Mahara</p>
<hr />
<div>#REDIRECT [[Code of Conduct]]</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Code_of_Conduct&diff=1363Code of Conduct2011-05-17T20:20:18Z<p>Andrewnicols: moved Mahara.org forums - Code of Conduct to Code of Conduct:&#32;This is a more generic code of conduct for Mahara</p>
<hr />
<div>Members of the Mahara community need to work together effectively, and this code of conduct lays down the ground rules for our cooperation. In the free software world, we collaborate freely on a volunteer basis to build software for everyone's benefit. We improve on the work of others, which we have been given freely, and then share our improvements on the same basis. That collaboration depends on good relationships between developers. To this end, we've agreed on the following code of conduct to help define the ways that we think collaboration and cooperation should work. This code of conduct covers our behaviour as members of the Mahara Community, in any forum, mailing list, wiki, website, Internet relay chat (IRC) channel, public meeting or private correspondence.<br />
<br />
====Be considerate====<br />
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Mahara has many of users and contributors. Even if it's not obvious at the time, our contributions to Mahara will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.<br />
<br />
====Be respectful====<br />
The Mahara community and its members treat one another with respect. Everyone can make a valuable contribution to Mahara. We may not always agree, but disagreement is no excuse for poor behaviour and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the community to be respectful when dealing with other contributors as well as with people outside the project and with users of Mahara.<br />
<br />
====Be collaborative====<br />
Collaboration is central to Mahara and to the larger free software community. We encourage individuals and teams to work together whether inside or outside the Mahara Project. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream projects that we are involved with and others in the free software community to coordinate our efforts in all areas whether they be technical, advocacy or documentation. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.<br />
<br />
====When we disagree, we consult others=====<br />
Disagreements, both social and technical, happen all the time and the Mahara community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have a governance group which help to decide the right course for Mahara. There are also several project teams and team leaders, who may be able to help us figure out the best direction for Mahara. When our goals differ dramatically, we encourage the creation of feature branches, so that the community can test new ideas and contribute to the discussion.<br />
<br />
====When we are unsure, we ask for help====<br />
Nobody knows everything, and nobody is expected to be perfect in the Mahara community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.<br />
<br />
====Step down considerately====<br />
Members of every project come and go and Mahara is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimises disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.<br />
<br />
====About this Code of Conduct====<br />
The Mahara code of conduct is based upon the Ubuntu Code of Conduct, wish is licensed under the Creative Commons Attribution-Share Alike 3.0 licence. You may re-use it for your own project, and modify it as you wish, just please allow others to use your modifications and give credit to the Mahara and Ubuntu Projects! Mailing lists and web forums are an important part of the Mahara community platform. This code of conduct applies to your behaviour in those forums too. Please follow these guidelines in addition to the general code of conduct:<br />
Please use a valid email address to which direct responses can be made.<br />
Please avoid flamewars, trolling, personal attacks, and repetitive arguments.</div>Andrewnicolshttps://wiki.mahara.org/index.php?title=Code_of_Conduct&diff=1362Code of Conduct2011-05-17T20:19:57Z<p>Andrewnicols: </p>
<hr />
<div>Members of the Mahara community need to work together effectively, and this code of conduct lays down the ground rules for our cooperation. In the free software world, we collaborate freely on a volunteer basis to build software for everyone's benefit. We improve on the work of others, which we have been given freely, and then share our improvements on the same basis. That collaboration depends on good relationships between developers. To this end, we've agreed on the following code of conduct to help define the ways that we think collaboration and cooperation should work. This code of conduct covers our behaviour as members of the Mahara Community, in any forum, mailing list, wiki, website, Internet relay chat (IRC) channel, public meeting or private correspondence.<br />
<br />
====Be considerate====<br />
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Mahara has many of users and contributors. Even if it's not obvious at the time, our contributions to Mahara will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.<br />
<br />
====Be respectful====<br />
The Mahara community and its members treat one another with respect. Everyone can make a valuable contribution to Mahara. We may not always agree, but disagreement is no excuse for poor behaviour and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the community to be respectful when dealing with other contributors as well as with people outside the project and with users of Mahara.<br />
<br />
====Be collaborative====<br />
Collaboration is central to Mahara and to the larger free software community. We encourage individuals and teams to work together whether inside or outside the Mahara Project. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream projects that we are involved with and others in the free software community to coordinate our efforts in all areas whether they be technical, advocacy or documentation. Our work should be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress.<br />
<br />
====When we disagree, we consult others=====<br />
Disagreements, both social and technical, happen all the time and the Mahara community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community processes. We have a governance group which help to decide the right course for Mahara. There are also several project teams and team leaders, who may be able to help us figure out the best direction for Mahara. When our goals differ dramatically, we encourage the creation of feature branches, so that the community can test new ideas and contribute to the discussion.<br />
<br />
====When we are unsure, we ask for help====<br />
Nobody knows everything, and nobody is expected to be perfect in the Mahara community. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.<br />
<br />
====Step down considerately====<br />
Members of every project come and go and Mahara is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimises disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.<br />
<br />
====About this Code of Conduct====<br />
The Mahara code of conduct is based upon the Ubuntu Code of Conduct, wish is licensed under the Creative Commons Attribution-Share Alike 3.0 licence. You may re-use it for your own project, and modify it as you wish, just please allow others to use your modifications and give credit to the Mahara and Ubuntu Projects! Mailing lists and web forums are an important part of the Mahara community platform. This code of conduct applies to your behaviour in those forums too. Please follow these guidelines in addition to the general code of conduct:<br />
Please use a valid email address to which direct responses can be made.<br />
Please avoid flamewars, trolling, personal attacks, and repetitive arguments.</div>Andrewnicols