Ejemplo n.º 1
0
 public function getTranslateSlide($user_id = false, $slide_revision_id = false, $start, $end, $keywords = '')
 {
     if ($user_id != false || $slide_revision_id != false) {
         $this->initConnection();
         $activities = array();
         $result = array();
         if ($user_id) {
             $user = new User();
             $user->id = $user_id;
             $user->getUsername();
             if (strlen($keywords)) {
                 $result = $this->dbQuery('SELECT * FROM slide_revision WHERE user_id=:user_id AND translated_from_revision IS NOT NULL AND MATCH (slide_revision.content) AGAINST (\'' . $keywords . '*\' IN BOOLEAN MODE)', array('user_id' => $user_id));
             } else {
                 $result = $this->dbQuery('SELECT * FROM slide_revision WHERE user_id=:user_id AND translated_from_revision IS NOT NULL AND timestamp >= "' . $start . '" AND timestamp < "' . $end . '"', array('user_id' => $user_id));
             }
             if (count($result)) {
                 foreach ($result as $row) {
                     $based_on = new Slide();
                     $based_on->id = $row['translated_from_revision'];
                     $based_on->slide_id = $based_on->getBasicId();
                     $based_on->language = $based_on->getLanguage();
                     $slide = new Slide();
                     $slide->createFromIDLite($row['id']);
                     if ($slide->title == "") {
                         $slide->title = "Untitled";
                     }
                     $slide->language = $slide->getLanguage();
                     $activity = new Activity($row['timestamp'], $user, 'translated_slide', $slide, $based_on);
                     $activities[] = $activity;
                 }
             }
         }
     } else {
         $slide = new Slide();
         $slide->createFromIDLite($slide_revision_id);
         $slide->title = $slide->getTitle();
         if ($slide->title == "") {
             $slide->title = "Untitled";
         }
         $result = $this->dbQuery('SELECT * FROM slide_revision WHERE translated_from_revision=:slide_revision_id AND timestamp >= "' . $start . '" AND timestamp < "' . $end . '"', array('slide_revision_id' => $slide_revision_id));
         if (count($result)) {
             foreach ($result as $row) {
                 $translation = new Slide();
                 $translation->id = $row['id'];
                 $translation->slide_id = $translation->getBasicID();
                 if ($translation->slide_id != $slide->slide_id) {
                     $user = new User();
                     $user->id = $row['user_id'];
                     $user->getUsername();
                     $translation->createFromIDLite($translation->id);
                     $translation->title = $translation->getTitle();
                     if ($translation->title == '') {
                         $translation->title = 'Untitled';
                     }
                     $translation->language = $translation->getLanguage();
                     $activity = new Activity($translation->revisionTime, $user, 'translated_slide', $slide, $translation);
                     $activities[] = $activity;
                 }
             }
         }
     }
     if (count($activities)) {
         foreach ($activities as $activity) {
             $this->activities[] = $activity;
         }
     }
 }