示例#1
0
文件: Deck.php 项目: TBoonX/SlideWiki
 public function getChildrenForTest()
 {
     $this->initConnection();
     $res = array();
     $children = $this->dbQuery('SELECT * FROM deck_content WHERE deck_revision_id=:id AND item_type="deck" ORDER BY position', array('id' => $this->id));
     foreach ($children as $deck) {
         $deck_obj = new Deck();
         $deck_obj->id = $deck['item_id'];
         $deck_obj->deck_id = $deck_obj->getBasicID();
         $res[] = $deck_obj;
     }
     return $res;
 }
示例#2
0
 public function getCreateDeck($user_id = false, $deck_id = false, $start, $end, $keywords = '')
 {
     if ($user_id != false || $deck_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 deck_revision WHERE user_id=:user_id AND MATCH (deck_revision.title) AGAINST (\'' . $keywords . '*\' IN BOOLEAN MODE)', array('user_id' => $user_id));
             } else {
                 $result = $this->dbQuery('SELECT * FROM deck_revision WHERE user_id=:user_id AND timestamp >= "' . $start . '" AND timestamp < "' . $end . '"', array('user_id' => $user_id));
             }
             if (count($result)) {
                 foreach ($result as $row) {
                     $deck = new Deck();
                     $deck->id = $row['id'];
                     $deck->deck_id = $row['deck_id'];
                     $deck->title = $deck->getTitle();
                     $deck->language = $deck->getLanguage();
                     if ($deck->title == "") {
                         $deck->title = "Untitled";
                     }
                     $deck->slug_title = $deck->sluggify($deck->title);
                     if (!$row['translated_from_revision']) {
                         if ($row['based_on']) {
                             $based_on = new Deck();
                             $based_on->id = $row['based_on'];
                             $based_on->title = $based_on->getTitle();
                             if ($based_on->title == "") {
                                 $based_on->title = "Untitled";
                             }
                             $based_on->slug_title = $based_on->sluggify($based_on->title);
                             $activity = new Activity($row['timestamp'], $user, 'created_deck_revision', $deck, $based_on);
                         } else {
                             $activity = new Activity($row['timestamp'], $user, 'created_deck', $deck);
                         }
                     } else {
                         $based_on = new Deck();
                         $based_on->id = $row['translated_from_revision'];
                         $based_on->title = $based_on->getTitle();
                         if ($based_on->title == "") {
                             $based_on->title = "Untitled";
                         }
                         $based_on->slug_title = $based_on->sluggify($based_on->title);
                         $activity = new Activity($row['timestamp'], $user, 'translated_deck', $deck, $based_on);
                     }
                     $activities[] = $activity;
                 }
             }
         } else {
             $result = $this->dbQuery('SELECT * FROM deck_revision WHERE deck_id=:deck_id AND timestamp >= "' . $start . '" AND timestamp < "' . $end . '"', array('deck_id' => $deck_id));
             if (count($result)) {
                 foreach ($result as $row) {
                     $deck = new Deck();
                     $deck->deck_id = $deck_id;
                     $deck->id = $row['id'];
                     $deck->title = $deck->getTitle();
                     $deck->language = $deck->getLanguage();
                     if ($deck->title == "") {
                         $deck->title = "Untitled";
                     }
                     $deck->slug_title = $deck->sluggify($deck->title);
                     $user = new User();
                     $user->id = $row['user_id'];
                     $user->getUsername();
                     if ($row['translated_from_revision']) {
                         $based_on = new Deck();
                         $based_on->id = $row['translated_from_revision'];
                         $based_on->deck_id = $based_on->getBasicID();
                         $based_on->language = $based_on->getLanguage();
                         $based_on->title = $based_on->getTitle();
                         $based_on->slug_title = $based_on->sluggify($based_on->title);
                         $activity = new Activity($row['timestamp'], $user, 'translated_deck_from', $deck, $based_on);
                     } else {
                         if (!$row['based_on']) {
                             $activity = new Activity($row['timestamp'], $user, 'created_deck', $deck);
                         } else {
                             $based_on = new Deck();
                             $based_on->id = $row['based_on'];
                             $based_on->deck_id = $based_on->getBasicID();
                             $based_on->language = $based_on->getLanguage();
                             $based_on->title = $based_on->getTitle();
                             $based_on->slug_title = $based_on->sluggify($based_on->title);
                             $activity = new Activity($row['timestamp'], $user, 'created_deck_revision', $deck, $based_on);
                         }
                     }
                     $activities[] = $activity;
                 }
             }
         }
         if (count($activities)) {
             foreach ($activities as $activity) {
                 $this->activities[] = $activity;
             }
         }
     }
 }