<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/23/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Valeryf</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/23/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Valeryf"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/Special:Contributions/Valeryf"/>
	<updated>2026-05-10T23:02:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_subtype_development_framework&amp;diff=103040</id>
		<title>Customlabel subtype development framework</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_subtype_development_framework&amp;diff=103040"/>
		<updated>2015-04-18T11:46:56Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Field type : list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The customlabel subtype development framework is a set of writting and development rules which will make easy making new subtypes for use in course contents.&lt;br /&gt;
&lt;br /&gt;
The customlabel concept is to centralize all mechanical aspects in the customlabel module, thus keeping writing of a subtype minimalist.&lt;br /&gt;
&lt;br /&gt;
==What is a subtype?==&lt;br /&gt;
&lt;br /&gt;
A subtype is a cutomlabel subplugin handled by the generic subplugin API of Moodle.&lt;br /&gt;
&lt;br /&gt;
A subtype is essentially : &lt;br /&gt;
&lt;br /&gt;
* a directory in the mod/customlabel/type directory&lt;br /&gt;
* a subclass of the customlabel_type (@see /mod/customlabel/type/customtype.class.php)&lt;br /&gt;
* a file version.php to handle subplugin verisonning&lt;br /&gt;
* a lang directory for storing templates and language dependant strings&lt;br /&gt;
* a local css file for preseting default styling&lt;br /&gt;
&lt;br /&gt;
==The customlabel_type class==&lt;br /&gt;
&lt;br /&gt;
The customlabel_type class describes what is the internal information model of the customlabel. The custom type must require the geenric customlabel_type implementation to extend the parent class : &lt;br /&gt;
&lt;br /&gt;
   require_once ($CFG-&amp;gt;dirroot.&amp;quot;/mod/customlabel/type/customtype.class.php&amp;quot;);&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
   class customlabel_type_coursedata extends customlabel_type{&lt;br /&gt;
   ... implementation ...&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just three methods are enough to build the customtype : &lt;br /&gt;
&lt;br /&gt;
===The class constructor===&lt;br /&gt;
&lt;br /&gt;
Defines all information fields used by the customlabel templates. The class stores the type information and builds the $this-&amp;gt;fields array that defines each field.&lt;br /&gt;
&lt;br /&gt;
   function __construct($data){&lt;br /&gt;
      parent::__construct($data);&lt;br /&gt;
      $this-&amp;gt;type = &#039;coursedata&#039;;&lt;br /&gt;
      $this-&amp;gt;fields = array();&lt;br /&gt;
&lt;br /&gt;
The constructor will define fields using the following code template : &lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;fieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textfield&#039;;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;fieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Field type drives how the instance setting form will require information from the editing teacher. Depending on the type accessory attributes can be used to control specific aspects of the settings form.&lt;br /&gt;
&lt;br /&gt;
====Field type : choiceyesno====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;choiceyesnoname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;choiceyesno&#039;;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;choiceyesnoname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a boolean selector as a yes/no list&lt;br /&gt;
&lt;br /&gt;
====Field type : textfield====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;textfieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textfield&#039;;&lt;br /&gt;
        $field-&amp;gt;size = 40;  // optional&lt;br /&gt;
        $field-&amp;gt;mawlength = 40;  // optional&lt;br /&gt;
        $this-&amp;gt;fields[&#039;textfieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a simple textfield to get a simple string&lt;br /&gt;
&lt;br /&gt;
====Field type : htmlarea or editor====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;textareafieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textarea&#039;;&lt;br /&gt;
        $field-&amp;gt;size = 80;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;textareafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides an editable textarea or html editor (depending on site settings) for inpting a formatted multiline content.&lt;br /&gt;
&lt;br /&gt;
====Field type : list====&lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
   $field-&amp;gt;name = &#039;datafieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;list&#039;;&lt;br /&gt;
   $field-&amp;gt;options = &#039;comma,separated,list,of,option,keys&#039;;&lt;br /&gt;
   $field-&amp;gt;multiple = &#039;multiple&#039;;  // adds multiple choice capability&lt;br /&gt;
   $this-&amp;gt;fields[&#039;datafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a select list keyed by the option list and labelled with option key tranlsations in the active language. Translations must&lt;br /&gt;
be provided in lang files of the subtype plugin.&lt;br /&gt;
&lt;br /&gt;
There are a set of additional optional attributes that can help in some situations:&lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;straightoptions = true;&lt;br /&gt;
&lt;br /&gt;
The effect will be that the values given in the option list will be presented litteraly, without translation, the same value being used for both key and option value.&lt;br /&gt;
&lt;br /&gt;
Usually, all list shaped attributes will generate two variables for the template : &amp;lt;fieldname&amp;gt; and &amp;lt;fieldname&amp;gt;option. The former one contains the translated value&lt;br /&gt;
in the user language of the option value. The latter contains the original key value that was stored by the teacher&#039;s choice when setting the instance.&lt;br /&gt;
&lt;br /&gt;
====Field type : datasource====&lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
   $field-&amp;gt;name = &#039;datafieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkeyed&#039;;  // source mode&lt;br /&gt;
   $field-&amp;gt;table = &#039;tablename where to get data from&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;sourcefieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039;some select clause&#039;;&lt;br /&gt;
   $field-&amp;gt;multiple = &#039;multiple&#039;;  // adds multiple choice capability (defaults to : no)&lt;br /&gt;
   $field-&amp;gt;constraintson = &#039;level1,level2&#039;;&lt;br /&gt;
   $field-&amp;gt;mandatory = true; // (defaults to : false)&lt;br /&gt;
   $this-&amp;gt;fields[&#039;datafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Datasource field allows data stored in any part of Moodle to serve as information reference for the field. Data source can feed the list with value or keys depending the table can provide keys or both keys and labels. This selection is driven by the &#039;source&amp;quot; attribute that can &lt;br /&gt;
be : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;dbfieldkey&#039;&#039;&#039; : get a value set from a given field in a given table directly from field values, keys by the &#039;id&#039; primary key of the table.&lt;br /&gt;
&lt;br /&gt;
Declaration sample : &lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;courseselectorbyid&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkey&#039;;&lt;br /&gt;
   $field-&amp;gt;table = &#039;course&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;fullname&#039;;&lt;br /&gt;
   $field-&amp;gt;ordering = &#039;sortorder&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039; visible = 1 &#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;courseselectorbyid&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;dbfieldkeyed&#039;&#039;&#039; : get a value set from a given field in a given table from field values keyed by a given key.&lt;br /&gt;
&lt;br /&gt;
Declaration sample : &lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;courseselectorbyshortname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkeyed&#039;;&lt;br /&gt;
   $field-&amp;gt;table = &#039;course&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;fullname&#039;;&lt;br /&gt;
   $field-&amp;gt;key = &#039;shortname&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039; visible = 1 &#039;;&lt;br /&gt;
   $field-&amp;gt;ordering = &#039;sortorder&#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;courseselectorbyshortname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;function&#039;&#039;&#039; : get a value set as a result of a given function call. The function is called without any arguments (could be amended).&lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;selectorbyfunction&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;function&#039;;&lt;br /&gt;
   $field-&amp;gt;file = &#039;sourcefile/path/from/dirroot&#039;;&lt;br /&gt;
   $field-&amp;gt;function = &#039;functionname&#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;selectorbyfunction&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
===Preprocessing and postprocessing overrides===&lt;br /&gt;
&lt;br /&gt;
When composing the content of the label from the templates and the available data, the processing runs four steps : &lt;br /&gt;
&lt;br /&gt;
* Preprocessing override (if implemented in the subtype)&lt;br /&gt;
* processing options from lists&lt;br /&gt;
* processing datasources&lt;br /&gt;
* Postprocessing override (if implemented in the subtype)&lt;br /&gt;
&lt;br /&gt;
Typical post processing action could be to amend the production of lists and datasources to get special data setup.&lt;br /&gt;
&lt;br /&gt;
   function preprocess_data(){&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   function postprocess_data(){&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Use $this-&amp;gt;data to alter the available data before template production.&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
&lt;br /&gt;
Customlabels are preprocessed in order to cache the content for better output performance. The content is calculated from templates when the instance is added or updated. The output is computed from templates available in language directories. &lt;br /&gt;
&lt;br /&gt;
===Template format===&lt;br /&gt;
&lt;br /&gt;
Templates are piece of HTML with placeholders for customlabel internal available information (resulting of the internal data prcoessing. See above). Placeholders are tags of the form %%attributename%%.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-commentbox&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%comment%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Comment box customlabel only defines a single textarea attribute named &#039;comment&#039;, that is &amp;quot;callable&amp;quot; by the template.&lt;br /&gt;
&lt;br /&gt;
From Moodle 2 migration, customlabel now accepts elementary conditional syntax : &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;%if %%attribute%% %&amp;gt;&lt;br /&gt;
   .... conditional tempalte code....&lt;br /&gt;
   &amp;lt;%endif %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tested attribute considered as a boolean (empty or not empty) test.&lt;br /&gt;
&lt;br /&gt;
===Language resolution===&lt;br /&gt;
&lt;br /&gt;
The course elements are compatible with multiple language content writing. As some elements are open to really free formatted content, the success of dealing with translations is obtained by providing templates for each language, and inject filtered information comming from element internal storage model. &lt;br /&gt;
&lt;br /&gt;
The way language tagging is performed using &amp;lt;span class=&amp;quot;multilang&amp;quot;&amp;gt; tags is sadly not compatible with the standard multilanguage filter, that fails often parsing content when some parts of the content get locally formated with internal spans. Thus the customlabel module needs to be used with the special &amp;quot;multilang enchanced&amp;quot; filter, that will be fully compatible with other multilingual content of Moodle.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_subtype_development_framework&amp;diff=102430</id>
		<title>Customlabel subtype development framework</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_subtype_development_framework&amp;diff=102430"/>
		<updated>2013-01-16T22:03:09Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Preprocessing and postprocessing overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The customlabel subtype development framework is a set of writting and development rules which will make easy making new subtypes for use in course contents.&lt;br /&gt;
&lt;br /&gt;
The customlabel concept is to centralize all mechanical aspects in the customlabel module, thus keeping writing of a subtype minimalist.&lt;br /&gt;
&lt;br /&gt;
==What is a subtype?==&lt;br /&gt;
&lt;br /&gt;
A subtype is a cutomlabel subplugin handled by the generic subplugin API of Moodle.&lt;br /&gt;
&lt;br /&gt;
A subtype is essentially : &lt;br /&gt;
&lt;br /&gt;
* a directory in the mod/customlabel/type directory&lt;br /&gt;
* a subclass of the customlabel_type (@see /mod/customlabel/type/customtype.class.php)&lt;br /&gt;
* a file version.php to handle subplugin verisonning&lt;br /&gt;
* a lang directory for storing templates and language dependant strings&lt;br /&gt;
* a local css file for preseting default styling&lt;br /&gt;
&lt;br /&gt;
==The customlabel_type class==&lt;br /&gt;
&lt;br /&gt;
The customlabel_type class describes what is the internal information model of the customlabel. The custom type must require the geenric customlabel_type implementation to extend the parent class : &lt;br /&gt;
&lt;br /&gt;
   require_once ($CFG-&amp;gt;dirroot.&amp;quot;/mod/customlabel/type/customtype.class.php&amp;quot;);&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
   class customlabel_type_coursedata extends customlabel_type{&lt;br /&gt;
   ... implementation ...&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just three methods are enough to build the customtype : &lt;br /&gt;
&lt;br /&gt;
===The class constructor===&lt;br /&gt;
&lt;br /&gt;
Defines all information fields used by the customlabel templates. The class stores the type information and builds the $this-&amp;gt;fields array that defines each field.&lt;br /&gt;
&lt;br /&gt;
   function __construct($data){&lt;br /&gt;
      parent::__construct($data);&lt;br /&gt;
      $this-&amp;gt;type = &#039;coursedata&#039;;&lt;br /&gt;
      $this-&amp;gt;fields = array();&lt;br /&gt;
&lt;br /&gt;
The constructor will define fields using the following code template : &lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;fieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textfield&#039;;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;fieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Field type drives how the instance setting form will require information from the editing teacher. Depending on the type accessory attributes can be used to control specific aspects of the settings form.&lt;br /&gt;
&lt;br /&gt;
====Field type : choiceyesno====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;choiceyesnoname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;choiceyesno&#039;;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;choiceyesnoname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a boolean selector as a yes/no list&lt;br /&gt;
&lt;br /&gt;
====Field type : textfield====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;textfieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textfield&#039;;&lt;br /&gt;
        $field-&amp;gt;size = 40;  // optional&lt;br /&gt;
        $field-&amp;gt;mawlength = 40;  // optional&lt;br /&gt;
        $this-&amp;gt;fields[&#039;textfieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a simple textfield to get a simple string&lt;br /&gt;
&lt;br /&gt;
====Field type : htmlarea or editor====&lt;br /&gt;
&lt;br /&gt;
        unset($field);&lt;br /&gt;
        $field-&amp;gt;name = &#039;textareafieldname&#039;;&lt;br /&gt;
        $field-&amp;gt;type = &#039;textarea&#039;;&lt;br /&gt;
        $field-&amp;gt;size = 80;&lt;br /&gt;
        $this-&amp;gt;fields[&#039;textareafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides an editable textarea or html editor (depending on site settings) for inpting a formatted multiline content.&lt;br /&gt;
&lt;br /&gt;
====Field type : list====&lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
   $field-&amp;gt;name = &#039;datafieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;list&#039;;&lt;br /&gt;
   $field-&amp;gt;options = &#039;comma,separated,list,of,option,keys&#039;;&lt;br /&gt;
   $field-&amp;gt;multiple = &#039;multiple&#039;;  // adds multiple choice capability&lt;br /&gt;
   $this-&amp;gt;fields[&#039;datafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Provides a select list keyed by the option list and labelled with option key tranlsations in the active language. Translations must&lt;br /&gt;
be provided in lang files of the subtype plugin.&lt;br /&gt;
&lt;br /&gt;
====Field type : datasource====&lt;br /&gt;
&lt;br /&gt;
   unset($field);&lt;br /&gt;
   $field-&amp;gt;name = &#039;datafieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkeyed&#039;;  // source mode&lt;br /&gt;
   $field-&amp;gt;table = &#039;tablename where to get data from&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;sourcefieldname&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039;some select clause&#039;;&lt;br /&gt;
   $field-&amp;gt;multiple = &#039;multiple&#039;;  // adds multiple choice capability (defaults to : no)&lt;br /&gt;
   $field-&amp;gt;constraintson = &#039;level1,level2&#039;;&lt;br /&gt;
   $field-&amp;gt;mandatory = true; // (defaults to : false)&lt;br /&gt;
   $this-&amp;gt;fields[&#039;datafieldname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
Datasource field allows data stored in any part of Moodle to serve as information reference for the field. Data soruce can feed the list with value or keys depending the table can provide keys or both keys and labels. This selection is driven by the &#039;source&amp;quot; attribute that can &lt;br /&gt;
be : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;dbfieldkey&#039;&#039;&#039; : get a value set from a given field in a given table directly from field values, keys by the &#039;id&#039; primary key of the table.&lt;br /&gt;
&lt;br /&gt;
Declaration sample : &lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;courseselectorbyid&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkey&#039;;&lt;br /&gt;
   $field-&amp;gt;table = &#039;course&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;fullname&#039;;&lt;br /&gt;
   $field-&amp;gt;ordering = &#039;sortorder&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039; visible = 1 &#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;courseselectorbyid&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;dbfieldkeyed&#039;&#039;&#039; : get a value set from a given field in a given table from field values keyed by a given key.&lt;br /&gt;
&lt;br /&gt;
Declaration sample : &lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;courseselectorbyshortname&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;dbfieldkeyed&#039;;&lt;br /&gt;
   $field-&amp;gt;table = &#039;course&#039;;&lt;br /&gt;
   $field-&amp;gt;field = &#039;fullname&#039;;&lt;br /&gt;
   $field-&amp;gt;key = &#039;shortname&#039;;&lt;br /&gt;
   $field-&amp;gt;select = &#039; visible = 1 &#039;;&lt;br /&gt;
   $field-&amp;gt;ordering = &#039;sortorder&#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;courseselectorbyshortname&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;function&#039;&#039;&#039; : get a value set as a result of a given function call. The function is called without any arguments (could be amended).&lt;br /&gt;
&lt;br /&gt;
   $field-&amp;gt;name = &#039;selectorbyfunction&#039;;&lt;br /&gt;
   $field-&amp;gt;type = &#039;datasource&#039;;&lt;br /&gt;
   $field-&amp;gt;source = &#039;function&#039;;&lt;br /&gt;
   $field-&amp;gt;file = &#039;sourcefile/path/from/dirroot&#039;;&lt;br /&gt;
   $field-&amp;gt;function = &#039;functionname&#039;;&lt;br /&gt;
   $this-&amp;gt;fields[&#039;selectorbyfunction&#039;] = $field;&lt;br /&gt;
&lt;br /&gt;
===Preprocessing and postprocessing overrides===&lt;br /&gt;
&lt;br /&gt;
When composing the content of the label from the templates and the available data, the processing runs four steps : &lt;br /&gt;
&lt;br /&gt;
* Preprocessing override (if implemented in the subtype)&lt;br /&gt;
* processing options from lists&lt;br /&gt;
* processing datasources&lt;br /&gt;
* Postprocessing override (if implemented in the subtype)&lt;br /&gt;
&lt;br /&gt;
Typical post processing action could be to amend the production of lists and datasources to get special data setup.&lt;br /&gt;
&lt;br /&gt;
   function preprocess_data(){&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   function postprocess_data(){&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Use $this-&amp;gt;data to alter the available data before template production.&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
&lt;br /&gt;
Customlabels are preprocessed in order to cache the content for better output performance. The content is calculated from templates when the instance is added or updated. The output is computed from templates available in language directories. &lt;br /&gt;
&lt;br /&gt;
===Template format===&lt;br /&gt;
&lt;br /&gt;
Templates are piece of HTML with placeholders for customlabel internal available information (resulting of the internal data prcoessing. See above). Placeholders are tags of the form %%attributename%%.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-commentbox&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%comment%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Comment box customlabel only defines a single textarea attribute named &#039;comment&#039;, that is &amp;quot;callable&amp;quot; by the template.&lt;br /&gt;
&lt;br /&gt;
From Moodle 2 migration, customlabel now accepts elementary conditional syntax : &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;%if %%attribute%% %&amp;gt;&lt;br /&gt;
   .... conditional tempalte code....&lt;br /&gt;
   &amp;lt;%endif %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tested attribute considered as a boolean (empty or not empty) test.&lt;br /&gt;
&lt;br /&gt;
===Language resolution===&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Contact_Point&amp;diff=102425</id>
		<title>Course element : Contact Point</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Contact_Point&amp;diff=102425"/>
		<updated>2013-01-15T22:46:54Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The element &amp;quot;Contact Point&amp;quot; is a simple text of instructions associated to a contact mode to inform remote students that at this point of the progression a communication with the teacher (coach) is expected or suggested. The text should provide sufficiant practical information to realize this connection (procedure, expected schedule, URL for communication tools, etc.).&lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:ContactPoint_generic_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
====Derivated forms====&lt;br /&gt;
&lt;br /&gt;
[[Image:ContactPoint_icon_samples.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:ContactPoint_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-contactpoint&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr valign=&amp;quot;middle&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-header-thumb contactpoint &amp;lt;%%contacttypeoption%%&amp;gt;&amp;quot; width=&amp;quot;2%&amp;quot; rowspan=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-header-caption contactpoint&amp;quot; width=&amp;quot;98%&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
          Contact point...&amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;span class=&amp;quot;custombox-header-method contacttype&amp;quot;&amp;gt;Method : &amp;lt;%%contacttype%%&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-content contactpoint&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;%%instructions%%&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-contactpoint (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-header-thumb.contactpoint (TD) : Left Icon container&lt;br /&gt;
&lt;br /&gt;
.custombox-header-caption.contactpoint (TD) : Right caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-header-method.contactpoint (SPAN) : Right caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-content.contactpoint (TD) : Message container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102424</id>
		<title>Customlabel module (Course elements)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102424"/>
		<updated>2013-01-15T22:45:02Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Pedagogical bricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The customlabel module is a specialisation of the core label module to improve content writing in course main pages.&lt;br /&gt;
&lt;br /&gt;
The customlabel module proposes a set (extensible) of subtypes that match well known uses of the learning editorial activity. Subtypes are essentially small parts of content rendered through a predefined html template fo layout (internal renderer), applying a subtype specific small stylesheet (overridable) and using a small predefined dataset. &lt;br /&gt;
&lt;br /&gt;
When adding a new instance of a customlabel (called Course Element in the GUI) to a course, the activity settings usual form can change of aspect depending on the choosen subtype. The form will self-adapt to the requirements of the element internal information model.&lt;br /&gt;
&lt;br /&gt;
This plugin has two effects on content handling and management : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;productivity effect&#039;&#039;&#039; : teachers do not nead to bother with styling and aspect consistency, as they just need to enter the adequate payload into the presented fields.&lt;br /&gt;
* &#039;&#039;&#039;stability effect&#039;&#039;&#039; : Any of the course elements will be rendered and layout the same way, thus keeping the same graphical aspect whoever authors a course. This is a good point for an institutional LMS that needs to keep content consistant although deferred to many contributors of distinct IT addition skills.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Available archive : https://github.com/vfremaux/moodle-mod_customlabel&lt;br /&gt;
&lt;br /&gt;
Unpack the customlabel package into the &#039;mod&#039; directory of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Browse to the Administration -&amp;gt; Notification service to proceed to logical install.&lt;br /&gt;
&lt;br /&gt;
===Dependancies===&lt;br /&gt;
&lt;br /&gt;
To process accurately the multiple language content, a modified version of the multilang filter &lt;br /&gt;
is necessary to process nested spans in content.&lt;br /&gt;
&lt;br /&gt;
Get the filter MultilangEnhanced and install it along to customlabel.&lt;br /&gt;
&lt;br /&gt;
Disable the standard multilang filter and activate the enhanced filter (he enhanced filter will process all other lang selection strings as required).&lt;br /&gt;
&lt;br /&gt;
==Features summary==&lt;br /&gt;
&lt;br /&gt;
* High semantic level course elements&lt;br /&gt;
* Style preset by integrator/styler&lt;br /&gt;
* Role sensible elements can hide for some roles (role conditional content)&lt;br /&gt;
* Easy extensible subtype model&lt;br /&gt;
&lt;br /&gt;
==Using labels==&lt;br /&gt;
&lt;br /&gt;
Course elements are known as enhanced labels. So adding a course element is just like adding a label, and filling information parts.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;lt; 2.2, you&#039;ll find the &#039;Course element&#039; choice in the &amp;quot;Add a ressource&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;gt; 2.3, activities and resources have been unified.&lt;br /&gt;
&lt;br /&gt;
When displaying the setting form, check the first dropdown list for a subtype of label you need (See the above section about subtypes). Let the setting form reload with modified field list and complete the required information. you will notice that when changing the type of a customlabel, the content is not keeped, as there are low chances the semantic is consistant between distinct types.&lt;br /&gt;
&lt;br /&gt;
The label will layout the content in the course sequence.&lt;br /&gt;
&lt;br /&gt;
==Subtypes==&lt;br /&gt;
&lt;br /&gt;
===Generic bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Text| &amp;quot;Text&amp;quot;]]&lt;br /&gt;
* [[Course element : Comment Box| &amp;quot;Comment Box&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Pedagogical bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Definition| &amp;quot;Definition&amp;quot;]]&lt;br /&gt;
* [[Course element : Example| &amp;quot;Example&#039;]]&lt;br /&gt;
* [[Course element : Important| &amp;quot;Important&amp;quot;]]&lt;br /&gt;
* [[Course element : Key points| &amp;quot;Key Points&amp;quot;]]&lt;br /&gt;
* [[Course element : Local goals| &amp;quot;Local goals&amp;quot;]]&lt;br /&gt;
* [[Course element : See Also| &amp;quot;See Also&amp;quot;]]&lt;br /&gt;
* [[Course element : Soluce| &amp;quot;Soluce&amp;quot;]]&lt;br /&gt;
* [[Course element : Theorema| &amp;quot;Theorema&amp;quot;]]&lt;br /&gt;
* [[Course element : Tips and tricks| &amp;quot;Tips and tricks&amp;quot;]]&lt;br /&gt;
* [[Course element : Work to do| &amp;quot;Work to do&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Role conditioned bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Pedagogical Advice| &amp;quot;Pedagogical advice&amp;quot;]]&lt;br /&gt;
* [[Course element : Authoring Note| &amp;quot;Authoring Note&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Structural bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Course Heading| &amp;quot;Course Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Section Heading| &amp;quot;Section Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Sequence Heading| &amp;quot;Sequence Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Course Classifier| &amp;quot;Course Classifier&amp;quot;]]&lt;br /&gt;
* [[Course element : Course information| &amp;quot;Course Information&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Utilties bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Contact Point| &amp;quot;Contact Point&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
Customlabel is built to easily add new custom subtypes as required by the context and the pedagogical local project. Following documents give some reference upon how to build new types.&lt;br /&gt;
&lt;br /&gt;
[[Customlabel subtype development framework]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
Valery Fremaux (2008 original) valery.fremaux@gmail.com&lt;br /&gt;
&lt;br /&gt;
The customlabel content strategy was developped to serve the Governement Level Public Teacher PD program (Ministère de l&#039;Education Nationale) in France (called Pairformance) with Intel support.&lt;br /&gt;
&lt;br /&gt;
[[fr:Elements de cours]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:SectionHeading_settings.jpg&amp;diff=102423</id>
		<title>File:SectionHeading settings.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:SectionHeading_settings.jpg&amp;diff=102423"/>
		<updated>2013-01-15T14:55:54Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:SectionHeading_sample.jpg&amp;diff=102422</id>
		<title>File:SectionHeading sample.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:SectionHeading_sample.jpg&amp;diff=102422"/>
		<updated>2013-01-15T14:55:31Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102421</id>
		<title>Course element : Section Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102421"/>
		<updated>2013-01-15T14:28:19Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* CSS Element list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Section Heading is very similar to seqence heading, but setup for a slightly different purpose. Sections are &amp;quot;Chapters in the course&amp;quot; that may assemble sequences. In flexipage formats, section headers may be used in a single page, to introduce a page break between two dense content section. &lt;br /&gt;
&lt;br /&gt;
The defaut version of the Section Heading keeps very close to the Sequence Heading element, and keeps focussing an &#039;in page&#039; use (cv. full screen). It is provided for common course structure needs, to differenciate the stylesheet application to this organisation level of the course. &lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-sectionheading&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon sectionheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%heading%%&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%shortdesc%%&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-sectionheading (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-header.sectionheading (H1) : Section Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.sectionheading (P) : Section Description (summary) container&lt;br /&gt;
&lt;br /&gt;
.custombox-icon.sectionheading (TR) : Section row container&lt;br /&gt;
&lt;br /&gt;
.custombox-icon-left.sectionheading (TD) : Section left icon container&lt;br /&gt;
&lt;br /&gt;
.custombox-icon-right.sectionheading (TD) : Section right icon container&lt;br /&gt;
&lt;br /&gt;
==Element evolution prospective==&lt;br /&gt;
&lt;br /&gt;
This element is probably mostly dedicated to make &amp;quot;chapter&amp;quot; cover pages. The probable evolution of the element will be to add a data table of information relative to the local section, as &amp;quot;section goals&amp;quot;, &amp;quot;section objectives&amp;quot;, &amp;quot;section duration&amp;quot;, &amp;quot;section weight&amp;quot;. Etc. This evolution is NOT YET perceived (not mature) in user queries i can collect upon all integration programs.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102420</id>
		<title>Course element : Section Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102420"/>
		<updated>2013-01-15T14:24:25Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Element evolution prospecitve */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Section Heading is very similar to seqence heading, but setup for a slightly different purpose. Sections are &amp;quot;Chapters in the course&amp;quot; that may assemble sequences. In flexipage formats, section headers may be used in a single page, to introduce a page break between two dense content section. &lt;br /&gt;
&lt;br /&gt;
The defaut version of the Section Heading keeps very close to the Sequence Heading element, and keeps focussing an &#039;in page&#039; use (cv. full screen). It is provided for common course structure needs, to differenciate the stylesheet application to this organisation level of the course. &lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-sectionheading&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon sectionheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%heading%%&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%shortdesc%%&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-sectionheading (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.sectionheading H1 (DIV) : Section Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.sectionheading (DIV) : Section Description (summary) container&lt;br /&gt;
&lt;br /&gt;
==Element evolution prospective==&lt;br /&gt;
&lt;br /&gt;
This element is probably mostly dedicated to make &amp;quot;chapter&amp;quot; cover pages. The probable evolution of the element will be to add a data table of information relative to the local section, as &amp;quot;section goals&amp;quot;, &amp;quot;section objectives&amp;quot;, &amp;quot;section duration&amp;quot;, &amp;quot;section weight&amp;quot;. Etc. This evolution is NOT YET perceived (not mature) in user queries i can collect upon all integration programs.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102419</id>
		<title>Course element : Section Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102419"/>
		<updated>2013-01-15T14:24:02Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Section Heading is very similar to seqence heading, but setup for a slightly different purpose. Sections are &amp;quot;Chapters in the course&amp;quot; that may assemble sequences. In flexipage formats, section headers may be used in a single page, to introduce a page break between two dense content section. &lt;br /&gt;
&lt;br /&gt;
The defaut version of the Section Heading keeps very close to the Sequence Heading element, and keeps focussing an &#039;in page&#039; use (cv. full screen). It is provided for common course structure needs, to differenciate the stylesheet application to this organisation level of the course. &lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-sectionheading&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon sectionheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%heading%%&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%shortdesc%%&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-sectionheading (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.sectionheading H1 (DIV) : Section Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.sectionheading (DIV) : Section Description (summary) container&lt;br /&gt;
&lt;br /&gt;
==Element evolution prospecitve==&lt;br /&gt;
&lt;br /&gt;
This element is probably mostly dedicated to make &amp;quot;chpater&amp;quot; cover pages. The probable evolution of the element will be to add a data table of information relative to the local section, as &amp;quot;section goals&amp;quot;, &amp;quot;section objectives&amp;quot;, &amp;quot;section duration&amp;quot;, &amp;quot;section weight&amp;quot;. Etc. This evolution is NOT YET perceived (not mature) in user queries i can collect upon all integration programs.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102418</id>
		<title>Course element : Section Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Section_Heading&amp;diff=102418"/>
		<updated>2013-01-15T14:20:57Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: Created page with &amp;quot; Back to index  The Section Heading is very similar to seqence heading, but setup for a slightly different purpose. Sections are &amp;quot;Chapter...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Section Heading is very similar to seqence heading, but setup for a slightly different purpose. Sections are &amp;quot;Chapters in the course&amp;quot; that may assemble sequences. In flexipage formats, section headers may be used in a single page, to introduce a page break between two dense content section. &lt;br /&gt;
&lt;br /&gt;
The defaut version of the Section Heading keeps very close to the Sequence Heading element, and keeps focussing an &#039;in page&#039; use (cv. full screen). It is provided for common course structure needs, to differenciate the stylesheet application to this organisation level of the course. &lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:SectionHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-sectionheading&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon sectionheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%heading%%&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;p class=&amp;quot;custombox-sectionheading&amp;quot;&amp;gt;&amp;lt;%%shortdesc%%&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-sectionheading (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.sectionheading H1 (DIV) : Section Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.sectionheading (DIV) : Section Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102417</id>
		<title>Course element : Course information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102417"/>
		<updated>2013-01-15T13:42:06Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Internal Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Information (Course data) is a tabular element providing meta data about the course volume to the reader. Each items can be hidden or shown.&lt;br /&gt;
&lt;br /&gt;
==User side==&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
(Partial view)&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Internal Variables===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%tablecaption%%&#039;&#039; : Caption for the whole table&lt;br /&gt;
* &#039;&#039;%%goals%%&#039;&#039; : Teaching Goals of the course &lt;br /&gt;
* &#039;&#039;%%objectives%%&#039;&#039; : Objectives of the student&lt;br /&gt;
* &#039;&#039;%%concepts%%&#039;&#039; : Concepts (major) learned&lt;br /&gt;
* &#039;&#039;%%duration%%&#039;&#039; : Course duration for the student&lt;br /&gt;
* &#039;&#039;%%teachingorganization%%&#039;&#039; : Teaching organisation and methods (summary)&lt;br /&gt;
* &#039;&#039;%%prerequisites%%&#039;&#039; : Prerequisites (courses or skills) required to complete the course&lt;br /&gt;
* &#039;&#039;%%followers%%&#039;&#039; : Some other courses that could complete the curriculum&lt;br /&gt;
 &lt;br /&gt;
Activators : &lt;br /&gt;
 &lt;br /&gt;
* &#039;&#039;%%showgoals%%&#039;&#039; : Activator for goals&lt;br /&gt;
* &#039;&#039;%%showobjectives%%&#039;&#039; : Activator for objectives&lt;br /&gt;
* &#039;&#039;%%showconcepts%%&#039;&#039; : Activztor for concepts&lt;br /&gt;
* &#039;&#039;%%showduration%%&#039;&#039; : Activator for duration&lt;br /&gt;
* &#039;&#039;%%showteachingorganization%%&#039;&#039; : Activator for teaching organisation&lt;br /&gt;
* &#039;&#039;%%showprerequisites%%&#039;&#039; : Activator for prerequisites&lt;br /&gt;
* &#039;&#039;%%showfollowers%%&#039;&#039; : Activator for followers&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-coursedata&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;%if %%tablecaption%% %&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;th class=&amp;quot;custombox-title coursedata&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;amp;lt;%%tablecaption%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%if %%showPARAM%% %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-param coursedata&amp;quot;&amp;gt;&lt;br /&gt;
           PARAM:&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-value coursedata&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;amp;lt;%%PARAM%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    ...&lt;br /&gt;
    &lt;br /&gt;
    &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-coursedata(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-title.coursedata (TH) : Table title container&lt;br /&gt;
&lt;br /&gt;
.custombox-param.coursedata (TD) : Data Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-value.coursedata (TD) : Data Value container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102416</id>
		<title>Course element : Course information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102416"/>
		<updated>2013-01-15T13:41:01Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Information (Course data) is a tabular element providing meta data about the course volume to the reader. Each items can be hidden or shown.&lt;br /&gt;
&lt;br /&gt;
==User side==&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
(Partial view)&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Internal Variables===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;%%tablecaption%%&#039;&#039;&#039; : Caption for the whole table&lt;br /&gt;
* &#039;&#039;&#039;%%goals%%&#039;&#039;&#039; : Teaching Goals of the course &lt;br /&gt;
* &#039;&#039;&#039;%%objectives%%&#039;&#039;&#039; : Objectives of the student&lt;br /&gt;
* &#039;&#039;&#039;%%concepts%%&#039;&#039;&#039; : Concepts (major) learned&lt;br /&gt;
* &#039;&#039;&#039;%%duration%%&#039;&#039;&#039; : Course duration for the student&lt;br /&gt;
* &#039;&#039;&#039;%%teachingorganization%%&#039;&#039;&#039; : Teaching organisation and methods (summary)&lt;br /&gt;
* &#039;&#039;&#039;%%prerequisites%%&#039;&#039;&#039; : Prerequisites (courses or skills) required to complete the course&lt;br /&gt;
* &#039;&#039;&#039;%%followers%%&#039;&#039;&#039; : Some other courses that could complete the curriculum&lt;br /&gt;
&lt;br /&gt;
Activators : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;%%showgoals%%&#039;&#039;&#039; : Activator for goals&lt;br /&gt;
* &#039;&#039;&#039;%%showobjectives%%&#039;&#039;&#039; : Activator for objectives&lt;br /&gt;
* &#039;&#039;&#039;%%showconcepts%%&#039;&#039;&#039; : Activztor for concepts&lt;br /&gt;
* &#039;&#039;&#039;%%showduration%%&#039;&#039;&#039; : Activator for duration&lt;br /&gt;
* &#039;&#039;&#039;%%showteachingorganization%%&#039;&#039;&#039; : Activator for teaching organisation&lt;br /&gt;
* &#039;&#039;&#039;%%showprerequisites%%&#039;&#039;&#039; : Activator for prerequisites&lt;br /&gt;
* &#039;&#039;&#039;%%showfollowers%%&#039;&#039;&#039; : Activator for followers&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-coursedata&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;%if %%tablecaption%% %&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;th class=&amp;quot;custombox-title coursedata&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;amp;lt;%%tablecaption%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%if %%showPARAM%% %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-param coursedata&amp;quot;&amp;gt;&lt;br /&gt;
           PARAM:&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-value coursedata&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;amp;lt;%%PARAM%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    ...&lt;br /&gt;
    &lt;br /&gt;
    &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-coursedata(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-title.coursedata (TH) : Table title container&lt;br /&gt;
&lt;br /&gt;
.custombox-param.coursedata (TD) : Data Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-value.coursedata (TD) : Data Value container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102415</id>
		<title>Course element : Course information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_information&amp;diff=102415"/>
		<updated>2013-01-15T13:34:02Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Information (Course data) is a tabular element providing meta data about the course volume to the reader. Each items can be hidden or shown.&lt;br /&gt;
&lt;br /&gt;
==User side==&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseData_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
(Partial view)&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-coursedata&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;%if %%tablecaption%% %&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;th class=&amp;quot;custombox-title coursedata&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;amp;lt;%%tablecaption%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%if %%showPARAM%% %&amp;gt;&lt;br /&gt;
    &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-param coursedata&amp;quot;&amp;gt;&lt;br /&gt;
           PARAM:&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;amp;lt;td class=&amp;quot;custombox-value coursedata&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;amp;lt;%%PARAM%%&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    ...&lt;br /&gt;
    &lt;br /&gt;
    &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-coursedata(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-title.coursedata (TH) : Table title container&lt;br /&gt;
&lt;br /&gt;
.custombox-param.coursedata (TD) : Data Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-value.coursedata (TD) : Data Value container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Sequence_Heading&amp;diff=102411</id>
		<title>Course element : Sequence Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Sequence_Heading&amp;diff=102411"/>
		<updated>2013-01-15T09:33:00Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Sequence Heading is a simple element that provides standard layout and styling for a sequence heading. Sequences are usually used &lt;br /&gt;
in multipaged formats, introducing a new working sequence with a new course page. You may use sequence headings in place of a section&lt;br /&gt;
caption if required.&lt;br /&gt;
&lt;br /&gt;
==User Side==&lt;br /&gt;
&lt;br /&gt;
[[Image:SequenceHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:SequenceHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator Corner==&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-sequenceheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-heading sequenceheading&amp;quot;&amp;gt;&amp;amp;lt;h2&amp;gt;&amp;lt;&amp;amp;lt;%%heading%%&amp;gt;&amp;amp;lt;/h2&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-description sequenceheading&amp;quot;&amp;gt;&amp;amp;lt;%%shortdesc%%&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-sequenceheading (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.sequenceheading H2 (DIV) : Sequence Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.sequenceheading (DIV) : Sequence Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102410</id>
		<title>Course element : Course Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102410"/>
		<updated>2013-01-15T09:32:00Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
==User side==&lt;br /&gt;
&lt;br /&gt;
The Course Heading is a simple element that provides standard layout and styling for whole course main caption.&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
===Internal Variables===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imageL%%&#039;&#039; : Provides icon bloc at left pos when set to left &lt;br /&gt;
* &#039;&#039;%%imageR%%&#039;&#039; : Provides icon bloc at right pos when set to right &lt;br /&gt;
* &#039;&#039;%%category%%&#039;&#039; : Category name&lt;br /&gt;
* &#039;&#039;%%shortname%%&#039;&#039; : Course short name&lt;br /&gt;
* &#039;&#039;%%courseheading%%&#039;&#039; : Course full name&lt;br /&gt;
* &#039;&#039;%%idnumber%%&#039;&#039; : Course ID number&lt;br /&gt;
* &#039;&#039;%%coursedesc%%&#039;&#039; : Course description (same as used in course lists)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imagepositionioption%%&#039; : Image switch : left, right, none&lt;br /&gt;
* &#039;&#039;%%showidnumber%%&#039;&#039; : Course ID number activator&lt;br /&gt;
* &#039;&#039;%%showshortname%%&#039;&#039; : Course shortname activator&lt;br /&gt;
* &#039;&#039;%%showdescription%%&#039;&#039; : Course description activator&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td width=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showcategory%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-category courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%category%%&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-preheading courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%moduletype%%&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-heading courseheading&amp;quot;&amp;gt;&amp;lt;%if %%showshortname%% %&amp;gt;(&amp;amp;lt;%%shortname%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt; &lt;br /&gt;
           &amp;amp;lt;%%courseheading%%&amp;gt; &amp;amp;lt;%if %%showidnumber%% %&amp;gt;(&amp;amp;lt;%%idnumber%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showdescription%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-description courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%coursedesc%%&amp;gt;&amp;amp;lt;/&amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-courseheading(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.courseheading (DIV) : Course Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-idnumber.courseheading (DIV) : ID Number container&lt;br /&gt;
&lt;br /&gt;
.custombox-category.courseheading (DIV) : Category Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.courseheading (TD) : Course Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:CourseHeading_settings.jpg&amp;diff=102409</id>
		<title>File:CourseHeading settings.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:CourseHeading_settings.jpg&amp;diff=102409"/>
		<updated>2013-01-15T09:13:51Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: uploaded a new version of &amp;amp;quot;File:CourseHeading settings.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:CourseHeading_sample.jpg&amp;diff=102408</id>
		<title>File:CourseHeading sample.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:CourseHeading_sample.jpg&amp;diff=102408"/>
		<updated>2013-01-15T09:13:18Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: uploaded a new version of &amp;amp;quot;File:CourseHeading sample.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102407</id>
		<title>Course element : Course Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102407"/>
		<updated>2013-01-15T08:54:14Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
==User side==&lt;br /&gt;
&lt;br /&gt;
The Course Heading is a simple element that provides standard layout and styling for whole course main caption.&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
===Internal Variables===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imageL%%&#039;&#039; : Provides icon bloc at left pos when set to left &lt;br /&gt;
* &#039;&#039;%%imageR%%&#039;&#039; : Provides icon bloc at right pos when set to right &lt;br /&gt;
* &#039;&#039;%%category%%&#039;&#039; : Category name&lt;br /&gt;
* &#039;&#039;%%shortname%%&#039;&#039; : Course short name&lt;br /&gt;
* &#039;&#039;%%courseheading%%&#039;&#039; : Course full name&lt;br /&gt;
* &#039;&#039;%%idnumber%%&#039;&#039; : Course ID number&lt;br /&gt;
* &#039;&#039;%%shortname%%&#039;&#039; : Course shortname&lt;br /&gt;
* &#039;&#039;%%coursedesc%%&#039;&#039; : Course description (same as used in course lists)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imagepositionioption%%&#039; : Image switch : left, right, none&lt;br /&gt;
* &#039;&#039;%%showidnumber%%&#039;&#039; : Course ID number activator&lt;br /&gt;
* &#039;&#039;%%showshortname%%&#039;&#039; : Course shortname activator&lt;br /&gt;
* &#039;&#039;%%showdescription%%&#039;&#039; : Course description activator&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td width=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showcategory%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-category courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%category%%&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-preheading courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%moduletype%%&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-heading courseheading&amp;quot;&amp;gt;&amp;lt;%if %%showshortname%% %&amp;gt;(&amp;amp;lt;%%shortname%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt; &lt;br /&gt;
           &amp;amp;lt;%%courseheading%%&amp;gt; &amp;amp;lt;%if %%showidnumber%% %&amp;gt;(&amp;amp;lt;%%idnumber%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showdescription%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-description courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%coursedesc%%&amp;gt;&amp;amp;lt;/&amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-courseheading(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.courseheading (DIV) : Course Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-idnumber.courseheading (DIV) : ID Number container&lt;br /&gt;
&lt;br /&gt;
.custombox-category.courseheading (DIV) : Category Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.courseheading (TD) : Course Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102406</id>
		<title>Course element : Course Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102406"/>
		<updated>2013-01-15T08:53:15Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Default Template */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Heading is a simple element that provides standard layout and styling for whole course main caption.&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Internal Variables===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imageL%%&#039;&#039; : Provides icon bloc at left pos when set to left &lt;br /&gt;
* &#039;&#039;%%imageR%%&#039;&#039; : Provides icon bloc at right pos when set to right &lt;br /&gt;
* &#039;&#039;%%category%%&#039;&#039; : Category name&lt;br /&gt;
* &#039;&#039;%%shortname%%&#039;&#039; : Course short name&lt;br /&gt;
* &#039;&#039;%%courseheading%%&#039;&#039; : Course full name&lt;br /&gt;
* &#039;&#039;%%idnumber%%&#039;&#039; : Course ID number&lt;br /&gt;
* &#039;&#039;%%shortname%%&#039;&#039; : Course shortname&lt;br /&gt;
* &#039;&#039;%%coursedesc%%&#039;&#039; : Course description (same as used in course lists)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;%%imagepositionioption%%&#039; : Image switch : left, right, none&lt;br /&gt;
* &#039;&#039;%%showidnumber%%&#039;&#039; : Course ID number activator&lt;br /&gt;
* &#039;&#039;%%showshortname%%&#039;&#039; : Course shortname activator&lt;br /&gt;
* &#039;&#039;%%showdescription%%&#039;&#039; : Course description activator&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td width=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showcategory%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-category courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%category%%&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-preheading courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%moduletype%%&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-heading courseheading&amp;quot;&amp;gt;&amp;lt;%if %%showshortname%% %&amp;gt;(&amp;amp;lt;%%shortname%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt; &lt;br /&gt;
           &amp;amp;lt;%%courseheading%%&amp;gt; &amp;amp;lt;%if %%showidnumber%% %&amp;gt;(&amp;amp;lt;%%idnumber%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showdescription%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-description courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%coursedesc%%&amp;gt;&amp;amp;lt;/&amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-courseheading(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.courseheading (DIV) : Course Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-idnumber.courseheading (DIV) : ID Number container&lt;br /&gt;
&lt;br /&gt;
.custombox-category.courseheading (DIV) : Category Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.courseheading (TD) : Course Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102405</id>
		<title>Course element : Course Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102405"/>
		<updated>2013-01-15T08:46:59Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Default Template */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Heading is a simple element that provides standard layout and styling for whole course main caption.&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;td width=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showcategory%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-category courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%category%%&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-preheading courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%moduletype%%&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;custombox-heading courseheading&amp;quot;&amp;gt;&amp;lt;%if %%showshortname%% %&amp;gt;(&amp;amp;lt;%%shortname%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt; &lt;br /&gt;
           &amp;amp;lt;%%courseheading%%&amp;gt; &amp;amp;lt;%if %%showidnumber%% %&amp;gt;(&amp;amp;lt;%%idnumber%%&amp;gt;)&amp;amp;lt;%endif %&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%if %%showdescription%% %&amp;gt;&amp;amp;lt;div class=&amp;quot;custombox-description courseheading&amp;quot;&amp;gt;&amp;amp;lt;%%coursedesc%%&amp;gt;&amp;amp;lt;/&amp;amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-courseheading(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.courseheading (DIV) : Course Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-idnumber.courseheading (DIV) : ID Number container&lt;br /&gt;
&lt;br /&gt;
.custombox-category.courseheading (DIV) : Category Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.courseheading (TD) : Course Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102404</id>
		<title>Course element : Course Heading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Course_Heading&amp;diff=102404"/>
		<updated>2013-01-15T08:45:24Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The Course Heading is a simple element that provides standard layout and styling for whole course main caption.&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:CourseHeading_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;table class=&amp;quot;custombox-courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr valign=&amp;quot;middle&amp;quot; class=&amp;quot;custombox-icon courseheading&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;%%imageL%%&amp;gt;&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td width=&amp;quot;*&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;%if %%showcategory%% %&amp;gt;&amp;lt;div class=&amp;quot;custombox-category courseheading&amp;quot;&amp;gt;&amp;lt;%%category%%&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;custombox-preheading courseheading&amp;quot;&amp;gt;&amp;lt;%%moduletype%%&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;custombox-heading courseheading&amp;quot;&amp;gt;&amp;lt;%if %%showshortname%% %&amp;gt;(&amp;lt;%%shortname%%&amp;gt;)&amp;lt;%endif %&amp;gt; &lt;br /&gt;
           &amp;lt;%%courseheading%%&amp;gt; &amp;lt;%if %%showidnumber%% %&amp;gt;(&amp;lt;%%idnumber%%&amp;gt;)&amp;lt;%endif %&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;%if %%showdescription%% %&amp;gt;&amp;lt;div class=&amp;quot;custombox-description courseheading&amp;quot;&amp;gt;&amp;lt;%%coursedesc%%&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;%endif %&amp;gt;&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;%%imageR%%&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-courseheading(TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-heading.courseheading (DIV) : Course Caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-idnumber.courseheading (DIV) : ID Number container&lt;br /&gt;
&lt;br /&gt;
.custombox-category.courseheading (DIV) : Category Name container&lt;br /&gt;
&lt;br /&gt;
.custombox-description.courseheading (TD) : Course Description (summary) container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Course_element_:_Work_to_do&amp;diff=102395</id>
		<title>Course element : Work to do</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Course_element_:_Work_to_do&amp;diff=102395"/>
		<updated>2013-01-12T16:58:24Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Customlabel module (Course elements)| Back to index]]&lt;br /&gt;
&lt;br /&gt;
The element &amp;quot;Work to do&amp;quot; is a description that will be visually styled to describe a requirement for work. This may complete or precede an assignment activity to give pedagogic instructions, while the assignment desctiption can focus on practicla file format and delivery constraints notices.&lt;br /&gt;
&lt;br /&gt;
Work to do requirement can be qualified with three attributes, and can be assigned an indicative work time slot.&lt;br /&gt;
&lt;br /&gt;
Work qualification domain should be edited and entered in the site wide settings for customlabels, using the classification management interface.&lt;br /&gt;
&lt;br /&gt;
Default qualifiers : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;WORKEFFORT&#039;&#039;&#039; (filter) : a scale of increasing workeffort&lt;br /&gt;
* &#039;&#039;&#039;WORKMODE&#039;&#039;&#039; (filter) : a set of working modes (f.e. lonely work, team work, synchronous online, team scrub, etc.)&lt;br /&gt;
* &#039;&#039;&#039;WORKTYPE&#039;&#039;&#039; (filter) : a set of attribute values defining the nature of the operations needed by this working sequence (writing, quest, training, synthesis, exploration, etc.)&lt;br /&gt;
&lt;br /&gt;
[[Image:Worktodo_sample.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Qualifier===&lt;br /&gt;
&lt;br /&gt;
Qualifier values ARE set to default values in the site settings after installation. Here are the default values, that might be altered and changed by an administrator in global settings for the Customlabel plugin.&lt;br /&gt;
&lt;br /&gt;
====Work Effort====&lt;br /&gt;
&lt;br /&gt;
* NQ =&amp;gt; Unqualified&lt;br /&gt;
* VERYEASY =&amp;gt; Trivial work&lt;br /&gt;
* EASY =&amp;gt; Easy work&lt;br /&gt;
* MEDIUM =&amp;gt; Work neading a &amp;quot;normal effort&amp;quot;&lt;br /&gt;
* HARD =&amp;gt; Work neading an additional effort than the common effort&lt;br /&gt;
* VERYHARD =&amp;gt; Work neading an particular effort or skill to be performed. Needs intensive training or involvement.&lt;br /&gt;
&lt;br /&gt;
====Work Type====&lt;br /&gt;
&lt;br /&gt;
* NQ =&amp;gt; Unqualified&lt;br /&gt;
* TRAINING =&amp;gt; Training, skill reinforcement&lt;br /&gt;
* WRITING =&amp;gt; Memo writing&lt;br /&gt;
* INFOQUEST =&amp;gt; Information quest&lt;br /&gt;
* EXERCISE =&amp;gt; Exercice, application&lt;br /&gt;
* PROJECT =&amp;gt; Project&lt;br /&gt;
* EXPERIMENT =&amp;gt; Experience, experimentation&lt;br /&gt;
* SYNTHESIS =&amp;gt; Synthesis writing, reflexive writing&lt;br /&gt;
&lt;br /&gt;
====Work Mode====&lt;br /&gt;
&lt;br /&gt;
* NQ =&amp;gt; Unqualified&lt;br /&gt;
* ALONEONLINE =&amp;gt; Alone work on online resources&lt;br /&gt;
* ALONEOFFLINE =&amp;gt; Alone work on offline resources&lt;br /&gt;
* TEAMONLINE =&amp;gt; Group work (synchronous collective work)&lt;br /&gt;
* TEAMOFFLINE =&amp;gt; Group work on off line ressources&lt;br /&gt;
* COURSEONLINE =&amp;gt; Work involving all course participants on online resources or activities&lt;br /&gt;
* COURSEOFFLINE =&amp;gt; Group work in off line working situation&lt;br /&gt;
* COACHSYNCHRONOUS =&amp;gt; Face to face work with a peer teacher in synchronouos mode (same time slot)&lt;br /&gt;
* COACHASYNCHRONOUS =&amp;gt; Face to face work with a peer teacher in asynchronouos mode (material exchange)&lt;br /&gt;
&lt;br /&gt;
===Settings form===&lt;br /&gt;
&lt;br /&gt;
[[Image:Worktodo_settings.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
===Default Template===&lt;br /&gt;
&lt;br /&gt;
   &amp;amp;lt;table class=&amp;quot;custombox-worktodo&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;tr valign=&amp;quot;middle&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-header-thumb worktodo&amp;quot; width=&amp;quot;2%&amp;quot; rowspan=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-worktype worktodo&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;b&amp;gt;Nature: &amp;lt;/b&amp;gt; &amp;lt;span class=&amp;quot;custom-worktype&amp;quot;&amp;gt;&amp;lt;%%worktype%%&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-timeexpected worktodo&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;img src=&amp;quot;/mod/customlabel/type/worktodo/clock.jpg&amp;quot; /&amp;gt; &amp;lt;%%estimatedworktime%%&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-worktype worktodo&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;b&amp;gt;Effort: &amp;lt;/b&amp;gt; &amp;lt;span class=&amp;quot;custombox-workeffort&amp;quot;&amp;gt;&amp;lt;%%workeffort%%&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-workmode worktodo&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;b&amp;gt;Mode: &amp;lt;/b&amp;gt; &amp;lt;span class=&amp;quot;custombox-workmode&amp;quot;&amp;gt;&amp;lt;%%workmode%%&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td class=&amp;quot;custombox-content worktodo&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;%%worktodo%%&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSS Element list===&lt;br /&gt;
&lt;br /&gt;
.custombox-worktodo (TABLE) : Overal container&lt;br /&gt;
&lt;br /&gt;
.custombox-header-thumb.worktodo (TD) : Left Icon container&lt;br /&gt;
&lt;br /&gt;
.custombox-header-caption.worktodo (TD) : Right caption container&lt;br /&gt;
&lt;br /&gt;
.custombox-content.worktodo (TD) : Message container&lt;br /&gt;
&lt;br /&gt;
.custombox-worktype.worktodo (TD) : Work type indicator container&lt;br /&gt;
&lt;br /&gt;
.custombox-workeffort.worktodo (TD) : Work effort indicator container&lt;br /&gt;
&lt;br /&gt;
.custombox-workmode.worktodo (TD) : Work mode indicator container&lt;br /&gt;
&lt;br /&gt;
.custombox-timeexpected.worktodo (TD) : Work type indicator container&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102394</id>
		<title>Customlabel module (Course elements)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102394"/>
		<updated>2013-01-12T15:50:06Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The customlabel module is a specialisation of the core label module to improve content writing in course main pages.&lt;br /&gt;
&lt;br /&gt;
The customlabel module proposes a set (extensible) of subtypes that match well known uses of the learning editorial activity. Subtypes are essentially small parts of content rendered through a predefined html template fo layout (internal renderer), applying a subtype specific small stylesheet (overridable) and using a small predefined dataset. &lt;br /&gt;
&lt;br /&gt;
When adding a new instance of a customlabel (called Course Element in the GUI) to a course, the activity settings usual form can change of aspect depending on the choosen subtype. The form will self-adapt to the requirements of the element internal information model.&lt;br /&gt;
&lt;br /&gt;
This plugin has two effects on content handling and management : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;productivity effect&#039;&#039;&#039; : teachers do not nead to bother with styling and aspect consistency, as they just need to enter the adequate payload into the presented fields.&lt;br /&gt;
* &#039;&#039;&#039;stability effect&#039;&#039;&#039; : Any of the course elements will be rendered and layout the same way, thus keeping the same graphical aspect whoever authors a course. This is a good point for an institutional LMS that needs to keep content consistant although deferred to many contributors of distinct IT addition skills.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Available archive : https://github.com/vfremaux/moodle-mod_customlabel&lt;br /&gt;
&lt;br /&gt;
Unpack the customlabel package into the &#039;mod&#039; directory of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Browse to the Administration -&amp;gt; Notification service to proceed to logical install.&lt;br /&gt;
&lt;br /&gt;
===Dependancies===&lt;br /&gt;
&lt;br /&gt;
To process accurately the multiple language content, a modified version of the multilang filter &lt;br /&gt;
is necessary to process nested spans in content.&lt;br /&gt;
&lt;br /&gt;
Get the filter MultilangEnhanced and install it along to customlabel.&lt;br /&gt;
&lt;br /&gt;
Disable the standard multilang filter and activate the enhanced filter (he enhanced filter will process all other lang selection strings as required).&lt;br /&gt;
&lt;br /&gt;
==Features summary==&lt;br /&gt;
&lt;br /&gt;
* High semantic level course elements&lt;br /&gt;
* Style preset by integrator/styler&lt;br /&gt;
* Role sensible elements can hide for some roles (role conditional content)&lt;br /&gt;
* Easy extensible subtype model&lt;br /&gt;
&lt;br /&gt;
==Using labels==&lt;br /&gt;
&lt;br /&gt;
Course elements are known as enhanced labels. So adding a course element is just like adding a label, and filling information parts.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;lt; 2.2, you&#039;ll find the &#039;Course element&#039; choice in the &amp;quot;Add a ressource&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;gt; 2.3, activities and resources have been unified.&lt;br /&gt;
&lt;br /&gt;
When displaying the setting form, check the first dropdown list for a subtype of label you need (See the above section about subtypes). Let the setting form reload with modified field list and complete the required information. you will notice that when changing the type of a customlabel, the content is not keeped, as there are low chances the semantic is consistant between distinct types.&lt;br /&gt;
&lt;br /&gt;
The label will layout the content in the course sequence.&lt;br /&gt;
&lt;br /&gt;
==Subtypes==&lt;br /&gt;
&lt;br /&gt;
===Generic bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Text| &amp;quot;Text&amp;quot;]]&lt;br /&gt;
* [[Course element : Comment Box| &amp;quot;Comment Box&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Pedagogical bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Important| &amp;quot;Important&amp;quot;]]&lt;br /&gt;
* [[Course element : Tips and tricks| &amp;quot;Tips and tricks&amp;quot;]]&lt;br /&gt;
* [[Course element : See Also| &amp;quot;See Also&amp;quot;]]&lt;br /&gt;
* [[Course element : Key points| &amp;quot;Key Points&amp;quot;]]&lt;br /&gt;
* [[Course element : Local goals| &amp;quot;Local goals&amp;quot;]]&lt;br /&gt;
* [[Course element : Example| &amp;quot;Example&#039;]]&lt;br /&gt;
* [[Course element : Work to do| &amp;quot;Work to do&amp;quot;]]&lt;br /&gt;
* [[Course element : Soluce| &amp;quot;Soluce&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Role conditioned bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Pedagogical Advice| &amp;quot;Pedagogical advice&amp;quot;]]&lt;br /&gt;
* [[Course element : Authoring Note| &amp;quot;Authoring Note&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Structural bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Course Heading| &amp;quot;Course Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Section Heading| &amp;quot;Section Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Sequence Heading| &amp;quot;Sequence Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Course Classifier| &amp;quot;Course Classifier&amp;quot;]]&lt;br /&gt;
* [[Course element : Course information| &amp;quot;Course Information&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Utilties bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Contact Point| &amp;quot;Contact Point&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
Customlabel is built to easily add new custom subtypes as required by the context and the pedagogical local project. Following documents give some reference upon how to build new types.&lt;br /&gt;
&lt;br /&gt;
[[Customlabel subtype development framework]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
Valery Fremaux (2008 original) valery.fremaux@gmail.com&lt;br /&gt;
&lt;br /&gt;
The customlabel content strategy was developped to serve the Governement Level Public Teacher PD program (Ministère de l&#039;Education Nationale) in France (called Pairformance) with Intel support.&lt;br /&gt;
&lt;br /&gt;
[[fr:Elements de cours]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102393</id>
		<title>Customlabel module (Course elements)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102393"/>
		<updated>2013-01-12T14:50:29Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The customlabel module is a specialisation of the core label module to improve content writing in course main pages.&lt;br /&gt;
&lt;br /&gt;
The customlabel module proposes a set (extensible) of subtypes that match well known uses of the learning editorial activity. Subtypes are essentially small parts of content rendered through a predefined html template fo layout (internal renderer), applying a subtype specific small stylesheet (overridable) and using a small predefined dataset. &lt;br /&gt;
&lt;br /&gt;
When adding a new instance of a customlabel (called Course Element in the GUI) to a course, the activity settings usual form can change of aspect depending on the choosen subtype. The form will self-adapt to the requirements of the element internal information model.&lt;br /&gt;
&lt;br /&gt;
This plugin has two effects on content handling and management : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;productivity effect&#039;&#039;&#039; : teachers do not nead to bother with styling and aspect consistency, as they just need to enter the adequate payload into the presented fields.&lt;br /&gt;
* &#039;&#039;&#039;stability effect&#039;&#039;&#039; : Any of the course elements will be rendered and layout the same way, thus keeping the same graphical aspect whoever authors a course. This is a good point for an institutional LMS that needs to keep content consistant although deferred to many contributors of distinct IT addition skills.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the customlabel package into the &#039;mod&#039; directory of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Browse to the Administration -&amp;gt; Notification service to proceed to logical install.&lt;br /&gt;
&lt;br /&gt;
===Dependancies===&lt;br /&gt;
&lt;br /&gt;
To process accurately the multiple language content, a modified version of the multilang filter &lt;br /&gt;
is necessary to process nested spans in content.&lt;br /&gt;
&lt;br /&gt;
Get the filter MultilangEnhanced and install it along to customlabel.&lt;br /&gt;
&lt;br /&gt;
Disable the standard multilang filter and activate the enhanced filter (he enhanced filter will process all other lang selection strings as required).&lt;br /&gt;
&lt;br /&gt;
==Features summary==&lt;br /&gt;
&lt;br /&gt;
* High semantic level course elements&lt;br /&gt;
* Style preset by integrator/styler&lt;br /&gt;
* Role sensible elements can hide for some roles (role conditional content)&lt;br /&gt;
* Easy extensible subtype model&lt;br /&gt;
&lt;br /&gt;
==Using labels==&lt;br /&gt;
&lt;br /&gt;
Course elements are known as enhanced labels. So adding a course element is just like adding a label, and filling information parts.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;lt; 2.2, you&#039;ll find the &#039;Course element&#039; choice in the &amp;quot;Add a ressource&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;gt; 2.3, activities and resources have been unified.&lt;br /&gt;
&lt;br /&gt;
When displaying the setting form, check the first dropdown list for a subtype of label you need (See the above section about subtypes). Let the setting form reload with modified field list and complete the required information. you will notice that when changing the type of a customlabel, the content is not keeped, as there are low chances the semantic is consistant between distinct types.&lt;br /&gt;
&lt;br /&gt;
The label will layout the content in the course sequence.&lt;br /&gt;
&lt;br /&gt;
==Subtypes==&lt;br /&gt;
&lt;br /&gt;
===Generic bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Text| &amp;quot;Text&amp;quot;]]&lt;br /&gt;
* [[Course element : Comment Box| &amp;quot;Comment Box&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Pedagogical bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Important| &amp;quot;Important&amp;quot;]]&lt;br /&gt;
* [[Course element : Tips and tricks| &amp;quot;Tips and tricks&amp;quot;]]&lt;br /&gt;
* [[Course element : See Also| &amp;quot;See Also&amp;quot;]]&lt;br /&gt;
* [[Course element : Key points| &amp;quot;Key Points&amp;quot;]]&lt;br /&gt;
* [[Course element : Local goals| &amp;quot;Local goals&amp;quot;]]&lt;br /&gt;
* [[Course element : Example| &amp;quot;Example&#039;]]&lt;br /&gt;
* [[Course element : Work to do| &amp;quot;Work to do&amp;quot;]]&lt;br /&gt;
* [[Course element : Soluce| &amp;quot;Soluce&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Role conditioned bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Pedagogical Advice| &amp;quot;Pedagogical advice&amp;quot;]]&lt;br /&gt;
* [[Course element : Authoring Note| &amp;quot;Authoring Note&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Structural bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Course Heading| &amp;quot;Course Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Section Heading| &amp;quot;Section Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Sequence Heading| &amp;quot;Sequence Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Course Classifier| &amp;quot;Course Classifier&amp;quot;]]&lt;br /&gt;
* [[Course element : Course information| &amp;quot;Course Information&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Utilties bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Contact Point| &amp;quot;Contact Point&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
Customlabel is built to easily add new custom subtypes as required by the context and the pedagogical local project. Following documents give some reference upon how to build new types.&lt;br /&gt;
&lt;br /&gt;
[[Customlabel subtype development framework]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
Valery Fremaux (2008 original) valery.fremaux@gmail.com&lt;br /&gt;
&lt;br /&gt;
The customlabel content strategy was developped to serve the Governement Level Public Teacher PD program (Ministère de l&#039;Education Nationale) in France (called Pairformance) with Intel support.&lt;br /&gt;
&lt;br /&gt;
[[fr:Elements de cours]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102392</id>
		<title>Customlabel module (Course elements)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Customlabel_module_(Course_elements)&amp;diff=102392"/>
		<updated>2013-01-12T14:49:09Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The customlabel module is a specialisation of the core label module to improve content writing in course main pages.&lt;br /&gt;
&lt;br /&gt;
The customlabel module proposes a set (extensible) of subtypes that match well known uses of the learning editorial activity. Subtypes are essentially small parts of content rendered through a predefined html template fo layout (internal renderer), applying a subtype specific small stylesheet (overridable) and using a small predefined dataset. &lt;br /&gt;
&lt;br /&gt;
When adding a new instance of a customlabel (called Course Element in the GUI) to a course, the activity settings usual form can change of aspect depending on the choosen subtype. The form will self-adapt to the requirements of the element internal information model.&lt;br /&gt;
&lt;br /&gt;
This plugin has two effects on content handling and management : &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;productivity effect&#039;&#039;&#039; : teachers do not nead to bother with styling and aspect consistency, as they just need to enter the adequate payload into the presented fields.&lt;br /&gt;
* &#039;&#039;&#039;stability effect&#039;&#039;&#039; : Any of the course elements will be rendered and layout the same way, thus keeping the same graphical aspect whoever authors a course. This is a good point for an institutional LMS that needs to keep content consistant although deferred to many contributors of distinct IT addition skills.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the customlabel package into the &#039;mod&#039; directory of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Browse to the Administration -&amp;gt; Notification service to proceed to logical install.&lt;br /&gt;
&lt;br /&gt;
===Dependancies===&lt;br /&gt;
&lt;br /&gt;
To process accurately the multiple language content, a modified version of the multilang filter &lt;br /&gt;
is necessary to process nested spans in content.&lt;br /&gt;
&lt;br /&gt;
Get the filter MultilangEnhanced and install it along to customlabel.&lt;br /&gt;
&lt;br /&gt;
Disable the standard multilang filter and activate the enhanced filter (he enhanced filter will process all other lang selection strings as required).&lt;br /&gt;
&lt;br /&gt;
==Features summary==&lt;br /&gt;
&lt;br /&gt;
* High semantic level course elements&lt;br /&gt;
* Style preset by integrator/styler&lt;br /&gt;
* Role sensible elements can hide for some roles (role conditional content)&lt;br /&gt;
* Easy extensible subtype model&lt;br /&gt;
&lt;br /&gt;
==Using labels==&lt;br /&gt;
&lt;br /&gt;
Course elements are known as enhanced labels. So adding a course element is just like adding a label, and filling information parts.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;lt; 2.2, you&#039;ll find the &#039;Course element&#039; choice in the &amp;quot;Add a ressource&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
On Moodle versions &amp;gt; 2.3, activities and resources have been unified.&lt;br /&gt;
&lt;br /&gt;
When displaying the setting form, check the first dropdown list for a subtype of label you need (See the above section about subtypes). Let the setting form reload with modified field list and complete the required information. you will notice that when changing the type of a customlabel, the content is not keeped, as there are low chances the semantic is consistant between distinct types.&lt;br /&gt;
&lt;br /&gt;
The label will layout the content in the course sequence.&lt;br /&gt;
&lt;br /&gt;
==Subtypes==&lt;br /&gt;
&lt;br /&gt;
===Generic bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Text| &amp;quot;Text&amp;quot;]]&lt;br /&gt;
* [[Course element : Comment Box| &amp;quot;Comment Box&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Pedagogical bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Important| &amp;quot;Important&amp;quot;]]&lt;br /&gt;
* [[Course element : Tips and tricks| &amp;quot;Tips and tricks&amp;quot;]]&lt;br /&gt;
* [[Course element : See Also| &amp;quot;See Also&amp;quot;]]&lt;br /&gt;
* [[Course element : Key points| &amp;quot;Key Points&amp;quot;]]&lt;br /&gt;
* [[Course element : Local goals| &amp;quot;Local goals&amp;quot;]]&lt;br /&gt;
* [[Course element : Example| &amp;quot;Example&#039;]]&lt;br /&gt;
* [[Course element : Work to do| &amp;quot;Work to do&amp;quot;]]&lt;br /&gt;
* [[Course element : Soluce| &amp;quot;Soluce&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Role conditioned bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Pedagogical Advice| &amp;quot;Pedagogical advice&amp;quot;]]&lt;br /&gt;
* [[Course element : Authoring Note| &amp;quot;Authoring Note&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Structural bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Course Heading| &amp;quot;Course Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Section Heading| &amp;quot;Section Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Sequence Heading| &amp;quot;Sequence Heading&amp;quot;]]&lt;br /&gt;
* [[Course element : Course Classifier| &amp;quot;Course Classifier&amp;quot;]]&lt;br /&gt;
* [[Course element : Course information| &amp;quot;Course Information&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
===Utilties bricks===&lt;br /&gt;
&lt;br /&gt;
* [[Course element : Contact Point| &amp;quot;Contact Point&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==Integrator corner==&lt;br /&gt;
&lt;br /&gt;
Customlabel is built to easily add new custom subtypes as required by the context and the pedagogical local project. Following documents give some reference upon how to build new types.&lt;br /&gt;
&lt;br /&gt;
[[Customlabel subtype development framework]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
Valery Fremaux (2008 original) valery.fremaux@gmail.com&lt;br /&gt;
&lt;br /&gt;
The customlabel content strategy was developped to serve the Governement Level Public Teacher PD program (Ministère de l&#039;Education Nationale) in France (called Pairformance) with Intel support.&lt;br /&gt;
&lt;br /&gt;
{{fr:Elements de cours}}&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102391</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102391"/>
		<updated>2013-01-12T13:53:43Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
Location: External database edit settings link in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; (once installed)&lt;br /&gt;
&lt;br /&gt;
==Plugin availability==&lt;br /&gt;
&lt;br /&gt;
Get the plugin archive in the [https://moodle.org/plugins/view.php?plugin=mod_customlabel | Moodle PLugin Database].&lt;br /&gt;
&lt;br /&gt;
==Documentation Location==&lt;br /&gt;
&lt;br /&gt;
The full documentation of this enrolment contributive plugin is in the [https://docs.moodle.org/22/en/Profile_field_enrolment | Moodle Documentation 2.2 volume ]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102390</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102390"/>
		<updated>2013-01-12T13:52:56Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
Location: External database edit settings link in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; (once installed)&lt;br /&gt;
&lt;br /&gt;
==Plugin availability==&lt;br /&gt;
&lt;br /&gt;
https://moodle.org/plugins/view.php?plugin=mod_customlabel&lt;br /&gt;
&lt;br /&gt;
==Documentation Location==&lt;br /&gt;
&lt;br /&gt;
The full documentation of this enrolment contributive plugin is in the [https://docs.moodle.org/22/en/Profile_field_enrolment | Moodle Documentation 2.2 volume ]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102389</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102389"/>
		<updated>2013-01-12T12:24:54Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The full documentation of this enrolment contributive plugin is in the [https://docs.moodle.org/22/en/Profile_field_enrolment | Moodle Documentation 2.2 volume ]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102388</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102388"/>
		<updated>2013-01-12T12:24:39Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The full documentation of this enrolment contributive plugin is in the [https://docs.moodle.org/22/en/Profile_field_enrolment| Moodle Documentation 2.2 volume ]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102387</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102387"/>
		<updated>2013-01-12T12:24:17Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The full documentation of this enrolment contributive plugin is in the [https://docs.moodle.org/22/en/Profile_field_enrolment| Moodle Documentation 2.2 volume]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102386</id>
		<title>Profile field enrolment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Profile_field_enrolment&amp;diff=102386"/>
		<updated>2013-01-12T12:23:49Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: Created page with &amp;quot;The full documentation of this enrolment contributive plugin is in the  Moodle Documentation 2.2 volume&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The full documentation of this enrolment contributive plugin is in the [[https://docs.moodle.org/22/en/Profile_field_enrolment| Moodle Documentation 2.2 volume]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102355</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102355"/>
		<updated>2012-12-24T14:16:48Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Question elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Configuration fields==&lt;br /&gt;
&lt;br /&gt;
===Question mark (common question model)===&lt;br /&gt;
&lt;br /&gt;
How many marks the question will add to global quiz score.&lt;br /&gt;
&lt;br /&gt;
===General feedback (common question model)===&lt;br /&gt;
&lt;br /&gt;
A feedback witch is given for any result of the question&lt;br /&gt;
&lt;br /&gt;
===Nunber of sets===&lt;br /&gt;
&lt;br /&gt;
The number of answers in the output set. Note that when you increase this number, you may store the question once and edit back to get the question result mapping lists refreshed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO : find a way to dynamically refresh those lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Set &amp;lt;n&amp;gt; name===&lt;br /&gt;
&lt;br /&gt;
The answer option label for this choice.&lt;br /&gt;
&lt;br /&gt;
===Numbering style===&lt;br /&gt;
&lt;br /&gt;
The style of question item numbering as displayed in the quiz panel.&lt;br /&gt;
&lt;br /&gt;
===Shuffle set elements===&lt;br /&gt;
&lt;br /&gt;
If enabled, the order of the questions will be randomized at each new attempt.&lt;br /&gt;
&lt;br /&gt;
==Feedbacks==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_feedbacks.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Question elements==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_elements.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Element===&lt;br /&gt;
&lt;br /&gt;
this is the text of the question item appearing on the left.&lt;br /&gt;
&lt;br /&gt;
===Correct Answer===&lt;br /&gt;
&lt;br /&gt;
The expected set number for this element.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:Splitset_elements.jpg&amp;diff=102354</id>
		<title>File:Splitset elements.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:Splitset_elements.jpg&amp;diff=102354"/>
		<updated>2012-12-24T14:15:34Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102353</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102353"/>
		<updated>2012-12-24T14:15:22Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Question elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Configuration fields==&lt;br /&gt;
&lt;br /&gt;
===Question mark (common question model)===&lt;br /&gt;
&lt;br /&gt;
How many marks the question will add to global quiz score.&lt;br /&gt;
&lt;br /&gt;
===General feedback (common question model)===&lt;br /&gt;
&lt;br /&gt;
A feedback witch is given for any result of the question&lt;br /&gt;
&lt;br /&gt;
===Nunber of sets===&lt;br /&gt;
&lt;br /&gt;
The number of answers in the output set. Note that when you increase this number, you may store the question once and edit back to get the question result mapping lists refreshed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO : find a way to dynamically refresh those lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Set &amp;lt;n&amp;gt; name===&lt;br /&gt;
&lt;br /&gt;
The answer option label for this choice.&lt;br /&gt;
&lt;br /&gt;
===Numbering style===&lt;br /&gt;
&lt;br /&gt;
The style of question item numbering as displayed in the quiz panel.&lt;br /&gt;
&lt;br /&gt;
===Shuffle set elements===&lt;br /&gt;
&lt;br /&gt;
If enabled, the order of the questions will be randomized at each new attempt.&lt;br /&gt;
&lt;br /&gt;
==Feedbacks==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_feedbacks.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Question elements==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_elements.jpg|||center]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102352</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102352"/>
		<updated>2012-12-24T14:15:11Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Feedbacks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Configuration fields==&lt;br /&gt;
&lt;br /&gt;
===Question mark (common question model)===&lt;br /&gt;
&lt;br /&gt;
How many marks the question will add to global quiz score.&lt;br /&gt;
&lt;br /&gt;
===General feedback (common question model)===&lt;br /&gt;
&lt;br /&gt;
A feedback witch is given for any result of the question&lt;br /&gt;
&lt;br /&gt;
===Nunber of sets===&lt;br /&gt;
&lt;br /&gt;
The number of answers in the output set. Note that when you increase this number, you may store the question once and edit back to get the question result mapping lists refreshed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO : find a way to dynamically refresh those lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Set &amp;lt;n&amp;gt; name===&lt;br /&gt;
&lt;br /&gt;
The answer option label for this choice.&lt;br /&gt;
&lt;br /&gt;
===Numbering style===&lt;br /&gt;
&lt;br /&gt;
The style of question item numbering as displayed in the quiz panel.&lt;br /&gt;
&lt;br /&gt;
===Shuffle set elements===&lt;br /&gt;
&lt;br /&gt;
If enabled, the order of the questions will be randomized at each new attempt.&lt;br /&gt;
&lt;br /&gt;
==Feedbacks==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_feedbacks.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Question elements==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_elements.jpg]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:Splitset_feedbacks.jpg&amp;diff=102351</id>
		<title>File:Splitset feedbacks.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:Splitset_feedbacks.jpg&amp;diff=102351"/>
		<updated>2012-12-24T14:14:55Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102350</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102350"/>
		<updated>2012-12-24T14:14:40Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Configuration fields==&lt;br /&gt;
&lt;br /&gt;
===Question mark (common question model)===&lt;br /&gt;
&lt;br /&gt;
How many marks the question will add to global quiz score.&lt;br /&gt;
&lt;br /&gt;
===General feedback (common question model)===&lt;br /&gt;
&lt;br /&gt;
A feedback witch is given for any result of the question&lt;br /&gt;
&lt;br /&gt;
===Nunber of sets===&lt;br /&gt;
&lt;br /&gt;
The number of answers in the output set. Note that when you increase this number, you may store the question once and edit back to get the question result mapping lists refreshed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO : find a way to dynamically refresh those lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Set &amp;lt;n&amp;gt; name===&lt;br /&gt;
&lt;br /&gt;
The answer option label for this choice.&lt;br /&gt;
&lt;br /&gt;
===Numbering style===&lt;br /&gt;
&lt;br /&gt;
The style of question item numbering as displayed in the quiz panel.&lt;br /&gt;
&lt;br /&gt;
===Shuffle set elements===&lt;br /&gt;
&lt;br /&gt;
If enabled, the order of the questions will be randomized at each new attempt.&lt;br /&gt;
&lt;br /&gt;
==Feedbacks==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_feedbacks.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Question elements==&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_elements.jpg]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102349</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102349"/>
		<updated>2012-12-24T14:12:20Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Configuration fields==&lt;br /&gt;
&lt;br /&gt;
===Question mark (common question model)===&lt;br /&gt;
&lt;br /&gt;
How many marks the question will add to global quiz score.&lt;br /&gt;
&lt;br /&gt;
===General feedback (common question model)===&lt;br /&gt;
&lt;br /&gt;
A feedback witch is given for any result of the question&lt;br /&gt;
&lt;br /&gt;
===Nunber of sets===&lt;br /&gt;
&lt;br /&gt;
The number of answers in the output set. Note that when you increase this number, you may store the question once and edit back to get the question result mapping lists refreshed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO : find a way to dynamically refresh those lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Set &amp;lt;n&amp;gt; name===&lt;br /&gt;
&lt;br /&gt;
The answer option label for this choice.&lt;br /&gt;
&lt;br /&gt;
===Numbering style===&lt;br /&gt;
&lt;br /&gt;
The style of question item numbering as displayed in the quiz panel.&lt;br /&gt;
&lt;br /&gt;
===Shuffle set elements===&lt;br /&gt;
&lt;br /&gt;
If enabled, the order of the questions will be randomized at each new attempt.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=File:Splitset_configuration.jpg&amp;diff=102348</id>
		<title>File:Splitset configuration.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=File:Splitset_configuration.jpg&amp;diff=102348"/>
		<updated>2012-12-24T14:06:16Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102347</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102347"/>
		<updated>2012-12-24T14:05:56Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
This is the specific part of the question setting relative to the Splitset feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configuration.jpg|||center]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102346</id>
		<title>Splitset question configuration screen</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_configuration_screen&amp;diff=102346"/>
		<updated>2012-12-24T13:35:47Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: Created page with &amp;quot; back to index  Image:Splitset_configugation.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Splitset_question_type| back to index]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Splitset_configugation.jpg]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102345</id>
		<title>Splitset question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102345"/>
		<updated>2012-12-24T13:35:12Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Status==&lt;br /&gt;
&lt;br /&gt;
This code is a contributed code.&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
The split set question type implements a quiz question based on &lt;br /&gt;
list splitting activity.&lt;br /&gt;
&lt;br /&gt;
You may define from 2 to 5 output sets where a list of items can&lt;br /&gt;
be split in.&lt;br /&gt;
&lt;br /&gt;
the activity consists in defining which output suits to each item, &lt;br /&gt;
collecting a fraction of the maximum grade for each correct subanswer. &lt;br /&gt;
&lt;br /&gt;
Typical use with 2 sets : &lt;br /&gt;
&lt;br /&gt;
A multiple true/false question array.&lt;br /&gt;
A allowed/forbidden quiz with multiple actions proposal&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the archive within the question/type directory of Moodle and run the administration notifications.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
[[Splitset question configuration screen]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
This question type was programmed vy Valery Fremaux for the Institut Iperia (homecare workers professional developement organization)&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102344</id>
		<title>Splitset question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102344"/>
		<updated>2012-12-24T13:34:25Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The split set question type implements a quiz question based on &lt;br /&gt;
list splitting activity.&lt;br /&gt;
&lt;br /&gt;
You may define from 2 to 5 output sets where a list of items can&lt;br /&gt;
be split in.&lt;br /&gt;
&lt;br /&gt;
the activity consists in defining which output suits to each item, &lt;br /&gt;
collecting a fraction of the maximum grade for each correct subanswer. &lt;br /&gt;
&lt;br /&gt;
Typical use with 2 sets : &lt;br /&gt;
&lt;br /&gt;
A multiple true/false question array.&lt;br /&gt;
A allowed/forbidden quiz with multiple actions proposal&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the archive within the question/type directory of Moodle and run the administration notifications.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
[[Splitset question configuration screen]]&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
This question type was programmed vy Valery Fremaux for the Institut Iperia (homecare workers professional developement organization)&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102343</id>
		<title>Splitset question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102343"/>
		<updated>2012-12-24T13:33:51Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The split set question type implements a quiz question based on &lt;br /&gt;
list splitting activity.&lt;br /&gt;
&lt;br /&gt;
You may define from 2 to 5 output sets where a list of items can&lt;br /&gt;
be split in.&lt;br /&gt;
&lt;br /&gt;
the activity consists in defining which output suits to each item, &lt;br /&gt;
collecting a fraction of the maximum grade for each correct subanswer. &lt;br /&gt;
&lt;br /&gt;
Typical use with 2 sets : &lt;br /&gt;
&lt;br /&gt;
A multiple true/false question array.&lt;br /&gt;
A allowed/forbidden quiz with multiple actions proposal&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the archive within the question/type directory of Moodle and run the administration notifications.&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
This question type was programmed vy Valery Fremaux for the Institut Iperia (homecare workers professional developement organization)&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102342</id>
		<title>Splitset question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Splitset_question_type&amp;diff=102342"/>
		<updated>2012-12-24T13:32:55Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: Created page with &amp;quot;==Summary==  The split set question type implements a quiz question based on  list splitting activity.  You may define from 2 to 5 output sets where a list of items can be split ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The split set question type implements a quiz question based on &lt;br /&gt;
list splitting activity.&lt;br /&gt;
&lt;br /&gt;
You may define from 2 to 5 output sets where a list of items can&lt;br /&gt;
be split in.&lt;br /&gt;
&lt;br /&gt;
the activity consists in defining which output suits to each item, &lt;br /&gt;
collecting a fraction of the maximum grade for each correct subanswer. &lt;br /&gt;
&lt;br /&gt;
Typical use with 2 sets : &lt;br /&gt;
&lt;br /&gt;
A multiple true/false question array.&lt;br /&gt;
A allowed/forbidden quiz with multiple actions proposal&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Unpack the archive within the question/type directory of Moodle and run the administration notifications.&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Super-administration&amp;diff=102338</id>
		<title>Super-administration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Super-administration&amp;diff=102338"/>
		<updated>2012-12-21T23:28:28Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VMoodle_Block|Back to index]]&lt;br /&gt;
&lt;br /&gt;
==General principles for MNET super-administration==&lt;br /&gt;
&lt;br /&gt;
MNET super-administration is a feature allowing to massively play some administration commands on a set of virtualized Moodle platforms. The commands are transmitted to each nodes using a dedicated MNET function attached to the VMoodle block scope. The emitting platform should subscribe to the super-administration service, receiving nodes should publish the super-administration service.&lt;br /&gt;
&lt;br /&gt;
The MNET super-administration will provide a unique process for executing any network administration command : &lt;br /&gt;
&lt;br /&gt;
# Building the command : Mostly SQL orders, build manually or through some command preset.&lt;br /&gt;
# Choosing targets.&lt;br /&gt;
# Command execution and getting results.&lt;br /&gt;
&lt;br /&gt;
Tip !! : command and targets are stored in session, thus it will be easy to play the same command on another target set, or keeping the target set and making a new command on it.&lt;br /&gt;
&lt;br /&gt;
Super-administration main screen provides several command sets. As super-administration is a fully extensible architeture, developpers and integrators may easily add command blocks and define new command templates.&lt;br /&gt;
&lt;br /&gt;
===Advanced mode===&lt;br /&gt;
&lt;br /&gt;
The advanced mode will allow an administator to write a full SQL query to be played on all target moodles. Note that the SQL must be independant of local context to have chancs to proceed with success.&lt;br /&gt;
&lt;br /&gt;
[[fr:Super-administration]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Super-administration&amp;diff=102337</id>
		<title>Super-administration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Super-administration&amp;diff=102337"/>
		<updated>2012-12-21T23:28:15Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: Created page with &amp;quot;Back to index  ==General principles for MNET super-administration==  MNET super-administration is a feature allowing to massively play some administration commands on...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VMoodle|Back to index]]&lt;br /&gt;
&lt;br /&gt;
==General principles for MNET super-administration==&lt;br /&gt;
&lt;br /&gt;
MNET super-administration is a feature allowing to massively play some administration commands on a set of virtualized Moodle platforms. The commands are transmitted to each nodes using a dedicated MNET function attached to the VMoodle block scope. The emitting platform should subscribe to the super-administration service, receiving nodes should publish the super-administration service.&lt;br /&gt;
&lt;br /&gt;
The MNET super-administration will provide a unique process for executing any network administration command : &lt;br /&gt;
&lt;br /&gt;
# Building the command : Mostly SQL orders, build manually or through some command preset.&lt;br /&gt;
# Choosing targets.&lt;br /&gt;
# Command execution and getting results.&lt;br /&gt;
&lt;br /&gt;
Tip !! : command and targets are stored in session, thus it will be easy to play the same command on another target set, or keeping the target set and making a new command on it.&lt;br /&gt;
&lt;br /&gt;
Super-administration main screen provides several command sets. As super-administration is a fully extensible architeture, developpers and integrators may easily add command blocks and define new command templates.&lt;br /&gt;
&lt;br /&gt;
===Advanced mode===&lt;br /&gt;
&lt;br /&gt;
The advanced mode will allow an administator to write a full SQL query to be played on all target moodles. Note that the SQL must be independant of local context to have chancs to proceed with success.&lt;br /&gt;
&lt;br /&gt;
[[fr:Super-administration]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102336</id>
		<title>Moodle Instance Management</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102336"/>
		<updated>2012-12-21T23:27:15Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VMoodle_Block|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The infrastructure for Moodle instances management and deployment allows an easy management of multiple virtualized Moodle instances within the same physical hosting.&lt;br /&gt;
&lt;br /&gt;
==Virtualization principles==&lt;br /&gt;
&lt;br /&gt;
Moodle virtuazlization is simple. It mostly consists of no longer relying on the physical configration file config.php for absolute initial paths and DB definition, but dynamically building a set of configuration values from a table in the database. The set of main configuration parameter values will be chosen depending on the domain name (virtual host). &lt;br /&gt;
&lt;br /&gt;
For integrating the whole virtualization process within Moodle itself, the virtualization table is held by a Moodle block.&lt;br /&gt;
&lt;br /&gt;
==Virtualization process==&lt;br /&gt;
&lt;br /&gt;
The overall lifecycle of a virtualized Moodle array is usually as follows: &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
The whole set of used domain names must be available and pointed to the same DocumentRoot in Apache. This also can be obtained using a wildcard DNS mapping pointing to such a Virtual Host setting:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;&lt;br /&gt;
      ServerName mastermoodle.mydomain.com&lt;br /&gt;
      ServerAlias *.mydomain.com&lt;br /&gt;
      ...&lt;br /&gt;
   &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once these prerequisites are available, and the PHP volume correctly accessible:  &lt;br /&gt;
&lt;br /&gt;
# proceed to the installation of the main Moodle instance (Moodle master, bound to standard configuration).&lt;br /&gt;
# install the VMoodle block as a standard block&lt;br /&gt;
# place the VMoodle configuration hook in standard config&lt;br /&gt;
# configure the master Moodle, insert generic content, make common settings&lt;br /&gt;
# IMPORTANT : place an instance of a VMoodle block somewhere so you can browse to VMoodle administration!&lt;br /&gt;
&lt;br /&gt;
You now should have this somewhere in your Moodle: &lt;br /&gt;
&lt;br /&gt;
[[image:Vmoodle_added.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
Note: an adequate location is in an administration block in administration pages, but you may also use a special &amp;quot;administration&amp;quot; course in your Moodle.&lt;br /&gt;
&lt;br /&gt;
===Deploying virtual instances from a physically setup Moodle===&lt;br /&gt;
&lt;br /&gt;
# make a first snapshot of the master moodle. This will store a replicable backup of the whole platform. &lt;br /&gt;
# deploy a first virtual node&lt;br /&gt;
# setup and tune the first virtual node&lt;br /&gt;
# snapshot the first vitual node as node template&lt;br /&gt;
# deploy any amount of nodes using this template.&lt;br /&gt;
&lt;br /&gt;
The following image gives an idea of the virtualization benefit.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle architecture.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==VMoodle Configuration==&lt;br /&gt;
&lt;br /&gt;
To configure the VMoodle block, browse to the VMoodle block settings in Administration menu:&lt;br /&gt;
&lt;br /&gt;
#  Define a naming schema for presetting the platform deployment form.&lt;br /&gt;
#  Define information for connection to database.&lt;br /&gt;
#  Define information for setting up MNET.&lt;br /&gt;
#  Proceed to MNET peer key renewal.&lt;br /&gt;
&lt;br /&gt;
1.	Defining schema&lt;br /&gt;
&lt;br /&gt;
The naming schema preset allows an easy setup of master information defining a new Moodle platform. The purpose of this automation is to speed up the setup of a new Moodle instance, reduce error when entering information, and promote a consistent naming ruleset for defining multiple Moodle hosts.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p1.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
Schema fields:&lt;br /&gt;
&lt;br /&gt;
  o Automate schema : Tells VMoodle to preset the deployment form.&lt;br /&gt;
  o Virtual host: Gives the pattern for generating new Moodle host names.&lt;br /&gt;
  o Database type: Preset the type of database used (MySQL or Postgres).&lt;br /&gt;
  o Database host: Preset value for the database hostname.&lt;br /&gt;
  o Database login: Preset value for the database user login.&lt;br /&gt;
  o Database password: Preset value for the database user password.&lt;br /&gt;
  o Database name: Preset a generation pattern for naming the database.&lt;br /&gt;
  o Table prefix: Preset value for the table name prefix.&lt;br /&gt;
  o Persistant connection: Preset value. Persistant connections will not &lt;br /&gt;
    close at end of the PHP script and be reused.&lt;br /&gt;
  o Moodledata path: Preset the generation pattern for the Moodledata path.&lt;br /&gt;
&lt;br /&gt;
When a schema is automated, entering the platform token will automatically provide adequate name to host, database and moodle data path. &lt;br /&gt;
&lt;br /&gt;
To setup patterns, use the &amp;lt;%%INSTANCE%%&amp;gt; tag within the pattern to be replaced with the host token.&lt;br /&gt;
&lt;br /&gt;
Example : &lt;br /&gt;
&lt;br /&gt;
If you set the hostname pattern such as :&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://&amp;lt;%%INSTANCE%%&amp;gt;.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you enter a token with value &amp;quot;moodle1&amp;quot;, than the deployment form will replace the pattern with the final value : &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://moodle1.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same is performed with the database name field and the Moodledata path. &lt;br /&gt;
&lt;br /&gt;
2.	Setting up the path to database executables&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p3.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
You may only provide system path of executable for the database you want to use (MySQL or Postgres)&lt;br /&gt;
&lt;br /&gt;
Path to executable will surely have to be double quoted.&lt;br /&gt;
&lt;br /&gt;
  o Path to mysql terminal : full path to the mysql (Linux) command or mysql.exe (Windows)&lt;br /&gt;
  o Path to mysql dump : full path to mysqldump (Linux) or mysqldump.exe (Windows)&lt;br /&gt;
  o Path to postgres terminal : full path to psql (Linux) psql.exe (Windows)&lt;br /&gt;
  o Path to postgres dump : full path to pg_dump (Linux) or pg_dump.exe (Windows)&lt;br /&gt;
&lt;br /&gt;
Configuration note:&lt;br /&gt;
&lt;br /&gt;
On Linux common location for mySQL is:&lt;br /&gt;
&lt;br /&gt;
   /usr/bin/mysql&lt;br /&gt;
   /usr/bin/mysqldump&lt;br /&gt;
&lt;br /&gt;
For PostGreSQL :&lt;br /&gt;
&lt;br /&gt;
You may get client executables by installing the client packages for PostGreSQL. &lt;br /&gt;
&lt;br /&gt;
   /usr/bin/psql&lt;br /&gt;
   /usr/bin/pg_dump&lt;br /&gt;
&lt;br /&gt;
On PostGreSQL you might use a superuser setup in the PGPASS file to allow complete execution of PG commands in a non interactive mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.	Configuring MNET.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p2.jpg|||center]]&lt;br /&gt;
 &lt;br /&gt;
4.      MNET keys automated renewal.&lt;br /&gt;
&lt;br /&gt;
VMoodle is often used for Moodle arrays operating the same teaching environment, thus making big use of MNET functions.&lt;br /&gt;
The distributed strategy of Moodle will call for developing XML-RPC adds-on for enhancing the overall behaviour. Although Moodle maintains key consistency when users roam from one Moodle to another (using jump/land mechanism), this is not the case for XML-RPC MNET calls. the risk of having broken services every 28 days is high.&lt;br /&gt;
&lt;br /&gt;
This section setup an automated key renewal within a VMoodle network so there is no more fear to get web services broken by key loss. When configuring this feature, each Moodle getting awareness of his key being obsolete will renew it and force all peers to accept this renewed key. The whole VMoodle MNET network will auto-repair continuously his consistency.&lt;br /&gt;
&lt;br /&gt;
  o Autorenew enable: enables or disables the key autorenewal.&lt;br /&gt;
  o Key obsolecence look forward delay : a delay og forwarding the Moodle cron will detect&lt;br /&gt;
    that his own MNET key is about to fall out of calendar. &lt;br /&gt;
  o Time for renewal: the time the renewal will be proceeded after obsolescence look forward &lt;br /&gt;
    has been triggered. &lt;br /&gt;
&lt;br /&gt;
Using the last parameter, you will setup a renewal time in a suitable time range so minimizing risk of users being bothered during key exchange. &lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p4.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Virtualizing moodles: the starting point==&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_start_point.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
The above picture shows the VMoodle administration GUI just after the first Moodle host (Master Moodle) has been installed.&lt;br /&gt;
&lt;br /&gt;
At this time, the only possibility you will have is to snapshot the Master Moodle for further deployment. This makes a stored copy of all the Master Moodle database and stored files which other Moodle can be deployed from. You can control &lt;br /&gt;
that the snapshot has succeeded in the &amp;quot;moodledata/vmoodle&amp;quot; directory: you should have two directories (one for SQL capture and one for all moodledata files).&lt;br /&gt;
&lt;br /&gt;
The snapshot procedure is a 3 step wizard.&lt;br /&gt;
&lt;br /&gt;
1st step: Setting up the storage directories.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_1.png|||center]]&lt;br /&gt;
&lt;br /&gt;
2nd step: Dumping the database.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_2.png|||center]]&lt;br /&gt;
&lt;br /&gt;
3rd step: Getting a copy of moodledata.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_3.png|||center]]&lt;br /&gt;
&lt;br /&gt;
Once you get the first Moodle template stored, you will be able to make your first Virtual Moodle.&lt;br /&gt;
&lt;br /&gt;
==Define a new VMoodle instance==&lt;br /&gt;
&lt;br /&gt;
To deploy a new Moodle instance, enter with an admin account to your Master Moodle and browse to the location of your VMoodle block. Click on the &#039;Administrate&#039; link.&lt;br /&gt;
&lt;br /&gt;
Click upon &amp;quot;Define a new virtual platform&amp;quot; in the &amp;quot;Pool Management&amp;quot; screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_1.png]]&lt;br /&gt;
&lt;br /&gt;
First form part:&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_3.png]]&lt;br /&gt;
&lt;br /&gt;
Fields:&lt;br /&gt;
&lt;br /&gt;
 o Name: Usual name of the new Moodle. Will be setup in the site course parameters.&lt;br /&gt;
 o Shortname: Shortname for the new host. Use a token here that will change the &lt;br /&gt;
   schema automated patterns if enabled.&lt;br /&gt;
 o Description : A description that will be added to Moodle site course.&lt;br /&gt;
 o Host: If schema is automated, you should not have to change this.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_4.png]]&lt;br /&gt;
&lt;br /&gt;
 o Database type: Change the type as desired (MySQL / PostgreSQL)&lt;br /&gt;
 o Database host: Change here for local reasons.&lt;br /&gt;
 o Database user login: Login d&#039;accès à la base de données.&lt;br /&gt;
 o Database user password: Password d&#039;accès à la base de données.&lt;br /&gt;
 o Database name: You may not have to change this if schema is automated. Note that &lt;br /&gt;
   this database MUST NOT be created (Mysql).&lt;br /&gt;
 o Table prefix.&lt;br /&gt;
 o connection persistance: Change here for local reasons.&lt;br /&gt;
&lt;br /&gt;
Most of those fields are already setup from your default settings.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_5.png]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Gestion des instances]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102335</id>
		<title>Moodle Instance Management</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102335"/>
		<updated>2012-12-21T23:26:59Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* Deploying virtual instances from a physically setup Moodle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VMoodle_Block|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The infrastructure for Moodle instances management and deployment allows an easy management of multiple virtualized Moodle instances within the same physical hosting.&lt;br /&gt;
&lt;br /&gt;
==Virtualization principles==&lt;br /&gt;
&lt;br /&gt;
Moodle virtuazlization is simple. It mostly consists of no longer relying on the physical configration file config.php for absolute initial paths and DB definition, but dynamically building a set of configuration values from a table in the database. The set of main configuration parameter values will be chosen depending on the domain name (virtual host). &lt;br /&gt;
&lt;br /&gt;
For integrating the whole virtualization process within Moodle itself, the virtualization table is held by a Moodle block.&lt;br /&gt;
&lt;br /&gt;
==Virtualization process==&lt;br /&gt;
&lt;br /&gt;
The overall lifecycle of a virtualized Moodle array is usually as follows: &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
The whole set of used domain names must be available and pointed to the same DocumentRoot in Apache. This also can be obtained using a wildcard DNS mapping pointing to such a Virtual Host setting:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;&lt;br /&gt;
      ServerName mastermoodle.mydomain.com&lt;br /&gt;
      ServerAlias *.mydomain.com&lt;br /&gt;
      ...&lt;br /&gt;
   &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once these prerequisites are available, and the PHP volume correctly accessible:  &lt;br /&gt;
&lt;br /&gt;
# proceed to the installation of the main Moodle instance (Moodle master, bound to standard configuration).&lt;br /&gt;
# install the VMoodle block as a standard block&lt;br /&gt;
# place the VMoodle configuration hook in standard config&lt;br /&gt;
# configure the master Moodle, insert generic content, make common settings&lt;br /&gt;
# IMPORTANT : place an instance of a VMoodle block somewhere so you can browse to VMoodle administration!&lt;br /&gt;
&lt;br /&gt;
You now should have this somewhere in your Moodle: &lt;br /&gt;
&lt;br /&gt;
[[image:Vmoodle_added.jpg]]&lt;br /&gt;
&lt;br /&gt;
Note: an adequate location is in an administration block in administration pages, but you may also use a special &amp;quot;administration&amp;quot; course in your Moodle.&lt;br /&gt;
&lt;br /&gt;
===Deploying virtual instances from a physically setup Moodle===&lt;br /&gt;
&lt;br /&gt;
# make a first snapshot of the master moodle. This will store a replicable backup of the whole platform. &lt;br /&gt;
# deploy a first virtual node&lt;br /&gt;
# setup and tune the first virtual node&lt;br /&gt;
# snapshot the first vitual node as node template&lt;br /&gt;
# deploy any amount of nodes using this template.&lt;br /&gt;
&lt;br /&gt;
The following image gives an idea of the virtualization benefit.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle architecture.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==VMoodle Configuration==&lt;br /&gt;
&lt;br /&gt;
To configure the VMoodle block, browse to the VMoodle block settings in Administration menu:&lt;br /&gt;
&lt;br /&gt;
#  Define a naming schema for presetting the platform deployment form.&lt;br /&gt;
#  Define information for connection to database.&lt;br /&gt;
#  Define information for setting up MNET.&lt;br /&gt;
#  Proceed to MNET peer key renewal.&lt;br /&gt;
&lt;br /&gt;
1.	Defining schema&lt;br /&gt;
&lt;br /&gt;
The naming schema preset allows an easy setup of master information defining a new Moodle platform. The purpose of this automation is to speed up the setup of a new Moodle instance, reduce error when entering information, and promote a consistent naming ruleset for defining multiple Moodle hosts.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p1.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
Schema fields:&lt;br /&gt;
&lt;br /&gt;
  o Automate schema : Tells VMoodle to preset the deployment form.&lt;br /&gt;
  o Virtual host: Gives the pattern for generating new Moodle host names.&lt;br /&gt;
  o Database type: Preset the type of database used (MySQL or Postgres).&lt;br /&gt;
  o Database host: Preset value for the database hostname.&lt;br /&gt;
  o Database login: Preset value for the database user login.&lt;br /&gt;
  o Database password: Preset value for the database user password.&lt;br /&gt;
  o Database name: Preset a generation pattern for naming the database.&lt;br /&gt;
  o Table prefix: Preset value for the table name prefix.&lt;br /&gt;
  o Persistant connection: Preset value. Persistant connections will not &lt;br /&gt;
    close at end of the PHP script and be reused.&lt;br /&gt;
  o Moodledata path: Preset the generation pattern for the Moodledata path.&lt;br /&gt;
&lt;br /&gt;
When a schema is automated, entering the platform token will automatically provide adequate name to host, database and moodle data path. &lt;br /&gt;
&lt;br /&gt;
To setup patterns, use the &amp;lt;%%INSTANCE%%&amp;gt; tag within the pattern to be replaced with the host token.&lt;br /&gt;
&lt;br /&gt;
Example : &lt;br /&gt;
&lt;br /&gt;
If you set the hostname pattern such as :&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://&amp;lt;%%INSTANCE%%&amp;gt;.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you enter a token with value &amp;quot;moodle1&amp;quot;, than the deployment form will replace the pattern with the final value : &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://moodle1.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same is performed with the database name field and the Moodledata path. &lt;br /&gt;
&lt;br /&gt;
2.	Setting up the path to database executables&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p3.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
You may only provide system path of executable for the database you want to use (MySQL or Postgres)&lt;br /&gt;
&lt;br /&gt;
Path to executable will surely have to be double quoted.&lt;br /&gt;
&lt;br /&gt;
  o Path to mysql terminal : full path to the mysql (Linux) command or mysql.exe (Windows)&lt;br /&gt;
  o Path to mysql dump : full path to mysqldump (Linux) or mysqldump.exe (Windows)&lt;br /&gt;
  o Path to postgres terminal : full path to psql (Linux) psql.exe (Windows)&lt;br /&gt;
  o Path to postgres dump : full path to pg_dump (Linux) or pg_dump.exe (Windows)&lt;br /&gt;
&lt;br /&gt;
Configuration note:&lt;br /&gt;
&lt;br /&gt;
On Linux common location for mySQL is:&lt;br /&gt;
&lt;br /&gt;
   /usr/bin/mysql&lt;br /&gt;
   /usr/bin/mysqldump&lt;br /&gt;
&lt;br /&gt;
For PostGreSQL :&lt;br /&gt;
&lt;br /&gt;
You may get client executables by installing the client packages for PostGreSQL. &lt;br /&gt;
&lt;br /&gt;
   /usr/bin/psql&lt;br /&gt;
   /usr/bin/pg_dump&lt;br /&gt;
&lt;br /&gt;
On PostGreSQL you might use a superuser setup in the PGPASS file to allow complete execution of PG commands in a non interactive mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.	Configuring MNET.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p2.jpg|||center]]&lt;br /&gt;
 &lt;br /&gt;
4.      MNET keys automated renewal.&lt;br /&gt;
&lt;br /&gt;
VMoodle is often used for Moodle arrays operating the same teaching environment, thus making big use of MNET functions.&lt;br /&gt;
The distributed strategy of Moodle will call for developing XML-RPC adds-on for enhancing the overall behaviour. Although Moodle maintains key consistency when users roam from one Moodle to another (using jump/land mechanism), this is not the case for XML-RPC MNET calls. the risk of having broken services every 28 days is high.&lt;br /&gt;
&lt;br /&gt;
This section setup an automated key renewal within a VMoodle network so there is no more fear to get web services broken by key loss. When configuring this feature, each Moodle getting awareness of his key being obsolete will renew it and force all peers to accept this renewed key. The whole VMoodle MNET network will auto-repair continuously his consistency.&lt;br /&gt;
&lt;br /&gt;
  o Autorenew enable: enables or disables the key autorenewal.&lt;br /&gt;
  o Key obsolecence look forward delay : a delay og forwarding the Moodle cron will detect&lt;br /&gt;
    that his own MNET key is about to fall out of calendar. &lt;br /&gt;
  o Time for renewal: the time the renewal will be proceeded after obsolescence look forward &lt;br /&gt;
    has been triggered. &lt;br /&gt;
&lt;br /&gt;
Using the last parameter, you will setup a renewal time in a suitable time range so minimizing risk of users being bothered during key exchange. &lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p4.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Virtualizing moodles: the starting point==&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_start_point.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
The above picture shows the VMoodle administration GUI just after the first Moodle host (Master Moodle) has been installed.&lt;br /&gt;
&lt;br /&gt;
At this time, the only possibility you will have is to snapshot the Master Moodle for further deployment. This makes a stored copy of all the Master Moodle database and stored files which other Moodle can be deployed from. You can control &lt;br /&gt;
that the snapshot has succeeded in the &amp;quot;moodledata/vmoodle&amp;quot; directory: you should have two directories (one for SQL capture and one for all moodledata files).&lt;br /&gt;
&lt;br /&gt;
The snapshot procedure is a 3 step wizard.&lt;br /&gt;
&lt;br /&gt;
1st step: Setting up the storage directories.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_1.png|||center]]&lt;br /&gt;
&lt;br /&gt;
2nd step: Dumping the database.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_2.png|||center]]&lt;br /&gt;
&lt;br /&gt;
3rd step: Getting a copy of moodledata.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_3.png|||center]]&lt;br /&gt;
&lt;br /&gt;
Once you get the first Moodle template stored, you will be able to make your first Virtual Moodle.&lt;br /&gt;
&lt;br /&gt;
==Define a new VMoodle instance==&lt;br /&gt;
&lt;br /&gt;
To deploy a new Moodle instance, enter with an admin account to your Master Moodle and browse to the location of your VMoodle block. Click on the &#039;Administrate&#039; link.&lt;br /&gt;
&lt;br /&gt;
Click upon &amp;quot;Define a new virtual platform&amp;quot; in the &amp;quot;Pool Management&amp;quot; screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_1.png]]&lt;br /&gt;
&lt;br /&gt;
First form part:&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_3.png]]&lt;br /&gt;
&lt;br /&gt;
Fields:&lt;br /&gt;
&lt;br /&gt;
 o Name: Usual name of the new Moodle. Will be setup in the site course parameters.&lt;br /&gt;
 o Shortname: Shortname for the new host. Use a token here that will change the &lt;br /&gt;
   schema automated patterns if enabled.&lt;br /&gt;
 o Description : A description that will be added to Moodle site course.&lt;br /&gt;
 o Host: If schema is automated, you should not have to change this.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_4.png]]&lt;br /&gt;
&lt;br /&gt;
 o Database type: Change the type as desired (MySQL / PostgreSQL)&lt;br /&gt;
 o Database host: Change here for local reasons.&lt;br /&gt;
 o Database user login: Login d&#039;accès à la base de données.&lt;br /&gt;
 o Database user password: Password d&#039;accès à la base de données.&lt;br /&gt;
 o Database name: You may not have to change this if schema is automated. Note that &lt;br /&gt;
   this database MUST NOT be created (Mysql).&lt;br /&gt;
 o Table prefix.&lt;br /&gt;
 o connection persistance: Change here for local reasons.&lt;br /&gt;
&lt;br /&gt;
Most of those fields are already setup from your default settings.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_5.png]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Gestion des instances]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102334</id>
		<title>Moodle Instance Management</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/23/en/index.php?title=Moodle_Instance_Management&amp;diff=102334"/>
		<updated>2012-12-21T23:26:37Z</updated>

		<summary type="html">&lt;p&gt;Valeryf: /* VMoodle Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VMoodle_Block|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The infrastructure for Moodle instances management and deployment allows an easy management of multiple virtualized Moodle instances within the same physical hosting.&lt;br /&gt;
&lt;br /&gt;
==Virtualization principles==&lt;br /&gt;
&lt;br /&gt;
Moodle virtuazlization is simple. It mostly consists of no longer relying on the physical configration file config.php for absolute initial paths and DB definition, but dynamically building a set of configuration values from a table in the database. The set of main configuration parameter values will be chosen depending on the domain name (virtual host). &lt;br /&gt;
&lt;br /&gt;
For integrating the whole virtualization process within Moodle itself, the virtualization table is held by a Moodle block.&lt;br /&gt;
&lt;br /&gt;
==Virtualization process==&lt;br /&gt;
&lt;br /&gt;
The overall lifecycle of a virtualized Moodle array is usually as follows: &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
The whole set of used domain names must be available and pointed to the same DocumentRoot in Apache. This also can be obtained using a wildcard DNS mapping pointing to such a Virtual Host setting:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;VirtualHost XXX.XXX.XXX.XXX&amp;gt;&lt;br /&gt;
      ServerName mastermoodle.mydomain.com&lt;br /&gt;
      ServerAlias *.mydomain.com&lt;br /&gt;
      ...&lt;br /&gt;
   &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once these prerequisites are available, and the PHP volume correctly accessible:  &lt;br /&gt;
&lt;br /&gt;
# proceed to the installation of the main Moodle instance (Moodle master, bound to standard configuration).&lt;br /&gt;
# install the VMoodle block as a standard block&lt;br /&gt;
# place the VMoodle configuration hook in standard config&lt;br /&gt;
# configure the master Moodle, insert generic content, make common settings&lt;br /&gt;
# IMPORTANT : place an instance of a VMoodle block somewhere so you can browse to VMoodle administration!&lt;br /&gt;
&lt;br /&gt;
You now should have this somewhere in your Moodle: &lt;br /&gt;
&lt;br /&gt;
[[image:Vmoodle_added.jpg]]&lt;br /&gt;
&lt;br /&gt;
Note: an adequate location is in an administration block in administration pages, but you may also use a special &amp;quot;administration&amp;quot; course in your Moodle.&lt;br /&gt;
&lt;br /&gt;
===Deploying virtual instances from a physically setup Moodle===&lt;br /&gt;
&lt;br /&gt;
# make a first snapshot of the master moodle. This will store a replicable backup of the whole platform. &lt;br /&gt;
# deploy a first virtual node&lt;br /&gt;
# setup and tune the first virtual node&lt;br /&gt;
# snapshot the first vitual node as node template&lt;br /&gt;
# deploy any amount of nodes using this template.&lt;br /&gt;
&lt;br /&gt;
The following image gives an idea of the virtualization benefit.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle architecture.jpg]]&lt;br /&gt;
&lt;br /&gt;
==VMoodle Configuration==&lt;br /&gt;
&lt;br /&gt;
To configure the VMoodle block, browse to the VMoodle block settings in Administration menu:&lt;br /&gt;
&lt;br /&gt;
#  Define a naming schema for presetting the platform deployment form.&lt;br /&gt;
#  Define information for connection to database.&lt;br /&gt;
#  Define information for setting up MNET.&lt;br /&gt;
#  Proceed to MNET peer key renewal.&lt;br /&gt;
&lt;br /&gt;
1.	Defining schema&lt;br /&gt;
&lt;br /&gt;
The naming schema preset allows an easy setup of master information defining a new Moodle platform. The purpose of this automation is to speed up the setup of a new Moodle instance, reduce error when entering information, and promote a consistent naming ruleset for defining multiple Moodle hosts.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p1.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
Schema fields:&lt;br /&gt;
&lt;br /&gt;
  o Automate schema : Tells VMoodle to preset the deployment form.&lt;br /&gt;
  o Virtual host: Gives the pattern for generating new Moodle host names.&lt;br /&gt;
  o Database type: Preset the type of database used (MySQL or Postgres).&lt;br /&gt;
  o Database host: Preset value for the database hostname.&lt;br /&gt;
  o Database login: Preset value for the database user login.&lt;br /&gt;
  o Database password: Preset value for the database user password.&lt;br /&gt;
  o Database name: Preset a generation pattern for naming the database.&lt;br /&gt;
  o Table prefix: Preset value for the table name prefix.&lt;br /&gt;
  o Persistant connection: Preset value. Persistant connections will not &lt;br /&gt;
    close at end of the PHP script and be reused.&lt;br /&gt;
  o Moodledata path: Preset the generation pattern for the Moodledata path.&lt;br /&gt;
&lt;br /&gt;
When a schema is automated, entering the platform token will automatically provide adequate name to host, database and moodle data path. &lt;br /&gt;
&lt;br /&gt;
To setup patterns, use the &amp;lt;%%INSTANCE%%&amp;gt; tag within the pattern to be replaced with the host token.&lt;br /&gt;
&lt;br /&gt;
Example : &lt;br /&gt;
&lt;br /&gt;
If you set the hostname pattern such as :&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://&amp;lt;%%INSTANCE%%&amp;gt;.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you enter a token with value &amp;quot;moodle1&amp;quot;, than the deployment form will replace the pattern with the final value : &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://moodle1.mydomain.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same is performed with the database name field and the Moodledata path. &lt;br /&gt;
&lt;br /&gt;
2.	Setting up the path to database executables&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p3.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
You may only provide system path of executable for the database you want to use (MySQL or Postgres)&lt;br /&gt;
&lt;br /&gt;
Path to executable will surely have to be double quoted.&lt;br /&gt;
&lt;br /&gt;
  o Path to mysql terminal : full path to the mysql (Linux) command or mysql.exe (Windows)&lt;br /&gt;
  o Path to mysql dump : full path to mysqldump (Linux) or mysqldump.exe (Windows)&lt;br /&gt;
  o Path to postgres terminal : full path to psql (Linux) psql.exe (Windows)&lt;br /&gt;
  o Path to postgres dump : full path to pg_dump (Linux) or pg_dump.exe (Windows)&lt;br /&gt;
&lt;br /&gt;
Configuration note:&lt;br /&gt;
&lt;br /&gt;
On Linux common location for mySQL is:&lt;br /&gt;
&lt;br /&gt;
   /usr/bin/mysql&lt;br /&gt;
   /usr/bin/mysqldump&lt;br /&gt;
&lt;br /&gt;
For PostGreSQL :&lt;br /&gt;
&lt;br /&gt;
You may get client executables by installing the client packages for PostGreSQL. &lt;br /&gt;
&lt;br /&gt;
   /usr/bin/psql&lt;br /&gt;
   /usr/bin/pg_dump&lt;br /&gt;
&lt;br /&gt;
On PostGreSQL you might use a superuser setup in the PGPASS file to allow complete execution of PG commands in a non interactive mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.	Configuring MNET.&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p2.jpg|||center]]&lt;br /&gt;
 &lt;br /&gt;
4.      MNET keys automated renewal.&lt;br /&gt;
&lt;br /&gt;
VMoodle is often used for Moodle arrays operating the same teaching environment, thus making big use of MNET functions.&lt;br /&gt;
The distributed strategy of Moodle will call for developing XML-RPC adds-on for enhancing the overall behaviour. Although Moodle maintains key consistency when users roam from one Moodle to another (using jump/land mechanism), this is not the case for XML-RPC MNET calls. the risk of having broken services every 28 days is high.&lt;br /&gt;
&lt;br /&gt;
This section setup an automated key renewal within a VMoodle network so there is no more fear to get web services broken by key loss. When configuring this feature, each Moodle getting awareness of his key being obsolete will renew it and force all peers to accept this renewed key. The whole VMoodle MNET network will auto-repair continuously his consistency.&lt;br /&gt;
&lt;br /&gt;
  o Autorenew enable: enables or disables the key autorenewal.&lt;br /&gt;
  o Key obsolecence look forward delay : a delay og forwarding the Moodle cron will detect&lt;br /&gt;
    that his own MNET key is about to fall out of calendar. &lt;br /&gt;
  o Time for renewal: the time the renewal will be proceeded after obsolescence look forward &lt;br /&gt;
    has been triggered. &lt;br /&gt;
&lt;br /&gt;
Using the last parameter, you will setup a renewal time in a suitable time range so minimizing risk of users being bothered during key exchange. &lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_config_p4.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
==Virtualizing moodles: the starting point==&lt;br /&gt;
&lt;br /&gt;
[[Image:Vmoodle_start_point.jpg|||center]]&lt;br /&gt;
&lt;br /&gt;
The above picture shows the VMoodle administration GUI just after the first Moodle host (Master Moodle) has been installed.&lt;br /&gt;
&lt;br /&gt;
At this time, the only possibility you will have is to snapshot the Master Moodle for further deployment. This makes a stored copy of all the Master Moodle database and stored files which other Moodle can be deployed from. You can control &lt;br /&gt;
that the snapshot has succeeded in the &amp;quot;moodledata/vmoodle&amp;quot; directory: you should have two directories (one for SQL capture and one for all moodledata files).&lt;br /&gt;
&lt;br /&gt;
The snapshot procedure is a 3 step wizard.&lt;br /&gt;
&lt;br /&gt;
1st step: Setting up the storage directories.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_1.png|||center]]&lt;br /&gt;
&lt;br /&gt;
2nd step: Dumping the database.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_2.png|||center]]&lt;br /&gt;
&lt;br /&gt;
3rd step: Getting a copy of moodledata.&lt;br /&gt;
&lt;br /&gt;
[[Image:Snapshot_3.png|||center]]&lt;br /&gt;
&lt;br /&gt;
Once you get the first Moodle template stored, you will be able to make your first Virtual Moodle.&lt;br /&gt;
&lt;br /&gt;
==Define a new VMoodle instance==&lt;br /&gt;
&lt;br /&gt;
To deploy a new Moodle instance, enter with an admin account to your Master Moodle and browse to the location of your VMoodle block. Click on the &#039;Administrate&#039; link.&lt;br /&gt;
&lt;br /&gt;
Click upon &amp;quot;Define a new virtual platform&amp;quot; in the &amp;quot;Pool Management&amp;quot; screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_1.png]]&lt;br /&gt;
&lt;br /&gt;
First form part:&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_3.png]]&lt;br /&gt;
&lt;br /&gt;
Fields:&lt;br /&gt;
&lt;br /&gt;
 o Name: Usual name of the new Moodle. Will be setup in the site course parameters.&lt;br /&gt;
 o Shortname: Shortname for the new host. Use a token here that will change the &lt;br /&gt;
   schema automated patterns if enabled.&lt;br /&gt;
 o Description : A description that will be added to Moodle site course.&lt;br /&gt;
 o Host: If schema is automated, you should not have to change this.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_4.png]]&lt;br /&gt;
&lt;br /&gt;
 o Database type: Change the type as desired (MySQL / PostgreSQL)&lt;br /&gt;
 o Database host: Change here for local reasons.&lt;br /&gt;
 o Database user login: Login d&#039;accès à la base de données.&lt;br /&gt;
 o Database user password: Password d&#039;accès à la base de données.&lt;br /&gt;
 o Database name: You may not have to change this if schema is automated. Note that &lt;br /&gt;
   this database MUST NOT be created (Mysql).&lt;br /&gt;
 o Table prefix.&lt;br /&gt;
 o connection persistance: Change here for local reasons.&lt;br /&gt;
&lt;br /&gt;
Most of those fields are already setup from your default settings.&lt;br /&gt;
&lt;br /&gt;
[[Image:add_moodle_5.png]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Gestion des instances]]&lt;/div&gt;</summary>
		<author><name>Valeryf</name></author>
	</entry>
</feed>