コード例 #1
0
ファイル: Upload.php プロジェクト: atikahmed/joomla-probid
 /**
  * Delete the file and all associated rows (done by foreign keys) and files
  * $params object should be a json like
  * <code>
  * {
  *  'id': 'xxxx-x-x-x-x-x-x'
  * }
  * </code>
  *
  * @param $params
  * @return RokCommon_Ajax_Result
  */
 public function file($params)
 {
     $result = new RokCommon_Ajax_Result();
     $tx = RokGallery_Doctrine::getConnection()->transaction;
     $tx->setIsolation('READ UNCOMMITTED');
     try {
         if (count($_FILES) == 0) {
             throw new RokGallery_Job_Exception(rc__('ROKGALLERY_NO_FILES_SENT'));
         }
         $job = RokGallery_Job::get($params->id);
         if ($job === false) {
             throw new RokCommon_Ajax_Exception(rc__('ROKGALLERY_UNABLE_TO_FIND_JOB', $params->id));
         }
         if ($job->getStateName() != RokGallery_Job::STATE_PREPPING) {
             throw new RokGallery_Job_Exception(rc__('ROKGALLERY_NOT_IN_PREPPING_STATUS'));
         }
         if ($job->getType() != RokGallery_Job::TYPE_IMPORT) {
             throw new RokGallery_Job_Exception(rc__('ROKGALLERY_NOT_AN_IMPORT_JOB'));
         }
         $job_properties = $job->getProperties();
         if (empty($job_properties)) {
             $job_properties = array();
         }
         $basepath = RokGallery_Config::getOption(RokGallery_Config::OPTION_JOB_QUEUE_PATH) . DS . $job->getId();
         if (!file_exists($basepath)) {
             @mkdir($basepath);
             RokGallery_Queue_DirectoryCreate::add($basepath);
         }
         if (!(file_exists($basepath) && is_dir($basepath) && is_writable($basepath))) {
             throw new RokGallery_Job_Exception(rc__('ROKGALLERY_UNABLE_TO_CREATE_OR_WRITE_TO_TEMP_DIR', $basepath));
         }
         $tx->beginTransaction();
         foreach ($_FILES as $uploaded_file) {
             if ($uploaded_file['error'] == UPLOAD_ERR_OK) {
                 $file = new RokGallery_Job_Property_ImportFile();
                 $file->setFilename($uploaded_file['name']);
                 $file->setPath($basepath . DS . $file->getId());
                 move_uploaded_file($uploaded_file['tmp_name'], $file->getPath());
                 $job_properties[] = $file;
             }
         }
         $job->setProperties($job_properties);
         $job->save();
         $tx->commit();
     } catch (Exception $e) {
         $tx->rollback();
         throw $e;
     }
     return $result;
 }
コード例 #2
0
ファイル: Jobs.php プロジェクト: atikahmed/joomla-probid
 /**
  * Get the full list of jobs
  * <code>
  * {
  *  'orberby': 'xxxx-x-x-x-x-x-x'
  * }
  * </code>
  * @param $params
  * @return RokCommon_Ajax_Result
  */
 public function clean($params)
 {
     $result = new RokCommon_Ajax_Result();
     try {
         $q = Doctrine_Query::create()->select('j.id')->from('RokGallery_Model_Job j')->where('j.state = ?', RokGallery_Job::STATE_COMPLETE)->orWhere('j.state = ?', RokGallery_Job::STATE_ERRORED)->orWhere('j.state = ?', RokGallery_Job::STATE_CANCELED);
         $jobs = $q->fetchArray();
         $q->free();
         foreach ($jobs as $job) {
             $real_job = RokGallery_Job::get($job['id']);
             $real_job->Delete();
         }
     } catch (Exception $e) {
         throw $e;
     }
     return $result;
 }
コード例 #3
0
ファイル: Job.php プロジェクト: atikahmed/joomla-probid
 /**
  * Send a job a cancel command
  * $params object should be a json like
  * <code>
  * {
  *  'id': 'xxxx-x-x-x-x-x-x'
  * }
  * </code>
  *
  * @param $params
  * @return RokCommon_Ajax_Result
  */
 public function delete($params)
 {
     $result = new RokCommon_Ajax_Result();
     try {
         $job = RokGallery_Job::get($params->id);
         if ($job === false) {
             throw new RokCommon_Ajax_Exception(rc__('ROKGALLERY_UNABLE_TO_FIND_JOB_ID_N', $params->id));
         }
         $job->Delete();
     } catch (Exception $e) {
         throw $e;
     }
     return $result;
 }