Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Student projects/Presets for Database module.

Student projects/Presets for Database module: Difference between revisions

From MoodleDocs
No edit summary
Line 5: Line 5:
== Goals ==
== Goals ==
=== Custom Code ===
=== Custom Code ===
To acheive the quality and usability needed, adding customizable code into the database module will be required. For instance, the image gallery will need code to resize images on upload. Therefore, I will create an easy to use interface with custom functions such as <tt>onupload(file)</tt> and <tt>onview()</tt> that get called every time the appropriate event occurs. These functions will then form part of the preset.
To acheive the quality and usability needed, adding customizable code into the database module will be required. For instance, the image gallery will need code to resize images on upload. Therefore, I will create an easy to use interface with custom functions such as <tt>onupload(file)</tt> and <tt>onview()</tt> that get called every time the appropriate event occurs. These functions will then form part of the preset. The event driven interface should be easy to work with and use, but also allowing flexability.


==== Proposed Interface ====
==== Proposed Interface ====
Line 16: Line 16:
     ...
     ...
  }
  }
The image gallery will definitely use <tt>onupload()</tt> to generate thumbnails to be used in list view. Also could be used to allow uploads of .zip files containing many images. This idea could also be applied to other databases. Something important to discuss is how the user/admin will edit the code. Obviously it is silly to allow editing of the actual source through the website (for security). Maybe just rely on file editing on the server (a bit ugly) or have several premade 'actions' that could be linked to events. Then just rely on file editing to add new actions.


=== Presets ===
=== Presets ===

Revision as of 13:53, 2 June 2006

This project aims to increase the flexibility of the Database module and to add some user friendly preset modes to help users create useful modules quickly. Also, it is important to build a way of importing and exporting presets so admins can customize what is available to the user.

I plan to implement several presets, including a good quality image gallery, a document sharing facility and a glossary.

Goals

Custom Code

To acheive the quality and usability needed, adding customizable code into the database module will be required. For instance, the image gallery will need code to resize images on upload. Therefore, I will create an easy to use interface with custom functions such as onupload(file) and onview() that get called every time the appropriate event occurs. These functions will then form part of the preset. The event driven interface should be easy to work with and use, but also allowing flexability.

Proposed Interface

Just an idea:

class TemplateEventHandler {
    onview(id);
    onlist(id);
    onupload(file);
    ...
}

The image gallery will definitely use onupload() to generate thumbnails to be used in list view. Also could be used to allow uploads of .zip files containing many images. This idea could also be applied to other databases. Something important to discuss is how the user/admin will edit the code. Obviously it is silly to allow editing of the actual source through the website (for security). Maybe just rely on file editing on the server (a bit ugly) or have several premade 'actions' that could be linked to events. Then just rely on file editing to add new actions.

Presets

  • Image Gallery
  • Document Sharing
  • Glossary

Also, a preset manager will be needed to allow admins to add, remove and modify the presets available to their users. This will be part of the config page for the database module.

Upload and Save

A preset will turn into a template when teachers modify it. Then they will be able to download the template, or upload one to use. This will allow users to create a custom database they can use many times.

Backup and Restore

It is also important for presets to be included in backup and restore, so that modified presets are kept.

Milestones in the Project

  1. Adding the custom code feature to the database module.
    • Design a suitable interface and system for storing the code.
    • Adding the execution code to the database module.
  2. Designing the Image Gallery preset, and the other presets.
  3. Adding the admin features
    • Preset Manager page
    • Backup and Restore