function deck() { $deck_id = $_GET['id']; $deck = new Deck(); $deck->createFromIDLite($deck_id); $deck->last_revision_id = $deck->getLastRevisionID(); $usage = $deck->getUsage(); $deck->comments = $deck->getComments(); $translations = $deck->getTranslatedTo(); $this->set('deck', $deck); $this->set('translations', $translations); $this->set('usage', $usage); $this->set('page_title', $deck->title . ' - SlideWiki'); $this->set('page_keywords', join(',', $deck->getTags($deck->id))); }
function __construct() { $this->initConnection(); $decks = $this->dbquery('SELECT * FROM deck WHERE language IS NULL OR language="" OR language="-"'); echo 'decks:' . count($decks); foreach ($decks as $task) { $deck = new Deck(); $deck->deck_id = $task['id']; $deck->createFromID($deck->getLastRevisionID()); $language = $deck->detectLanguage(); $deck->setLanguageFull($language); } $slides = $this->dbquery('SELECT * FROM slide WHERE language IS NULL OR language="" OR language="-"'); echo 'slides:' . count($slides); $decks = array(); foreach ($slides as $task) { $slide = new Slide(); $slide->slide_id = $task['id']; $id = $slide->getLastRevisionID(); $decks_array = $this->dbGetOne('SELECT deck_revision_id FROM deck_content WHERE item_id =:id AND item_type="slide" LIMIT 1', array('id' => $id)); if ($decks_array) { if (!in_array($decks_array, $decks)) { $decks[] = $decks_array; } } } echo 'decks:' . count($decks) . '<br>'; foreach ($decks as $task) { echo $task; $deck = new Deck(); $deck->createFromID($task); $language = $deck->detectLanguage(); $deck->setLanguageFull($language); echo ' done '; } }
public function getSubscribedDecks($page) { $extent = $this->feed_page_size; $offset = $page * $extent; $res = array(); foreach ($this->dbQuery('SELECT * FROM subscription WHERE item_type="deck" AND user_id=' . $this->id . ' LIMIT ' . $offset . ',' . $extent) as $row) { $deck = new Deck(); $deck->deck_id = $row['item_id']; $last = $deck->getLastRevisionID(); $deck->createFromID($last); $res[] = $deck; } return $res; }
public function getAllTranslations($slide_rev_id = 0) { $this->initConnection(); $result = array(); $complete_result = array(); $language_ids = array(); $node = array(); $slide_translations = array(); $node['id'] = $this->deck_id; $node['language'] = $this->getLanguage(); $node['last'] = $this->id; $node['slug_title'] = $this->slug_title; $result = $this->getTranslatedTo(true); foreach ($result as $lang) { $language_ids[] = $lang['language']['id']; } if (!in_array($node['language']['id'], $language_ids)) { $language_ids[] = $node['language']['id']; $result[] = $node; } $visited = array(); foreach ($result as $node) { $visited[] = $node['id']; } $parent = $this->translated_from; while ($parent) { $parent_deck = new Deck(); $parent_deck->id = $this->getTranslatedFromRevision(); $parent_deck->deck_id = $parent; $parent_deck->language = $parent_deck->getLanguage(); $parent_deck->translated_from = $parent_deck->getTranslatedFrom(); $parent_deck->title = $parent_deck->getTitle(); $parent_deck->slug_title = $parent_deck->sluggify($parent_deck->title); if (!in_array($parent_deck->language['id'], $language_ids)) { $parent_arr = array(); $parent_arr['id'] = $parent; $parent_arr['language'] = $parent_deck->language; $parent_arr['first'] = $parent_deck->id; $parent_arr['last'] = $parent_deck->getLastRevisionID(); $parent_arr['slug_title'] = $parent_deck->slug_title; $result[] = $parent_arr; $language_ids[] = $parent_arr['language']['id']; } foreach ($parent_deck->getTranslatedTo(true) as $node) { if (!in_array($node['id'], $visited) && !in_array($node['language']['id'], $language_ids)) { $visited[] = $node['id']; $result[] = $node; $language_ids[] = $node['language']['id']; } } $parent = $parent_deck->translated_from; } if ($slide_rev_id) { $slide = new Slide(); $slide->createFromID($slide_rev_id); $slide_translations = $slide->getAllTranslations(); foreach ($result as $node) { $language = $node['language']['id']; $deck = new Deck(); $deck->createFromID($node['last']); foreach ($slide_translations as $slide) { if ($slide['language']['id'] == $language) { $slide_all_revisions = new Slide(); $slide_all_revisions->slide_id = $slide['id']; $all_revisions = array(); $all_revisions = $slide_all_revisions->getThisSlideRevisions(); foreach ($all_revisions as $slide_rev) { if ($deck->isSlideIn($slide_rev['id'])) { $node['slide'] = $deck->getSlidePropertiesById($slide_rev['id']); $node['slideLink'] = $node['slide']['link']; } } $complete_result[] = $node; } } } } else { foreach ($result as $node) { $deck = new Deck(); $node['slide'] = $deck->getSlidePropertiesById(0); $complete_result[] = $node; } } return $complete_result; }
function item() { $item_id = $_GET['id']; $item_type = $_GET['type']; $item_user = @$_GET['user']; $redirect_link = ""; $hash = ""; switch ($item_type) { case 'slide': $slide = new Slide(); $slide->createFromID($item_id); if (isset($item_user)) { $last_revision = $slide->getLastRevisionID($item_user); } else { $last_revision = $slide->last_revision_id; } $slide2 = new Slide(); $slide2->createFromID($last_revision); $slide_usage = $slide2->getUsage(); if (is_array($slide_usage) && count($slide_usage) == 1) { $hash = 'tree-' . $slide_usage[0]->id . '-slide-' . $slide2->id . '-' . $slide2->getPosition() . '-view'; $parent_deck = $slide2->getLastOuterParent($slide_usage[0]->id); $deck = new Deck(); $deck->id = $parent_deck; $deck->title = $deck->getTitle(); $deck->slug_title = $deck->sluggify($deck->title); $redirect_link = BASE_PATH . 'deck/' . $parent_deck . '_' . $deck->slug_title . '#' . $hash; } else { $redirect_link = BASE_PATH . 'slide/' . $last_revision; } break; case 'deck': $deck = new Deck(); $deck->createFromID($item_id); if (isset($item_user)) { $last_revision = $deck->getLastRevisionID($item_user); } else { $last_revision = $deck->last_revision_id; } $deck_for_title = new Deck(); $deck_for_title->id = $last_revision; $deck_for_title->title = $deck_for_title->getTitle(); $deck_for_title->slug_title = $deck_for_title->sluggify($deck->title); $deck2 = new Deck(); $deck2->createFromID($last_revision); $deck_usage = $deck2->getUsage(); if (is_array($deck_usage) && count($deck_usage) == 1) { $hash = 'tree-' . $deck_usage[0]->id . '-deck-' . $deck2->id . '-' . $deck2->getPosition() . '-view'; $parent_deck = $deck2->getLastOuterParent($deck_usage[0]->id); $deck_for_title = new Deck(); $deck_for_title->id = $parent_deck; $deck_for_title->title = $deck->getTitle(); $deck_for_title->slug_title = $deck->sluggify($deck->title); $redirect_link = BASE_PATH . 'deck/' . $parent_deck . '_' . $deck_for_title->slug_title . '#' . $hash; } else { $redirect_link = BASE_PATH . 'deck/' . $last_revision . '_' . $deck_for_title->slug_title; } break; } header('Location: ' . $redirect_link); }
public function getTranslateDeck($user_id = false, $deck_id = false, $start, $end, $keywords = '') { if ($user_id != false || $deck_id != false) { $this->initConnection(); $activities = array(); $result = array(); if ($deck_id) { $deck = new Deck(); $deck->deck_id = $deck_id; $deck->id = $deck->getLastRevisionID(); $deck->title = $deck->getTitle(); $deck->language = $deck->getLanguage(); if ($deck->title == "") { $deck->title = "Untitled"; } $deck->slug_title = $deck->sluggify($deck->title); $result = $this->dbQuery('SELECT * FROM deck WHERE translated_from=:deck_id AND timestamp >= "' . $start . '" AND timestamp < "' . $end . '"', array('deck_id' => $deck_id)); if (count($result)) { foreach ($result as $row) { $user = new User(); $user->id = $row['user_id']; $user->getUsername(); $translation = new Deck(); $translation->deck_id = $row['id']; $translation->id = $translation->getLastRevisionID(); $translation->title = $translation->getTitle(); if ($translation->title == '') { $translation->title = 'Untitled'; } $translation->slug_title = $translation->sluggify($translation->title); $translation->language = $translation->getLanguage(); $activity = new Activity($row['timestamp'], $user, 'translated_deck', $translation, $deck); $activities[] = $activity; } } } if (count($activities)) { foreach ($activities as $activity) { $this->activities[] = $activity; } } } }
public function buildWithQuestions($keywords, $order) { $all_decks = array(); $all_decks = $this->searchMatchAll($keywords, $order); $result = array(); foreach ($all_decks as $deck) { $deck_obj = new Deck(); $deck_obj->id = $deck['id']; $deck_obj->deck_id = $deck['deck_id']; $id = $deck_obj->getLastRevisionID(); $test = new Test(); $test->createFromItem($id); if ($test->quest_count > 0) { $test->id = $id; $result[] = $test; } } return $result; }