PageRenderTime 57ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://swf-activity-module.googlecode.com/
PHP | 364 lines | 211 code | 21 blank | 132 comment | 26 complexity | 6c9599d21a3840bbb6e1671a585d67e5 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 $CFG;
  69. global $COURSE;
  70. $mform =& $this->_form;
  71. // If we're updating the module instance, we need the ID to get the grade_items record
  72. $swf_id = optional_param('update', 0, PARAM_INT); // swf update ID
  73. //-------------------------------------------------------------------------------
  74. /// Adding the "general" fieldset, where all the common settings are shown
  75. $mform->addElement('header', 'general', get_string('general', 'form'));
  76. /// Adding the standard "name" field
  77. $mform->addElement('text', 'name', get_string('swfname', 'swf'), array('size'=>'64'));
  78. $mform->setType('name', PARAM_TEXT);
  79. $mform->addRule('name', null, 'required', null, 'client');
  80. /// Adding the optional "intro" and "introformat" pair of fields
  81. $mform->addElement('htmleditor', 'intro', get_string('swfintro', 'swf'));
  82. $mform->setType('intro', PARAM_RAW);
  83. $mform->setDefault('intro', 'intro');
  84. $mform->addRule('intro', get_string('required'), 'required', null, 'client');
  85. $mform->setHelpButton('intro', array('writing', 'richtext'), false, 'editorhelpbutton');
  86. $mform->addElement('format', 'introformat', get_string('format'));
  87. //-------------------------------------------------------------------------------
  88. // Example from: http://docs.moodle.org/en/Development:lib/formslib.php_Form_Definition
  89. // REQUIRED header
  90. $mform->addElement('header', 'swfrequired', get_string('swfrequired', 'swf'));
  91. $mform->setHelpButton('swfrequired', array('swf_required', get_string('swfrequired', 'swf'), 'swf'));
  92. //swfurl - SWF file select/upload
  93. if(!empty($CFG->swf_file_select_type))
  94. {
  95. if($CFG->swf_file_select_type == 'list')
  96. {
  97. $mform->addElement('select', 'swfurl', get_string('swfurl', 'swf'), swf_get_swfs($COURSE->id)); //drop down list
  98. } else {
  99. $mform->addElement('choosecoursefile', 'swfurl', get_string('swfurl', 'swf'), array('courseid'=>$COURSE->id)); //default file picker
  100. }
  101. }
  102. //
  103. $mform->addRule('swfurl', get_string('required'), 'required', null, 'client');
  104. $mform->setType('swfurl', PARAM_NOTAGS);
  105. //width
  106. $mform->addElement('text', 'width', get_string('width', 'swf'), array('size'=>'9'));
  107. $mform->addRule('width', get_string('required'), 'required', null, 'client');
  108. $mform->setType('width', PARAM_NOTAGS);
  109. if(!$CFG->swf_default_width) {
  110. $CFG->swf_default_width = '900';
  111. }
  112. $mform->setDefault('width', $CFG->swf_default_width);
  113. //height
  114. $mform->addElement('text', 'height', get_string('height', 'swf'), array('size'=>'9'));
  115. $mform->addRule('height', get_string('required'), 'required', null, 'client');
  116. $mform->setType('height', PARAM_NOTAGS);
  117. if(!$CFG->swf_default_height) {
  118. $CFG->swf_default_height = '570';
  119. }
  120. $mform->setDefault('height', $CFG->swf_default_height);
  121. //fullbrowser
  122. /* */
  123. $mform->addElement('select', 'fullbrowser', get_string('fullbrowser', 'swf'), swf_list_truefalse());
  124. $mform->setType('fullbrowser', PARAM_NOTAGS);
  125. if(!$CFG->swf_default_fullbrowser) {
  126. $CFG->swf_default_fullbrowser = 'false';
  127. }
  128. $mform->setDefault('fullbrowser', $CFG->swf_default_fullbrowser);
  129. //version
  130. $mform->addElement('text', 'version', get_string('version', 'swf'), array('size'=>'9'));
  131. $mform->addRule('version', get_string('required'), 'required', null, 'client');
  132. $mform->setType('version', PARAM_NOTAGS);
  133. if(!$CFG->swf_default_version) {
  134. $CFG->swf_default_version = '9.0.115';
  135. }
  136. $mform->setDefault('version', $CFG->swf_default_version);
  137. //----------------------------------------------------------------------------------------
  138. // OPTIONAL PARAMETERS
  139. // XML header -----------------------------------------------------------------------------
  140. $mform->addElement('header', 'xml', get_string('xml', 'swf'));
  141. $mform->setHelpButton('xml', array('swf_xmlurl', get_string('xml', 'swf'), 'swf'));
  142. //xmlurl
  143. $mform->addElement('choosecoursefile', 'xmlurl', get_string('xmlurl', 'swf'), array('courseid'=>$COURSE->id)); // uncomment for file picker
  144. //$mform->addElement('select', 'xmlurl', get_string('xmlurl', 'swf'), swf_get_xmls($COURSE->id)); // uncomment for drop down list of files in moodledata/[courseid]/xml/
  145. $mform->setType('xmlurl', PARAM_NOTAGS);
  146. // FlashVars header -----------------------------------------------------------------------
  147. $mform->addElement('header', 'flashvars', get_string('flashvars', 'swf'));
  148. $mform->setHelpButton('flashvars', array('swf_flashvars', get_string('flashvars', 'swf'), 'swf'));
  149. // attributes for flashvars text areas
  150. $swf_flashvars_att = 'wrap="virtual" rows="3" cols="57"';
  151. $swf_flashvars_name = array('size'=>'75');
  152. // name1
  153. $mform->addElement('text', 'name1', get_string("name", "swf"), $swf_flashvars_name);
  154. $mform->setType('name1', PARAM_NOTAGS);
  155. // value1
  156. $mform->addElement('textarea', 'value1', get_string("value", "swf"), $swf_flashvars_att);
  157. $mform->setType('value1', PARAM_NOTAGS);
  158. // name2
  159. $mform->addElement('text', 'name2', get_string("name", "swf"), $swf_flashvars_name);
  160. $mform->setType('name2', PARAM_NOTAGS);
  161. // value2
  162. $mform->addElement('textarea', 'value2', get_string("value", "swf"), $swf_flashvars_att);
  163. $mform->setType('value2', PARAM_NOTAGS);
  164. // name3
  165. $mform->addElement('text', 'name3', get_string("name", "swf"), $swf_flashvars_name);
  166. $mform->setType('name3', PARAM_NOTAGS);
  167. // value3
  168. $mform->addElement('textarea', 'value3', get_string("value", "swf"), $swf_flashvars_att);
  169. $mform->setType('value3', PARAM_NOTAGS);
  170. // Extras header -----------------------------------------------------------------------
  171. $mform->addElement('header', 'extras', get_string('extras', 'swf'));
  172. $mform->setHelpButton('extras', array('swf_extras', get_string('extras', 'swf'), 'swf'));
  173. //
  174. $mform->addElement('htmleditor', 'notes', get_string('notes', 'swf'));
  175. $mform->setType('notes', PARAM_RAW);
  176. // ----------------------------------------------------- Grading header ----------------------------------------------------- //
  177. // grading
  178. $mform->addElement('header', 'grading', get_string('grading', 'swf'));
  179. $mform->setHelpButton('grading', array('swf_grading', get_string('grading', 'swf'), 'swf'));
  180. // gradetype
  181. $mform->addElement('select', 'gradetype', get_string('gradetype', 'swf'), swf_list_gradetype());
  182. $mform->setDefault('gradetype', '1');
  183. // grademax
  184. $mform->addElement('select', 'grademax', get_string('grademax', 'swf'), swf_list_gradevalues());
  185. $mform->setDefault('grademax', '100');
  186. // grademin
  187. $mform->addElement('select', 'grademin', get_string('grademin', 'swf'), swf_list_gradevalues());
  188. $mform->setDefault('grademin', '0');
  189. // gradepass
  190. if($swf_id) // If we're updating the module instance, then prevent user from editing passgrade
  191. {
  192. $mform->addElement('static', 'description', get_string('gradepass', 'swf'), swf_get_current_grade_item($swf_id));
  193. } else {
  194. $mform->addElement('static', 'description', get_string('gradepass', 'swf'), '0% '.get_string('gradeupdate', 'swf'));
  195. //$mform->addElement('select', 'gradepass', get_string('gradepass', 'swf'), swf_list_gradevalues());
  196. /*if(!$CFG->swf_default_gradepass)
  197. {
  198. $CFG->swf_default_gradepass = 60;
  199. }
  200. $mform->setDefault('gradepass', $CFG->swf_default_gradepass);*/
  201. }
  202. // sequence
  203. $mform->addElement('select', 'sequenced', get_string('sequenced', 'swf'), swf_list_truefalse());
  204. if(!$CFG->swf_default_sequenced) {
  205. $CFG->swf_default_sequenced = 'false';
  206. }
  207. $mform->setDefault('sequenced', $CFG->swf_default_sequenced);
  208. // allowreview
  209. $mform->addElement('select', 'allowreview', get_string('allowreview', 'swf'), swf_list_truefalse());
  210. if(!$CFG->swf_default_allowreview) {
  211. $CFG->swf_default_allowreview = 'true';
  212. }
  213. $mform->setDefault('allowreview', $CFG->swf_default_allowreview);
  214. // feedback
  215. $mform->addElement('textarea', 'feedback', get_string('feedback', 'swf'), $swf_flashvars_att);
  216. $mform->setType('feedback', PARAM_NOTAGS);
  217. // feedbacklink
  218. $mform->addElement('choosecoursefile', 'feedbacklink', get_string('feedbacklink', 'swf'), array('courseid'=>$COURSE->id));
  219. $mform->setType('feedbacklink', PARAM_NOTAGS);
  220. //-------------------------------------------- Advanced header --------------------------------------------
  221. // advanced
  222. $mform->addElement('header', 'advanced', get_string('advanced', 'swf'));
  223. $mform->setHelpButton('advanced', array('swf_advanced', get_string('advanced', 'swf'), 'swf'));
  224. // skin
  225. $mform->addElement('select', 'skin', get_string('skin', 'swf'), swf_list_skins());
  226. $mform->setDefault('skin', '');
  227. $mform->setAdvanced('skin');
  228. //apikey
  229. $mform->addElement('text', 'apikey', get_string('apikey', 'swf'), array('size'=>'75'));
  230. $mform->setType('apikey', PARAM_NOTAGS);
  231. $mform->setAdvanced('apikey');
  232. // align
  233. $mform->addElement('select', 'align', get_string('align', 'swf'), swf_list_align());
  234. if(!$CFG->swf_default_align) {
  235. $CFG->swf_default_align = 'left';
  236. }
  237. $mform->setDefault('align', $CFG->swf_default_align);
  238. $mform->setAdvanced('align');
  239. //play
  240. $mform->addElement('select', 'play', get_string('play', 'swf'), swf_list_truefalse());
  241. if(!$CFG->swf_default_play) {
  242. $CFG->swf_default_play = 'true';
  243. }
  244. $mform->setDefault('play', $CFG->swf_default_play);
  245. $mform->setAdvanced('play');
  246. //loop
  247. $mform->addElement('select', 'loopswf', get_string('loop', 'swf'), swf_list_truefalse());
  248. if(!$CFG->swf_default_loop) {
  249. $CFG->swf_default_loop = 'true';
  250. }
  251. $mform->setDefault('loopswf', $CFG->swf_default_loop);
  252. $mform->setAdvanced('loopswf');
  253. //menu
  254. $mform->addElement('select', 'menu', get_string('menu', 'swf'), swf_list_truefalse());
  255. if(!$CFG->swf_default_menu) {
  256. $CFG->swf_default_menu = 'true';
  257. }
  258. $mform->setDefault('menu', $CFG->swf_default_menu);
  259. $mform->setAdvanced('menu');
  260. //quality
  261. $mform->addElement('select', 'quality', get_string('quality', 'swf'), swf_list_quality());
  262. if(!$CFG->swf_default_quality) {
  263. $CFG->swf_default_quality = 'best';
  264. }
  265. $mform->setDefault('quality', $CFG->swf_default_quality);
  266. $mform->setAdvanced('quality');
  267. //scale
  268. $mform->addElement('select', 'scale', get_string('scale', 'swf'), swf_list_scale());
  269. if(!$CFG->swf_default_scale) {
  270. $CFG->swf_default_scale = 'noscale';
  271. }
  272. $mform->setDefault('scale', $CFG->swf_default_scale);
  273. $mform->setAdvanced('scale');
  274. //salign
  275. $mform->addElement('select', 'salign', get_string('salign', 'swf'), swf_list_salign());
  276. if(!$CFG->swf_default_salign) {
  277. $CFG->swf_default_salign = 'tl';
  278. }
  279. $mform->setDefault('salign', $CFG->swf_default_salign);
  280. $mform->setAdvanced('salign');
  281. //wmode
  282. $mform->addElement('select', 'wmode', get_string('wmode', 'swf'), swf_list_wmode());
  283. if(!$CFG->swf_default_wmode) {
  284. $CFG->swf_default_wmode = 'direct';
  285. }
  286. $mform->setDefault('wmode', $CFG->swf_default_wmode);
  287. $mform->setAdvanced('wmode');
  288. //bgcolor
  289. $mform->addElement('text', 'bgcolor', get_string('bgcolor', 'swf'), array('size'=>'20'));
  290. $mform->setType('bgcolor', PARAM_NOTAGS);
  291. if(!$CFG->swf_default_bgcolor) {
  292. $CFG->swf_default_bgcolor = 'FFFFFF';
  293. }
  294. $mform->setDefault('bgcolor', $CFG->swf_default_bgcolor);
  295. $mform->setAdvanced('bgcolor');
  296. //devicefont
  297. $mform->addElement('select', 'devicefont', get_string('devicefont', 'swf'), swf_list_truefalse());
  298. if(!$CFG->swf_default_devicefont) {
  299. $CFG->swf_default_devicefont = 'true';
  300. }
  301. $mform->setDefault('devicefont', $CFG->swf_default_devicefont);
  302. $mform->setAdvanced('devicefont');
  303. //seamlesstabbing
  304. $mform->addElement('select', 'seamlesstabbing', get_string('seamlesstabbing', 'swf'), swf_list_truefalse());
  305. if(!$CFG->swf_default_seamlesstabbing) {
  306. $CFG->swf_default_seamlesstabbing = 'true';
  307. }
  308. $mform->setDefault('seamlesstabbing', $CFG->swf_default_seamlesstabbing);
  309. $mform->setAdvanced('seamlesstabbing');
  310. //allowfullscreen
  311. $mform->addElement('select', 'allowfullscreen', get_string('allowfullscreen', 'swf'), swf_list_truefalse());
  312. if(!$CFG->swf_default_allowfullscreen) {
  313. $CFG->swf_default_allowfullscreen = 'false';
  314. }
  315. $mform->setDefault('allowfullscreen', $CFG->swf_default_allowfullscreen);
  316. $mform->setAdvanced('allowfullscreen');
  317. //allowscriptaccess
  318. $mform->addElement('select', 'allowscriptaccess', get_string('allowscriptaccess', 'swf'), swf_list_allowscriptaccess());
  319. if(!$CFG->swf_default_allowscriptaccess) {
  320. $CFG->swf_default_allowscriptaccess = 'sameDomain';
  321. }
  322. $mform->setDefault('allowscriptaccess', $CFG->swf_default_allowscriptaccess);
  323. $mform->setAdvanced('allowscriptaccess');
  324. //allownetworking
  325. $mform->addElement('select', 'allownetworking', get_string('allownetworking', 'swf'), swf_list_allownetworking());
  326. if(!$CFG->swf_default_allownetworking) {
  327. $CFG->swf_default_allownetworking = 'all';
  328. }
  329. $mform->setDefault('allownetworking', $CFG->swf_default_allownetworking);
  330. $mform->setAdvanced('allownetworking');
  331. //configxml - Configuration XML file select/upload
  332. $mform->addElement('choosecoursefile', 'configxml', get_string('configxml', 'swf'), array('courseid'=>$COURSE->id));
  333. $mform->setType('configxml', PARAM_NOTAGS);
  334. $mform->setAdvanced('configxml');
  335. //-------------------------------------------------------------------------------
  336. // add standard elements, common to all modules
  337. $this->standard_coursemodule_elements();
  338. //-------------------------------------------------------------------------------
  339. // add standard buttons, common to all modules
  340. $this->add_action_buttons();
  341. }
  342. }
  343. ?>