***Warning:** PennController is currently under development. This documentation concerns [PennController beta 0.3][1]. For newer releases (starting with PennController beta 0.4) the documentation will migrate to [PennController's website][2]. Last update: September 19, 2018.*
---
**PennController** is an [IBEX][3] module providing standardized methods to create dynamic pages for your experiment. This wiki provides instructions on how to use it and detailed descriptions of its subcomponents.
# Table of contents #
- [Installing **PennController**][4]
- [Preliminary notes on PennController's ontology][5]
- Tutorials
- Full overview
- [PennController beta 0.4 workshop][6]
- [PennController beta 0.3 workshop][7]
- [June 20, 2018 workshop][8] (using PennController beta 0.1)
- One page
- [**Preloading** resources][9]
- [Using **ZIP** files][10]
- [Using a datasource **spreadsheet** (CSV)][11]
- [Graphic interface for **Canvas creation**][12]
- [How to collect **audio recordings**][13]
- Reference
- Element commands by **element categories**
- [*Standard Element Commands*][14]
- [**Audio** element][15]
- [**Button** element][16]
- [**Canvas** element][17]
- [**Function** element][18]
- [**Html** element][19]
- [**Image** element][20]
- [**Key** element][21]
- [**Scale** element][22]
- [**Selector** element][23]
- [**Text** element][24]
- [**TextInput** element][25]
- [**Tooltip** element][26]
- [**Timer** element][27]
- [**Var** element][28]
- [**VoiceRecorder** element][29]
- [**Youtube** element][30]
- [*Special **clear** command*][31]
- [*Special **end** command*][32]
- [Element commands by **command types**][33]
- [Actions][34]
- [Settings][35]
- [Tests][36]
- [**Global** PennController Commands][37]
- [PennController][38]
- [PennController().**log**][39]
- [PennController().**logAppend**][40]
- [PennController().**noFooter**][41]
- [PennController().**noHeader**][42]
- [PennController().**setOption**][43]
- [PennController.**AddHost**][44]
- [PennController.**AddTable**][45]
- [PennController.**CheckPreload**][46]
- [PennController.**DownloadVoiceButton**][47]
- [PennController.**FeedItems**][48]
- [PennController.**Footer**][49]
- [PennController.**GetTable**][50]
- [PennController.GetTable().**filter**][51]
- [PennController.GetTable().**setGroup**][52]
- [PennController.GetTable().**setItem**][53]
- [PennController.GetTable().**setLabel**][54]
- [PennController.**GetURLParameter**][55]
- [PennController.**Header**][56]
- [PennController.**InitiateRecorder**][57]
- [PennController.**PreloadZip**][58]
- [PennController.**ResetPrefix**][59]
[1]: https://github.com/PennController/penncontroller/blob/master/releases/beta0.3/PennController.js
[2]: https://lab.florianschwarz.net/PennController/
[3]: http://spellout.net/ibexfarm/ "IBEX"
[4]: https://osf.io/e8npk/wiki/Installation%20and%20Use/
[5]: https://osf.io/e8npk/wiki/Ontology/
[6]: https://osf.io/t72h6/wiki/home/
[7]: https://osf.io/vmjyx/wiki
[8]: https://osf.io/9trsx/wiki/home/
[9]: https://osf.io/e8npk/wiki/Resource%20preloading/
[10]: https://osf.io/e8npk/wiki/ZIP%20files/
[11]: https://osf.io/e8npk/wiki/CSV%20datasource/
[12]: https://osf.io/e8npk/wiki/Canvas%20Designer/
[13]: https://osf.io/e8npk/wiki/Recording%20and%20collecting%20audio%20samples/
[14]: https://osf.io/e8npk/wiki/Standard%20Element%20Commands/
[15]: https://osf.io/e8npk/wiki/Audio%20element/
[16]: https://osf.io/e8npk/wiki/Button%20element/
[17]: https://osf.io/e8npk/wiki/Canvas%20element/
[18]: https://osf.io/e8npk/wiki/Function%20element/
[19]: https://osf.io/e8npk/wiki/Html%20element/
[20]: https://osf.io/e8npk/wiki/Image%20element/
[21]: https://osf.io/e8npk/wiki/Key%20element/
[22]: https://osf.io/e8npk/wiki/Scale%20element/
[23]: https://osf.io/e8npk/wiki/Selector%20element/
[24]: https://osf.io/e8npk/wiki/Text%20element/
[25]: https://osf.io/e8npk/wiki/TextInput%20element/
[26]: https://osf.io/e8npk/wiki/Tooltip%20element/
[27]: https://osf.io/e8npk/wiki/Timer%20element/
[28]: https://osf.io/e8npk/wiki/Var%20element/
[29]: https://osf.io/e8npk/wiki/VoiceRecoder%20element/
[30]: https://osf.io/e8npk/wiki/Youtube%20element/
[31]: https://osf.io/e8npk/wiki/Clear%20command/
[32]: https://osf.io/e8npk/wiki/End%20command/
[33]: https://osf.io/e8npk/wiki/Commands%20by%20type/
[34]: https://osf.io/e8npk/wiki/Commands%20by%20type/#Actions_2
[35]: https://osf.io/e8npk/wiki/Commands%20by%20type/#Settings_45
[36]: https://osf.io/e8npk/wiki/Commands%20by%20type/#Tests_152
[37]: https://osf.io/e8npk/wiki/Global%20Commands/
[38]: https://osf.io/e8npk/wiki/Global%20Commands/#PennController_2
[39]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerlog_20
[40]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerlogAppend_21
[41]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllernoFooter_44
[42]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllernoHeader_78
[43]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllersetOption_119
[44]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerAddHost_44
[45]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerAddTable_75
[46]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerCheckPreload_90
[47]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerDownloadVoiceButton_140
[48]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerFeedItems_177
[49]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerFooter_219
[50]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetTable_219
[51]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetTablefilter_245
[52]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetTablesetGroup_277
[53]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetTablesetItem_299
[54]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetTablesetLabel_321
[55]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerGetURLParameter_345
[56]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerHeader_402
[57]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerInitiateRecorder_366
[58]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerPreloadZip_387
[59]: https://osf.io/e8npk/wiki/Global%20Commands/#PennControllerResetPrefix_398