<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akshit</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akshit"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/Special:Contributions/Akshit"/>
	<updated>2026-10-06T18:42:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42315</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42315"/>
		<updated>2008-08-18T15:58:35Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* What are these page elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:&#039;&#039;&#039;See note below&#039;&#039;&#039;&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Moodle logo&lt;br /&gt;
:This will allow you to upload and use a Moodle logo of your own choice. Note that you can upload only a .jpg file as logo.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and want to make other changes without having to upload the Moodle logo again, just uncheck the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039; and leave the &#039;&#039;Upload Logo&#039;&#039; field empty. This will delete your Moodle logo file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. It relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image on the side.&lt;br /&gt;
[[Image:Elements1.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
:6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Student_projects/Customisable_theme]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Elements1.JPG&amp;diff=42314</id>
		<title>File:Elements1.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Elements1.JPG&amp;diff=42314"/>
		<updated>2008-08-18T15:58:13Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42313</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42313"/>
		<updated>2008-08-18T15:55:22Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* The Final Appearance of Page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:&#039;&#039;&#039;See note below&#039;&#039;&#039;&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Moodle logo&lt;br /&gt;
:This will allow you to upload and use a Moodle logo of your own choice. Note that you can upload only a .jpg file as logo.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and want to make other changes without having to upload the Moodle logo again, just uncheck the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039; and leave the &#039;&#039;Upload Logo&#039;&#039; field empty. This will delete your Moodle logo file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. It relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
:6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Student_projects/Customisable_theme]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42312</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=42312"/>
		<updated>2008-08-18T15:53:16Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Configuring the Custom Theme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:&#039;&#039;&#039;See note below&#039;&#039;&#039;&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Moodle logo&lt;br /&gt;
:This will allow you to upload and use a Moodle logo of your own choice. Note that you can upload only a .jpg file as logo.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and want to make other changes without having to upload the Moodle logo again, just uncheck the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Moodle logo previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Moodle Logo&#039;&#039; and leave the &#039;&#039;Upload Logo&#039;&#039; field empty. This will delete your Moodle logo file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. It relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Student_projects/Customisable_theme]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42311</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42311"/>
		<updated>2008-08-18T15:44:09Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables that we initially set out with were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). The list of deliverables we set out with and their status is reported below.&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - &#039;&#039;&#039;Dropped&#039;&#039;&#039; (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Provide a palette to use and review the color easily - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42291</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42291"/>
		<updated>2008-08-18T13:14:01Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). &lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - &#039;&#039;&#039;Dropped&#039;&#039;&#039; (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Provide a palette to use and review the color easily - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42290</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42290"/>
		<updated>2008-08-18T13:13:39Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). &lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - &#039;&#039;&#039;Dropped&#039;&#039;&#039; (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - &#039;&#039;&#039;Completed&#039;&#039;&#039;.&lt;br /&gt;
* Provide a palette to use and review the color easily - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42289</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42289"/>
		<updated>2008-08-18T13:12:50Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). &lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - &#039;&#039;Dropped&#039;&#039; (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
* Provide a palette to use and review the color easily - &#039;&#039;Completed&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42288</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42288"/>
		<updated>2008-08-18T13:10:27Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). &lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - Completed.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - Completed.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - Completed&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - Completed.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - Dropped (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - Completed&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - Completed.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - Completed.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - Completed.&lt;br /&gt;
* Provide a palette to use and review the color easily - Completed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. This is a one-time task and I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42245</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42245"/>
		<updated>2008-08-18T11:35:23Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed. The deliverables were bifurcated into creating a block (custom_theme) and creating a theme (custom_theme). &lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme block are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create the block as a means of access to the page to customize theme - Completed.&lt;br /&gt;
* Creation of database tables and storing it in \db\update.php &amp;amp; \db\install.xml - Completed.&lt;br /&gt;
* Limit who has the access to the block and who doesn&#039;t using capabilities and permissions - Completed&lt;br /&gt;
&lt;br /&gt;
The details of the deliverables for the custom_theme theme are as follows:-&lt;br /&gt;
&lt;br /&gt;
* Create a form using formslib.php where user enters all the values and this page is linked from the custom_theme block - Completed.&lt;br /&gt;
* Allow users to provide their parent theme which goes on top of Moodle Standard Stylesheets - Dropped (see note below)&lt;br /&gt;
* Allow users to provide their own CSS file which goes on top of parent theme (if any) - Completed&lt;br /&gt;
* Allow users to upload their own Favicon which overrides the favicon of the parent theme - Completed.&lt;br /&gt;
* Allow users to upload their own Moodle logo which overrides the logo of the parent theme (goes in the header and footer of the page) - Completed.&lt;br /&gt;
* Allow users to enter values of various CSS fields in the customize page - Completed.&lt;br /&gt;
* Provide a palette to use and review the color easily - Completed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - The parent theme feature has been included. However, it relies on Moodle cookies to work as it needs information about the currently logged user to extract the parent theme specified by him/her from the database. However, currently all Moodle Themes block cookies by setting $nomoodlecookie as true. Therefore, for the parent theme feature to work, the following line in styles.php of the theme that we have selected as parent must be commented out.&lt;br /&gt;
&amp;lt;code php&amp;gt; $nomoodlecookie = true; &amp;lt;/code&amp;gt;&lt;br /&gt;
When this line is commented out in the style.php the parent theme, the feature works. I suggest this line be left out in future theme releases to account for usability of parent theme feature of custom_theme.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42241</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42241"/>
		<updated>2008-08-18T10:00:33Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change2.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_form2.JPG&amp;diff=42240</id>
		<title>File:Show form2.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_form2.JPG&amp;diff=42240"/>
		<updated>2008-08-18T09:59:51Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_change2.JPG&amp;diff=42239</id>
		<title>File:Show change2.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_change2.JPG&amp;diff=42239"/>
		<updated>2008-08-18T09:59:34Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_form.JPG&amp;diff=42238</id>
		<title>File:Show form.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_form.JPG&amp;diff=42238"/>
		<updated>2008-08-18T09:53:44Z</updated>

		<summary type="html">&lt;p&gt;Akshit: uploaded a new version of &amp;quot;Image:Show form.JPG&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_change.JPG&amp;diff=42237</id>
		<title>File:Show change.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_change.JPG&amp;diff=42237"/>
		<updated>2008-08-18T09:50:51Z</updated>

		<summary type="html">&lt;p&gt;Akshit: uploaded a new version of &amp;quot;Image:Show change.JPG&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42236</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=42236"/>
		<updated>2008-08-18T09:41:14Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his/her own favicon for the site.&lt;br /&gt;
::* Option of user to choose his/her own Moodle Logo for the site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::5) Moodle logo uploaded supersedes that of parent theme (if any).&lt;br /&gt;
::6) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41961</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41961"/>
		<updated>2008-08-13T10:29:03Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Student_projects/Customisable_theme]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41958</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41958"/>
		<updated>2008-08-13T10:26:13Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* What are these page elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41957</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41957"/>
		<updated>2008-08-13T10:25:39Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* The Final Appearance of Page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41956</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41956"/>
		<updated>2008-08-13T10:25:25Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* What are these page elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41955</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41955"/>
		<updated>2008-08-13T10:25:05Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* What are these page elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41954</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41954"/>
		<updated>2008-08-13T10:24:22Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* What are these page elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.JPG|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41952</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41952"/>
		<updated>2008-08-13T10:23:12Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
*[[theme/custom theme/settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41951</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41951"/>
		<updated>2008-08-13T10:21:11Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
[[Image:Elements.jpg|thumb|Various customizable elements]]&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Elements.JPG&amp;diff=41950</id>
		<title>File:Elements.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Elements.JPG&amp;diff=41950"/>
		<updated>2008-08-13T10:21:04Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41949</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41949"/>
		<updated>2008-08-13T09:43:12Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Custom Theme Settings&#039;&#039;&#039; page allows you to configure the appearance of your site when you are using &#039;&#039;&#039;custom_theme&#039;&#039;&#039; theme. Note that the changes you make in this page will be visible only when you have selected &#039;&#039;&#039;custom_theme&#039;&#039;&#039; from Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme Selector.&lt;br /&gt;
&lt;br /&gt;
==Configuring the Custom Theme==&lt;br /&gt;
&lt;br /&gt;
The settings page provides you with the following options to customize your site:-&lt;br /&gt;
&lt;br /&gt;
;Use a parent theme&lt;br /&gt;
:Allows to use a parent theme on top of the Standard Moodle Theme.&lt;br /&gt;
&lt;br /&gt;
;Upload your own CSS&lt;br /&gt;
:This will allow you to upload and use a CSS of your own choice. This uploaded style sheet will be applied after the Standard Moodle Theme and the parent theme (if selected any).&lt;br /&gt;
:If you have uploaded a CSS previously and want to make other changes without having to upload the CSS again, just uncheck the checkbox &#039;&#039;Use my own CSS&#039;&#039;.&lt;br /&gt;
:If you have uploaded a CSS previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own CSS&#039;&#039; and leave the &#039;&#039;Upload CSS&#039;&#039; field empty. This will delete your CSS file from the server.&lt;br /&gt;
&lt;br /&gt;
;Upload your own Favicon&lt;br /&gt;
:This will allow you to upload and use a Favicon of your own choice. The Favicon is the small icon shown in the browsers in front of the URL. Note that you can upload only a .ico file as favicon.&lt;br /&gt;
:If you have uploaded a Favicon previously and want to make other changes without having to upload the favicon again, just uncheck the checkbox &#039;&#039;Use my own favicon&#039;&#039;.&lt;br /&gt;
:If you have uploaded a Favicon previously and don&#039;t want to use it anymore, check the checkbox &#039;&#039;Use my own Favicon&#039;&#039; and leave the &#039;&#039;Upload Favicon&#039;&#039; field empty. This will delete your favicon file from the server.&lt;br /&gt;
&lt;br /&gt;
;Other CSS elements&lt;br /&gt;
:You can also supply the values of various page elements that you want your site to use. These values can be added in hexadecimal or selected from the palette next to each element. If you don&#039;t want your site to use these values for the page elements, just uncheck the checkbox &#039;&#039;Also use following value&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What are these page elements==&lt;br /&gt;
The various page elements that you can customize are shown in the image below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Final Appearance of Page==&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
:1) Standard Theme. &lt;br /&gt;
:2) Parent theme selected by the user (if any). &lt;br /&gt;
:3) CSS file uploaded by the user (if any). &lt;br /&gt;
:4) Favicon upload supersedes that of parent theme (if any). &lt;br /&gt;
:5) CSS element values entered by the user (if the user selects to use them).&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41946</id>
		<title>theme/custom theme/settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=theme/custom_theme/settings&amp;diff=41946"/>
		<updated>2008-08-13T09:18:26Z</updated>

		<summary type="html">&lt;p&gt;Akshit: New page: The &amp;#039;&amp;#039;&amp;#039;RSS feeds&amp;#039;&amp;#039;&amp;#039; block enables RSS feeds from external websites to be displayed within Moodle. As the information on the other site (for example, news headlines or recently added do...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RSS feeds&#039;&#039;&#039; block enables [[RSS]] feeds from external websites to be displayed within Moodle. As the information on the other site (for example, news headlines or recently added documents) is changed the block will update to show the latest information.   One or more RSS feeds can be added to a course by selecting them from an existing list.  Site and course home pages are common places to place an RSS feed block(s). &lt;br /&gt;
&lt;br /&gt;
==Configuring RSS feeds block==&lt;br /&gt;
&lt;br /&gt;
After adding an RSS feed block, select the edit icon on the Remote News Feed block.  The default will open up the &#039;&#039;&#039;Configure this block&#039;&#039;&#039; tab.  &lt;br /&gt;
&lt;br /&gt;
;Display each link&#039;s description?&lt;br /&gt;
:Choose yes or no from the drop-down menu to determine whether the block will display a description of each article, or just the title of the article. Both the title and description are generated by the external feed.&lt;br /&gt;
&lt;br /&gt;
;Max number of entries to show per block&lt;br /&gt;
:Determines how many articles will be displayed. The most recent will be displayed first.&lt;br /&gt;
&lt;br /&gt;
;Choose the feeds to make available&lt;br /&gt;
:Check the box next to each feed you would displayed in this block. You can have more than one instance of the RSS feed block if you would like to break them up.&lt;br /&gt;
&lt;br /&gt;
;Title&lt;br /&gt;
:Enter a title for the block. If you leave this blank a title will be taken from the RSS feeds, which can be confusing if there are multiple feeds in one block.&lt;br /&gt;
&lt;br /&gt;
;Display a link?&lt;br /&gt;
:Each article headline should link to the full article, but you can also display a link to the original site where available.&lt;br /&gt;
&lt;br /&gt;
;Show channel image?&lt;br /&gt;
:Some feeds supply an image or logo from the original site which you can choose to display when available.&lt;br /&gt;
&lt;br /&gt;
==Add/Manage all RSS feeds ==&lt;br /&gt;
All the Moodle site&#039;s RSS feeds can be managed on the &#039;&#039;Manage all my feeds&#039;&#039; tab in the RRS News Feed edit menu. The site administrator may give other roles permission to use this tab.  This tab creates a list of RSS feeds that can be selected for display in every course on the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Copy and paste (or type) the URL address of the RSS feed in the space provided. This the generating site&#039;s actual RSS page address. For example here is a Moodle RSS feed address : http://moodle.org/rss/file.php/1/1/forum/1/rss.xml&lt;br /&gt;
&lt;br /&gt;
Adding a custom title will take the place of the one supplied by the generating site.There is a validation tool included to confirm the feed URL is accurate. &lt;br /&gt;
&lt;br /&gt;
Click the &#039;&#039;Add&#039;&#039; button to submit the feed.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://www.youtube.com/watch?v=wiwSZNgXuzo RSS feeds and how to add them to your course video]&lt;br /&gt;
&lt;br /&gt;
[[Category:RSS]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Fil RSS]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41943</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41943"/>
		<updated>2008-08-13T07:03:31Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41942</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41942"/>
		<updated>2008-08-13T06:58:43Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
[[Image:Show_block.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
[[Image:Show_database.JPG ]]&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
[[Image:Show_capabilities.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
[[Image:Show_form.JPG]]&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
[[Image:Show_change.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
[[Image:Show_palette.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_palette.JPG&amp;diff=41941</id>
		<title>File:Show palette.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_palette.JPG&amp;diff=41941"/>
		<updated>2008-08-13T06:55:38Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_form.JPG&amp;diff=41940</id>
		<title>File:Show form.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_form.JPG&amp;diff=41940"/>
		<updated>2008-08-13T06:55:30Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_database.JPG&amp;diff=41939</id>
		<title>File:Show database.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_database.JPG&amp;diff=41939"/>
		<updated>2008-08-13T06:55:22Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_change.JPG&amp;diff=41938</id>
		<title>File:Show change.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_change.JPG&amp;diff=41938"/>
		<updated>2008-08-13T06:55:12Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_capabilities.JPG&amp;diff=41937</id>
		<title>File:Show capabilities.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_capabilities.JPG&amp;diff=41937"/>
		<updated>2008-08-13T06:54:57Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=File:Show_block.JPG&amp;diff=41936</id>
		<title>File:Show block.JPG</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=File:Show_block.JPG&amp;diff=41936"/>
		<updated>2008-08-13T06:54:47Z</updated>

		<summary type="html">&lt;p&gt;Akshit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41935</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41935"/>
		<updated>2008-08-13T06:45:00Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
:The final page looks like this when the form shown above is saved:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41934</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41934"/>
		<updated>2008-08-13T06:34:39Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
:The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
:The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette in use:&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41933</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41933"/>
		<updated>2008-08-13T06:33:03Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::* Background-Color&lt;br /&gt;
::* Sideblock-Color&lt;br /&gt;
::* Heading 1 Color&lt;br /&gt;
::* Heading 2 Color&lt;br /&gt;
::* Heading 3 Color&lt;br /&gt;
::* Link Color&lt;br /&gt;
::* Link Hover Color&lt;br /&gt;
::* Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
::* Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
::* Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
::* Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
::* Option of user to provide parent theme.&lt;br /&gt;
::* Option of user to provide his/her own CSS file.&lt;br /&gt;
::* Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
::1) Standard Theme.&lt;br /&gt;
::2) Parent theme selected by the user (if any).&lt;br /&gt;
::3) CSS file uploaded by the user (if any).&lt;br /&gt;
::4) Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
::5) CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 5&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41932</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41932"/>
		<updated>2008-08-13T06:31:14Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
:: Background-Color&lt;br /&gt;
:: Sideblock-Color&lt;br /&gt;
:: Heading 1 Color&lt;br /&gt;
:: Heading 2 Color&lt;br /&gt;
:: Heading 3 Color&lt;br /&gt;
:: Link Color&lt;br /&gt;
:: Link Hover Color&lt;br /&gt;
:: Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 2&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:To develop a block with the following features (custom_theme block):-&lt;br /&gt;
:: Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
:: Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
:: Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 3&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
:The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 4&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
:Update the basic prototype to allow user with the following features:-&lt;br /&gt;
:: * Option of user to provide parent theme.&lt;br /&gt;
:: * Option of user to provide his/her own CSS file.&lt;br /&gt;
:: * Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41931</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41931"/>
		<updated>2008-08-13T06:28:27Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
:: Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41930</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41930"/>
		<updated>2008-08-13T06:27:57Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;PHASE 1&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
::** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41929</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41929"/>
		<updated>2008-08-13T06:26:52Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; &lt;br /&gt;
:Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41928</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41928"/>
		<updated>2008-08-13T06:24:30Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41927</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41927"/>
		<updated>2008-08-13T06:24:11Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
:Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
: The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41926</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41926"/>
		<updated>2008-08-13T06:23:21Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41925</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41925"/>
		<updated>2008-08-13T06:22:44Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41924</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41924"/>
		<updated>2008-08-13T06:21:46Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. &lt;br /&gt;
&lt;br /&gt;
Customization of following CSS elements  has been implemented:-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (custom_theme block):-&lt;br /&gt;
&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it. The table also has some other fields for more features.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values (along with some other fields). The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Update the basic prototype to allow user with the following features:-&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The form where the user enters values of CSS elements (settings.php) was recreated using formslib.php. It include the above mentioned features as seen in the screenshot:&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 5&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41923</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41923"/>
		<updated>2008-08-13T06:13:16Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. I have decided to allow customization of following CSS elements :-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (customtheme block):-&lt;br /&gt;
&lt;br /&gt;
    * Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
    * Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it.&lt;br /&gt;
    * Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values. The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
: This screenshot displays the current interface to enter the CSS elements.   &lt;br /&gt;
  [[Image:Get_values.JPG]]&lt;br /&gt;
: This screenshot displays the change in Moodle&#039;s look on entering the above values for CSS elements.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Recreate the page where the user enters values of CSS elements (/custom_theme/settings.php) with formslib.php. Include further support to allow user to do the following:&lt;br /&gt;
&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41922</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41922"/>
		<updated>2008-08-13T06:11:44Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Milestones in the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
Given below is a brief description of various phases in the project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - Go through the Moodle Code. Identifying the 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. I have decided to allow customization of following CSS elements :-&lt;br /&gt;
** Background-Color&lt;br /&gt;
** Sideblock-Color&lt;br /&gt;
** Heading 1 Color&lt;br /&gt;
** Heading 2 Color&lt;br /&gt;
** Heading 3 Color&lt;br /&gt;
** Link Color&lt;br /&gt;
** Link Hover Color&lt;br /&gt;
** Link Visited Color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 2&#039;&#039; - To develop a block with the following features (customtheme block):-&lt;br /&gt;
&lt;br /&gt;
    * Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
    * Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it.&lt;br /&gt;
    * Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not. &lt;br /&gt;
&lt;br /&gt;
The block has been implemented :-&lt;br /&gt;
: The following screenshot shows how the block looks. The page to customize the theme is accessible through the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The database tables are set up. The tables have a field for all the customizable elements that the user can customize and also the id of the user who entered the values. The database was created using the XMLDB editor. Information about database is stored in upgrade.php and install.xml &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The customtheme: Display capability controls who can see the block (and hence modify the theme). Using the has_capability() function, we can control the access to the block.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. &lt;br /&gt;
&lt;br /&gt;
The basic prototype of the theme has been implemented. It provides with an interface to enter CSS values for the customizable elements. They are stored in the database (created by the block). Also note that an actual CSS file is never created due to security concerns involved with writing on the system. The values are taken from the database and used directly without actually creating a CSS file (i.e. no extra entry is made in the $THEME-&amp;gt;sheets in the config.php of the custom theme. All the values from database are directly dumped into the styles.php of the custom theme).&lt;br /&gt;
: This screenshot displays the current interface to enter the CSS elements.   &lt;br /&gt;
  [[Image:Get_values.JPG]]&lt;br /&gt;
: This screenshot displays the change in Moodle&#039;s look on entering the above values for CSS elements.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Recreate the page where the user enters values of CSS elements (/custom_theme/settings.php) with formslib.php. Include further support to allow user to do the following:&lt;br /&gt;
&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
The way the final page looks after applying the custom_theme is decided by the following hierarchy:&lt;br /&gt;
&lt;br /&gt;
** Standard Theme.&lt;br /&gt;
** Parent theme selected by the user (if any).&lt;br /&gt;
** CSS file uploaded by the user (if any).&lt;br /&gt;
** Favicon upload supersedes that of parent theme (if any).&lt;br /&gt;
** CSS element values entered by the user (if the user selects to use them).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 4&#039;&#039; - Provide a palette to use and review the color easily. Instead of using the palette used in HTML editors, which creates a popup (that might get blocked) and is also slow, I have implemented palette using Iframe (that gives the effect of instantly loading them).&lt;br /&gt;
&lt;br /&gt;
: This screenshot shows the palette.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41921</id>
		<title>Student projects/Customisable theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Student_projects/Customisable_theme&amp;diff=41921"/>
		<updated>2008-08-13T06:11:27Z</updated>

		<summary type="html">&lt;p&gt;Akshit: /* Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;: This page outlines ideas for the Customisable theme project. It&#039;s a &#039;&#039;specification under construction&#039;&#039;! If you have any comments or suggestions, please add them to the [[Talk:Student projects/Customisable theme|page comments]].&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Summary of Tasks==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Architecture Design==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Standard&amp;quot; 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 might 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 or both.&lt;br /&gt;
&lt;br /&gt;
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 the CSS elements in the database and the theme shall use the values for each user along with the CSS sheets of the parent themes specified (if any).&lt;br /&gt;
&lt;br /&gt;
For backend support we will use a MySQL database.&lt;br /&gt;
&lt;br /&gt;
== Milestones in the Project ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;PHASE 1&#039;&#039; - 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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;PHASE 2&#039;&#039; - Develop a block with the following features (customtheme block):-&lt;br /&gt;
** Provide the only means of access to the page to customize theme. The user is presented with the link to the page that allows to customize the theme.&lt;br /&gt;
** Creation of database tables. The database has a field for each of the CSS element that the user wishes to customize and the corresponding id of the user who customized it.&lt;br /&gt;
** Support for a capability to show or hide the block. This capability along with the has_capability() is used to limit who has the access to modify the theme and who does not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;PHASE 3&#039;&#039; - Build a basic prototype that gives the user the option to enter values of various CSS elements which are stored in the database (which is created by the custom theme block). The values from the database are then used to style the look of Moodle. It doesnt support the following features yet :-&lt;br /&gt;
** Option of user to provide his/her own CSS file.&lt;br /&gt;
** Option of user to provide parent theme.&lt;br /&gt;
** Option of user to choose his own favicon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;PHASE 4&#039;&#039; - Modify the prototype to allow the user to provide his/her own CSS, parent theme and choose a favicon. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;PHASE 5&#039;&#039; - Provide a GUI (like a pallette) that makes it really easy for the users to choose colors. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;PHASE 6&#039;&#039; - Documentation of project. Expected duration - 5 days.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
&lt;br /&gt;
This project has been completed.&lt;br /&gt;
&lt;br /&gt;
==Moodle Tracker==&lt;br /&gt;
&lt;br /&gt;
Use the Moodle Tracker to track the progress of the project.&lt;br /&gt;
[http://tracker.moodle.org/browse/CONTRIB-516 CONTRIB-516]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Akshit</name></author>
	</entry>
</feed>