<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/404/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vf</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/404/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vf"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/Special:Contributions/Vf"/>
	<updated>2026-04-21T02:38:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Flashcard_module&amp;diff=130619</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Flashcard_module&amp;diff=130619"/>
		<updated>2018-03-30T15:37:45Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Activity&lt;br /&gt;
|entry = https://moodle.org/plugins/mod_flashcard&lt;br /&gt;
|tracker = https://github.com/vfremaux/moodle-mod_flashcard&lt;br /&gt;
|discussion = https://moodle.org/plugins/mod_flashcard&lt;br /&gt;
|maintainer = [[User:Valery Fremaux|Valery Fremaux]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
The flashcard module has been useful for formative assessment of anatomy, histology and pathology concepts, definitions and images in the teaching of human and veterinary medicine at undergraduate and postgraduate levels.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Adding new cards===&lt;br /&gt;
# Add new &amp;quot;Flash Card Set&amp;quot; into the course&lt;br /&gt;
# Enter required field &amp;quot;Name&amp;quot; and click &amp;quot;Save and display&amp;quot; button&lt;br /&gt;
# Click &amp;quot;Edit the cards&amp;quot; tabs - you will be brought to screen like below&lt;br /&gt;
[[File:flashcard1.jpg]]&lt;br /&gt;
# Click &amp;quot;Add three new questions&amp;quot; button&lt;br /&gt;
# Add text for questions and answers&lt;br /&gt;
# Click &amp;quot;Update&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
* [http://docs.activeprolearn.com/en/doku.php?id=:mod:flashcard|Complete original documentation in English]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[Category:Medicine]]&lt;br /&gt;
&lt;br /&gt;
[[fr: Flashcard]]&lt;br /&gt;
[[es:Módulo flashcard]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Flashcard_module&amp;diff=130618</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Flashcard_module&amp;diff=130618"/>
		<updated>2018-03-30T15:36:56Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Activity&lt;br /&gt;
|entry = https://moodle.org/plugins/mod_flashcard&lt;br /&gt;
|tracker = https://github.com/vfremaux/moodle-mod_flashcard&lt;br /&gt;
|discussion = https://moodle.org/plugins/mod_flashcard&lt;br /&gt;
|maintainer = [[User:Valery Fremaux|Valery Fremaux]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
The flashcard module has been useful for formative assessment of anatomy, histology and pathology concepts, definitions and images in the teaching of human and veterinary medicine at undergraduate and postgraduate levels.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Adding new cards===&lt;br /&gt;
# Add new &amp;quot;Flash Card Set&amp;quot; into the course&lt;br /&gt;
# Enter required field &amp;quot;Name&amp;quot; and click &amp;quot;Save and display&amp;quot; button&lt;br /&gt;
# Click &amp;quot;Edit the cards&amp;quot; tabs - you will be brought to screen like below&lt;br /&gt;
[[File:flashcard1.jpg]]&lt;br /&gt;
# Click &amp;quot;Add three new questions&amp;quot; button&lt;br /&gt;
# Add text for questions and answers&lt;br /&gt;
# Click &amp;quot;Update&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
* [[http://docs.activeprolearn.com/en/doku.php?id=:mod:flashcard|Complete documentation in English]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[Category:Medicine]]&lt;br /&gt;
&lt;br /&gt;
[[fr: Flashcard]]&lt;br /&gt;
[[es:Módulo flashcard]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=WikipediaCalls_filter&amp;diff=103784</id>
		<title>WikipediaCalls filter</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=WikipediaCalls_filter&amp;diff=103784"/>
		<updated>2013-03-30T00:28:44Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot;This plugin is documented in the [https://docs.moodle.org/22/en/WikipediaCalls_filter| Moodle 2.2 documentation]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This plugin is documented in the [https://docs.moodle.org/22/en/WikipediaCalls_filter| Moodle 2.2 documentation]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=File:import_export_controls.jpg&amp;diff=101777</id>
		<title>File:import export controls.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=File:import_export_controls.jpg&amp;diff=101777"/>
		<updated>2012-11-04T14:40:16Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=File:importing_config.jpg&amp;diff=101776</id>
		<title>File:importing config.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=File:importing_config.jpg&amp;diff=101776"/>
		<updated>2012-11-04T14:39:57Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Exporting/Importing_Configuration&amp;diff=101775</id>
		<title>Dashboard Configuration: Exporting/Importing Configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Exporting/Importing_Configuration&amp;diff=101775"/>
		<updated>2012-11-04T14:39:41Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; back to index  Once you have fully configured a dasboard element and have prooven it works good, you may export and store into your local file system a conf...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | back to index]]&lt;br /&gt;
&lt;br /&gt;
Once you have fully configured a dasboard element and have prooven it works good, you may export and store into your local file system a configuration snapshot of this bloc settings. &lt;br /&gt;
&lt;br /&gt;
===Exporting===&lt;br /&gt;
&lt;br /&gt;
1. Go back to the configuration panel and find the import/export controls:&lt;br /&gt;
&lt;br /&gt;
[[Image:import_export_controls.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Click on the &amp;quot;Get the current config&amp;quot; config link&lt;br /&gt;
&lt;br /&gt;
3. You will proposed to store the snapshot on your local computer.&lt;br /&gt;
&lt;br /&gt;
===Importing===&lt;br /&gt;
&lt;br /&gt;
1. Go back to the configuration panel and find the import/export controls:&lt;br /&gt;
&lt;br /&gt;
2. Click on the &amp;quot;import config&amp;quot; link, you will get a texte area where to paste the configuration string:&lt;br /&gt;
&lt;br /&gt;
[[Image:importing_config.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Paste the config and hit &amp;quot;Save changes&amp;quot; button.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101773</id>
		<title>Dashboard Block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101773"/>
		<updated>2012-11-04T14:32:28Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Exporting/importing the Block Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &amp;quot;Dashboard Block&amp;quot; (more accurately Dashboard Element Block) allows displaying graphically or litterally the result of any query made in Moodle.&lt;br /&gt;
&lt;br /&gt;
When used in standard course formats, the block gives access to an extra page displaying the data redering for the specified query.&lt;br /&gt;
&lt;br /&gt;
When used in a paged format such as Flexipage, or any format allowing blocks to layout freely over the page, the block may display directly the graph rendering and be combined to other blocks to fgorm a complex, highly customizable dashboard.&lt;br /&gt;
&lt;br /&gt;
This blocks uses state-of-the art GPL libraries such as MIT JQplot and some other integrations. It has provision for powerfull data filtering and for using results for automatically generated exports.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
The block is standalone and provided with own graphic libraries. Just proceed to standard install by copying the code into the /blocks directory of Moodle and browsing to the notification page to get it installed logically. &lt;br /&gt;
&lt;br /&gt;
Provided libraries are :&lt;br /&gt;
&lt;br /&gt;
    JQplot : MIT Graph plotting library in HTML5&lt;br /&gt;
    TimeLine : A smart time line (still to develop)&lt;br /&gt;
    GoogleMapAPI : A wrapper to google map plotting of geolocated information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Capabilities and security advice==&lt;br /&gt;
&lt;br /&gt;
This block allows very deep data reading in Moodle database and powerfull data display. As the query can be written by power users with configuraiton capability, the block could be misused by unauthorised people and produce unwanted access to critical information.&lt;br /&gt;
&lt;br /&gt;
To reduce such risks, a couple of capabilities has been added to control precisely :&lt;br /&gt;
&lt;br /&gt;
    who is allowed to add such a blcok in a coutse.&lt;br /&gt;
    who is allowed to access the block configuration.&lt;br /&gt;
&lt;br /&gt;
==Major rendering features==&lt;br /&gt;
&lt;br /&gt;
===Litteral===&lt;br /&gt;
&lt;br /&gt;
*Linear table raw&lt;br /&gt;
*Linear table cleaned&lt;br /&gt;
*Linear table with subtotals&lt;br /&gt;
*Linear table with colour value coding (one column)&lt;br /&gt;
&lt;br /&gt;
* Tabular table Nx1 dimension&lt;br /&gt;
* Tree shaped hierarchic developement&lt;br /&gt;
&lt;br /&gt;
===Graphical===&lt;br /&gt;
&lt;br /&gt;
*Bars&lt;br /&gt;
*Lines&lt;br /&gt;
*Pies&lt;br /&gt;
*Donuts&lt;br /&gt;
*Timeline (expérimental)&lt;br /&gt;
*GoogleMap&lt;br /&gt;
&lt;br /&gt;
===File export generation===&lt;br /&gt;
&lt;br /&gt;
*CSV export (all data)&lt;br /&gt;
*CSV export (filtered data)&lt;br /&gt;
&lt;br /&gt;
==Data Filtering==&lt;br /&gt;
&lt;br /&gt;
*Multidimensional filtering&lt;br /&gt;
*Blocks filtering binding to the whole page for syncing several blocks to identical filtering values.&lt;br /&gt;
&lt;br /&gt;
==Global behaviour of the block==&lt;br /&gt;
&lt;br /&gt;
The key point of the block is its confguration form that will define all information needed to get data, filter it, choose what should be output in each rendering method, and finally individual parameters for each rendering method.&lt;br /&gt;
&lt;br /&gt;
Additional configuration allows to add dynamic filtering proposed to end users to filter dynamically the output.&lt;br /&gt;
&lt;br /&gt;
Althoug the setup form and rules are quite complex, we tried to implement a very lot of possibilities so this bloc becomes some kind of &amp;quot;swiss-knife&amp;quot; for Moodle smart reporting.&lt;br /&gt;
&lt;br /&gt;
==Global Settings==&lt;br /&gt;
&lt;br /&gt;
Some global settings allow derivated operation, such as querying an external (PostGre) database, or changing some technical performance features.&lt;br /&gt;
&lt;br /&gt;
[[Dashboard Block Global Settings | Global Settings]]&lt;br /&gt;
&lt;br /&gt;
==Instance Configuration==&lt;br /&gt;
&lt;br /&gt;
The configuration documentation is splitted into sections, each addressing a key feature of the dashboard.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Rendering location | Configuration: Rendering location]]&lt;br /&gt;
* [[Dashboard Configuration: Rendering channels | Configuration: Rendering channels]]&lt;br /&gt;
* [[Dashboard Configuration: Writing Query | Configuration: Writing Query]]&lt;br /&gt;
* [[Dashboard Configuration: Raw data (litteral) rendering | Configuration: Raw data (litteral) rendering]]&lt;br /&gt;
* [[Dashboard Configuration: Graph rendering settings | Configuration: Graph rendering settings]]&lt;br /&gt;
* [[Dashboard Configuration: Configuring summarizers | Configuration: Configuring summarizers]]&lt;br /&gt;
* [[Dashboard Configuration: Cache options and setting up exports | Configuration: Cache options and setting up exports]] &lt;br /&gt;
&lt;br /&gt;
Some extra configuration can improve data display&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Additional settings for crosstable and tree-shaped display | Additional settings for crosstable and tree-shaped data display]]&lt;br /&gt;
* [[Dashboard Configuration: Additional parameters for output colouring of data | Additional parameters for output colouring of data]]&lt;br /&gt;
* [[Dashboard Configuration: Plotting geographic information | Additional parameters for geographic plotting (experimental)]]&lt;br /&gt;
* [[Dashboard Configuration: Special Features on Columns for Output | Additional special settings when choosing output columns]]&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
===Exporting/importing the Block Configuration===&lt;br /&gt;
&lt;br /&gt;
This tip is usefull as the configuration of this bloc is huge and uses a lot of variables. The configuration export/import utility allows you to export an encoded configuration string as a text file, store it to your local system, then import it again in, say, a new unconfigured block instance. Configuraiton export contains all the dashboard configuration including the whole query, so it is easy to make several dashboard elements as a variant from a stored one.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Exporting/Importing Configuration | How to export/import configuration]]&lt;br /&gt;
&lt;br /&gt;
==Development Road Map==&lt;br /&gt;
&lt;br /&gt;
These are future features that are foreseen in the next road map for Dashboard Block.&lt;br /&gt;
&lt;br /&gt;
* Query parametrization with user filled variables&lt;br /&gt;
* PDF generators&lt;br /&gt;
* Crosstable Excel exports&lt;br /&gt;
* Filtering values pre-fetch caching to improve performance&lt;br /&gt;
* Accessory database extension to MySQL schemes&lt;br /&gt;
 &lt;br /&gt;
=== Reference, information, development and support ===&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Tableau de bord]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101772</id>
		<title>Dashboard Block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101772"/>
		<updated>2012-11-04T14:31:16Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Instance Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &amp;quot;Dashboard Block&amp;quot; (more accurately Dashboard Element Block) allows displaying graphically or litterally the result of any query made in Moodle.&lt;br /&gt;
&lt;br /&gt;
When used in standard course formats, the block gives access to an extra page displaying the data redering for the specified query.&lt;br /&gt;
&lt;br /&gt;
When used in a paged format such as Flexipage, or any format allowing blocks to layout freely over the page, the block may display directly the graph rendering and be combined to other blocks to fgorm a complex, highly customizable dashboard.&lt;br /&gt;
&lt;br /&gt;
This blocks uses state-of-the art GPL libraries such as MIT JQplot and some other integrations. It has provision for powerfull data filtering and for using results for automatically generated exports.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
The block is standalone and provided with own graphic libraries. Just proceed to standard install by copying the code into the /blocks directory of Moodle and browsing to the notification page to get it installed logically. &lt;br /&gt;
&lt;br /&gt;
Provided libraries are :&lt;br /&gt;
&lt;br /&gt;
    JQplot : MIT Graph plotting library in HTML5&lt;br /&gt;
    TimeLine : A smart time line (still to develop)&lt;br /&gt;
    GoogleMapAPI : A wrapper to google map plotting of geolocated information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Capabilities and security advice==&lt;br /&gt;
&lt;br /&gt;
This block allows very deep data reading in Moodle database and powerfull data display. As the query can be written by power users with configuraiton capability, the block could be misused by unauthorised people and produce unwanted access to critical information.&lt;br /&gt;
&lt;br /&gt;
To reduce such risks, a couple of capabilities has been added to control precisely :&lt;br /&gt;
&lt;br /&gt;
    who is allowed to add such a blcok in a coutse.&lt;br /&gt;
    who is allowed to access the block configuration.&lt;br /&gt;
&lt;br /&gt;
==Major rendering features==&lt;br /&gt;
&lt;br /&gt;
===Litteral===&lt;br /&gt;
&lt;br /&gt;
*Linear table raw&lt;br /&gt;
*Linear table cleaned&lt;br /&gt;
*Linear table with subtotals&lt;br /&gt;
*Linear table with colour value coding (one column)&lt;br /&gt;
&lt;br /&gt;
* Tabular table Nx1 dimension&lt;br /&gt;
* Tree shaped hierarchic developement&lt;br /&gt;
&lt;br /&gt;
===Graphical===&lt;br /&gt;
&lt;br /&gt;
*Bars&lt;br /&gt;
*Lines&lt;br /&gt;
*Pies&lt;br /&gt;
*Donuts&lt;br /&gt;
*Timeline (expérimental)&lt;br /&gt;
*GoogleMap&lt;br /&gt;
&lt;br /&gt;
===File export generation===&lt;br /&gt;
&lt;br /&gt;
*CSV export (all data)&lt;br /&gt;
*CSV export (filtered data)&lt;br /&gt;
&lt;br /&gt;
==Data Filtering==&lt;br /&gt;
&lt;br /&gt;
*Multidimensional filtering&lt;br /&gt;
*Blocks filtering binding to the whole page for syncing several blocks to identical filtering values.&lt;br /&gt;
&lt;br /&gt;
==Global behaviour of the block==&lt;br /&gt;
&lt;br /&gt;
The key point of the block is its confguration form that will define all information needed to get data, filter it, choose what should be output in each rendering method, and finally individual parameters for each rendering method.&lt;br /&gt;
&lt;br /&gt;
Additional configuration allows to add dynamic filtering proposed to end users to filter dynamically the output.&lt;br /&gt;
&lt;br /&gt;
Althoug the setup form and rules are quite complex, we tried to implement a very lot of possibilities so this bloc becomes some kind of &amp;quot;swiss-knife&amp;quot; for Moodle smart reporting.&lt;br /&gt;
&lt;br /&gt;
==Global Settings==&lt;br /&gt;
&lt;br /&gt;
Some global settings allow derivated operation, such as querying an external (PostGre) database, or changing some technical performance features.&lt;br /&gt;
&lt;br /&gt;
[[Dashboard Block Global Settings | Global Settings]]&lt;br /&gt;
&lt;br /&gt;
==Instance Configuration==&lt;br /&gt;
&lt;br /&gt;
The configuration documentation is splitted into sections, each addressing a key feature of the dashboard.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Rendering location | Configuration: Rendering location]]&lt;br /&gt;
* [[Dashboard Configuration: Rendering channels | Configuration: Rendering channels]]&lt;br /&gt;
* [[Dashboard Configuration: Writing Query | Configuration: Writing Query]]&lt;br /&gt;
* [[Dashboard Configuration: Raw data (litteral) rendering | Configuration: Raw data (litteral) rendering]]&lt;br /&gt;
* [[Dashboard Configuration: Graph rendering settings | Configuration: Graph rendering settings]]&lt;br /&gt;
* [[Dashboard Configuration: Configuring summarizers | Configuration: Configuring summarizers]]&lt;br /&gt;
* [[Dashboard Configuration: Cache options and setting up exports | Configuration: Cache options and setting up exports]] &lt;br /&gt;
&lt;br /&gt;
Some extra configuration can improve data display&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Additional settings for crosstable and tree-shaped display | Additional settings for crosstable and tree-shaped data display]]&lt;br /&gt;
* [[Dashboard Configuration: Additional parameters for output colouring of data | Additional parameters for output colouring of data]]&lt;br /&gt;
* [[Dashboard Configuration: Plotting geographic information | Additional parameters for geographic plotting (experimental)]]&lt;br /&gt;
* [[Dashboard Configuration: Special Features on Columns for Output | Additional special settings when choosing output columns]]&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
===Exporting/importing the Block Configuration===&lt;br /&gt;
&lt;br /&gt;
This tip is usefull as the configuration of this bloc is huge and uses a lot of variables. The configuration export/import utility allows you to export an encoded configuration string as a text file, store it to your local system, then import it again in, say, a new unconfigured block instance. Configuraiton export contains all the dashboard configuration including the whole query, so it is easy to make several dashboard elements as a variant from a stored one.&lt;br /&gt;
&lt;br /&gt;
==Development Road Map==&lt;br /&gt;
&lt;br /&gt;
These are future features that are foreseen in the next road map for Dashboard Block.&lt;br /&gt;
&lt;br /&gt;
* Query parametrization with user filled variables&lt;br /&gt;
* PDF generators&lt;br /&gt;
* Crosstable Excel exports&lt;br /&gt;
* Filtering values pre-fetch caching to improve performance&lt;br /&gt;
* Accessory database extension to MySQL schemes&lt;br /&gt;
 &lt;br /&gt;
=== Reference, information, development and support ===&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Tableau de bord]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=File:summarizer_settings.jpg&amp;diff=101771</id>
		<title>File:summarizer settings.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=File:summarizer_settings.jpg&amp;diff=101771"/>
		<updated>2012-11-04T14:26:56Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Configuring_summarizers&amp;diff=101770</id>
		<title>Dashboard Configuration: Configuring summarizers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Configuring_summarizers&amp;diff=101770"/>
		<updated>2012-11-04T14:26:32Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; Back to index  Summarizers are automatic sums that will aggregate values in the output.  They are printed at bottom of the block, below the ouptut tables or...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Summarizers are automatic sums that will aggregate values in the output.&lt;br /&gt;
&lt;br /&gt;
They are printed at bottom of the block, below the ouptut tables or plotted graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:summarizer_settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Summarizers===&lt;br /&gt;
&lt;br /&gt;
One or more summarizers can be defined using the aliases columns. This field can hold a semi-column separated list&lt;br /&gt;
of output column names. Note that summarizers are only consistant with numeric aggregable data. Examples of non relvant&lt;br /&gt;
information are : &lt;br /&gt;
&lt;br /&gt;
* Text fields&lt;br /&gt;
* Pre-aggregated information (such as means)&lt;br /&gt;
&lt;br /&gt;
===Sums formatting===&lt;br /&gt;
&lt;br /&gt;
Alike many output descriptors, the final result of the sums can be post-formatted on base of the sprintf() function syntax.&lt;br /&gt;
There should be here one formatting formula per defined column in a semi-column separated list. As usual, empty strings&lt;br /&gt;
stands for unformatted raw output. &lt;br /&gt;
&lt;br /&gt;
===Sums Labels===&lt;br /&gt;
&lt;br /&gt;
To give end user consistency of the summarizer semantic, explicit labels can be used for display, rather technical column aliases.&lt;br /&gt;
You mya define here a semi-column spaated list of summarizer visible names, one per defined summarizer.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Special_Features_on_Columns_for_Output&amp;diff=101769</id>
		<title>Dashboard Configuration: Special Features on Columns for Output</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Special_Features_on_Columns_for_Output&amp;diff=101769"/>
		<updated>2012-11-04T12:27:07Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
===Special features on data output : Summating output===&lt;br /&gt;
&lt;br /&gt;
When a column name of the output is mentionned as&lt;br /&gt;
&lt;br /&gt;
   S(&#039;&#039;column_name&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
output values will be accumulated in order of the display.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Special_Features_on_Columns_for_Output&amp;diff=101768</id>
		<title>Dashboard Configuration: Special Features on Columns for Output</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Special_Features_on_Columns_for_Output&amp;diff=101768"/>
		<updated>2012-11-04T12:26:54Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; Back to index  ===Special features on data output : Summating output===  When a column name of the output is mentionned as     S(&amp;#039;&amp;#039;column_name&amp;#039;&amp;#039;)  output va...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
===Special features on data output : Summating output===&lt;br /&gt;
&lt;br /&gt;
When a column name of the output is mentionned as&lt;br /&gt;
&lt;br /&gt;
   S(&#039;&#039;column_name&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
output values will be accumulated in order of the display.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101767</id>
		<title>Dashboard Block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101767"/>
		<updated>2012-11-04T12:25:02Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Instance Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &amp;quot;Dashboard Block&amp;quot; (more accurately Dashboard Element Block) allows displaying graphically or litterally the result of any query made in Moodle.&lt;br /&gt;
&lt;br /&gt;
When used in standard course formats, the block gives access to an extra page displaying the data redering for the specified query.&lt;br /&gt;
&lt;br /&gt;
When used in a paged format such as Flexipage, or any format allowing blocks to layout freely over the page, the block may display directly the graph rendering and be combined to other blocks to fgorm a complex, highly customizable dashboard.&lt;br /&gt;
&lt;br /&gt;
This blocks uses state-of-the art GPL libraries such as MIT JQplot and some other integrations. It has provision for powerfull data filtering and for using results for automatically generated exports.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
The block is standalone and provided with own graphic libraries. Just proceed to standard install by copying the code into the /blocks directory of Moodle and browsing to the notification page to get it installed logically. &lt;br /&gt;
&lt;br /&gt;
Provided libraries are :&lt;br /&gt;
&lt;br /&gt;
    JQplot : MIT Graph plotting library in HTML5&lt;br /&gt;
    TimeLine : A smart time line (still to develop)&lt;br /&gt;
    GoogleMapAPI : A wrapper to google map plotting of geolocated information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Capabilities and security advice==&lt;br /&gt;
&lt;br /&gt;
This block allows very deep data reading in Moodle database and powerfull data display. As the query can be written by power users with configuraiton capability, the block could be misused by unauthorised people and produce unwanted access to critical information.&lt;br /&gt;
&lt;br /&gt;
To reduce such risks, a couple of capabilities has been added to control precisely :&lt;br /&gt;
&lt;br /&gt;
    who is allowed to add such a blcok in a coutse.&lt;br /&gt;
    who is allowed to access the block configuration.&lt;br /&gt;
&lt;br /&gt;
==Major rendering features==&lt;br /&gt;
&lt;br /&gt;
===Litteral===&lt;br /&gt;
&lt;br /&gt;
*Linear table raw&lt;br /&gt;
*Linear table cleaned&lt;br /&gt;
*Linear table with subtotals&lt;br /&gt;
*Linear table with colour value coding (one column)&lt;br /&gt;
&lt;br /&gt;
* Tabular table Nx1 dimension&lt;br /&gt;
* Tree shaped hierarchic developement&lt;br /&gt;
&lt;br /&gt;
===Graphical===&lt;br /&gt;
&lt;br /&gt;
*Bars&lt;br /&gt;
*Lines&lt;br /&gt;
*Pies&lt;br /&gt;
*Donuts&lt;br /&gt;
*Timeline (expérimental)&lt;br /&gt;
*GoogleMap&lt;br /&gt;
&lt;br /&gt;
===File export generation===&lt;br /&gt;
&lt;br /&gt;
*CSV export (all data)&lt;br /&gt;
*CSV export (filtered data)&lt;br /&gt;
&lt;br /&gt;
==Data Filtering==&lt;br /&gt;
&lt;br /&gt;
*Multidimensional filtering&lt;br /&gt;
*Blocks filtering binding to the whole page for syncing several blocks to identical filtering values.&lt;br /&gt;
&lt;br /&gt;
==Global behaviour of the block==&lt;br /&gt;
&lt;br /&gt;
The key point of the block is its confguration form that will define all information needed to get data, filter it, choose what should be output in each rendering method, and finally individual parameters for each rendering method.&lt;br /&gt;
&lt;br /&gt;
Additional configuration allows to add dynamic filtering proposed to end users to filter dynamically the output.&lt;br /&gt;
&lt;br /&gt;
Althoug the setup form and rules are quite complex, we tried to implement a very lot of possibilities so this bloc becomes some kind of &amp;quot;swiss-knife&amp;quot; for Moodle smart reporting.&lt;br /&gt;
&lt;br /&gt;
==Global Settings==&lt;br /&gt;
&lt;br /&gt;
Some global settings allow derivated operation, such as querying an external (PostGre) database, or changing some technical performance features.&lt;br /&gt;
&lt;br /&gt;
[[Dashboard Block Global Settings | Global Settings]]&lt;br /&gt;
&lt;br /&gt;
==Instance Configuration==&lt;br /&gt;
&lt;br /&gt;
The configuration documentation is splitted into sections, each addressing a key feature of the dashboard.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Rendering location | Configuration: Rendering location]]&lt;br /&gt;
* [[Dashboard Configuration: Rendering channels | Configuration: Rendering channels]]&lt;br /&gt;
* [[Dashboard Configuration: Writing Query | Configuration: Writing Query]]&lt;br /&gt;
* [[Dashboard Configuration: Raw data (litteral) rendering | Configuration: Raw data (litteral) rendering]]&lt;br /&gt;
* [[Dashboard Configuration: Graph rendering settings | Configuration: Graph rendering settings]]&lt;br /&gt;
* [[Dashboard Configuration: Configuring summarizers | Configuration: Configuring summarizers]]&lt;br /&gt;
* [[Dashboard Configuration: Cache options and setting up exports | Configuration: Cache options and setting up exports]] &lt;br /&gt;
&lt;br /&gt;
Some extra configuration can improve data display&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Additional settings for crosstable and tree-shaped display | Additional settings for crosstable and tree-shaped data display]]&lt;br /&gt;
* [[Dashboard Configuration: Additional parameters for output colouring of data | Additional parameters for output colouring of data]]&lt;br /&gt;
* [[Dashboard Configuration: Plotting geographic information | Additional parameters for geographic plotting (experimental)]]&lt;br /&gt;
* [[Dashboard Configuration: Special Features on Columns for Output | Additional special settings when choosing output columns]]&lt;br /&gt;
&lt;br /&gt;
==Development Road Map==&lt;br /&gt;
&lt;br /&gt;
These are future features that are foreseen in the next road map for Dashboard Block.&lt;br /&gt;
&lt;br /&gt;
* Query parametrization with user filled variables&lt;br /&gt;
* PDF generators&lt;br /&gt;
* Crosstable Excel exports&lt;br /&gt;
* Filtering values pre-fetch caching to improve performance&lt;br /&gt;
* Accessory database extension to MySQL schemes&lt;br /&gt;
 &lt;br /&gt;
=== Reference, information, development and support ===&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Tableau de bord]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Plotting_geographic_information&amp;diff=101765</id>
		<title>Dashboard Configuration: Plotting geographic information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Plotting_geographic_information&amp;diff=101765"/>
		<updated>2012-11-04T12:20:16Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | back to index]]&lt;br /&gt;
&lt;br /&gt;
Geographic data settings&lt;br /&gt;
&lt;br /&gt;
Geolocated information are plotted on map as graphical markers. Markers can be defined as:&lt;br /&gt;
&lt;br /&gt;
    A quadruplet: Title, Latitude, Longitude, Marker Class&lt;br /&gt;
    A sextuplet: Title, Address, Post code, City, Region Code, Marker Class &lt;br /&gt;
&lt;br /&gt;
Information fields have following specification:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Title: Textual label of the marker&lt;br /&gt;
    Latitude: floating point latitude&lt;br /&gt;
    Longitude: floating point longitude&lt;br /&gt;
    Address: road information&lt;br /&gt;
    Post code: Official post or zip code&lt;br /&gt;
    City: City name&lt;br /&gt;
    Marker Class: A classname, that will bind to a graphical icon &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setting fields let you bind required information to request output fields. Setting outputs will usually accept one or more field (or alias) names separated by semicolons (&amp;quot;;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Title input: Query output fieldname providing the textual label&lt;br /&gt;
    Location input:&lt;br /&gt;
        Case 1: THE output column name providing the geolocation couple as a comma pair of floating point values : &amp;quot;lat,lng&amp;quot; (ex : 47.098456,1.4534456)&lt;br /&gt;
        Case 2: A semicolon separated list of query output fieldnames (or aliases) that provide in order : address, post code, city, and region code (*) &lt;br /&gt;
    Marker type input: The query output fieldname that provides a class label &lt;br /&gt;
&lt;br /&gt;
(*) Some constant values can be given for city, post code and region code, using quoted values in place of field name:&lt;br /&gt;
&lt;br /&gt;
  address;cp;city;&amp;quot;GB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
will always provide the value &amp;quot;GB&amp;quot; as region code.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Plotting_geographic_information&amp;diff=101763</id>
		<title>Dashboard Configuration: Plotting geographic information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Plotting_geographic_information&amp;diff=101763"/>
		<updated>2012-11-04T12:19:11Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; back to index  Geographic data settings  Geolocated information are plotted on map as graphical markers. Markers can be defined as:      A quadruplet: Titl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Blocks | back to index]]&lt;br /&gt;
&lt;br /&gt;
Geographic data settings&lt;br /&gt;
&lt;br /&gt;
Geolocated information are plotted on map as graphical markers. Markers can be defined as:&lt;br /&gt;
&lt;br /&gt;
    A quadruplet: Title, Latitude, Longitude, Marker Class&lt;br /&gt;
    A sextuplet: Title, Address, Post code, City, Region Code, Marker Class &lt;br /&gt;
&lt;br /&gt;
Information fields have following specification:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Title: Textual label of the marker&lt;br /&gt;
    Latitude: floating point latitude&lt;br /&gt;
    Longitude: floating point longitude&lt;br /&gt;
    Address: road information&lt;br /&gt;
    Post code: Official post or zip code&lt;br /&gt;
    City: City name&lt;br /&gt;
    Marker Class: A classname, that will bind to a graphical icon &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setting fields let you bind required information to request output fields. Setting outputs will usually accept one or more field (or alias) names separated by semicolons (&amp;quot;;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Title input: Query output fieldname providing the textual label&lt;br /&gt;
    Location input:&lt;br /&gt;
        Case 1: THE output column name providing the geolocation couple as a comma pair of floating point values : &amp;quot;lat,lng&amp;quot; (ex : 47.098456,1.4534456)&lt;br /&gt;
        Case 2: A semicolon separated list of query output fieldnames (or aliases) that provide in order : address, post code, city, and region code (*) &lt;br /&gt;
    Marker type input: The query output fieldname that provides a class label &lt;br /&gt;
&lt;br /&gt;
(*) Some constant values can be given for city, post code and region code, using quoted values in place of field name:&lt;br /&gt;
&lt;br /&gt;
  address;cp;city;&amp;quot;GB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
will always provide the value &amp;quot;GB&amp;quot; as region code.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101762</id>
		<title>Dashboard Block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101762"/>
		<updated>2012-11-04T12:18:47Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Instance Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &amp;quot;Dashboard Block&amp;quot; (more accurately Dashboard Element Block) allows displaying graphically or litterally the result of any query made in Moodle.&lt;br /&gt;
&lt;br /&gt;
When used in standard course formats, the block gives access to an extra page displaying the data redering for the specified query.&lt;br /&gt;
&lt;br /&gt;
When used in a paged format such as Flexipage, or any format allowing blocks to layout freely over the page, the block may display directly the graph rendering and be combined to other blocks to fgorm a complex, highly customizable dashboard.&lt;br /&gt;
&lt;br /&gt;
This blocks uses state-of-the art GPL libraries such as MIT JQplot and some other integrations. It has provision for powerfull data filtering and for using results for automatically generated exports.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
The block is standalone and provided with own graphic libraries. Just proceed to standard install by copying the code into the /blocks directory of Moodle and browsing to the notification page to get it installed logically. &lt;br /&gt;
&lt;br /&gt;
Provided libraries are :&lt;br /&gt;
&lt;br /&gt;
    JQplot : MIT Graph plotting library in HTML5&lt;br /&gt;
    TimeLine : A smart time line (still to develop)&lt;br /&gt;
    GoogleMapAPI : A wrapper to google map plotting of geolocated information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Capabilities and security advice==&lt;br /&gt;
&lt;br /&gt;
This block allows very deep data reading in Moodle database and powerfull data display. As the query can be written by power users with configuraiton capability, the block could be misused by unauthorised people and produce unwanted access to critical information.&lt;br /&gt;
&lt;br /&gt;
To reduce such risks, a couple of capabilities has been added to control precisely :&lt;br /&gt;
&lt;br /&gt;
    who is allowed to add such a blcok in a coutse.&lt;br /&gt;
    who is allowed to access the block configuration.&lt;br /&gt;
&lt;br /&gt;
==Major rendering features==&lt;br /&gt;
&lt;br /&gt;
===Litteral===&lt;br /&gt;
&lt;br /&gt;
*Linear table raw&lt;br /&gt;
*Linear table cleaned&lt;br /&gt;
*Linear table with subtotals&lt;br /&gt;
*Linear table with colour value coding (one column)&lt;br /&gt;
&lt;br /&gt;
* Tabular table Nx1 dimension&lt;br /&gt;
* Tree shaped hierarchic developement&lt;br /&gt;
&lt;br /&gt;
===Graphical===&lt;br /&gt;
&lt;br /&gt;
*Bars&lt;br /&gt;
*Lines&lt;br /&gt;
*Pies&lt;br /&gt;
*Donuts&lt;br /&gt;
*Timeline (expérimental)&lt;br /&gt;
*GoogleMap&lt;br /&gt;
&lt;br /&gt;
===File export generation===&lt;br /&gt;
&lt;br /&gt;
*CSV export (all data)&lt;br /&gt;
*CSV export (filtered data)&lt;br /&gt;
&lt;br /&gt;
==Data Filtering==&lt;br /&gt;
&lt;br /&gt;
*Multidimensional filtering&lt;br /&gt;
*Blocks filtering binding to the whole page for syncing several blocks to identical filtering values.&lt;br /&gt;
&lt;br /&gt;
==Global behaviour of the block==&lt;br /&gt;
&lt;br /&gt;
The key point of the block is its confguration form that will define all information needed to get data, filter it, choose what should be output in each rendering method, and finally individual parameters for each rendering method.&lt;br /&gt;
&lt;br /&gt;
Additional configuration allows to add dynamic filtering proposed to end users to filter dynamically the output.&lt;br /&gt;
&lt;br /&gt;
Althoug the setup form and rules are quite complex, we tried to implement a very lot of possibilities so this bloc becomes some kind of &amp;quot;swiss-knife&amp;quot; for Moodle smart reporting.&lt;br /&gt;
&lt;br /&gt;
==Global Settings==&lt;br /&gt;
&lt;br /&gt;
Some global settings allow derivated operation, such as querying an external (PostGre) database, or changing some technical performance features.&lt;br /&gt;
&lt;br /&gt;
[[Dashboard Block Global Settings | Global Settings]]&lt;br /&gt;
&lt;br /&gt;
==Instance Configuration==&lt;br /&gt;
&lt;br /&gt;
The configuration documentation is splitted into sections, each addressing a key feature of the dashboard.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Rendering location | Configuration: Rendering location]]&lt;br /&gt;
* [[Dashboard Configuration: Rendering channels | Configuration: Rendering channels]]&lt;br /&gt;
* [[Dashboard Configuration: Writing Query | Configuration: Writing Query]]&lt;br /&gt;
* [[Dashboard Configuration: Raw data (litteral) rendering | Configuration: Raw data (litteral) rendering]]&lt;br /&gt;
* [[Dashboard Configuration: Graph rendering settings | Configuration: Graph rendering settings]]&lt;br /&gt;
* [[Dashboard Configuration: Configuring summarizers | Configuration: Configuring summarizers]]&lt;br /&gt;
* [[Dashboard Configuration: Cache options and setting up exports | Configuration: Cache options and setting up exports]] &lt;br /&gt;
&lt;br /&gt;
Some extra confguration can improve data display&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Additional settings for crosstable and tree-shaped display | Additional settings for crosstable and tree-shaped data display]]&lt;br /&gt;
* [[Dashboard Configuration: Additional parameters for output colouring of data | Additional parameters for output colouring of data]]&lt;br /&gt;
* [[Dashboard Configuration: Plotting geographic information | Additional parameters for geographic plotting (experimental)]]&lt;br /&gt;
&lt;br /&gt;
==Development Road Map==&lt;br /&gt;
&lt;br /&gt;
These are future features that are foreseen in the next road map for Dashboard Block.&lt;br /&gt;
&lt;br /&gt;
* Query parametrization with user filled variables&lt;br /&gt;
* PDF generators&lt;br /&gt;
* Crosstable Excel exports&lt;br /&gt;
* Filtering values pre-fetch caching to improve performance&lt;br /&gt;
* Accessory database extension to MySQL schemes&lt;br /&gt;
 &lt;br /&gt;
=== Reference, information, development and support ===&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Tableau de bord]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuraton:_Plotting_geographic_information&amp;diff=101761</id>
		<title>Dashboard Configuraton: Plotting geographic information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuraton:_Plotting_geographic_information&amp;diff=101761"/>
		<updated>2012-11-04T12:17:37Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Geographic data settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
==Geographic data settings==&lt;br /&gt;
&lt;br /&gt;
Geolocated information are plotted on map as graphical markers. Markers can be defined as:&lt;br /&gt;
&lt;br /&gt;
* A quadruplet: Title, Latitude, Longitude, Marker Class&lt;br /&gt;
* A sextuplet: Title, Address, Post code, City, Region Code, Marker Class&lt;br /&gt;
&lt;br /&gt;
Information fields have following specification:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Title&#039;&#039;: Textual label of the marker&lt;br /&gt;
* &#039;&#039;Latitude&#039;&#039;: floating point latitude&lt;br /&gt;
* &#039;&#039;Longitude&#039;&#039;: floating point longitude&lt;br /&gt;
* &#039;&#039;Address&#039;&#039;: road information&lt;br /&gt;
* &#039;&#039;Post code&#039;&#039;: Official post or zip code&lt;br /&gt;
* &#039;&#039;City&#039;&#039;: City name&lt;br /&gt;
* &#039;&#039;Marker Class&#039;&#039;: A classname, that will bind to a graphical icon	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setting fields let you bind required information to request output fields. Setting outputs will usually accept one or more field (or alias) names separated by semicolons (&amp;quot;;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Title input&#039;&#039;: Query output fieldname providing the textual label&lt;br /&gt;
* &#039;&#039;Location input&#039;&#039;: &lt;br /&gt;
** Case 1: THE output column name providing the geolocation couple as a comma pair of floating point values : &amp;quot;lat,lng&amp;quot; (ex : 47.098456,1.4534456)&lt;br /&gt;
** Case 2: A semicolon separated list of query output fieldnames (or aliases) that provide in order : address, post code, city, and region code (*)&lt;br /&gt;
* &#039;&#039;Marker type input&#039;&#039;: The query output fieldname that provides a class label&lt;br /&gt;
	&lt;br /&gt;
(*) Some constant values can be given for city, post code and region code, using quoted values in place of field name:&lt;br /&gt;
&lt;br /&gt;
   address;cp;city;&amp;quot;GB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
will always provide the value &amp;quot;GB&amp;quot; as region code.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuraton:_Plotting_geographic_information&amp;diff=101760</id>
		<title>Dashboard Configuraton: Plotting geographic information</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuraton:_Plotting_geographic_information&amp;diff=101760"/>
		<updated>2012-11-04T12:17:20Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; Back to index  ==Geographic data settings==  Geolocated information are plotted on map as graphical markers. Markers can be defined as:  * A quadruplet: Tit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
==Geographic data settings==&lt;br /&gt;
&lt;br /&gt;
Geolocated information are plotted on map as graphical markers. Markers can be defined as:&lt;br /&gt;
&lt;br /&gt;
* A quadruplet: Title, Latitude, Longitude, Marker Class&lt;br /&gt;
* A sextuplet: Title, Address, Post code, City, Region Code, Marker Class&lt;br /&gt;
&lt;br /&gt;
Information fields have following specification:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Title&#039;&#039;: Textual label of the marker&lt;br /&gt;
* &#039;&#039;Latitude&#039;&#039;: floating point latitude&lt;br /&gt;
* &#039;&#039;Longitude&#039;&#039;: floating point longitude&lt;br /&gt;
* &#039;&#039;Address&#039;&#039;: road information&lt;br /&gt;
* &#039;&#039;Post code&#039;&#039;: Official post or zip code&lt;br /&gt;
* &#039;&#039;City&#039;&#039;: City name&lt;br /&gt;
* &#039;&#039;Marker Class&#039;&#039;: A classname, that will bind to a graphical icon	&lt;br /&gt;
&lt;br /&gt;
Setting fields let you bind required information to request output fields. Setting outputs will usually accept one or more field (or alias) names separated by semicolons (&amp;quot;;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Title input&#039;&#039;: Query output fieldname providing the textual label&lt;br /&gt;
* &#039;&#039;Location input&#039;&#039;: &lt;br /&gt;
** Case 1: THE output column name providing the geolocation couple as a comma pair of floating point values : &amp;quot;lat,lng&amp;quot; (ex : 47.098456,1.4534456)&lt;br /&gt;
** Case 2: A semicolon separated list of query output fieldnames (or aliases) that provide in order : address, post code, city, and region code (*)&lt;br /&gt;
* &#039;&#039;Marker type input&#039;&#039;: The query output fieldname that provides a class label&lt;br /&gt;
	&lt;br /&gt;
(*) Some constant values can be given for city, post code and region code, using quoted values in place of field name:&lt;br /&gt;
&lt;br /&gt;
   address;cp;city;&amp;quot;GB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
will always provide the value &amp;quot;GB&amp;quot; as region code.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101759</id>
		<title>Dashboard Block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Block&amp;diff=101759"/>
		<updated>2012-11-04T12:13:53Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Instance Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &amp;quot;Dashboard Block&amp;quot; (more accurately Dashboard Element Block) allows displaying graphically or litterally the result of any query made in Moodle.&lt;br /&gt;
&lt;br /&gt;
When used in standard course formats, the block gives access to an extra page displaying the data redering for the specified query.&lt;br /&gt;
&lt;br /&gt;
When used in a paged format such as Flexipage, or any format allowing blocks to layout freely over the page, the block may display directly the graph rendering and be combined to other blocks to fgorm a complex, highly customizable dashboard.&lt;br /&gt;
&lt;br /&gt;
This blocks uses state-of-the art GPL libraries such as MIT JQplot and some other integrations. It has provision for powerfull data filtering and for using results for automatically generated exports.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
The block is standalone and provided with own graphic libraries. Just proceed to standard install by copying the code into the /blocks directory of Moodle and browsing to the notification page to get it installed logically. &lt;br /&gt;
&lt;br /&gt;
Provided libraries are :&lt;br /&gt;
&lt;br /&gt;
    JQplot : MIT Graph plotting library in HTML5&lt;br /&gt;
    TimeLine : A smart time line (still to develop)&lt;br /&gt;
    GoogleMapAPI : A wrapper to google map plotting of geolocated information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Capabilities and security advice==&lt;br /&gt;
&lt;br /&gt;
This block allows very deep data reading in Moodle database and powerfull data display. As the query can be written by power users with configuraiton capability, the block could be misused by unauthorised people and produce unwanted access to critical information.&lt;br /&gt;
&lt;br /&gt;
To reduce such risks, a couple of capabilities has been added to control precisely :&lt;br /&gt;
&lt;br /&gt;
    who is allowed to add such a blcok in a coutse.&lt;br /&gt;
    who is allowed to access the block configuration.&lt;br /&gt;
&lt;br /&gt;
==Major rendering features==&lt;br /&gt;
&lt;br /&gt;
===Litteral===&lt;br /&gt;
&lt;br /&gt;
*Linear table raw&lt;br /&gt;
*Linear table cleaned&lt;br /&gt;
*Linear table with subtotals&lt;br /&gt;
*Linear table with colour value coding (one column)&lt;br /&gt;
&lt;br /&gt;
* Tabular table Nx1 dimension&lt;br /&gt;
* Tree shaped hierarchic developement&lt;br /&gt;
&lt;br /&gt;
===Graphical===&lt;br /&gt;
&lt;br /&gt;
*Bars&lt;br /&gt;
*Lines&lt;br /&gt;
*Pies&lt;br /&gt;
*Donuts&lt;br /&gt;
*Timeline (expérimental)&lt;br /&gt;
*GoogleMap&lt;br /&gt;
&lt;br /&gt;
===File export generation===&lt;br /&gt;
&lt;br /&gt;
*CSV export (all data)&lt;br /&gt;
*CSV export (filtered data)&lt;br /&gt;
&lt;br /&gt;
==Data Filtering==&lt;br /&gt;
&lt;br /&gt;
*Multidimensional filtering&lt;br /&gt;
*Blocks filtering binding to the whole page for syncing several blocks to identical filtering values.&lt;br /&gt;
&lt;br /&gt;
==Global behaviour of the block==&lt;br /&gt;
&lt;br /&gt;
The key point of the block is its confguration form that will define all information needed to get data, filter it, choose what should be output in each rendering method, and finally individual parameters for each rendering method.&lt;br /&gt;
&lt;br /&gt;
Additional configuration allows to add dynamic filtering proposed to end users to filter dynamically the output.&lt;br /&gt;
&lt;br /&gt;
Althoug the setup form and rules are quite complex, we tried to implement a very lot of possibilities so this bloc becomes some kind of &amp;quot;swiss-knife&amp;quot; for Moodle smart reporting.&lt;br /&gt;
&lt;br /&gt;
==Global Settings==&lt;br /&gt;
&lt;br /&gt;
Some global settings allow derivated operation, such as querying an external (PostGre) database, or changing some technical performance features.&lt;br /&gt;
&lt;br /&gt;
[[Dashboard Block Global Settings | Global Settings]]&lt;br /&gt;
&lt;br /&gt;
==Instance Configuration==&lt;br /&gt;
&lt;br /&gt;
The configuration documentation is splitted into sections, each addressing a key feature of the dashboard.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Rendering location | Configuration: Rendering location]]&lt;br /&gt;
* [[Dashboard Configuration: Rendering channels | Configuration: Rendering channels]]&lt;br /&gt;
* [[Dashboard Configuration: Writing Query | Configuration: Writing Query]]&lt;br /&gt;
* [[Dashboard Configuration: Raw data (litteral) rendering | Configuration: Raw data (litteral) rendering]]&lt;br /&gt;
* [[Dashboard Configuration: Graph rendering settings | Configuration: Graph rendering settings]]&lt;br /&gt;
* [[Dashboard Configuration: Configuring summarizers | Configuration: Configuring summarizers]]&lt;br /&gt;
* [[Dashboard Configuration: Cache options and setting up exports | Configuration: Cache options and setting up exports]] &lt;br /&gt;
&lt;br /&gt;
Some extra confguration can improve data display&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard Configuration: Additional settings for crosstable and tree-shaped display | Additional settings for crosstable and tree-shaped data display]]&lt;br /&gt;
* [[Dashboard Configuration: Additional parameters for output colouring of data | Additional parameters for output colouring of data]]&lt;br /&gt;
* [[Dashboard Configuraton: Plotting geographic information | Additional parameters for geographic plotting (experimental)]]&lt;br /&gt;
&lt;br /&gt;
==Development Road Map==&lt;br /&gt;
&lt;br /&gt;
These are future features that are foreseen in the next road map for Dashboard Block.&lt;br /&gt;
&lt;br /&gt;
* Query parametrization with user filled variables&lt;br /&gt;
* PDF generators&lt;br /&gt;
* Crosstable Excel exports&lt;br /&gt;
* Filtering values pre-fetch caching to improve performance&lt;br /&gt;
* Accessory database extension to MySQL schemes&lt;br /&gt;
 &lt;br /&gt;
=== Reference, information, development and support ===&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Bloc Tableau de bord]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101756</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101756"/>
		<updated>2012-11-04T12:06:43Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Filter Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This checkbox disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
Filtering will generate additional SQL WHERE clauses that need to be explicitely located in the initial query:&lt;br /&gt;
&lt;br /&gt;
You will use a &amp;lt;%%FILTERS%%&amp;gt; placeholder for this: &lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filters stakeholder will in this case add the whole WHERE clause. In case your query already has WHERE statements, the flters stakeholder will only add additional filtering tests:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   WHERE&lt;br /&gt;
   country = &#039;AU&#039;&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above sample prefilters users from Australia, than adds what is required by filters.&lt;br /&gt;
&lt;br /&gt;
What follows is NOT a valid lcoation:&lt;br /&gt;
&lt;br /&gt;
   SELECT &lt;br /&gt;
   data1,data2&lt;br /&gt;
   FROM&lt;br /&gt;
   table1 t1,&lt;br /&gt;
   table2 t2&lt;br /&gt;
   GROUP BY&lt;br /&gt;
   data2&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
   ORDER BY&lt;br /&gt;
   data1&lt;br /&gt;
&lt;br /&gt;
As a WHERE clause cannot be run after a GROUP BY.	   &lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter definition needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
===Using multiple filters===&lt;br /&gt;
&lt;br /&gt;
Beware : when using two or more filters, each of them provides its modality list independently. Thus some filtering combination could result in possible &amp;quot;no values&amp;quot; ar all.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101754</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101754"/>
		<updated>2012-11-04T12:04:54Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Output Dynamic Filters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This checkbox disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
Filtering will generate additional SQL WHERE clauses that need to be explicitely located in the initial query:&lt;br /&gt;
&lt;br /&gt;
You will use a &amp;lt;%%FILTERS%%&amp;gt; placeholder for this: &lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filters stakeholder will in this case add the whole WHERE clause. In case your query already has WHERE statements, the flters stakeholder will only add additional filtering tests:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   WHERE&lt;br /&gt;
   country = &#039;AU&#039;&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above sample prefilters users from Australia, than adds what is required by filters.&lt;br /&gt;
&lt;br /&gt;
What follows is NOT a valid lcoation:&lt;br /&gt;
&lt;br /&gt;
   SELECT &lt;br /&gt;
   data1,data2&lt;br /&gt;
   FROM&lt;br /&gt;
   table1 t1,&lt;br /&gt;
   table2 t2&lt;br /&gt;
   GROUP BY&lt;br /&gt;
   data2&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
   ORDER BY&lt;br /&gt;
   data1&lt;br /&gt;
&lt;br /&gt;
As a WHERE clause cannot be run after a GROUP BY.	   &lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter definition needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101753</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101753"/>
		<updated>2012-11-04T12:02:05Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Output Dynamic Filters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This checkbox disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
Filtering will generate additional SQL WHERE clauses that need to be explicitely located in the initial query:&lt;br /&gt;
&lt;br /&gt;
You will use a &amp;lt;%%FILTERS%%&amp;gt; placeholder for this: &lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filters stakeholder will in this case add the whole WHERE clause. In case your query already has WHERE statements, the flters stakeholder will only add additional filtering tests:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
   FROM&lt;br /&gt;
   mdl_user&lt;br /&gt;
   WHERE&lt;br /&gt;
   country = &#039;AU&#039;&lt;br /&gt;
   &amp;lt;%%FILTERS%%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above sample prefilters users from Australia, than adds what is required by filters.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter definition needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101751</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101751"/>
		<updated>2012-11-04T11:56:47Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Filters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This checkbox disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter definition needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101750</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101750"/>
		<updated>2012-11-04T11:54:36Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Override Big Results security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This checkbox disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter defintion needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101749</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101749"/>
		<updated>2012-11-04T11:54:19Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatting data directly in the SQL syntax may not be friendly for SQL readability. This setting defines some post-formatting filters you can apply on data, based on the sprintf() syntax. Using formatting codes of sprintf makes data reformatting easy, f.e. for numeric output:&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This check box disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : Outputting results in files will require the cache is enabled.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter defintion needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Original query for the sample)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101748</id>
		<title>Dashboard Configuration: Raw data (litteral) rendering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Dashboard_Configuration:_Raw_data_(litteral)_rendering&amp;diff=101748"/>
		<updated>2012-11-04T11:45:12Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Table type */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Dashboard Block | Back to index]]&lt;br /&gt;
&lt;br /&gt;
Raw litteral output uses direct data from query output and display those data in textual tables.&lt;br /&gt;
&lt;br /&gt;
Depending on configuration settings, several display modes are possible. Some modes will need additional settings provided in accessory form sections. &lt;br /&gt;
&lt;br /&gt;
==Common settings for row data output==&lt;br /&gt;
&lt;br /&gt;
===Choosing columns as data output===&lt;br /&gt;
&lt;br /&gt;
The first absolute choice to execute is selecting which colun from query are to be displayed in table. Often the raw data will only display a part of the effective resulting dataset. You will select column in order by writing here a semi-column separated list of aliases. Of course aliases names should be present in the query!&lt;br /&gt;
&lt;br /&gt;
example :&lt;br /&gt;
&lt;br /&gt;
Say we enter such a query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   username as login&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Following names could figure in the column selection textfield: ln;fn;login&lt;br /&gt;
&lt;br /&gt;
===Output fields display name===&lt;br /&gt;
&lt;br /&gt;
Aliased token are seldom friendly names for end-users. The texfield for column names allows to convert column identities to friendly names in effective display. Just separate dispalyed names by semi-column (;) and enter same number of names for each declaed column, in same order.&lt;br /&gt;
&lt;br /&gt;
With previous example, we could have setup:&lt;br /&gt;
&lt;br /&gt;
Output fields : fn;ln;login&lt;br /&gt;
Output field names : Firstname;Lastname;UserID&lt;br /&gt;
&lt;br /&gt;
===Output fields format===&lt;br /&gt;
&lt;br /&gt;
Formatter les données exactement dans l&#039;expression de la requête SQL n&#039;est pas toujours commode. Cette liste permet d&#039;effectuer un post-formattage des données, basé sur la fonction sprintf(). Il est par exemple possible de reformatter des données numériques en utilisant les codes de format de cette fonction :&lt;br /&gt;
&lt;br /&gt;
    %s : string&lt;br /&gt;
    %d : integer (floored)&lt;br /&gt;
    %03d : integer with 3 digits, 0-filled (001, 002, etc.)&lt;br /&gt;
    %.2f : 2 digit decimals&lt;br /&gt;
    etc. (check the PHP sprintf documentation for the complete formatting syntax).&lt;br /&gt;
&lt;br /&gt;
==Result Page Size==&lt;br /&gt;
&lt;br /&gt;
This setting sets up a page limitation for linear tables as output.&lt;br /&gt;
&lt;br /&gt;
===Override Big Results security=== &lt;br /&gt;
&lt;br /&gt;
This check box disables for this block instance the &amp;quot;Big Result&amp;quot; security setting (global configuration) that forces data paging for big results. This is usefull for graphed output displaying a lot of data.&lt;br /&gt;
&lt;br /&gt;
==Query caching==&lt;br /&gt;
&lt;br /&gt;
===Enabling query cache===&lt;br /&gt;
&lt;br /&gt;
When query cache is enabled, the Dashboard Block saves in a cache the query results and willuse this data during the TTL.&lt;br /&gt;
&lt;br /&gt;
===TTL (Time to live)=== &lt;br /&gt;
&lt;br /&gt;
TTL is setup in minutes. Caching is effective when enabled AND a TTL is set higher than 0.&lt;br /&gt;
&lt;br /&gt;
Note : L&#039;activation du cache de résultat est obligatoire pour activer les exports en fichiers.&lt;br /&gt;
&lt;br /&gt;
==Data Cleanup (linear table output only)==&lt;br /&gt;
&lt;br /&gt;
If data cleaning is enabled, cells containing same value than a superior cell will remain undisplayed, for better viewing confort.&lt;br /&gt;
&lt;br /&gt;
==Sortable Table (linear table only)==&lt;br /&gt;
&lt;br /&gt;
If table is set to sortable, column names will enable sorting links.&lt;br /&gt;
&lt;br /&gt;
==Sub-totals==&lt;br /&gt;
&lt;br /&gt;
If some summarizers are setup (See &amp;quot;summarizers&amp;quot;), than subtotals on the specified summarizers can be obtained on value change of a given column. Having the subtotals shown in output assumes also that table &#039;&#039;&#039;is sorted using the subtotal&#039;&#039;&#039; driving column. &lt;br /&gt;
 &lt;br /&gt;
==Output Dynamic Filters==&lt;br /&gt;
&lt;br /&gt;
This important setting chapter tells how to configure dynamic filter the end user will use to select what part of the resuting dataset will be displayed.&lt;br /&gt;
&lt;br /&gt;
Filters are criteria definitions that will add &amp;quot;selectors&amp;quot; (select lists) above the output redenring. A filter usually is matching a single column of the initial query. All disticnt values in this column fromthe original result are used as filtering set.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take q query:&lt;br /&gt;
&lt;br /&gt;
   SELECT&lt;br /&gt;
   firstname as fn,&lt;br /&gt;
   lastname as ln,&lt;br /&gt;
   city as ct&lt;br /&gt;
&lt;br /&gt;
   ....&lt;br /&gt;
&lt;br /&gt;
and users living in PARIS, SANTA CLARA (CA) and PRAGUE.&lt;br /&gt;
&lt;br /&gt;
If a filter &amp;quot;city as ct&amp;quot; is mentionned as filter, a select will be added to the display choosing in the set: &amp;quot;*,PARIS,SANTA CLARA,PRAGUE&amp;quot;. &#039;*&#039; stands for &amp;quot;unfiltered&amp;quot;. Choosing any value at display time will only keep correponding data.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
Filter will be defined as a semi-column (;) separated list of SQL columns definitions.&lt;br /&gt;
&lt;br /&gt;
Filter defintion needs the entire SQL field clause including alias. Thus in above example the correct expressionis &amp;quot;city as ct&amp;quot; and not &amp;quot;city&amp;quot; or &amp;quot;ct&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Filter names===&lt;br /&gt;
&lt;br /&gt;
Right as for output columns, filter criterias will have comprehensive labels for display.&lt;br /&gt;
&lt;br /&gt;
You may enter a semi-column (;) separated list of labels for naming each filter, in same order and amount than the filter definition list.&lt;br /&gt;
&lt;br /&gt;
Note : There is no provision for escaping litteral &amp;quot;;&amp;quot;. Thus no semi-column should be used in names or labels...&lt;br /&gt;
&lt;br /&gt;
===Filter Defaults===&lt;br /&gt;
&lt;br /&gt;
Filter add some clauses in final WHERE statement. Without any default value, filtering is disabled when Dashboard element is show for the first time in the browsing session. This setting allows to force chossing a value for filtering by default. Possible choice is:&lt;br /&gt;
&lt;br /&gt;
*FIRST: Chooses first filtering value found in filtering set&lt;br /&gt;
*LAST: Chooses last filtering value found in filtering set&lt;br /&gt;
*&amp;lt;empty&amp;gt;: No default value, using &#039;*&#039;.&lt;br /&gt;
&lt;br /&gt;
All defaults will be set as a semi-column(;) separated list,in same order and amount than filter declarations.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
Filter : department as dpt;city as ct&lt;br /&gt;
Filter defaults: ;FIRST&lt;br /&gt;
&lt;br /&gt;
In this example, the default for department is &#039;*&#039;(unfiltered)&lt;br /&gt;
&lt;br /&gt;
===Filter Options===&lt;br /&gt;
&lt;br /&gt;
Some options can drastically change the behaviour of the filter or affect several Dashboard Elements on a same page layout. This options are &amp;quot;single-letter markers&amp;quot; that can appear in any order:&lt;br /&gt;
&lt;br /&gt;
*g : Enables global filtering. If other filter from other Dashboard Elements are using the same column definition on the page, than changing a filter value in one Dashboard will attempt to affect all other identical global filters.&lt;br /&gt;
*s : Force &amp;quot;Single&amp;quot; : When present, this will avoid to provide the &amp;quot;*&amp;quot; (unfiltered) option in fitler value set, and will force to choose a filtering value as default. This is usefull for &amp;quot;Big Size Results&amp;quot; that would not be worth trying to display in fill range. If no explicit setting for &amp;quot;Filter défaut&amp;quot; has been specified, then FIRST is forced.&lt;br /&gt;
*m : Allow &amp;quot;Multiple&amp;quot; : When present, this markr will allow choosing multiple valuesin filter value set, thus allowing to define ranges, or subsets. Filter select turns to multiple selection widget.&lt;br /&gt;
*x : &amp;quot;Crossover&amp;quot; : Usually, filtering data adds additional clauses that may need complex query cleanup and processing. In some cases, those cleanup operations may fail to produce syntax safe query, (when using with unions, subqueries, multiple nested clauses ORDER BY, etc.). This marker will disable these cleanup operations, that may in certain cases, save some situations.&lt;br /&gt;
&lt;br /&gt;
==Table type==&lt;br /&gt;
&lt;br /&gt;
Raw data may be displayed using several table layout, depending on data organisation:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Linear display:&#039;&#039;&#039; Data are displayed as a simple table, each record as a line, developping output fields as cells.&lt;br /&gt;
&lt;br /&gt;
[[Image:lineartablesample.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Requête origine pour l&#039;exemple)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tabular crosstable:&#039;&#039;&#039; Data is layout in 2 dimensions as a matrix crosstable. Some extra paramters are needed to control this output mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:matrixsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tree-shaped display:&#039;&#039;&#039; This mode is dependaing on some contraint on query itself. To use this mode, extracted data must have a hierarchical underlying organisation. Such an organisation would provide:&lt;br /&gt;
**A principle of filiation (a record has a parent mapped by an id)&lt;br /&gt;
**A node identity (a node can be identified by a value as node name)&lt;br /&gt;
**A node value (or serie of value) for each node in the tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:hierarchicsample.jpg]]&lt;br /&gt;
&lt;br /&gt;
This mode needs additional parameters to be set.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101747</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101747"/>
		<updated>2012-11-04T11:14:58Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs, or even Multitrack test) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Installs as a standard activtiy plugin by unpacking the module in &#039;mod&#039; directory and run notifications.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined in the [[Magtest module:setup | setup form]]&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101742</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101742"/>
		<updated>2012-11-03T19:29:31Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Installs as a standard activtiy plugin by unpacking the module in &#039;mod&#039; directory and run notifications.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined in the [[Magtest module:setup | setup form]]&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101741</id>
		<title>Magtest module:setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101741"/>
		<updated>2012-11-03T19:28:36Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Magtest module | back to index]]&lt;br /&gt;
&lt;br /&gt;
[[image:setup_form.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Global conclusion text===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101740</id>
		<title>Magtest module:setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101740"/>
		<updated>2012-11-03T19:28:07Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Magtest module | back to index]]&lt;br /&gt;
&lt;br /&gt;
[[image:setup_form.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101739</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101739"/>
		<updated>2012-11-03T19:27:54Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined in the [[Magtest module:setup | setup form]]&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101738</id>
		<title>Magtest module:setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101738"/>
		<updated>2012-11-03T19:27:17Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Magtest module | back to index]]&lt;br /&gt;
&lt;br /&gt;
[[image:setup_form.jpg]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=File:setup_form.jpg&amp;diff=101737</id>
		<title>File:setup form.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=File:setup_form.jpg&amp;diff=101737"/>
		<updated>2012-11-03T19:26:35Z</updated>

		<summary type="html">&lt;p&gt;Vf: Magtest setup screen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Magtest setup screen&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101736</id>
		<title>Magtest module:setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module:setup&amp;diff=101736"/>
		<updated>2012-11-03T19:23:57Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot; back to index  image:setup_form&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Magtest module | back to index]]&lt;br /&gt;
&lt;br /&gt;
[[image:setup_form]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101735</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101735"/>
		<updated>2012-11-03T19:23:21Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined in the [[Magtest module:setup | setup form]] &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101734</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101734"/>
		<updated>2012-11-03T19:23:08Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined in the [Magtest module:setup | setup form] &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101733</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101733"/>
		<updated>2012-11-03T19:19:55Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined: &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
* mod/magtest/addinstance : People having this capability can add an instance in the course (standard capability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101732</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101732"/>
		<updated>2012-11-03T19:19:19Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined: &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for students&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capabilities for teachers and power users&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101731</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101731"/>
		<updated>2012-11-03T19:19:03Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined: &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
Capabilities for students&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
Capabilities for teachers and power users&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
&lt;br /&gt;
Miscellaneous&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101730</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101730"/>
		<updated>2012-11-03T19:18:23Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined: &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
Capabilities for students&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
Capability for teachers and power users&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
&lt;br /&gt;
Miscellaneous&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;br /&gt;
&lt;br /&gt;
== Reference, information, development and support ==&lt;br /&gt;
&lt;br /&gt;
valery.fremaux-AT-gmail.com&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101728</id>
		<title>Magtest module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Magtest_module&amp;diff=101728"/>
		<updated>2012-11-03T11:22:19Z</updated>

		<summary type="html">&lt;p&gt;Vf: Created page with &amp;quot;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant cla...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magtest module (also standing for Magazine test module, as inspired by the Leisure press personality test customs) provides a multitrack scoring test allowing participant classification in categories. It is simple to setup and use.&lt;br /&gt;
&lt;br /&gt;
The Magtest module defines categories of answers, then defines questions and answers for each of the available categories.&lt;br /&gt;
&lt;br /&gt;
The only activity of students is to perform the test chossing one of the proposed answers, and read result profile feedback (highlighted) at the end.&lt;br /&gt;
&lt;br /&gt;
The module settings allow the test to be played once or accept multiple attemprs (by capability). Also answers can be weighted, so adding more or less credits to an output category.&lt;br /&gt;
&lt;br /&gt;
===Making groups in course with magtest===&lt;br /&gt;
&lt;br /&gt;
Enabling the group making feature, the result of the magtest can be converted into group definition in course. Setup allows defining the group name and group description that will be generated from the magtest participants classification. &lt;br /&gt;
&lt;br /&gt;
Note that to avoid misuse of this feature, the coruse MUST have no groups defined to allow groups generation.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
The setup properties are as defined: &lt;br /&gt;
&lt;br /&gt;
===Instance name===&lt;br /&gt;
&lt;br /&gt;
Defines the visible name of the instance in the course&lt;br /&gt;
&lt;br /&gt;
===Intro===&lt;br /&gt;
&lt;br /&gt;
ALlows giving a summary of the activity&lt;br /&gt;
&lt;br /&gt;
===Start and end time===&lt;br /&gt;
&lt;br /&gt;
Used to open or close the actiity in a time range.&lt;br /&gt;
&lt;br /&gt;
===Weighted===&lt;br /&gt;
&lt;br /&gt;
When enabled, distinct weights can be attributed to each answer for its attached category. When disabled, the default constant weight is 1.&lt;br /&gt;
&lt;br /&gt;
===Use the &amp;quot;make group&amp;quot; utility===&lt;br /&gt;
&lt;br /&gt;
Enables the group making feature&lt;br /&gt;
&lt;br /&gt;
===Questions per page===&lt;br /&gt;
&lt;br /&gt;
Sets up how many questions are printed on the same page. &lt;br /&gt;
&lt;br /&gt;
===Allow replay===&lt;br /&gt;
&lt;br /&gt;
Global allow replay switch. A user can replay if allow eplay is enabled AND he has capability to play again.&lt;br /&gt;
&lt;br /&gt;
===Result===&lt;br /&gt;
&lt;br /&gt;
Sets up a global feedback that will comment the result grid.&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
* Test screen&lt;br /&gt;
* Preview (teacher)&lt;br /&gt;
* Categories (teacher)&lt;br /&gt;
* Questions (teacher)&lt;br /&gt;
* Results (teacher)&lt;br /&gt;
* Stats (teacher)&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
Capabilities for students&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/multipleattempts : People having this capability enabled can replay the test&lt;br /&gt;
* mod/magtest/doit : People having this capability can play the test&lt;br /&gt;
&lt;br /&gt;
Capability for teachers and power users&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/manage : People having this capability can edit, add, delete categories and questions&lt;br /&gt;
* mod/magtest/viewotherresults : People having this capability can access to results of all participants&lt;br /&gt;
&lt;br /&gt;
Miscellaneous&lt;br /&gt;
&lt;br /&gt;
* mod/magtest/viewgeneralstat : People having this capability can access to global stats&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100746</id>
		<title>Publishflow Block : Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100746"/>
		<updated>2012-09-28T21:50:30Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Warning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Course Publishing block (publishflow)|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The blocks/publishflow installs as usual for blocks.&lt;br /&gt;
&lt;br /&gt;
* Get the archive&lt;br /&gt;
* Unzip it in the &#039;&#039;blocks&#039;&#039; diretory of Moodle&lt;br /&gt;
* Go to Administration notifications to make the logical install of the block.&lt;br /&gt;
&lt;br /&gt;
You will need to make some prepraration before the module can be used in courses.&lt;br /&gt;
&lt;br /&gt;
Note : This module may be used for easy local deployement of a course, but will not really do much more than common restore (unless less steps in restore). Using this block makes sense when configuring a Moodle Network with some publishing model.&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
A bug described in: &lt;br /&gt;
&lt;br /&gt;
http://tracker.moodle.org/browse/MDL-35677&lt;br /&gt;
&lt;br /&gt;
forbids correct install of MNET RPC function records for blocks plugins. &lt;br /&gt;
&lt;br /&gt;
Workarounds:&lt;br /&gt;
 &lt;br /&gt;
* Apply correction proposed in the Tracker Issue.&lt;br /&gt;
* or change manually RPC function xmlrpcpath values in database (table mdl_mnet_rpc) for having &amp;quot;blocks/&amp;quot; as first path component&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100745</id>
		<title>Publishflow Block : Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100745"/>
		<updated>2012-09-28T21:50:09Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Warning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Course Publishing block (publishflow)|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The blocks/publishflow installs as usual for blocks.&lt;br /&gt;
&lt;br /&gt;
* Get the archive&lt;br /&gt;
* Unzip it in the &#039;&#039;blocks&#039;&#039; diretory of Moodle&lt;br /&gt;
* Go to Administration notifications to make the logical install of the block.&lt;br /&gt;
&lt;br /&gt;
You will need to make some prepraration before the module can be used in courses.&lt;br /&gt;
&lt;br /&gt;
Note : This module may be used for easy local deployement of a course, but will not really do much more than common restore (unless less steps in restore). Using this block makes sense when configuring a Moodle Network with some publishing model.&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
A bug described in: &lt;br /&gt;
&lt;br /&gt;
http://tracker.moodle.org/browse/MDL-35677&lt;br /&gt;
&lt;br /&gt;
forbids correct install of MNET RPC function records. &lt;br /&gt;
&lt;br /&gt;
Workarounds:&lt;br /&gt;
 &lt;br /&gt;
* Apply correction proposed in the Tracker Issue.&lt;br /&gt;
* or change manually RPC function xmlrpcpath values in database (table mdl_mnet_rpc) for having &amp;quot;blocks/&amp;quot; as first path component&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100744</id>
		<title>Publishflow Block : Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100744"/>
		<updated>2012-09-28T21:49:53Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Warning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Course Publishing block (publishflow)|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The blocks/publishflow installs as usual for blocks.&lt;br /&gt;
&lt;br /&gt;
* Get the archive&lt;br /&gt;
* Unzip it in the &#039;&#039;blocks&#039;&#039; diretory of Moodle&lt;br /&gt;
* Go to Administration notifications to make the logical install of the block.&lt;br /&gt;
&lt;br /&gt;
You will need to make some prepraration before the module can be used in courses.&lt;br /&gt;
&lt;br /&gt;
Note : This module may be used for easy local deployement of a course, but will not really do much more than common restore (unless less steps in restore). Using this block makes sense when configuring a Moodle Network with some publishing model.&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
A bug described in: &lt;br /&gt;
&lt;br /&gt;
[[http://tracker.moodle.org/browse/MDL-35677 | MDL-35677]]&lt;br /&gt;
&lt;br /&gt;
forbids correct install of MNET RPC function records. &lt;br /&gt;
&lt;br /&gt;
Workarounds:&lt;br /&gt;
 &lt;br /&gt;
* Apply correction proposed in the Tracker Issue.&lt;br /&gt;
* or change manually RPC function xmlrpcpath values in database (table mdl_mnet_rpc) for having &amp;quot;blocks/&amp;quot; as first path component&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100743</id>
		<title>Publishflow Block : Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100743"/>
		<updated>2012-09-28T21:49:21Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Warning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Course Publishing block (publishflow)|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The blocks/publishflow installs as usual for blocks.&lt;br /&gt;
&lt;br /&gt;
* Get the archive&lt;br /&gt;
* Unzip it in the &#039;&#039;blocks&#039;&#039; diretory of Moodle&lt;br /&gt;
* Go to Administration notifications to make the logical install of the block.&lt;br /&gt;
&lt;br /&gt;
You will need to make some prepraration before the module can be used in courses.&lt;br /&gt;
&lt;br /&gt;
Note : This module may be used for easy local deployement of a course, but will not really do much more than common restore (unless less steps in restore). Using this block makes sense when configuring a Moodle Network with some publishing model.&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
A bug described in: &lt;br /&gt;
&lt;br /&gt;
[[http://tracker.moodle.org/browse/MDL-35677]]&lt;br /&gt;
&lt;br /&gt;
forbids correct install of MNET RPC function records. &lt;br /&gt;
&lt;br /&gt;
Workarounds:&lt;br /&gt;
 &lt;br /&gt;
* Apply correction proposed in the Tracker Issue.&lt;br /&gt;
* or change manually RPC function xmlrpcpath values in database (table mdl_mnet_rpc) for having &amp;quot;blocks/&amp;quot; as first path component&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100742</id>
		<title>Publishflow Block : Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_Installation&amp;diff=100742"/>
		<updated>2012-09-28T21:49:05Z</updated>

		<summary type="html">&lt;p&gt;Vf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Course Publishing block (publishflow)|Back to index]]&lt;br /&gt;
&lt;br /&gt;
The blocks/publishflow installs as usual for blocks.&lt;br /&gt;
&lt;br /&gt;
* Get the archive&lt;br /&gt;
* Unzip it in the &#039;&#039;blocks&#039;&#039; diretory of Moodle&lt;br /&gt;
* Go to Administration notifications to make the logical install of the block.&lt;br /&gt;
&lt;br /&gt;
You will need to make some prepraration before the module can be used in courses.&lt;br /&gt;
&lt;br /&gt;
Note : This module may be used for easy local deployement of a course, but will not really do much more than common restore (unless less steps in restore). Using this block makes sense when configuring a Moodle Network with some publishing model.&lt;br /&gt;
&lt;br /&gt;
==Warning==&lt;br /&gt;
&lt;br /&gt;
A bug described in: &lt;br /&gt;
&lt;br /&gt;
[http://tracker.moodle.org/browse/MDL-35677]&lt;br /&gt;
&lt;br /&gt;
forbids correct install of MNET RPC function records. &lt;br /&gt;
&lt;br /&gt;
Workarounds:&lt;br /&gt;
 &lt;br /&gt;
* Apply correction proposed in the Tracker Issue.&lt;br /&gt;
* or change manually RPC function xmlrpcpath values in database (table mdl_mnet_rpc) for having &amp;quot;blocks/&amp;quot; as first path component&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100740</id>
		<title>Publishflow Block : MNET Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100740"/>
		<updated>2012-09-28T21:29:49Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishflow implements a set of MNET services in order to perform proper across MNET operations.&lt;br /&gt;
&lt;br /&gt;
Here comes the list of MNET XML-RPC functions that are provided by the blocks XML-RPC API.&lt;br /&gt;
&lt;br /&gt;
Please note that the XML-RPC API applied to blocks need using a published patch adding XML-RPC support to blocks in Moodle 1.9. This support is now fully available in Moodle 2.0, although this block is not yet ported forth.&lt;br /&gt;
&lt;br /&gt;
==Service : publishflow==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This service is used to hold all RPC related functions for publishflow operations.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_get_sessions():&#039;&#039;&#039; get information about remotely deployed instances of a course template. Till now, we have feared to interfer too much wich core database model and use the IDNumber of the course to identify similarity between distinct course volumes. i.e. all courses sharing the same value of IDNumber are considered as being instances of an originating course in a factory node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deliver()&#039;&#039;&#039;: get a course backup from a remote platform. If data transfer is done using local file system, will only give information about the physical location of a course archive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deploy()&#039;&#039;&#039;: deploys a course archive where called. This function has to be called remotely from the archive originator that will drive the deployement process (i.e. the deployment IS NOT initiated from the platform you want the course coming in, but where it goes out).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_publish()&#039;&#039;&#039;: similar to the deployment function, but there are some particularities when dealing between a Course Factory and a Course Catalog Moodle instances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;publishflow_updateplatforms()&#039;&#039;&#039;: This function is called by other hosts in a MNET to explore the network and determine which instances are in the MNET neighborhood.&lt;br /&gt;
&lt;br /&gt;
==Other Unregistered XML-RPC Calls==&lt;br /&gt;
&lt;br /&gt;
The following functions entries are XML-RPC functions that were setup for external control of the deployement. They are not registered into MNET services.&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_deploy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;purpose:&#039;&#039;&#039;&lt;br /&gt;
Asking from an external system to deploy a course somwhere in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parameters:&#039;&#039;&#039; &lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier: The value that identifies the course backup, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the MNET host where to deploy.&lt;br /&gt;
*parmsoverride: a structure that can override any value of the Moodle &amp;quot;course&amp;quot; record thus deployed instance can have its name, shortname or starting date changed. OPTIONAL.&lt;br /&gt;
*json_response: if true, the response is JSONed for convenience with remote XML-RPC implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_close_course&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
Asks a remote node to close a course (regarding the course life-cycle handling by the publishflow block)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier : the value that identifies the course to be closed, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the node where the course needs to be closed&lt;br /&gt;
*mode: The closing mode (see publishflow Course life-Cycle in Training Nodes)&lt;br /&gt;
*json_response: (see above).&lt;br /&gt;
&lt;br /&gt;
==Alternate form of the external RPC calls==&lt;br /&gt;
&lt;br /&gt;
Some external applications (ERPs) do not provide support for shooting RPC calls with separate parameters (OfBiz). the two functions above are also available in a wrapped alternate form : &lt;br /&gt;
&lt;br /&gt;
publishflow_rpc_deploy_wrapped($wrap)&lt;br /&gt;
publishflow_rpc_close_course_wrapped($wrap)&lt;br /&gt;
&lt;br /&gt;
the wrap is an associative array grouping all required parameters in to a single parameter data bundle. these functions are given as &#039;adaptors&#039; for that special situations.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100739</id>
		<title>Publishflow Block : MNET Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100739"/>
		<updated>2012-09-28T21:29:37Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishflow implements a set of MNET services in order to perform proper across MNET operations.&lt;br /&gt;
&lt;br /&gt;
Here comes the list of MNET XML-RPC functions that are provided by the blocks XML-RPC API.&lt;br /&gt;
&lt;br /&gt;
Please note that the XML-RPC API applied to blocks need using a published patch adding XML-RPC support to blocks in Moodle 1.9. This support is now fully available in Moodle 2.0, although this block is not yet ported forth.&lt;br /&gt;
&lt;br /&gt;
==Service : publishflow==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This service is used to hold all RPC related functions for publishflow operations.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_get_sessions():&#039;&#039;&#039; get information about remotely deployed instances of a course template. Till now, we have feared to interfer too much wich core database model and use the IDNumber of the course to identify similarity between distinct course volumes. i.e. all courses sharing the same value of IDNumber are considered as being instances of an originating course in a factory node.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deliver()&#039;&#039;&#039;: get a course backup from a remote platform. If data transfer is done using local file system, will only give information about the physical location of a course archive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deploy()&#039;&#039;&#039;: deploys a course archive where called. This function has to be called remotely from the archive originator that will drive the deployement process (i.e. the deployment IS NOT initiated from the platform you want the course coming in, but where it goes out).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_publish()&#039;&#039;&#039;: similar to the deployment function, but there are some particularities when dealing between a Course Factory and a Course Catalog Moodle instances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;publishflow_updateplatforms()&#039;&#039;&#039;: This function is called by other hosts in a MNET to explore the network and determine which instances are in the MNET neighborhood.&lt;br /&gt;
&lt;br /&gt;
==Other Unregistered XML-RPC Calls==&lt;br /&gt;
&lt;br /&gt;
The following functions entries are XML-RPC functions that were setup for external control of the deployement. They are not registered into MNET services.&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_deploy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;purpose:&#039;&#039;&#039;&lt;br /&gt;
Asking from an external system to deploy a course somwhere in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parameters:&#039;&#039;&#039; &lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier: The value that identifies the course backup, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the MNET host where to deploy.&lt;br /&gt;
*parmsoverride: a structure that can override any value of the Moodle &amp;quot;course&amp;quot; record thus deployed instance can have its name, shortname or starting date changed. OPTIONAL.&lt;br /&gt;
*json_response: if true, the response is JSONed for convenience with remote XML-RPC implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_close_course&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
Asks a remote node to close a course (regarding the course life-cycle handling by the publishflow block)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier : the value that identifies the course to be closed, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the node where the course needs to be closed&lt;br /&gt;
*mode: The closing mode (see publishflow Course life-Cycle in Training Nodes)&lt;br /&gt;
*json_response: (see above).&lt;br /&gt;
&lt;br /&gt;
==Alternate form of the external RPC calls==&lt;br /&gt;
&lt;br /&gt;
Some external applications (ERPs) do not provide support for shooting RPC calls with separate parameters (OfBiz). the two functions above are also available in a wrapped alternate form : &lt;br /&gt;
&lt;br /&gt;
publishflow_rpc_deploy_wrapped($wrap)&lt;br /&gt;
publishflow_rpc_close_course_wrapped($wrap)&lt;br /&gt;
&lt;br /&gt;
the wrap is an associative array grouping all required parameters in to a single parameter data bundle. these functions are given as &#039;adaptors&#039; for that special situations.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100738</id>
		<title>Publishflow Block : MNET Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100738"/>
		<updated>2012-09-28T21:29:16Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Service : coursedelivery_admin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishflow implements a set of MNET services in order to perform proper across MNET operations.&lt;br /&gt;
&lt;br /&gt;
Here comes the list of MNET XML-RPC functions that are provided by the blocks XML-RPC API.&lt;br /&gt;
&lt;br /&gt;
Please note that the XML-RPC API applied to blocks need using a published patch adding XML-RPC support to blocks in Moodle 1.9. This support is now fully available in Moodle 2.0, although this block is not yet ported forth.&lt;br /&gt;
&lt;br /&gt;
==Service : publishflow==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This service is used to hold all RPC related functions for publishflow operations.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
delivery_get_sessions() : get information about remotely deployed instances of a course template. Till now, we have feared to interfer too much wich core database model and use the IDNumber of the course to identify similarity between distinct course volumes. i.e. all courses sharing the same value of IDNumber are considered as being instances of an originating course in a factory node.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deliver()&#039;&#039;&#039;: get a course backup from a remote platform. If data transfer is done using local file system, will only give information about the physical location of a course archive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deploy()&#039;&#039;&#039;: deploys a course archive where called. This function has to be called remotely from the archive originator that will drive the deployement process (i.e. the deployment IS NOT initiated from the platform you want the course coming in, but where it goes out).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_publish()&#039;&#039;&#039;: similar to the deployment function, but there are some particularities when dealing between a Course Factory and a Course Catalog Moodle instances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;publishflow_updateplatforms()&#039;&#039;&#039;: This function is called by other hosts in a MNET to explore the network and determine which instances are in the MNET neighborhood.&lt;br /&gt;
&lt;br /&gt;
==Other Unregistered XML-RPC Calls==&lt;br /&gt;
&lt;br /&gt;
The following functions entries are XML-RPC functions that were setup for external control of the deployement. They are not registered into MNET services.&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_deploy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;purpose:&#039;&#039;&#039;&lt;br /&gt;
Asking from an external system to deploy a course somwhere in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parameters:&#039;&#039;&#039; &lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier: The value that identifies the course backup, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the MNET host where to deploy.&lt;br /&gt;
*parmsoverride: a structure that can override any value of the Moodle &amp;quot;course&amp;quot; record thus deployed instance can have its name, shortname or starting date changed. OPTIONAL.&lt;br /&gt;
*json_response: if true, the response is JSONed for convenience with remote XML-RPC implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_close_course&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
Asks a remote node to close a course (regarding the course life-cycle handling by the publishflow block)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier : the value that identifies the course to be closed, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the node where the course needs to be closed&lt;br /&gt;
*mode: The closing mode (see publishflow Course life-Cycle in Training Nodes)&lt;br /&gt;
*json_response: (see above).&lt;br /&gt;
&lt;br /&gt;
==Alternate form of the external RPC calls==&lt;br /&gt;
&lt;br /&gt;
Some external applications (ERPs) do not provide support for shooting RPC calls with separate parameters (OfBiz). the two functions above are also available in a wrapped alternate form : &lt;br /&gt;
&lt;br /&gt;
publishflow_rpc_deploy_wrapped($wrap)&lt;br /&gt;
publishflow_rpc_close_course_wrapped($wrap)&lt;br /&gt;
&lt;br /&gt;
the wrap is an associative array grouping all required parameters in to a single parameter data bundle. these functions are given as &#039;adaptors&#039; for that special situations.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100737</id>
		<title>Publishflow Block : MNET Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/404/en/index.php?title=Publishflow_Block_:_MNET_Services&amp;diff=100737"/>
		<updated>2012-09-28T21:29:06Z</updated>

		<summary type="html">&lt;p&gt;Vf: /* Service : coursedelivery_data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishflow implements a set of MNET services in order to perform proper across MNET operations.&lt;br /&gt;
&lt;br /&gt;
Here comes the list of MNET XML-RPC functions that are provided by the blocks XML-RPC API.&lt;br /&gt;
&lt;br /&gt;
Please note that the XML-RPC API applied to blocks need using a published patch adding XML-RPC support to blocks in Moodle 1.9. This support is now fully available in Moodle 2.0, although this block is not yet ported forth.&lt;br /&gt;
&lt;br /&gt;
==Service : publishflow==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This service is used to hold all RPC related functions for publishflow operations.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
delivery_get_sessions() : get information about remotely deployed instances of a course template. Till now, we have feared to interfer too much wich core database model and use the IDNumber of the course to identify similarity between distinct course volumes. i.e. all courses sharing the same value of IDNumber are considered as being instances of an originating course in a factory node.&lt;br /&gt;
&lt;br /&gt;
==Service : coursedelivery_admin==&lt;br /&gt;
&lt;br /&gt;
This service is used to register course delivery commands.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deliver()&#039;&#039;&#039;: get a course backup from a remote platform. If data transfer is done using local file system, will only give information about the physical location of a course archive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_deploy()&#039;&#039;&#039;: deploys a course archive where called. This function has to be called remotely from the archive originator that will drive the deployement process (i.e. the deployment IS NOT initiated from the platform you want the course coming in, but where it goes out).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delivery_publish()&#039;&#039;&#039;: similar to the deployment function, but there are some particularities when dealing between a Course Factory and a Course Catalog Moodle instances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;publishflow_updateplatforms()&#039;&#039;&#039;: This function is called by other hosts in a MNET to explore the network and determine which instances are in the MNET neighborhood.&lt;br /&gt;
&lt;br /&gt;
==Other Unregistered XML-RPC Calls==&lt;br /&gt;
&lt;br /&gt;
The following functions entries are XML-RPC functions that were setup for external control of the deployement. They are not registered into MNET services.&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_deploy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;purpose:&#039;&#039;&#039;&lt;br /&gt;
Asking from an external system to deploy a course somwhere in the network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parameters:&#039;&#039;&#039; &lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier: The value that identifies the course backup, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the MNET host where to deploy.&lt;br /&gt;
*parmsoverride: a structure that can override any value of the Moodle &amp;quot;course&amp;quot; record thus deployed instance can have its name, shortname or starting date changed. OPTIONAL.&lt;br /&gt;
*json_response: if true, the response is JSONed for convenience with remote XML-RPC implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function name: &#039;&#039;publishflow_rpc_close_course&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
Asks a remote node to close a course (regarding the course life-cycle handling by the publishflow block)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
*callinguser: a common authentication structure having fields &#039;username&#039;, &#039;remoteuserhostroot&#039; and &#039;remotehostroot&#039; information.&lt;br /&gt;
*idfield: one of (id,shortname,idnumber). Designates which attribute will identify the course template to be deployed.&lt;br /&gt;
*courseidentifier : the value that identifies the course to be closed, regarding what was choosen as &#039;&#039;idfield&#039;&#039;.&lt;br /&gt;
*wherewwwroot: the HTTP root identifying the node where the course needs to be closed&lt;br /&gt;
*mode: The closing mode (see publishflow Course life-Cycle in Training Nodes)&lt;br /&gt;
*json_response: (see above).&lt;br /&gt;
&lt;br /&gt;
==Alternate form of the external RPC calls==&lt;br /&gt;
&lt;br /&gt;
Some external applications (ERPs) do not provide support for shooting RPC calls with separate parameters (OfBiz). the two functions above are also available in a wrapped alternate form : &lt;br /&gt;
&lt;br /&gt;
publishflow_rpc_deploy_wrapped($wrap)&lt;br /&gt;
publishflow_rpc_close_course_wrapped($wrap)&lt;br /&gt;
&lt;br /&gt;
the wrap is an associative array grouping all required parameters in to a single parameter data bundle. these functions are given as &#039;adaptors&#039; for that special situations.&lt;/div&gt;</summary>
		<author><name>Vf</name></author>
	</entry>
</feed>