PageRenderTime 50ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/src/moodle/mod/swf/mod_form.php

http://swf-activity-module.googlecode.com/
PHP | 277 lines | 140 code | 18 blank | 119 comment | 0 complexity | de7ac96ff86a27abe67c6a8ed85c8f93 MD5 | raw file
  1. <?php //$Id: mod_form.php,v 1.0 2009/09/28 matbury Exp $
  2. /*
  3. * Copyright (C) 2009 Matt Bury - matbury@gmail.com - http://matbury.com/
  4. *
  5. * This program is free software: you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation, either version 3 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /**
  19. * Creates instance of SWF activity module
  20. * Adapted from mod_form.php template by Jamie Pratt
  21. *
  22. * By Matt Bury - http://matbury.com/ - matbury@gmail.com
  23. * @licence http://www.gnu.org/copyleft/gpl.html GNU Public Licence
  24. *
  25. * DB Table name (mdl_)swf
  26. *
  27. * REQUIRED PARAMETERS:
  28. * @param swfurl
  29. * @param width
  30. * @param height
  31. * @param version
  32. *
  33. * LEARNING INTERACTION DATA PARAMETERS:
  34. * @param xmlurl
  35. * @param name1
  36. * @param value1
  37. * @param name2
  38. * @param value2
  39. * @param name3
  40. * @param value3
  41. * @param grading
  42. * @param feedback
  43. * @param feedbacklink
  44. *
  45. * OPTIONAL PARAMETERS:
  46. * @param apikey
  47. * @param play
  48. * @param loopswf
  49. * @param menu
  50. * @param quality
  51. * @param scale
  52. * @param salign
  53. * @param wmode
  54. * @param bgcolor
  55. * @param devicefont
  56. * @param seamlesstabbing
  57. * @param allowfullscreen
  58. * @param allowscriptaccess
  59. * @param allownetworking
  60. * @param align
  61. * @param skin
  62. * @param configxml
  63. *
  64. */
  65. require_once ('moodleform_mod.php');
  66. class mod_swf_mod_form extends moodleform_mod {
  67. function definition() {
  68. global $COURSE;
  69. $mform =& $this->_form;
  70. // If we're updating the module instance, we need the ID to get the grade_items record
  71. $swf_id = optional_param('update', 0, PARAM_INT); // swf update ID
  72. //-------------------------------------------------------------------------------
  73. /// Adding the "general" fieldset, where all the common settings are shown
  74. $mform->addElement('header', 'general', get_string('general', 'form'));
  75. /// Adding the standard "name" field
  76. $mform->addElement('text', 'name', get_string('swfname', 'swf'), array('size'=>'64'));
  77. $mform->setType('name', PARAM_TEXT);
  78. $mform->addRule('name', null, 'required', null, 'client');
  79. /// Adding the optional "intro" and "introformat" pair of fields
  80. $mform->addElement('htmleditor', 'intro', get_string('swfintro', 'swf'));
  81. $mform->setType('intro', PARAM_RAW);
  82. $mform->addRule('intro', get_string('required'), 'required', null, 'client');
  83. $mform->setHelpButton('intro', array('writing', 'richtext'), false, 'editorhelpbutton');
  84. $mform->addElement('format', 'introformat', get_string('format'));
  85. //-------------------------------------------------------------------------------
  86. // Example from: http://docs.moodle.org/en/Development:lib/formslib.php_Form_Definition
  87. // REQUIRED header
  88. $mform->addElement('header', 'swfrequired', get_string('swfrequired', 'swf'));
  89. $mform->setHelpButton('swfrequired', array('swf_required', get_string('swfrequired', 'swf'), 'swf'));
  90. //swfurl - SWF file select/upload
  91. $mform->addElement('choosecoursefile', 'swfurl', get_string('swfurl', 'swf'), array('courseid'=>$COURSE->id));
  92. $mform->addRule('swfurl', get_string('required'), 'required', null, 'client');
  93. $mform->setType('swfurl', PARAM_NOTAGS);
  94. //width
  95. $mform->addElement('text', 'width', get_string('width', 'swf'), array('size'=>'9'));
  96. $mform->addRule('width', get_string('required'), 'required', null, 'client');
  97. $mform->setType('width', PARAM_NOTAGS);
  98. $mform->setDefault('width', '900');
  99. //height
  100. $mform->addElement('text', 'height', get_string('height', 'swf'), array('size'=>'9'));
  101. $mform->addRule('height', get_string('required'), 'required', null, 'client');
  102. $mform->setType('height', PARAM_NOTAGS);
  103. $mform->setDefault('height', '480');
  104. //version
  105. $mform->addElement('text', 'version', get_string('version', 'swf'), array('size'=>'9'));
  106. $mform->addRule('version', get_string('required'), 'required', null, 'client');
  107. $mform->setType('version', PARAM_NOTAGS);
  108. $mform->setDefault('version', '9.0.115');
  109. //----------------------------------------------------------------------------------------
  110. // OPTIONAL PARAMETERS
  111. // XML header -----------------------------------------------------------------------------
  112. $mform->addElement('header', 'xml', get_string('xml', 'swf'));
  113. $mform->setHelpButton('xml', array('swf_xmlurl', get_string('xml', 'swf'), 'swf'));
  114. //xmlurl
  115. $mform->addElement('choosecoursefile', 'xmlurl', get_string('xmlurl', 'swf'), array('courseid'=>$COURSE->id));
  116. $mform->setType('xmlurl', PARAM_NOTAGS);
  117. // FlashVars header -----------------------------------------------------------------------
  118. $mform->addElement('header', 'flashvars', get_string('flashvars', 'swf'));
  119. $mform->setHelpButton('flashvars', array('swf_flashvars', get_string('flashvars', 'swf'), 'swf'));
  120. // attributes for flashvars text areas
  121. $swf_flashvars_att = 'wrap="virtual" rows="3" cols="57"';
  122. $swf_flashvars_name = array('size'=>'75');
  123. // name1
  124. $mform->addElement('text', 'name1', get_string("name", "swf"), $swf_flashvars_name);
  125. $mform->setType('name1', PARAM_NOTAGS);
  126. // value1
  127. $mform->addElement('textarea', 'value1', get_string("value", "swf"), $swf_flashvars_att);
  128. $mform->setType('value1', PARAM_NOTAGS);
  129. // name2
  130. $mform->addElement('text', 'name2', get_string("name", "swf"), $swf_flashvars_name);
  131. $mform->setType('name2', PARAM_NOTAGS);
  132. // value2
  133. $mform->addElement('textarea', 'value2', get_string("value", "swf"), $swf_flashvars_att);
  134. $mform->setType('value2', PARAM_NOTAGS);
  135. // name3
  136. $mform->addElement('text', 'name3', get_string("name", "swf"), $swf_flashvars_name);
  137. $mform->setType('name3', PARAM_NOTAGS);
  138. // value3
  139. $mform->addElement('textarea', 'value3', get_string("value", "swf"), $swf_flashvars_att);
  140. $mform->setType('value3', PARAM_NOTAGS);
  141. // ----------------------------------------------------- Grading header ----------------------------------------------------- //
  142. // grading
  143. $mform->addElement('header', 'grading', get_string('grading', 'swf'));
  144. $mform->setHelpButton('grading', array('swf_grading', get_string('grading', 'swf'), 'swf'));
  145. // grade_item settings - TODO: Can we get these to overide the $swf entries on update?
  146. //$swf_grade_item = swf_get_grade_item($swf_id);
  147. // gradetype
  148. $mform->addElement('select', 'gradetype', get_string('gradetype', 'swf'), swf_list_gradetype());
  149. $mform->setDefault('gradetype', '1');
  150. // grademax
  151. $mform->addElement('select', 'grademax', get_string('grademax', 'swf'), swf_list_gradevalues());
  152. $mform->setDefault('grademax', '100');
  153. // grademin
  154. $mform->addElement('select', 'grademin', get_string('grademin', 'swf'), swf_list_gradevalues());
  155. $mform->setDefault('grademin', '0');
  156. // feedback
  157. $mform->addElement('textarea', 'feedback', get_string('feedback', 'swf'), $swf_flashvars_att);
  158. $mform->setType('feedback', PARAM_NOTAGS);
  159. // feedbacklink
  160. $mform->addElement('choosecoursefile', 'feedbacklink', get_string('feedbacklink', 'swf'), array('courseid'=>$COURSE->id));
  161. $mform->setType('feedbacklink', PARAM_NOTAGS);
  162. //-------------------------------------------- Advanced header --------------------------------------------
  163. // advanced
  164. $mform->addElement('header', 'advanced', get_string('advanced', 'swf'));
  165. // skin
  166. $mform->addElement('select', 'skin', get_string('skin', 'swf'), swf_list_skins());
  167. $mform->setHelpButton('skin', array('swf_skin', get_string('skin', 'swf'), 'swf'));
  168. $mform->setDefault('skin', 'middle');
  169. $mform->setAdvanced('skin');
  170. //apikey
  171. $mform->addElement('text', 'apikey', get_string('apikey', 'swf'), array('size'=>'75'));
  172. $mform->setHelpButton('apikey', array('swf_apikey', get_string('apikey', 'swf'), 'swf'));
  173. $mform->setType('apikey', PARAM_NOTAGS);
  174. $mform->setAdvanced('apikey');
  175. // align
  176. $mform->addElement('select', 'align', get_string('align', 'swf'), swf_list_align());
  177. $mform->setHelpButton('align', array('swf_align', get_string('align', 'swf'), 'swf'));
  178. $mform->setDefault('align', 'middle');
  179. $mform->setAdvanced('align');
  180. //play
  181. $mform->addElement('select', 'play', get_string('play', 'swf'), swf_list_truefalse());
  182. $mform->setHelpButton('play', array('swf_play', get_string('play', 'swf'), 'swf'));
  183. $mform->setDefault('play', 'true');
  184. $mform->setAdvanced('play');
  185. //loop
  186. $mform->addElement('select', 'loopswf', get_string('loop', 'swf'), swf_list_truefalse());
  187. $mform->setHelpButton('loopswf', array('swf_loop', get_string('loop', 'swf'), 'swf'));
  188. $mform->setDefault('loopswf', 'true');
  189. $mform->setAdvanced('loopswf');
  190. //menu
  191. $mform->addElement('select', 'menu', get_string('menu', 'swf'), swf_list_truefalse());
  192. $mform->setHelpButton('menu', array('swf_menu', get_string('menu', 'swf'), 'swf'));
  193. $mform->setDefault('menu', 'true');
  194. $mform->setAdvanced('menu');
  195. //quality
  196. $mform->addElement('select', 'quality', get_string('quality', 'swf'), swf_list_quality());
  197. $mform->setHelpButton('quality', array('swf_quality', get_string('quality', 'swf'), 'swf'));
  198. $mform->setDefault('quality', 'best');
  199. $mform->setAdvanced('quality');
  200. //scale
  201. $mform->addElement('select', 'scale', get_string('scale', 'swf'), swf_list_scale());
  202. $mform->setHelpButton('scale', array('swf_scale', get_string('scale', 'swf'), 'swf'));
  203. $mform->setDefault('scale', 'noscale');
  204. $mform->setAdvanced('scale');
  205. //salign
  206. $mform->addElement('select', 'salign', get_string('salign', 'swf'), swf_list_salign());
  207. $mform->setHelpButton('salign', array('swf_salign', get_string('salign', 'swf'), 'swf'));
  208. $mform->setDefault('salign', 'tl');
  209. $mform->setAdvanced('salign');
  210. //wmode
  211. $mform->addElement('select', 'wmode', get_string('wmode', 'swf'), swf_list_wmode());
  212. $mform->setHelpButton('wmode', array('swf_wmode', get_string('wmode', 'swf'), 'swf'));
  213. $mform->setDefault('wmode', 'opaque');
  214. $mform->setAdvanced('wmode');
  215. //bgcolor
  216. $mform->addElement('text', 'bgcolor', get_string('bgcolor', 'swf'), array('size'=>'20'));
  217. $mform->setHelpButton('bgcolor', array('swf_bgcolor', get_string('bgcolor', 'swf'), 'swf'));
  218. $mform->setType('bgcolor', PARAM_NOTAGS);
  219. $mform->setDefault('bgcolor', 'FFFFFF');
  220. $mform->setAdvanced('bgcolor');
  221. //devicefont
  222. $mform->addElement('select', 'devicefont', get_string('devicefont', 'swf'), swf_list_truefalse());
  223. $mform->setHelpButton('devicefont', array('swf_devicefont', get_string('devicefont', 'swf'), 'swf'));
  224. $mform->setDefault('devicefont', 'true');
  225. $mform->setAdvanced('devicefont');
  226. //seamlesstabbing
  227. $mform->addElement('select', 'seamlesstabbing', get_string('seamlesstabbing', 'swf'), swf_list_truefalse());
  228. $mform->setHelpButton('seamlesstabbing', array('swf_seamlesstabbing', get_string('seamlesstabbing', 'swf'), 'swf'));
  229. $mform->setDefault('seamlesstabbing', 'true');
  230. $mform->setAdvanced('seamlesstabbing');
  231. //allowfullscreen
  232. $mform->addElement('select', 'allowfullscreen', get_string('allowfullscreen', 'swf'), swf_list_truefalse());
  233. $mform->setHelpButton('allowfullscreen', array('swf_allowfullscreen', get_string('allowfullscreen', 'swf'), 'swf'));
  234. $mform->setDefault('allowfullscreen', 'false');
  235. $mform->setAdvanced('allowfullscreen');
  236. //allowscriptaccess
  237. $mform->addElement('select', 'allowscriptaccess', get_string('allowscriptaccess', 'swf'), swf_list_allowscriptaccess());
  238. $mform->setHelpButton('allowscriptaccess', array('swf_allowscriptaccess', get_string('allowscriptaccess', 'swf'), 'swf'));
  239. $mform->setDefault('allowscriptaccess', 'sameDomain');
  240. $mform->setAdvanced('allowscriptaccess');
  241. //allownetworking
  242. $mform->addElement('select', 'allownetworking', get_string('allownetworking', 'swf'), swf_list_allownetworking());
  243. $mform->setHelpButton('allownetworking', array('swf_allownetworking', get_string('allownetworking', 'swf'), 'swf'));
  244. $mform->setDefault('allownetworking', 'internal');
  245. $mform->setAdvanced('allownetworking');
  246. //configxml - Configuration XML file select/upload
  247. $mform->addElement('choosecoursefile', 'configxml', get_string('configxml', 'swf'), array('courseid'=>$COURSE->id));
  248. $mform->setHelpButton('configxml', array('swf_configxml', get_string('configxml', 'swf'), 'swf'));
  249. $mform->setType('configxml', PARAM_NOTAGS);
  250. $mform->setAdvanced('configxml');
  251. //-------------------------------------------------------------------------------
  252. // add standard elements, common to all modules
  253. $this->standard_coursemodule_elements();
  254. //-------------------------------------------------------------------------------
  255. // add standard buttons, common to all modules
  256. $this->add_action_buttons();
  257. }
  258. }
  259. ?>