Browse Source

Fix merge conflicts

Igor 4 years ago
parent
commit
79c1aeee41
4 changed files with 32 additions and 19 deletions
  1. 9 5
      iassign_form.php
  2. 14 11
      ilm_manager.php
  3. 2 0
      locallib.php
  4. 7 3
      settings_form.php

+ 9 - 5
iassign_form.php

@@ -5,6 +5,8 @@
  * 
  * 
  * Release Notes:
+ * - v 1.5.1 2020/01/21
+ *   + Filter 'addslach(.)' to avoid ' and " close command JavaScript and verify if field 'grade' in JS is 'undefined'
  * - v 1.5 2013/09/19
  *   + Insert function for validation form (mod_iassign_form::validation).
  *   + Fix bugs in download exercise file.
@@ -76,7 +78,7 @@ class mod_iassign_form extends moodleform {
     $name_iassigns = "";
     if ($iassigns) {
       foreach ($iassigns as $iassign) {
-        $name_iassigns .= "'" . $iassign->name . "',";
+        $name_iassigns .= "'" . addslashes($iassign->name) . "',"; // if the name has ' it implies close JavaScript string => error!
         }
       }
     $name_iassigns .= "''";
@@ -95,10 +97,12 @@ class mod_iassign_form extends moodleform {
    document.forms['mform1'].filename.disabled=1;  
 
    if (document.forms['mform1'].type_iassign.value==1) {
-     document.forms['mform1'].grade.style.display='none';
+     if (typeof document.forms['mform1'].grade === 'undefined') ; // do nothing
+     else document.forms['mform1'].grade.style.display='none';
      document.forms['mform1'].max_experiment.style.display='none';
    } else {
-     document.forms['mform1'].grade.style.display='block';
+     if (typeof document.forms['mform1'].grade === 'undefined') ; // do nothing
+     else document.forms['mform1'].grade.style.display='block';
      document.forms['mform1'].max_experiment.style.display='block';
      }
 
@@ -123,7 +127,7 @@ class mod_iassign_form extends moodleform {
 
   function confirm_name (name) {
     var i;
-    var names = new Array($name_iassigns);
+    var names = new Array(" . $name_iassigns . ");
     for (i=0;i<names.length;i++) {
        if (names[i]==name)
          alert('" . $error_name . "');
@@ -510,4 +514,4 @@ class mod_iassign_form extends moodleform {
     return $errors;
     } // function validation($data, $files)
 
-  } // class mod_iassign_form extends moodleform
+  } // class mod_iassign_form extends moodleform

+ 14 - 11
ilm_manager.php

@@ -149,15 +149,15 @@ if ($id>0) { // if reach here by iLM get request, id is not defined!
 
 if (has_capability('mod/iassign:editiassign', $context, $USER->id)) {
 
-  $ilm_manager_instance = new ilm_manager($id, $url, $from); // locallib.php: class ilm_manager
-  $dirid = $ilm_manager_instance->get_dir_ilm('dirid');
-
-
-// Enter here whenever : teacher is viewing/creating an iLM content (preview), here is called by the iLM do not verify credentials.
-if ($action == 'get') {
-  $fileid = optional_param('fileid', 1, PARAM_INT);
-  return $ilm_manager_instance->get_file_ilm($ilmid, $fileid);
-  }
+  $ilm_manager_instance = new ilm_manager($id, $url, $from); // ./locallib.php: class ilm_manager
+  //echo "ilm_manager.php: $id, $url, $from<br/>";
+  $dirid = $ilm_manager_instance->get_dir_ilm('dirid'); // ./locallib.php: class ilm_manager: 
+
+  // Enter here whenever : teacher is viewing/creating an iLM content (preview), here is called by the iLM do not verify credentials.
+  if ($action == 'get') {
+    $fileid = optional_param('fileid', 1, PARAM_INT);
+    return $ilm_manager_instance->get_file_ilm($ilmid, $fileid);
+    }
 
   if ($action) { // avoid several tests when empty...
     switch ($action) { // '$ilm_manager_instance' instace of 'locallib.php : class ilm_manager'
@@ -184,7 +184,10 @@ if ($action == 'get') {
       case 'preview':
         // The function bellow calls '/filter/iassign_filter/filter.php' function 'filter($text, array $options = array())' and exit (do not continue bellow)
         //// prepare_secure_access(): array('content' => $ilm_content_file, 'token' => $token, 'secure_id' => $id_iLM_security)
-        $ilm_manager_instance->preview_ilm($id, $iassign_ilm, $iassign_statementid); // in '/mod/iassign/locallib.php'
+        if (isset($iassign_statementid))
+          $ilm_manager_instance->preview_ilm($id, $iassign_ilm, $iassign_statementid); // in '/mod/iassign/locallib.php'
+        else
+          $ilm_manager_instance->preview_ilm($id, $iassign_ilm); // in '/mod/iassign/locallib.php'
         break;
       case 'addilm':
         $ilm_manager_instance->add_ilm();
@@ -352,4 +355,4 @@ if ($action == 'get') {
   print $OUTPUT->footer();
 
   die;
-  } // if (has_capability('mod/iassign:editiassign', $context, $USER->id))
+  } // if (has_capability('mod/iassign:editiassign', $context, $USER->id))

+ 2 - 0
locallib.php

@@ -1964,6 +1964,7 @@ class iassign {
           //1   $only_one_send_button = 1; // avoid put comment frame again (bellow)
           //1   }
           
+
           $output .= $OUTPUT->box_end();
           print $output;
           } // if ($this->view_iassign)
@@ -6242,6 +6243,7 @@ class ilm_manager {
 
 
   //NN
+//NN
   // Build string with JavaScript code with function to edit/remove/double iLM files
   // @calledby view_files_ilm($iassign_ilm_class, $extension, $start = 0)
   function get_string_JavaScript_functions ($dirid, $ilmid, $files_array, $dirs_array) {

+ 7 - 3
settings_form.php

@@ -7,6 +7,8 @@
  * then by 'ilm_handlers/(html5 or java).php' with copy_new_version_ilm($param, $files_extract)'
  * 
  * Release Notes:
+ * - v 1.6.2 2020/01/20
+ *   + Avoid presence of ' and " in DB to close string to put JavaScript (avoid error)
  * - v 1.6.1 2017/12/02
  *   + New help button, improvements on some helps, new code comments and indentation.
  * - v 1.6 2013/12/12
@@ -111,7 +113,8 @@ class mod_ilm_form extends moodleform {
     function search_name (name) {
       var i;
       var names = new Array(";
-      $code_javascript .= $names . "'');\n";
+      if ($names != '')
+        $code_javascript .= addslashes($names) . "');\n"; // if the name has ' it implies close JavaScript string => error!
       $code_javascript .= "
       for (i=0;i<names.length;i++) {
         if (names[i].toLowerCase()==name.toLowerCase()) {
@@ -144,7 +147,8 @@ class mod_ilm_form extends moodleform {
       var filejar = tmp[tmp.length-1];
 
       var filejars = new Array(";
-      $code_javascript .= $filejars . "'');" . chr(13);
+      if ($filejar!='')
+        $code_javascript .= addslashes($filejars) . "');" . chr(13); // if the name has ' it implies close JavaScript string => error!
       $code_javascript .= "
       for (i=0;i<filejars.length;i++) {
         if (filejars[i].toLowerCase()==filejar.toLowerCase()) {
@@ -337,4 +341,4 @@ class mod_ilm_form extends moodleform {
     $this->add_action_buttons();
     }
 
-  }
+  }