/mod/assignment/type/turnitin/tiiapipost.class.php

https://github.com/jarednipper/HSU-common-code · PHP · 240 lines · 220 code · 15 blank · 5 comment · 8 complexity · bdc6ea17989227dc085a0ff19be27c9a MD5 · raw file

  1. <?php
  2. /**
  3. * API Assignment
  4. * v 1.0 2006/06/13 10:00:00 Northumbria Learning
  5. * v 2.0.4 2008/10/31 Minor change from isadmin() and isteacher() to has_capability()
  6. */
  7. class tii_api {
  8. var $config;
  9. var $uid, $uem, $ufn, $uln, $md5, $upw, $ctl, $cpw, $tem, $pfn, $src;
  10. var $assign, $newassign, $newupw, $aid, $diagnostic, $encrypt, $fcmd, $fid, $utp, $said;
  11. var $cid, $assignid, $username, $mdlusername, $format, $grade, $availableenable, $availableday, $availablemonth, $availableyear;
  12. var $availablehour, $availableminute, $havailableday, $havailablemonth, $havailableyear;
  13. var $havailablehour, $havailableminute, $dueenable, $dueday, $duemonth, $dueyear, $duehour, $dueminute;
  14. var $hdueday, $hduemonth, $hdueyear, $hduehour, $hdueminute, $preventlate, $hpreventlate, $assignmenttype;
  15. var $groupmode, $visible, $course, $coursemodule, $section, $module, $modulename, $instance, $mode, $maxbytes;
  16. var $version;
  17. function tii_api($mdl_id,$mdl_username,$mdl_uem,$mdl_ufn,$mdl_uln,$cid,$fcmd,$fid) {
  18. global $CFG,$USER;
  19. $this->uid = $mdl_id;
  20. $this->mdlusername = $mdl_username;
  21. $this->uem = $mdl_uem;
  22. $this->ufn = $mdl_ufn;
  23. $this->uln = $mdl_uln;
  24. $this->cid = $cid;
  25. $this->src = 6;
  26. $this->fcmd = $fcmd;
  27. $this->fid = $fid;
  28. $this->version = TII_VERSION;
  29. if (has_capability('mod/assignment:grade', get_context_instance(CONTEXT_COURSE, $cid))) {
  30. $this->utp = 2;
  31. } else {
  32. $this->utp = 1;
  33. }
  34. }
  35. function get_url() {
  36. global $CFG;
  37. $url = TII_BASEURL."?";
  38. $url .= "gmtime=".tii_api::get_gmtime();
  39. $url .= "&fid=".$this->fid;
  40. $url .= "&fcmd=".$this->fcmd;
  41. $url .= "&encrypt=".TII_ENCRYPT;
  42. $url .= "&md5=".$this->get_md5string();
  43. $url .= "&aid=".$CFG->tii_aid;
  44. $url .= "&said=".$this->said;
  45. $url .= "&diagnostic=".TII_DIAGNOSTIC;
  46. $url .= "&wsurl=".urlencode($CFG->tii_webserviceurl);
  47. $url .= "&uem=".urlencode($this->uem);
  48. $url .= "&upw=".urlencode($this->upw);
  49. $url .= "&ufn=".urlencode($this->ufn);
  50. $url .= "&uln=".urlencode($this->uln);
  51. $url .= "&utp=".$this->utp;
  52. $url .= "&mdl_ufn=".urlencode($this->ufn);
  53. $url .= "&mdl_uln=".urlencode($this->uln);
  54. $url .= "&mdl_uem=".urlencode($this->uem);
  55. if ($this->fid == 4 & $this->fcmd == 4) {
  56. $url .= "&action=ASSIGNMENT_DELETE";
  57. } elseif ($this->fid == 1) {
  58. $url .= "&action=ASSIGNMENT_UPLOAD";
  59. } elseif ($this->fid == 4) {
  60. $url .= "&action=ASSIGNMENT_CREATE";
  61. }
  62. $url .= "&src=".$this->src;
  63. $url .= "&mdl_username=".urlencode($this->mdlusername);
  64. $url .= "&mdl_ctl=".urlencode($this->ctl);
  65. $url .= "&mdl_cpw=".urlencode($this->cpw);
  66. $url .= "&mdl_tem=".$this->tem;
  67. $url .= "&mdl_newupw=".urlencode($this->newupw);
  68. $url .= "&mdl_description=".urlencode($this->description);
  69. $url .= "&mdl_title=".urlencode($this->assign);
  70. $url .= "&mdl_dis=".$this->dis;
  71. $url .= "&mdl_uid=".urlencode($this->uid);
  72. $url .= "&mdl_cid=".urlencode($this->cid);
  73. $url .= "&mdl_assignid=".urlencode($this->assignid);
  74. $url .= "&mdl_format=".urlencode($this->format);
  75. $url .= "&mdl_grade=".urlencode($this->grade);
  76. $url .= "&mdl_availableenable=".$this->availableenable;
  77. $url .= "&mdl_availableday=".substr( $this->availableday + 100, 1 );
  78. $url .= "&mdl_availablemonth=".substr( $this->availablemonth + 100, 1 );
  79. $url .= "&mdl_availableyear=".$this->availableyear;
  80. $url .= "&mdl_availablehour=".substr( $this->availablehour + 100, 1 );
  81. $url .= "&mdl_availableminute=".substr( $this->availableminute + 100, 1 );
  82. $url .= "&mdl_havailableday=".substr( $this->havailabledueday + 100, 1 );
  83. $url .= "&mdl_havailablemonth=".substr( $this->havailablemonth + 100, 1 );
  84. $url .= "&mdl_havailableyear=".urlencode($this->havailableyear);
  85. $url .= "&mdl_havailablehour=".substr( $this->havailablehour + 100, 1 );
  86. $url .= "&mdl_havailableminute=".substr( $this->havailablemonth + 100, 1 );
  87. $url .= "&mdl_dueenable=".$this->dueenable;
  88. $url .= "&mdl_dueday=".substr( $this->dueday + 100, 1 );
  89. $url .= "&mdl_duemonth=".substr( $this->duemonth + 100, 1 );
  90. $url .= "&mdl_dueyear=".$this->dueyear;
  91. $url .= "&mdl_duehour=".substr( $this->duehour + 100, 1 );
  92. $url .= "&mdl_dueminute=".substr( $this->dueminute + 100, 1 );
  93. $url .= "&mdl_hdueday=".substr( $this->hdueday + 100, 1 );
  94. $url .= "&mdl_hduemonth=".substr( $this->hduemonthday + 100, 1 );
  95. $url .= "&mdl_hdueyear=".$this->hdueyear;
  96. $url .= "&mdl_hduehour=".substr( $this->hduehour + 100, 1 );
  97. $url .= "&mdl_hdueminute=".substr( $this->hdueminute + 100, 1 );
  98. $url .= "&mdl_preventlate=".$this->preventlate;
  99. $url .= "&mdl_hpreventlate=".$this->hpreventlate;
  100. $url .= "&mdl_assignmenttype=".$this->assignmenttype;
  101. $url .= "&mdl_groupmode=".$this->groupmode;
  102. $url .= "&mdl_visible=".$this->visible;
  103. $url .= "&mdl_course=".$this->course;
  104. $url .= "&mdl_coursemodule=".$this->coursemodule;
  105. $url .= "&mdl_section=".$this->section;
  106. $url .= "&mdl_module=".$this->module;
  107. $url .= "&mdl_modulename=".$this->modulename;
  108. $url .= "&mdl_instance=".$this->instance;
  109. $url .= "&mdl_mode=".$this->mode;
  110. $url .= "&mdl_maxbytes=".$this->maxbytes;
  111. $url .= "&cid=".urlencode($this->cid);
  112. $url .= "&uid=".urlencode($this->uid);
  113. $url .= "&assign=".urlencode($this->assign);
  114. $url .= "&assignid=".urlencode($this->assignid);
  115. $url .= "&username=".urlencode($this->mdlusername);
  116. $url .= "&dis=".$this->dis;
  117. $url .= "&cpw=".urlencode($this->cpw);
  118. $url .= "&ctl=".urlencode($this->ctl);
  119. $url .= "&tem=".$this->tem;
  120. $url .= "&version=".TII_VERSION;
  121. if (TII_LOGGING) {
  122. require_once("logger.class.php");
  123. $logger = new Logger;
  124. $logger->log("API:".$url);
  125. }
  126. return $url;
  127. }
  128. function create_call($description,$ctl,$cpw,$tem,$iod,$newupw,$assign,$dis,$cid,$assignid,$username,$format,
  129. $grade,$availableenable,$availableday,$availablemonth,$availableyear,$availablehour,
  130. $availableminute,$havailableday,$havailablemonth,$havailableyear,$havailablehour,
  131. $havailableminute,$dueenable,$dueday,$duemonth,$dueyear,$duehour,$dueminute,$hdueday,
  132. $hduemonth,$hdueyear,$hduehour,$hdueminute,$preventlate,$hpreventlate,$assignmenttype,
  133. $groupmode,$visible,$course,$coursemodule,$section,$module,$modulename,$instance,$mode,$maxbytes) {
  134. global $CFG;
  135. $this->ctl = $ctl;
  136. $this->cpw = $cpw;
  137. $this->tem = $course."_".$CFG->tii_aid.TII_EMAILSUFFIX;
  138. $this->oid = $iod;
  139. $this->newupw = $newupw;
  140. $this->description = $description;
  141. $this->assign = $assign;
  142. $this->dis = $dis;
  143. $this->assignid = $assignid;
  144. $this->username = $username;
  145. $this->format = $format;
  146. $this->grade = $grade;
  147. $this->availableenable = $availableenable;
  148. $this->availableday = $availableday;
  149. $this->availablemonth = $availablemonth;
  150. $this->availableyear = $availableyear;
  151. $this->availablehour = $availablehour;
  152. $this->availableminute = $availableminute;
  153. $this->havailableday = $havailableday;
  154. $this->havailablemonth = $havailablemonth;
  155. $this->havailableyear = $havailableyear;
  156. $this->havailablehour = $havailablehour;
  157. $this->havailableminute = $havailableminute;
  158. $this->dueenable = $dueenable;
  159. $this->dueday = $dueday;
  160. $this->duemonth = $duemonth;
  161. $this->dueyear = $dueyear;
  162. $this->duehour = $duehour;
  163. $this->dueminute = $dueminute;
  164. $this->hdueday = $hdueday;
  165. $this->hduemonth = $hduemonth;
  166. $this->hdueyear = $hdueyear;
  167. $this->hduehour = $hduehour;
  168. $this->hdueminute = $hdueminute;
  169. $this->preventlate = $preventlate;
  170. $this->hpreventlate = $hpreventlate;
  171. $this->assignmenttype = $assignmenttype;
  172. $this->groupmode = $groupmode;
  173. $this->visible = $visible;
  174. $this->course = $course;
  175. $this->coursemodule = $coursemodule;
  176. $this->section = $section;
  177. $this->module = $module;
  178. $this->modulename = $modulename;
  179. $this->instance = $instance;
  180. $this->mode = $mode;
  181. $this->maxbytes = $maxbytes;
  182. $this->version = TII_VERSION;
  183. $url = $this->get_url();
  184. return $url;
  185. }
  186. function get_gmtime() {
  187. return substr(gmdate('YmdHi'), 0, -1);
  188. }
  189. function get_md5string(){
  190. global $CFG;
  191. $md5string = $CFG->tii_aid.
  192. $this->assign.
  193. $this->assignid.
  194. $this->cid.
  195. $this->cpw.
  196. $this->ctl.
  197. TII_DIAGNOSTIC.
  198. $this->dis.
  199. $this->dtdue.
  200. $this->dtstart.
  201. TII_ENCRYPT.
  202. $this->fcmd.
  203. $this->fid.
  204. tii_api::get_gmtime().
  205. $this->newassign.
  206. $this->newupw.
  207. $this->oid.
  208. $this->pfn.
  209. $this->pln.
  210. $this->ptl.
  211. $this->ptype.
  212. $this->said.
  213. $this->tem.
  214. $this->uem.
  215. $this->ufn.
  216. $this->uid.
  217. $this->uln.
  218. $this->upw.
  219. $this->mdlusername.
  220. $this->utp.
  221. $CFG->tii_sharedkey;
  222. return md5($md5string);
  223. }
  224. }
  225. ?>