/**
  * Edit the submission in Turnitin so a tutor can see the identity of the student
  *
  * @param string $reason
  * @return boolean
  */
 public function unanonymise_submission($reason)
 {
     // Get user and part details.
     $turnitintooltwoassignment = new turnitintooltwo_assignment($this->turnitintooltwoid);
     $partdetails = $turnitintooltwoassignment->get_part_details($this->submission_part);
     $user = new turnitintooltwo_user($this->userid);
     // Initialise Comms Object.
     $turnitincomms = new turnitintooltwo_comms();
     $turnitincall = $turnitincomms->initialise_api();
     $submission = new TiiSubmission();
     $submission->setSubmissionId($this->submission_objectid);
     $submission->setAssignmentId($partdetails->tiiassignid);
     if (strlen($reason) < 5) {
         $reason = "No specified reason: " . $reason;
     }
     $submission->setAnonymousRevealReason($reason);
     $submission->setAnonymousRevealUser($user->tii_user_id);
     $submission->setAnonymousRevealDateTime(date("c"));
     try {
         $turnitincall->updateSubmission($submission);
         return true;
     } catch (Exception $e) {
         $turnitincomms->handle_exceptions($e, "unanonymiseerror", false);
         return false;
     }
 }
 /**
  * Get ids of submissions from Turnitin
  *
  * @param object $part the part to get submissions for
  */
 public function get_submission_ids_from_tii($part)
 {
     // Initialise Comms Object.
     $turnitincomms = new turnitintooltwo_comms();
     $turnitincall = $turnitincomms->initialise_api();
     try {
         $submission = new TiiSubmission();
         $submission->setAssignmentId($part->tiiassignid);
         // Only update submissions that have been modified since last update.
         if (!empty($_SESSION["TiiSubmissionsRefreshed"][$part->id])) {
             $submission->setDateFrom(gmdate("Y-m-d\\TH:i:s\\Z", $_SESSION["TiiSubmissionsRefreshed"][$part->id]));
         }
         $response = $turnitincall->findSubmissions($submission);
         $findsubmission = $response->getSubmission();
         $_SESSION["TiiSubmissions"][$part->id] = $findsubmission->getSubmissionIds();
     } catch (Exception $e) {
         $turnitincomms->handle_exceptions($e, 'tiisubmissionsgeterror', false);
     }
 }
Exemple #3
0
 /**
  * Find Submission Ids on a Turnitin Assignment.
  *
  * Takes a {@link TiiSubmission.html TiiSubmission} object containing the required parameters
  * and returns a {@link Response.html Response} object containing the data from the response.
  *
  * findSubmissions accepts:
  * <ul>
  * <li><b>Assignment Id</b><br />{@link TiiSubmission.html#setAssignmentId TiiSubmission->setAssignmentId( <i>integer</i> AssignmentId )}</li>
  * <li><b>Date From</b> (Optional)<br />{@link TiiSubmission.html#setDateFrom TiiSubmission->setDateFrom( <i>string</i> DateFrom )}</li>
  * </ul>
  * findSubmissions returns a {@link Response.html Response} object which contains a {@link TiiSubmission.html TiiSubmission} object:
  * <ul>
  * <li>{@link Response.html#setSubmission Response->getSubmission()} returns a {@link TiiSubmission.html TiiSubmission} object</li>
  * <ul>
  * <li><b>Submission Ids</b> (array)<br />{@link TiiSubmission.html#getSubmissionIds TiiSubmission->getSubmissionIds()}</li>
  * </ul>
  * </ul>
  *
  * <h3>Example Code:</h3>
  * <pre class="prettyprint lang-perl" style="padding: 12px;">
  * $api = new APITurnitin( 1234, 'https://sandbox.turnitin.com', 'mysecret', 16 );
  * $submission = new TiiSubmission();
  * $submission->setAssignmentId( 1234 );
  * $submission->setDateFrom( '2012-09-12T09:00:00Z' );
  *
  * $response = $api->findSubmissions( $submission );
  * $findsubmission = $response->getSubmission();
  * $findsubmissionids = $findsubmission->getSubmissionIds();
  * </pre>
  *
  * @param TiiSubmission $submission
  * @return Response
  */
 public function findSubmissions($submission)
 {
     $submissionSoap = $this->setOptions(new SubmissionSoap($this->resultwsdl, $this->getServiceOptions('result')));
     if (!is_null($submission->getDateFrom())) {
         return $submissionSoap->findRecentSubmissions($submission);
     } else {
         return $submissionSoap->findSubmissions($submission);
     }
 }
 /**
  *
  * @param TiiSubmission $submission
  */
 public function replaceSubmission($submission)
 {
     $params_merge = $this->getResubmissionFormHash($submission);
     if (is_null($submission->getSubmissionDataPath()) && is_null($submission->getSubmissionDataUrl())) {
         $params_merge['custom_submission_data'] = $submission->getSubmissionDataText();
     } else {
         if (is_null($submission->getSubmissionDataUrl())) {
             // CURL uploading with @ has been deprecated in PHP 5.5
             if (class_exists('CURLFile')) {
                 $finfo = new finfo(FILEINFO_MIME);
                 $mimetype = $finfo->file($submission->getSubmissionDataPath());
                 $params_merge['custom_submission_data'] = new CurlFile($submission->getSubmissionDataPath(), $mimetype);
             } else {
                 $params_merge['custom_submission_data'] = '@' . $submission->getSubmissionDataPath();
             }
         }
     }
     $transport = $this->transportData($params_merge);
     $response = new Response($this);
     if ($response->getStatusCode() == 'failure') {
         throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription());
     } else {
         $dom = $response->getDomObject();
         $tiiSubmission = new TiiSubmission();
         $tiiSubmission->setSubmissionId($dom->getElementsByTagName('lis_result_sourcedid')->item(0)->nodeValue);
         $tiiSubmission->setTextExtract(@$dom->getElementsByTagName('submission_data_extract')->item(0)->nodeValue);
         $response->setSubmission($tiiSubmission);
     }
     return $response;
 }
 /**
  * Delete a submission from Turnitin
  */
 private function delete_tii_submission($cm, $submissionid, $user)
 {
     global $CFG;
     // Initialise Comms Object.
     $turnitincomms = new turnitin_comms();
     $turnitincall = $turnitincomms->initialise_api();
     $submission = new TiiSubmission();
     $submission->setSubmissionId($submissionid);
     try {
         $response = $turnitincall->deleteSubmission($submission);
     } catch (Exception $e) {
         $turnitincomms->handle_exceptions($e, 'turnitindeletionerror', false);
         mtrace('-------------------------');
         mtrace(get_string('turnitindeletionerror', 'plagiarism_turnitin') . ': ' . $e->getMessage());
         mtrace('User:  '******' - ' . $user->firstname . ' ' . $user->lastname . ' (' . $user->email . ')');
         mtrace('Course Module: ' . $cm->id . '');
         mtrace('-------------------------');
     }
 }
 /**
  * Delete a submission from Turnitin
  */
 private function delete_tii_submission($submissionid)
 {
     // Initialise Comms Object.
     $turnitincomms = new turnitin_comms();
     $turnitincall = $turnitincomms->initialise_api();
     $submission = new TiiSubmission();
     $submission->setSubmissionId($submissionid);
     try {
         $response = $turnitincall->deleteSubmission($submission);
     } catch (Exception $e) {
         $turnitincomms->handle_exceptions($e, 'turnitindeletionerror');
     }
 }
 public function createSubmission($submission)
 {
     try {
         $request = array();
         $request['resultRecord']['sourcedGUID']['sourcedId'] = '';
         $request['resultRecord']['result']['personSourcedId'] = $submission->getAuthorUserId();
         $request['resultRecord']['result']['lineItemSourcedId'] = $submission->getAssignmentId();
         $request['resultRecord']['result']['extension']['extensionNameVocabulary'] = self::$extensionname_vocab;
         $request['resultRecord']['result']['extension']['extensionValueVocabulary'] = self::$extensionvalue_vocab;
         $request['resultRecord']['result']['extension']['extensionField'][0]['fieldName'] = 'Submitter';
         $request['resultRecord']['result']['extension']['extensionField'][0]['fieldType'] = 'Integer';
         $request['resultRecord']['result']['extension']['extensionField'][0]['fieldValue'] = $submission->getSubmitterUserId();
         $soap = $this->createByProxyResult($request);
         $response = new Response($this);
         if ($response->getStatus() == 'error') {
             throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription());
         } else {
             $tiiSubmission = new TiiSubmission();
             $tiiSubmission->setSubmissionId($soap->sourcedId);
             $response->setSubmission($tiiSubmission);
         }
         return $response;
     } catch (SoapFault $e) {
         throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath());
     }
 }