settings.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. <?php
  2. /**
  3. * This php script contains all the stuff to interactive Learning Module (iLM).
  4. *
  5. * Release Notes:
  6. * - v 1.9.1 2017/12/02
  7. * + Indentation and comments improvements
  8. * - v 1.9 2013/12/12
  9. * + Allow use the language in iLM description.
  10. * - v 1.8 2013/10/31
  11. * + Insert support of export iLM in zip packages.
  12. * - v 1.7 2013/10/24
  13. * + Insert support of iLM upgrade.
  14. * - v 1.6 2013/09/11
  15. * + Insert support of iLM params.
  16. * - v 1.5 2013/08/01
  17. * + Fix bug for block change visibility in iLM wiht statement.
  18. * - v 1.4 2013/07/12
  19. * + Insert action config for accept versions of iLM.
  20. * + Insert new informations in iLMs table: created date, modified date, author, version, modified date of JAR.
  21. * + Now view separate only iLMs for filter versions.
  22. *
  23. * @author Patricia Alves Rodrigues
  24. * @author Leônidas O. Brandão
  25. * @version v 1.9.1 2017/12/02
  26. * @package mod_iassign_settings
  27. * @since 2010/09/27
  28. * @copyright iMatica (<a href="http://www.matematica.br">iMath</a>) - Computer Science Dep. of IME-USP (Brazil)
  29. *
  30. * <b>License</b>
  31. * - http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  32. */
  33. // Moodle core defines constant MOODLE_INTERNAL which shall be used to make sure that the script is included and not called directly.
  34. defined('MOODLE_INTERNAL') || die();
  35. global $OUTPUT, $CFG, $DB;
  36. require_once($CFG->dirroot . '/mod/iassign/lib.php');
  37. require_once($CFG->dirroot . '/mod/iassign/locallib.php');
  38. $action = optional_param('action', 'view', PARAM_TEXT);
  39. $ilm_id = optional_param('ilm_id', 0, PARAM_INT);
  40. $ilm_param_id = optional_param('ilm_param_id', 0, PARAM_INT);
  41. $ilm_id_parent = optional_param('ilm_id_parent', 0, PARAM_INT);
  42. $status = optional_param('status', 0, PARAM_INT);
  43. if ($action == 'visible') {
  44. ilm_settings::visible_ilm($ilm_id, $status);
  45. $action = 'config';
  46. $ilm_id = $ilm_id_parent;
  47. }
  48. else
  49. if ($action == 'visible_param') {
  50. ilm_settings::visible_param($ilm_param_id, $status);
  51. $action = 'config';
  52. }
  53. else
  54. if ($action == 'export') {
  55. ilm_settings::export_ilm($ilm_id);
  56. $action = 'config';
  57. }
  58. $str = '';
  59. if (!file_exists($CFG->dirroot . '/filter/iassign_filter/version.php')) {
  60. $str .= $OUTPUT->box_start();
  61. $str .= '<center>' . $OUTPUT->error_text(get_string('error_check_iassign_filter', 'iassign')) . '</center>';
  62. $str .= $OUTPUT->box_end();
  63. }
  64. if (!file_exists($CFG->dirroot . '/blocks/iassign_block/version.php')) {
  65. $str .= $OUTPUT->box_start();
  66. $str .= '<center>' . $OUTPUT->error_text(get_string('error_check_iassign_block', 'iassign')) . '</center>';
  67. $str .= $OUTPUT->box_end();
  68. }
  69. if (!file_exists($CFG->dirroot . '/lib/editor/tinymce/plugins/iassign/version.php')) {
  70. $str .= $OUTPUT->box_start();
  71. $str .= '<center>' . $OUTPUT->error_text(get_string('error_check_iassign_tinymce', 'iassign')) . '</center>';
  72. $str .= $OUTPUT->box_end();
  73. }
  74. if ($action == 'view') {
  75. $url_add = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'add'));
  76. $action_add = new popup_action('click', $url_add, 'popup', array('width' => 900, 'height' => 650));
  77. $link_add = $OUTPUT->action_link($url_add, get_string('add_ilm_iassign', 'iassign'), $action_add) . $OUTPUT->help_icon('add_ilm_iassign', 'iassign');
  78. $url_import = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'import'));
  79. $action_import = new popup_action('click', $url_import, 'popup', array('width' => 900, 'height' => 650));
  80. $link_import = $OUTPUT->action_link($url_import, get_string('import_ilm', 'iassign'), $action_import) . $OUTPUT->help_icon('import_ilm', 'iassign');
  81. $iassign_ilms = $DB->get_records('iassign_ilm', array('parent' => 0));
  82. $str .= '<table id="outlinetable" class="generaltable boxaligncenter" cellpadding="5" width="100%">' . chr(13);
  83. $str .= '<tr><td colspan=2 align=left>' . $link_add . '</td>';
  84. $str .= '<td colspan=2 align=right>' . $link_import . '</td></tr>';
  85. if ($iassign_ilms) {
  86. foreach ($iassign_ilms as $ilm) {
  87. $url_config = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'config', 'ilm_id' => $ilm->id));
  88. $link_config = $OUTPUT->action_link($url_config, iassign_icons::insert('config_ilm'));
  89. $ilm_count = 1;
  90. $ilm_version = 0;
  91. $iassign_ilm = $DB->get_records('iassign_ilm', array('parent' => $ilm->id));
  92. if ($iassign_ilm) {
  93. foreach ($iassign_ilm as $ilm_parent) {
  94. $ilm_count++;
  95. if (floatval(preg_replace('/[^0-9]+/', '', $ilm_parent->version)) > $ilm_version)
  96. $ilm_version = floatval(preg_replace('/[^0-9]+/', '', $ilm_parent->version));
  97. }
  98. }
  99. $iassign_count = 0;
  100. $iassign_statement = $DB->get_records('iassign_statement', array('iassign_ilmid' => $ilm->id));
  101. if ($iassign_statement)
  102. $iassign_count = count($iassign_statement);
  103. $iassign_ilm_parent = $DB->get_records('iassign_ilm', array('parent' => $ilm->id));
  104. foreach ($iassign_ilm_parent as $ilm_parent) {
  105. $iassign_statement = $DB->get_records('iassign_statement', array('iassign_ilmid' => $ilm_parent->id));
  106. if ($iassign_statement)
  107. $iassign_count += count($iassign_statement);
  108. }
  109. $link_upgrade = "";
  110. $upgrade_file = $ilm->url . 'ilm-upgrade_' . strtolower($ilm->name) . '.xml';
  111. if ($upgrade_xml = @simplexml_load_file($upgrade_file, null, LIBXML_NOCDATA)) {
  112. $upgrade_version = floatval(preg_replace('/[^0-9]+/', '', $upgrade_xml->version));
  113. if ($ilm_version < $upgrade_version) {
  114. $url_upgrade = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'confirm_upgrade', 'ilm_id' => $ilm->id));
  115. $link_upgrade = $OUTPUT->action_link($url_upgrade, iassign_icons::insert('upgrade_ilm', $upgrade_xml->version));
  116. }
  117. }
  118. $str .= '<tr>';
  119. $str .= '<td class="header c1" width=75% title="fields: name, description"><strong>' . $ilm->name . '<br/>' .
  120. iassign_language::get_description_lang(current_language(), $ilm->description) . '</strong></td>' . chr(13);
  121. $str .= '<td class="header c1" width=10% ><strong>' . get_string('versions_ilm', 'iassign') . ':</strong>&nbsp;' . $ilm_count . '</td>' . chr(13);
  122. $str .= '<td class="header c1" width=10% ><strong>' . get_string('activities', 'iassign') . ':</strong>&nbsp;' . $iassign_count . '</td>' . chr(13);
  123. $str .= '<td class="header c1" width=5% align=center valign=bottom>' . $link_upgrade . '&nbsp;&nbsp;' . $link_config . '</td>' . chr(13);
  124. $str .= '</tr>';
  125. }
  126. }
  127. $str .= '</table>';
  128. $settings->add(new admin_setting_heading('iassign', get_string('config_ilm', 'iassign') . $OUTPUT->help_icon('modulename', 'iassign'), $str));
  129. }
  130. else if ($action == 'confirm_upgrade') {
  131. $ilm = $DB->get_record('iassign_ilm', array('id' => $ilm_id));
  132. $upgrade_file = $ilm->url . 'ilm-upgrade_' . strtolower($ilm->name) . '.xml';
  133. $upgrade_xml = @simplexml_load_file($upgrade_file, null, LIBXML_NOCDATA);
  134. $lang = current_language();
  135. if (array_key_exists($lang, $upgrade_xml->description))
  136. $description = $upgrade_xml->description->$lang;
  137. else
  138. $description = $upgrade_xml->description->en;
  139. $str .= '<table id="outlinetable" class="generaltable boxaligncenter" width="100%">' . chr(13);
  140. $str .= '<tr><td>' . $description;
  141. $str .= '</td></tr></table>';
  142. $optionsno = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'view'));
  143. $optionsyes = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'upgrade', 'ilm_id' => $ilm_id));
  144. $str .= "<center>" . $OUTPUT->heading(get_string('confirm_upgrade_ilm', 'iassign'), 3, 'helptitle', 'uniqueid');
  145. $url_yes = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'upgrade', 'ilm_id' => $ilm_id));
  146. $link_yes = $OUTPUT->action_link($url_yes, "<font color='green'><b>" . get_string('yes', 'iassign') . "</b></font>");
  147. $url_no = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'view'));
  148. $link_no = $OUTPUT->action_link($url_no, "<b>" . get_string('no', 'iassign') . "</b>");
  149. $str .= $link_no . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $link_yes . "</center>";
  150. $settings->add(new admin_setting_heading('iassign', get_string('upgrade_ilm_title', 'iassign'), $str));
  151. } // else if ($action == 'confirm_upgrade')
  152. else if ($action == 'config') {
  153. $url_return = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign'));
  154. $link_return = $OUTPUT->action_link($url_return, get_string('return', 'iassign'));
  155. $url_new_version = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'new_version', 'ilm_id' => $ilm_id));
  156. $action_new_version = new popup_action('click', $url_new_version, 'popup', array('width' => 900, 'height' => 650));
  157. $link_new_version = $OUTPUT->action_link($url_new_version, get_string('new_version_ilm', 'iassign'), $action_new_version);
  158. $str .= '<table id="outlinetable" class="generaltable boxaligncenter" cellpadding="5" width="100%">' . chr(13);
  159. $str .= '<tr><td colspan=2 align=left>' . $link_return . '</td><td colspan=1 align=right>' . $link_new_version . '</td></tr>';
  160. $ilm = $DB->get_record('iassign_ilm', array('id' => $ilm_id));
  161. $iassign_ilm_parent = $DB->get_records_sql(
  162. 'SELECT s.* FROM {iassign_ilm} s WHERE s.parent = :parent ORDER BY s.version DESC', array('parent' => $ilm->id));
  163. array_unshift($iassign_ilm_parent, $ilm);
  164. if ($iassign_ilm_parent) {
  165. foreach ($iassign_ilm_parent as $ilm_parent) {
  166. $url_default = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'confirm_default_ilm', 'ilm_id' => $ilm_parent->id, 'ilm_parent' => $ilm->id));
  167. if (count($iassign_ilm_parent) == 1)
  168. $link_default = "";
  169. else if ($ilm_parent->parent == 0) {
  170. $link_default = iassign_icons::insert('default_ilm');
  171. $ilm_parent->enable = -1;
  172. }
  173. else
  174. $link_default = $OUTPUT->action_link($url_default, iassign_icons::insert('default_ilm_disabled'));
  175. //if ($ilm_parent->file_jar != $ilm_parent->id) {
  176. $url_view = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'view', 'ilm_id' => $ilm_parent->id, 'from' => 'admin'));
  177. $action_view = new popup_action('click', $url_view, 'iplookup', array('title' => get_string('view_ilm', 'iassign'), 'width' => 1200, 'height' => 650));
  178. $link_view = $OUTPUT->action_link($url_view, iassign_icons::insert('view_ilm'), $action_view);
  179. // } else {
  180. //$link_view = '';
  181. // }
  182. $url_edit = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'edit', 'ilm_id' => $ilm_parent->id));
  183. $action_edit = new popup_action('click', $url_edit, 'iplookup', array('title' => get_string('edit_ilm', 'iassign'), 'width' => 900, 'height' => 650));
  184. $link_edit = $OUTPUT->action_link($url_edit, iassign_icons::insert('edit_ilm'), $action_edit);
  185. $url_visible = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'visible', 'ilm_id' => $ilm_parent->id, 'status' => $ilm_parent->enable, 'ilm_id_parent' => $ilm->id));
  186. $iassign_statement = $DB->get_records('iassign_statement', array('iassign_ilmid' => $ilm_parent->id));
  187. $total = 0;
  188. if ($iassign_statement)
  189. $total = count($iassign_statement);
  190. if ($ilm_parent->enable == 0 && $total == 0) {
  191. $link_visible = $OUTPUT->action_link($url_visible, iassign_icons::insert('show_ilm'));
  192. }
  193. elseif ($ilm_parent->enable == 1 && $total == 0) {
  194. $link_visible = $OUTPUT->action_link($url_visible, iassign_icons::insert('hide_ilm'));
  195. }
  196. else {
  197. $link_visible = '&nbsp;' . iassign_icons::insert('unlock');
  198. }
  199. $url_copy = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'copy', 'ilm_id' => $ilm_parent->id));
  200. $action_copy = new popup_action('click', $url_copy, 'iplookup', array('title' => get_string('copy_ilm', 'iassign'), 'width' => 900, 'height' => 650));
  201. $link_copy = $OUTPUT->action_link($url_copy, iassign_icons::insert('copy_ilm'), $action_copy);
  202. if ($total == 0 && ($ilm_parent->parent != 0 || count($iassign_ilm_parent) == 1) && !ilm_settings::applet_default($ilm_parent->file_jar)) {
  203. $url_delete = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'confirm_delete_ilm', 'ilm_id' => $ilm_parent->id, 'ilm_parent' => $ilm->id));
  204. $link_delete = $OUTPUT->action_link($url_delete, iassign_icons::insert('delete_ilm'));
  205. }
  206. else if (ilm_settings::applet_default($ilm_parent->file_jar)) {
  207. $url_delete = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'confirm_delete_ilm', 'ilm_id' => $ilm_parent->id, 'ilm_parent' => $ilm->id));
  208. $link_delete = $OUTPUT->action_link($url_delete, iassign_icons::insert('delete_ilm'));
  209. }
  210. else
  211. $link_delete = iassign_icons::insert('delete_ilm_disable');
  212. if (strtolower($ilm_parent->type) == 'html5') {
  213. $url_delete = new moodle_url('/mod/iassign/settings_ilm.php', array('action' => 'confirm_delete_ilm', 'ilm_id' => $ilm_parent->id, 'ilm_parent' => $ilm->id));
  214. $link_delete = $OUTPUT->action_link($url_delete, iassign_icons::insert('delete_ilm'));
  215. }
  216. $url_export = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'export', 'ilm_id' => $ilm_parent->id, 'ilm_id_parent' => $ilm->id));
  217. $link_export = $OUTPUT->action_link($url_export, iassign_icons::insert('export_ilm'));
  218. $str .= '<tr><td colspan=3>';
  219. $str .= '<table width="100%">';
  220. if (!empty($ilm_parent->url))
  221. $url_ilm = display_url_ilm($ilm_parent->url);
  222. else
  223. $url_ilm = $ilm_parent->url;
  224. if ($ilm_parent->file_jar == $ilm_parent->id) {
  225. $ilm_parent->file_jar = "";
  226. }
  227. $str .= '<tr>' . chr(13);
  228. $str .= '<td width="50%"><strong>' . get_string('version_ilm', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->version . '</td>' . chr(13);
  229. $str .= '<td width="50%" align="right" valign=bottom>';
  230. $str .= $link_default . '&nbsp;&nbsp;';
  231. $str .= $link_edit . '&nbsp;&nbsp;';
  232. $str .= $link_copy . '&nbsp;&nbsp;';
  233. $str .= $link_visible . '&nbsp;&nbsp;';
  234. $str .= $link_view . '&nbsp;&nbsp;';
  235. $str .= $link_export . '&nbsp;&nbsp;';
  236. $str .= $link_delete;
  237. $str .= '</td>' . chr(13) . '</tr>' . chr(13);
  238. $str .= '<tr>' . chr(13);
  239. $str .= '<td width="50%"><strong>' . get_string('description', 'iassign') . ':</strong>&nbsp;' . iassign_language::get_description_lang(current_language(), $ilm_parent->description) . '</td>';
  240. $str .= '<td width="50%"><strong>' . get_string('activities', 'iassign') . ':</strong>&nbsp;' . $total . '</td>' . chr(13);
  241. $str .= '</tr>' . chr(13);
  242. $langs_str = iassign_language::get_all_lang($ilm_parent->description);
  243. $str .= '<tr>';
  244. if ($langs_str != "")
  245. $str .= '<td><strong>' . get_string('language_label', 'iassign') . ':</strong>&nbsp;' . $langs_str . '</td>';
  246. $str .= '<td><strong>' . get_string('type_ilm', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->type . '</td>';
  247. $str .= '</tr>';
  248. if (strtolower($ilm_parent->type) == 'java') {
  249. $ilm_parent->file_jar = basename($ilm_parent->file_jar);
  250. }
  251. $str .= '<tr><td colspan=3><strong>' . get_string('url_ilm', 'iassign') . '</strong>&nbsp;<a href="' . $url_ilm . '" target="_blank">' . $url_ilm . '</a></td></tr>';
  252. $str .= '<tr><td width="50%" title="field: file_jar"><strong>' . get_string('file_jar', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->file_jar . '</td>';
  253. $str .= '<td width="50%" title="field: file_class"><strong>' . get_string('file_class', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->file_class . '</td></tr>';
  254. $str .= '<tr><td width="50%" title="field: extension"><strong>' . get_string('extension', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->extension . '</td>';
  255. $str .= '<td width="50%" title="field: width"><strong>' . get_string('width', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->width;
  256. $str .= '&nbsp;&nbsp;<strong>' . get_string('height', 'iassign') . ':</strong>&nbsp;' . $ilm_parent->height . '</td></tr>';
  257. if ($ilm_parent->evaluate == 1)
  258. $evaluate = get_string('yes', 'iassign');
  259. else
  260. $evaluate = get_string('no', 'iassign');
  261. $str .= '<tr><td width="50%" title="field: evaluate"><strong>' . get_string('evaluate', 'iassign') . ':</strong>&nbsp;' . $evaluate . '</td>';
  262. if ($ilm_parent->enable == 1 || $ilm_parent->enable == -1)
  263. $enable = get_string('yes', 'iassign');
  264. else
  265. $enable = get_string('no', 'iassign');
  266. $str .= '<td width="50%"><strong>' . get_string('enable', 'iassign') . ':</strong>&nbsp;' . $enable . '</td></tr>';
  267. $str .= '<tr>' . chr(13);
  268. $str .= '<td width="50%"><strong>' . get_string('file_created', 'iassign') . ':</strong>&nbsp;' . userdate($ilm_parent->timecreated) . '</td>';
  269. $str .= '<td width="50%"><strong>' . get_string('file_modified', 'iassign') . ':</strong>&nbsp;' . userdate($ilm_parent->timemodified) . '</td>' . chr(13);
  270. $str .= '</tr>' . chr(13);
  271. $user_ilm = $DB->get_record('user', array('id' => $ilm_parent->author));
  272. if ($user_ilm) {
  273. $str .= '<tr>' . chr(13);
  274. $str .= '<td colspan=2><strong>' . get_string('author', 'iassign') . ':</strong>&nbsp;' . $user_ilm->firstname . '&nbsp;' . $user_ilm->lastname . '</td>';
  275. $str .= '</tr>' . chr(13);
  276. }
  277. $str .= '<tr>' . chr(13);
  278. $str .= '<td colspan=2><center>';
  279. $url_add_param = new moodle_url('/mod/iassign/settings_params.php', array('action' => 'add', 'ilm_id' => $ilm_id));
  280. $action_add_param = new popup_action('click', $url_add_param, 'popup', array('width' => 900, 'height' => 650));
  281. $link_add_param = $OUTPUT->action_link($url_add_param, iassign_icons::insert('add_param'), $action_add_param);
  282. $str .= '<table width="100%">' . chr(13);
  283. $str .= '<tr>' . chr(13);
  284. $str .= '<th colspan=3><center><strong>' . get_string('config_param', 'iassign') . $OUTPUT->help_icon('config_param', 'iassign') . '</strong></center></th>';
  285. $str .= '<th>' . $link_add_param . '</th>';
  286. $str .= '</tr>' . chr(13);
  287. $str .= '<tr>' . chr(13);
  288. $str .= '<td><strong>' . get_string('config_param_name', 'iassign') . '</strong></td>';
  289. $str .= '<td><strong>' . get_string('config_param_value', 'iassign') . '</strong></td>';
  290. $str .= '<td><strong>' . get_string('config_param_description', 'iassign') . '</strong></td>';
  291. $str .= '<td width="10%"><center><strong>' . get_string('config_param_actions', 'iassign') . '</strong></center></td>';
  292. $str .= '</tr>' . chr(13);
  293. $iassign_ilm_config = $DB->get_records('iassign_ilm_config', array('iassign_ilmid' => $ilm_parent->id));
  294. foreach ($iassign_ilm_config as $ilm_config) {
  295. $url_edit_param = new moodle_url('/mod/iassign/settings_params.php', array('action' => 'edit', 'ilm_param_id' => $ilm_config->id));
  296. $action_edit_param = new popup_action('click', $url_edit_param, 'iplookup', array('title' => get_string('edit_param', 'iassign'), 'width' => 900, 'height' => 650));
  297. $link_edit_param = $OUTPUT->action_link($url_edit_param, iassign_icons::insert('edit_param'), $action_edit_param);
  298. $url_visible_param = new moodle_url('/admin/settings.php', array('section' => 'modsettingiassign', 'action' => 'visible_param', 'ilm_id' => $ilm_parent->id, 'status' => $ilm_config->visible, 'ilm_param_id' => $ilm_config->id));
  299. if ($ilm_config->visible == 0) {
  300. $link_visible_param = $OUTPUT->action_link($url_visible_param, iassign_icons::insert('show_param'));
  301. }
  302. elseif ($ilm_config->visible == 1) {
  303. $link_visible_param = $OUTPUT->action_link($url_visible_param, iassign_icons::insert('hide_param'));
  304. }
  305. $url_copy_param = new moodle_url('/mod/iassign/settings_params.php', array('action' => 'copy', 'ilm_param_id' => $ilm_config->id));
  306. $action_copy_param = new popup_action('click', $url_copy_param, 'iplookup', array('title' => get_string('copy_param', 'iassign'), 'width' => 900, 'height' => 650));
  307. $link_copy_param = $OUTPUT->action_link($url_copy_param, iassign_icons::insert('copy_param'), $action_copy_param);
  308. $url_delete_param = new moodle_url('/mod/iassign/settings_params.php', array('action' => 'delete', 'ilm_param_id' => $ilm_config->id, 'ilm_id' => $ilm_parent->id));
  309. $link_delete_param = $OUTPUT->action_link($url_delete_param, iassign_icons::insert('delete_param'));
  310. $str .= '<tr>' . chr(13);
  311. $str .= '<td>' . $ilm_config->param_name . '</td>';
  312. $str .= '<td>' . $ilm_config->param_value . '</td>';
  313. $str .= '<td width="50%">' . $ilm_config->description . '</td>';
  314. $str .= '<td width="10%"><center>';
  315. $str .= $link_edit_param . '&nbsp;&nbsp;';
  316. $str .= $link_copy_param . '&nbsp;&nbsp;';
  317. $str .= $link_visible_param . '&nbsp;&nbsp;';
  318. $str .= $link_delete_param;
  319. $str .= '</center></td>';
  320. $str .= '</tr>' . chr(13);
  321. }
  322. $str .= '</table>' . chr(13);
  323. $str .= '</center></td>';
  324. $str .= '</tr>' . chr(13);
  325. $str .= '</table>';
  326. $str .= '</td></tr>';
  327. $str .= '</tr><td colspan="3"></td></tr>';
  328. }
  329. }
  330. $str .= '</table>';
  331. $settings->add(new admin_setting_heading('iassign', $ilm->name . '&nbsp;', $str));
  332. }