Developer Area: Difference between revisions
From Mahara Wiki
Line 85: | Line 85: | ||
** aka "What to use instead of $_GET and $_POST" | ** aka "What to use instead of $_GET and $_POST" | ||
* [[Developer_Area/Cron API|Cron API]] | * [[Developer_Area/Cron API|Cron API]] | ||
* [[Developer_Area/CLI_Framework|CLI Framework]] for writing command-line Mahara scripts | |||
* [[Developer_Area/Events API|Events API]] | * [[Developer_Area/Events API|Events API]] | ||
* [[Developer_Area/File uploads API|File uploads API]] | * [[Developer_Area/File uploads API|File uploads API]] |
Revision as of 11:18, 20 November 2015
Here is a bunch of developer documentation for Mahara, including design, policy and specific feature documents.
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.
Overview
- Mahara development overview - explains how Mahara gets developed, who does it, and how people become Mahara developers
- 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.
- Plugins - (soon to be) your one-stop-shop for information about developing plugins for Mahara
- Language Packs - how to write a language pack for Mahara, and how to contribute it back
- Wishlist - what documentation did you find missing and would like people to contribute?
- And if you just want the source code, it's available via git at
- Our gerrit code review system: git clone https://reviews.mahara.org/mahara
- git.mahara.org: https://git.mahara.org/mahara/mahara
- Github: https://github.com/MaharaProject/mahara
Finding your way around
- Mahara Architecture Introduction
- Core Subsystems
- Database conventions
- Development Tutorials
- Import/Export
- Language Packs
- Plugins
- Release Policy
- Command Line Interface Framework
Getting set up
- Setting up your development tools
- Setting up a development environment
- Getting Code from Git
- Changing Hostnames
- Setting up Elasticsearch
Contributing improvements
- Contributing Code
- Coding guidelines
- Commit Policy
- How to submit good bug reports
- Accessibility Checklist
- Bug Status Policy
- Bite sized code tasks
- How to Review Code
- Unit Testing
- Behat Testing
- User manual setup
Join in the discussion
We have a discussion forum on mahara.org.
You can also find us in #mahara-dev on irc.freenode.net
If you have not got an IRC client or cannot connect with one, you can use the freenode web client.
Meeting minutes & dev team notes
- Developer Meetings
- Packaging
- Release Instructions
- Security Team
- Specifications in Development
- Fixes for significant bugs that might bite later
API Documentation
These pages describe specific Mahara APIs. Note: we're in the process of reorganizing our developer documentation, so not all API documentation pages will be present in this list. Please use the wiki's search feature if you don't find what you need here. Also, not all API's are documented. :(
- Architecture Introduction
- Hello World
- Database-DML
- Database-DDL
- I wrote a forum post here that gives an outline of how the database works: https://mahara.org/interaction/forum/topic.php?id=5515&offset=0&limit=10#post23753
- Language strings
- Developer_Area/Local customizations
- aka the "/local" directory
- Config API
- Retrieving user input
- aka "What to use instead of $_GET and $_POST"
- Cron API
- CLI Framework for writing command-line Mahara scripts
- Events API
- File uploads API
- Login form
- Mahara global variables
- $SESSION, $USER, $THEME, etc
- Notification Plugins & Activities
- Pagetop Constants
- Pieforms
- Sideblocks API
- Site menus
- Smarty&Dwoo
- Themes
Useful Resources
- You can subscribe to the master branch on Launchpad to receive an email everytime a commit is made. There is also an RSS feed of commits if you prefer to receive information that way.
- #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 ;)