public function getLesson($r) { $book = new Dase_DBO_Book($this->db); $book->short_name = $r->get('short_name'); $book->findOne(); $lesson = new Dase_DBO_Lesson($this->db); $lesson->name = $r->get('lesson_name'); $lesson->book_id = $book->id; $lesson->findOne(); $lesson->getBook(); $lesson->getWords(); $t = new Dase_Template($r); //Simplified or Traditional Pref if (isset($_COOKIE['user_pref'])) { $pref = $_COOKIE['user_pref']; $t->assign('user_pref', $pref); } else { $t->assign('user_pref', 'simplified'); setcookie('user_pref', 'simplified', time() + 60 * 60 * 24 * 14, '/'); } //Card Preferences if (isset($_COOKIE['card_pref'])) { $pref = $_COOKIE['card_pref']; $t->assign('card_pref', $pref); } else { $t->assign('card_pref', 'pin-chi-eng'); setcookie('card_pref', 'pin-chi-eng', time() + 60 * 60 * 24 * 14, '/'); } $t->assign("book", $book); $t->assign("lesson", $lesson); $r->renderResponse($t->fetch('chinese_flashcards/lesson.tpl')); }
public function getItems($r) { $t = new Dase_Template($r); $items = new Dase_DBO_Item($this->db); $items->orderBy('updated DESC'); $items = $items->findAll(1); $result = array(); if ($r->get('filter')) { $filter = $r->get('filter'); $t->assign('filter', $filter); $parts = explode(':', $filter); //grab slice w/ format like 4:22 if (2 == count($parts) && is_int((int) $parts[0]) && is_int((int) $parts[1])) { $result = array_slice($items, $parts[0] - 1, $parts[1] - $parts[0] + 1); $t->assign('filter', ''); } else { foreach ($items as $item) { if (false !== strpos($item->name, $filter) || false !== strpos($item->title, $filter) || false !== strpos($item->body, $filter) || false !== strpos($item->meta1, $filter) || false !== strpos($item->meta1, $filter) || false !== strpos($item->meta3, $filter)) { $result[] = $item; } } } } else { $result = $items; } $sets = Dase_DBO_Itemset::getList($this->db); $t->assign('sets', $sets); $t->assign('items', $result); $r->renderResponse($t->fetch('items.tpl')); }
public function getHome($r) { $t = new Dase_Template($r); $set = new CouchDB_DocumentSet($this->db); $t->assign('docs', $set->listByTitle()); $r->renderResponse($t->fetch('home.tpl')); }
public function getBooks($r) { $t = new Dase_Template($r); $books = new Dase_DBO_Book($this->db); $t->assign("books", $books->findAll()); $r->renderResponse($t->fetch('chinese_flashcards/books.tpl')); }
public function getLoginForm($r) { //target is empty in the most common case //but it *is* used to get people back to //their place if they are prompted in the middle of things $t = new Dase_Template($r); $t->assign('target', $r->get('target')); $r->renderResponse($t->fetch('login_form.tpl')); }
public function getEditForm($r) { $t = new Dase_Template($r); $item = new CouchDB_Document_Item($this->db); if (!$item->get($r->get('id'))) { $r->renderRedirect('home'); } $t->assign('item', $item); $r->renderResponse($t->fetch('item_edit.tpl')); }
public function getHome($r) { $t = new Dase_Template($r); $t->assign('exercise_sets', Dase_DBO_ExerciseSet::getAll($this->db)); $c = new Dase_DBO_Content($this->db); $c->page = 'home'; if ($c->findOne()) { $t->assign('content', $c->text); } $r->renderResponse($t->fetch('home.tpl')); }
public function getSearchForm($r) { $t = new Dase_Template($r); if ($r->get('lastname')) { $results = Utlookup::lookup($r->get('lastname'), 'sn'); usort($results, 'sortByName'); $t->assign('lastname', $r->get('lastname')); $t->assign('results', $results); } $r->renderResponse($t->fetch('framework/directory.tpl')); }
public function getSearchForm($r) { $t = new Dase_Template($r); $t->assign('exercise_sets', Dase_DBO_ExerciseSet::getAll($this->db)); if ($r->get('lastname')) { $results = Utlookup::lookup($r->get('lastname'), 'sn'); usort($results, array('Util', 'sortByName')); $t->assign('lastname', $r->get('lastname')); $t->assign('results', $results); } $r->renderResponse($t->fetch('directory_search.tpl')); }
public function getDesignDocForm($r) { $t = new Dase_Template($r); $set = new CouchDB_DocumentSet($this->db); $t->assign('design_docs', $set->listDesignDocs()); if ($r->get('title')) { $dd = new CouchDB_Document($this->db); $dd->get('_design/' . $r->get('title')); $set = array(); $set['title'] = $r->get('title'); $set['views'] = '"views": ' . CouchDB::encode_json($dd->views); $set['rev'] = $dd->_rev; $t->assign('ddoc', $set); } $r->renderResponse($t->fetch('design_doc_form.tpl')); }
public function getItem($r) { $t = new Dase_Template($r); //if no format, assume name is ID $item = new Dase_DBO_Item($this->db); if ($item->load($r->get('name'))) { $item->getSets(); $t->assign('item', $item); $sets = Dase_DBO_Itemset::getList($this->db); $t->assign('sets', $sets); $r->renderResponse($t->fetch('framework/item.tpl')); } else { $r->renderRedirect('items'); //$r->renderError(404); } }
public function getList($r) { $t = new Dase_Template($r, true); $c = Dase_DBO_Collection::get($this->db, $r->get('coll_ascii')); if (!$c) { $r->renderError('404'); } if ('public' != $c->visibility) { $r->renderError('401'); } $url = 'https://dase.laits.utexas.edu/collection/' . $c->ascii_id . '/items.json'; $json = file_get_contents($url); $php_data = json_decode($json, true); $t->assign('c', $c); $t->assign('items', $php_data['items']); $r->renderResponse($t->fetch('index.tpl')); }
public function getCollections($r) { $user = $r->getUser(); //if no collections, redirect to archive admin screen //will force login screen for non-superusers if no collections $c = new Dase_DBO_Collection($this->db); if (!$c->findCount() && $user && $user->is_superuser) { $r->renderRedirect('admin'); } $tpl = new Dase_Template($r); //$feed = Dase_Atom_Feed::retrieve($r->app_root.'/collections.atom'); //$tpl->assign('collections',$feed); $res = Dase_Http::get($r->app_root . '/collections.json'); $collections = Dase_Json::toPhp($res[1]); $tpl->assign('collections', $collections); $r->renderResponse($tpl->fetch('collection/list.tpl')); }
public function getInfo($r) { $tpl = new Dase_Template($r, true); $types['sqlite'] = "SQLite"; $types['mysql'] = "MySQL"; $types['pgsql'] = "PostgreSQL"; foreach ($this->db->listTables() as $t) { $tables[$t][] = 'id'; foreach ($this->db->listColumns($t) as $c) { if ('id' != $c) { $tables[$t][] = $c; } } } $tpl->assign('tables', $tables); $tpl->assign('db', $types[$this->db->getDbType()]); $r->renderResponse($tpl->fetch('index.tpl')); }
public function getWebspace($r) { $ws_path = $r->get('webspace_path'); $webspace_url = 'https://webspace.utexas.edu/' . $ws_path; $rss_data = @file_get_contents($webspace_url . '?view=RSS'); $files = array(); $paths = array(); $invalid_files = array(); if ($rss_data) { $rss = new DOMDocument(); $rss->loadXML($rss_data); $good_type = ''; foreach ($rss->getElementsByTagName('item') as $item) { $enc = $item->getElementsByTagName('enclosure')->item(0); if ($enc) { $file['url'] = $enc->getAttribute('url'); $file['length'] = ceil((int) $enc->getAttribute('length') / 1000); $file['type'] = $enc->getAttribute('type'); $file['name'] = trim(urldecode(str_replace($webspace_url, '', $file['url'])), '/'); $good_type = Dase_Media::isAcceptable($file['type']); } if ($good_type) { $files[] = $file; } else { if ($enc) { $invalid_files[] = $file; } else { $path_href = $item->getElementsByTagName('link')->item(0)->firstChild->substringData(0, 200); $path['path_rel'] = str_replace('https://webspace.utexas.edu/', '', $path_href); $path['path_name'] = $item->getElementsByTagName('title')->item(0)->firstChild->substringData(0, 200); $paths[] = $path; } } } } $tpl = new Dase_Template($r, true); $tpl->assign('collection', $this->collection); $tpl->assign('files', $files); $tpl->assign('invalid_files', $invalid_files); $tpl->assign('paths', $paths); $tpl->assign('webspace_path', $ws_path); $r->set('tab', 'module'); $r->renderResponse($tpl->fetch('index.tpl')); }
public function getSettings($r) { $u = $this->user; $t = new Dase_Template($r); $u->colls = $u->getCollections($r->app_root); $t->assign('user', $u); $t->assign('http_password', $u->getHttpPassword()); $r->renderResponse($t->fetch('user/settings.tpl'), $r); }
public function getSearch($r) { $r->checkCache(); $tpl = new Dase_Template($r); //default slidehow max of 100 $json_url = $r->app_root . '/' . $r->url . '&format=json&max=100'; $tpl->assign('json_url', $json_url); $feed_url = $r->app_root . '/' . $r->url . '&format=atom'; $tpl->assign('feed_url', $feed_url); $feed = Dase_Atom_Feed::retrieve($feed_url); //single hit goes directly to item $count = $feed->getCount(); if (1 == $count) { //todo use preg_replace and guarentee only one replacement $url = str_replace('search?', 'search/item?', $r->url); $r->renderRedirect($r->app_root . '/' . $url . '&num=1'); } if (0 == $count) { $coll = $r->get('collection_ascii_id'); if (!$coll) { //won't go back to collection page unless //just one collection is being searched $coll_array = $r->get('c', true); if (1 == count($coll_array)) { $coll = $coll_array[0]; } } if ($coll) { $params['msg'] = 'no items found'; $params['failed_query'] = $feed->getQuery(); $r->renderRedirect($r->app_root . '/collection/' . $coll, $params); } else { $params['msg'] = 'no items found'; $params['failed_query'] = $feed->getQuery(); $r->renderRedirect($r->app_root . '/collections', $params); } } $end = $this->start + $this->max; if ($end > $count) { $end = $count; } $tpl->assign('start', $this->start); $tpl->assign('end', $end); $tpl->assign('sort', $r->get('sort')); $tpl->assign('items', $feed); if ('list' == $r->get('display')) { $tpl->assign('display', 'list'); } else { $tpl->assign('display', 'grid'); } $r->renderResponse($tpl->fetch('item_set/search.tpl')); }
public function getUser($r) { $t = new Dase_Template($r); $t->assign('exercise_sets', Dase_DBO_ExerciseSet::getAll($this->db)); $r->renderResponse($t->fetch('home.tpl')); }
public function getInstructions($r) { $t = new Dase_Template($r); $r->renderResponse($t->fetch('chinese_flashcards/instructions.tpl')); }
public function getExerciseEdit($r) { $t = new Dase_Template($r); $ex = new Dase_DBO_Exercise($this->db); if (!$ex->load($r->get('id'))) { $r->renderRedirect('home'); } if ($this->user->eid != $ex->creator_eid) { $r->renderError(401, 'unauthorized'); } // media $media_url = "https://dase.laits.utexas.edu/search.json?q=&collection_ascii_id=hdportal&max=999"; $resp = Dase_Http::get($media_url); $data = Dase_Json::toPhp($resp[1]); $t->assign('feed', $data); // all categories $cset = array(); $ex->getCreator(); $ex->getLines(); $ex->getSet(); $t->assign('exercise', $ex); $t->assign('exercise_sets', Dase_DBO_ExerciseSet::getAll($this->db)); $r->renderResponse($t->fetch('exercise_edit.tpl')); }
public function getSet($r) { $t = new Dase_Template($r); $set = new Dase_DBO_Itemset($this->db); $set->name = $r->get('name'); if ($set->findOne()) { $set->getItems(); $t->assign('set', $set); $r->renderResponse($t->fetch('framework/set.tpl')); } else { $r->renderError(404); } }
public function getIndex($r) { $t = new Dase_Template($r); $t->init($this); $r->renderResponse($t->fetch('test/index.tpl')); }
public function getAbout($r) { $t = new Dase_Template($r); $r->renderResponse($t->fetch('chinese_flashcards/about.tpl')); }
public function postToConfigChecker($r) { $resp = array(); $resp['db'] = 1; $resp['proceed'] = 0; $db = array(); $db['name'] = $r->get('db_name'); $db['path'] = $r->get('db_path'); $db['type'] = $r->get('db_type'); $db['host'] = $r->get('db_host'); $db['user'] = $r->get('db_user'); $db['pass'] = $r->get('db_pass'); if ('sqlite' == $db['type']) { $dsn = "sqlite:" . $db['path']; } else { $dsn = $db['type'] . ':host=' . $db['host'] . ';dbname=' . $db['name']; } try { $pdo = new PDO($dsn, $db['user'], $db['pass']); } catch (PDOException $e) { $resp['db'] = 0; $resp['db_msg'] = $e->getMessage(); } if ($resp['db']) { $tpl = new Dase_Template($r, true); $tpl->assign('main_title', $r->get('main_title')); if ($r->get('table_prefix')) { $tpl->assign('table_prefix', trim($r->get('table_prefix'), '_') . '_'); } $tpl->assign('eid', $r->get('eid')); $tpl->assign('password', $r->get('password')); $tpl->assign('convert_path', $r->get('convert_path')); $tpl->assign('db', $db); $tpl->assign('token', md5(time() . 'abc')); $tpl->assign('ppd_token', md5(time() . 'def')); $tpl->assign('service_token', md5(time() . 'ghi')); $tpl->assign('db', $db); if (!file_exists($r->base_path . '/inc/local_config.php')) { $resp['local_config_path'] = $r->base_path . '/inc/local_config.php'; $resp['config'] = $tpl->fetch('local_config.tpl'); } else { $resp['proceed'] = 1; } } $r->renderResponse(Dase_Json::get($resp)); }
public function getUser($r) { $t = new Dase_Template($r); $r->renderResponse($t->fetch('home.tpl')); }
public function getSet($r) { $t = new Dase_Template($r); $set = new Dase_DBO_ExerciseSet($this->db); $set->load($r->get('id')); $set->getExercises(); $t->assign('set', $set); $t->assign('exercise_sets', Dase_DBO_ExerciseSet::getAll($this->db)); $r->renderResponse($t->fetch('set.tpl')); }
public function getUploader($r) { $tpl = new Dase_Template($r); $tpl->assign('collection', $this->collection); $tpl->assign('item_types', $this->collection->getItemTypes()); $r->renderResponse($tpl->fetch('manage/uploader.tpl')); }
public function getItemEditForm($r) { $t = new Dase_Template($r); $item = new Dase_DBO_Item($this->db); $item->load($r->get('id')); $t->assign('item', $item); $r->renderResponse($t->fetch('item_edit_form.tpl')); }
public function getDbSchema($r) { $sql = $this->db->getSchema(); $tpl = new Dase_Template($r); $tpl->assign('sql', $sql); $r->renderResponse($tpl->fetch('admin/sql.tpl')); }
public function getHelp($r) { $t = new Dase_Template($r); $t->assign('collection', Dase_Atom_Feed::retrieve($r->app_root . '/collection/dase_help.atom?limit=100')); $r->renderResponse($t->fetch('help.tpl')); }