Note: You are currently viewing documentation for Moodle 2.0. Up-to-date documentation for the latest stable version is available here: Student projects/Customisable theme.

Student projects/Customisable theme: Difference between revisions

From MoodleDocs
No edit summary
m (formatting, category)
Line 1: Line 1:
<p class="note">'''Note''': This page outlines ideas for the Blog Improvement / Blog Assignment Type project. It's a ''specification under construction''! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Blog improvements|page comments]].''</p>
<p class="note">'''Note''': This page outlines ideas for the Customisable theme project. It's a ''specification under construction''! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].''</p>
 




Line 8: Line 7:


The challenge in the project will be to optimize the balance between the simplicity of the theme interface and the customizability of the theme. Unlike the Chameleon theme, the aim would not be to provide with the opportunity to edit each and every element of the page by editing CSS, but to provide the easy editing of the elements of the page that effect the user the most (like background color, text color and size etc.) through a graphical interface.
The challenge in the project will be to optimize the balance between the simplicity of the theme interface and the customizability of the theme. Unlike the Chameleon theme, the aim would not be to provide with the opportunity to edit each and every element of the page by editing CSS, but to provide the easy editing of the elements of the page that effect the user the most (like background color, text color and size etc.) through a graphical interface.


==Architecture Design==
==Architecture Design==
Line 17: Line 15:


For backend support we will use a MySQL database that will store the parent theme name for every user and the CSS file created for that user.  
For backend support we will use a MySQL database that will store the parent theme name for every user and the CSS file created for that user.  


== Milestones in the Project ==
== Milestones in the Project ==


*''PHASE 1'' - Go through the Moodle Code. Identifying CSS elements in the appearance. Analyze other popular customizable pages like blogger, wordpress and analyze the Moodle themes structure in more detail to select some the the most important CSS elements that will have the most prominent effect in deciding the look of the page. At the end, I shall have clear understanding of the Moodle Code (esp. the theme part). Expected duration - 5 days.
*''PHASE 1'' - Go through the Moodle Code. Identifying CSS elements in the appearance. Analyze other popular customizable pages like blogger, wordpress and analyze the Moodle themes structure in more detail to select some the the most important CSS elements that will have the most prominent effect in deciding the look of the page. At the end, I shall have clear understanding of the Moodle Code (esp. the theme part). Expected duration - 5 days.


* ''PHASE 2'' - Design the theme prototype using only a few of the CSS elements (like only background color, text color and heading size). At this stage we will not provide the ability of the user to provide his own CSS. This task may be classified into the following subtasks:
* ''PHASE 2'' - Design the theme prototype using only a few of the CSS elements (like only background color, text color and heading size). At this stage we will not provide the ability of the user to provide his own CSS. This task may be classified into the following subtasks:
Line 31: Line 25:


:: ''Phase 2b'' - Designing of the config.php for the theme, which will specify how the CSS files work together. It will obtain the parent theme to be used for the user from the database (CSS files for the "standardwhite" theme) and the CSS file that has been created for that user (as mentioned in phase 2a). Expected duration - 15 days.
:: ''Phase 2b'' - Designing of the config.php for the theme, which will specify how the CSS files work together. It will obtain the parent theme to be used for the user from the database (CSS files for the "standardwhite" theme) and the CSS file that has been created for that user (as mentioned in phase 2a). Expected duration - 15 days.


* ''PHASE 3'' - Extend the theme in phase 2 to use all the CSS elements that we wanted to be made customizable (include header text color, font size and other elements identified in phase (1) and also provide the support to select/upload a custom favicon. At this point we will also allow the option of an administrator setting the theme for the site with their particular configuration or allowing users to customize various elements of the theme by manipulating the parameters "allowuserthemes" and "allowcoursethemes". Expected Duration - 10 days.
* ''PHASE 3'' - Extend the theme in phase 2 to use all the CSS elements that we wanted to be made customizable (include header text color, font size and other elements identified in phase (1) and also provide the support to select/upload a custom favicon. At this point we will also allow the option of an administrator setting the theme for the site with their particular configuration or allowing users to customize various elements of the theme by manipulating the parameters "allowuserthemes" and "allowcoursethemes". Expected Duration - 10 days.
Line 46: Line 38:
Course            Site and user themes  one course    saved in course profile
Course            Site and user themes  one course    saved in course profile
</pre>
</pre>


* ''PHASE 4'' - We will now allow the user to provide his own CSS files instead of generating a CSS file from values. We might also need to investigate the need for modification of the provided CSS file to suit the standard format that we will use. Expected duration - 20 days
* ''PHASE 4'' - We will now allow the user to provide his own CSS files instead of generating a CSS file from values. We might also need to investigate the need for modification of the provided CSS file to suit the standard format that we will use. Expected duration - 20 days


* ''PHASE 5'' - Design of GUI for a seamless transition into Moodle. The GUI will take the parent theme from the user and the option to provide his own CSS or values for the CSS elements. If user provides his own CSS then the created CSS for that user is overwritten. Expected duration - 10 days
* ''PHASE 5'' - Design of GUI for a seamless transition into Moodle. The GUI will take the parent theme from the user and the option to provide his own CSS or values for the CSS elements. If user provides his own CSS then the created CSS for that user is overwritten. Expected duration - 10 days


* ''PHASE 6'' - Documentation of project. Expected duration - 5 days.
* ''PHASE 6'' - Documentation of project. Expected duration - 5 days.


== Progress ==
== Progress ==


Currently I am going through the Moodle Theme CSS and the configuration scripts before I lay out the final plans for the implementation.
Currently I am going through the Moodle Theme CSS and the configuration scripts before I lay out the final plans for the implementation.


==See also==
==See also==
Line 71: Line 54:


[[Category:Project]]
[[Category:Project]]
[[Category:Themes]]

Revision as of 08:58, 9 May 2008

Note: This page outlines ideas for the Customisable theme project. It's a specification under construction! If you have any comments or suggestions, please add them to the page comments.


Summary of Tasks

The objective of this project is creation of a new customizable theme, which gives the Moodle user various options like selecting a logo from the site files and/or uploads their own favicon, customize various CSS elements, selecting a parent theme etc. The main aim of the theme is to simplify the tasks of users who are still not ready to delve into CSS and HTML editing and yet give them the ability to customize the look and feel of Moodle.

The challenge in the project will be to optimize the balance between the simplicity of the theme interface and the customizability of the theme. Unlike the Chameleon theme, the aim would not be to provide with the opportunity to edit each and every element of the page by editing CSS, but to provide the easy editing of the elements of the page that effect the user the most (like background color, text color and size etc.) through a graphical interface.

Architecture Design

Like most of the existing Moodle themes, our theme shall also be based on at most three stylesheets utilizing the cascading character of CSS. The first level is that of the existing "Standard" Moodle theme which will keep the theme up to date with the Moodle updates. The second level is that of a parent theme which the user must specify. For the third level, the user may provide his own stylesheets or set values for the CSS elements so that a style sheet is automatically generated.

To implement it, we shall select some of the CSS elements that we wish to make customizable by the user. For every user, we will create and store a CSS sheet and the theme shall use that stylesheet along with the CSS sheets of the parent themes specified.

For backend support we will use a MySQL database that will store the parent theme name for every user and the CSS file created for that user.

Milestones in the Project

  • PHASE 1 - Go through the Moodle Code. Identifying CSS elements in the appearance. Analyze other popular customizable pages like blogger, wordpress and analyze the Moodle themes structure in more detail to select some the the most important CSS elements that will have the most prominent effect in deciding the look of the page. At the end, I shall have clear understanding of the Moodle Code (esp. the theme part). Expected duration - 5 days.
  • PHASE 2 - Design the theme prototype using only a few of the CSS elements (like only background color, text color and heading size). At this stage we will not provide the ability of the user to provide his own CSS. This task may be classified into the following subtasks:
Phase 2a - Designing of a script that shall take values for the CSS elements(eg. #FFFFFF, #FFFFFF, 16px) and the parent theme name (eg. "standardwhite"). It creates a CSS the files corresponding to that user form these values and writes this information to the database. At the end, I should have a script that is able to do the mentioned tasks. Expected duration - 25 days.
Phase 2b - Designing of the config.php for the theme, which will specify how the CSS files work together. It will obtain the parent theme to be used for the user from the database (CSS files for the "standardwhite" theme) and the CSS file that has been created for that user (as mentioned in phase 2a). Expected duration - 15 days.
  • PHASE 3 - Extend the theme in phase 2 to use all the CSS elements that we wanted to be made customizable (include header text color, font size and other elements identified in phase (1) and also provide the support to select/upload a custom favicon. At this point we will also allow the option of an administrator setting the theme for the site with their particular configuration or allowing users to customize various elements of the theme by manipulating the parameters "allowuserthemes" and "allowcoursethemes". Expected Duration - 10 days.
Theme type        Overwrites             Display        Setting type
-------------------------------------------------------------------------------

Site              -                      all pages*     saved in theme profile

User              Site theme             all pages*     saved in user profile

Course            Site and user themes   one course     saved in course profile
  • PHASE 4 - We will now allow the user to provide his own CSS files instead of generating a CSS file from values. We might also need to investigate the need for modification of the provided CSS file to suit the standard format that we will use. Expected duration - 20 days
  • PHASE 5 - Design of GUI for a seamless transition into Moodle. The GUI will take the parent theme from the user and the option to provide his own CSS or values for the CSS elements. If user provides his own CSS then the created CSS for that user is overwritten. Expected duration - 10 days
  • PHASE 6 - Documentation of project. Expected duration - 5 days.

Progress

Currently I am going through the Moodle Theme CSS and the configuration scripts before I lay out the final plans for the implementation.

See also