示例#1
0
文件: job.php 项目: javigomez/neno
 /**
  * Find a job and creates it.
  *
  * @param   string $toLanguage        JISO Language format
  * @param   string $translationMethod Translation Method chosen
  *
  * @return NenoJob|null It will return a NenoJob object if there are translations pending or null if there aren't any.
  */
 public static function createJob($toLanguage, $translationMethod)
 {
     /* @var $db NenoDatabaseDriverMysqlx */
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('id')->from('#__neno_content_element_translations AS tr')->where(array('language = ' . $db->quote($toLanguage), 'state = ' . NenoContentElementTranslation::NOT_TRANSLATED_STATE, 'EXISTS (SELECT 1 FROM #__neno_content_element_translation_x_translation_methods AS trtm WHERE tr.id = trtm.translation_id AND translation_method_id = ' . $translationMethod . ')', 'NOT EXISTS (SELECT 1 FROM #__neno_jobs_x_translations AS jt WHERE tr.id = jt.translation_id)'));
     $db->setQuery($query);
     $translationObjects = $db->loadArray();
     $job = null;
     if (!empty($translationObjects)) {
         $jobData = array('fromLanguage' => NenoSettings::get('source_language'), 'toLanguage' => $toLanguage, 'state' => self::JOB_STATE_GENERATED, 'createdTime' => new DateTime(), 'translationMethod' => $translationMethod);
         $job = new NenoJob($jobData);
         $job->setTranslations($translationObjects)->persist();
         NenoTaskMonitor::addTask('job_sender');
     }
     return $job;
 }