function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $data = $course->get(array('id' => $this->id)); foreach ($data as $key => $val) { $data[$key] = htmlspecialchars($val, ENT_QUOTES); } echo <<<EOF <h2 class="page-header">{$data[name]}</h2> <h4>{$data[category_name]}</h4> <div class="col-lg-8"> <ul class="list-group category-list" index="{$this->id}/"> EOF; $root = $_SERVER['DOCUMENT_ROOT'] . '/../files/courses/' . $this->id; $this->put_list($root); echo <<<EOF </ul> <div class="row"> \t \t<a href="#" data-toggle="toggler" parent-id="{$this->id}/" title="{$translator->addfile}" type="file"> \t\t\t<span class="glyphicon glyphicon-file"></span> </a> \t\t\t<a href="#" data-toggle="toggler" parent-id="{$this->id}/" title="{$translator->addfolder}" type="folder"> \t\t\t<span class="glyphicon glyphicon-folder-open"></span> </a> \t </div> </div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $request = new Request(); try { $id = array_shift($this->param); $course = new Course(); $c_data = $course->get(array('id' => $id)); $data['course_id'] = $id; $data['user_id'] = $_SESSION['user_id']; $data['active'] = true; $data['planned_date'] = $_GET['planned_date'] != '' ? $_GET['planned_date'] : date('Y-m-d H:i:s', time()); $r_id = $request->add($data); if ($c_data['need_approve'] == 'f') { $request->approve($r_id); echo <<<EOF <div class="container"> <div class="page-header"> <h1>{$translator->Request_updated}</h1> </div> <p class="lead">{$translator->Request_updated_Desc}</p> <p >{$translator->Error_Backcourses}</p> </div> <script type="text/javascript"> window.location.href='/mycourses'; </script> EOF; } else { echo <<<EOF <div class="container"> <div class="page-header"> <h1>{$translator->Request_updated}</h1> </div> <p class="lead">{$translator->Request_need_approve_Desc}</p> <p >{$translator->Error_Backcourses}</p> </div> EOF; } } catch (Exception $e) { echo <<<EOF <div class="container"> <div class="page-header"> <h1>{$translator->Request_error}</h1> </div> <p class="lead">{$translator->Request_error_Desc}</p> <p >{$translator->Error_Backcourses}</p> </div> EOF; } }
function displayBody() { parent::displayBody(); $translator = new Translator(); echo <<<EOF <div class="container-fluid"> <div class="col-md-10 col-lg-8 col-lg-offset-2 "> \t<h1 class="page-header">{$translator->Help} <small>{$translator->Help_desc}</small></h1> \t\t<ul> \t\t\t<li><a href="?file=LMS - Editor.pdf">Створення і керування переліком курсів в системі (Укр)</a></li> \t\t</ul> \t</div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (isset($_GET['search'])) { $search = $_GET['search']; unset($_GET['search']); unset($_GET['page']); } else { $search = null; } $cnt = $course->getCount(array('search' => $search)); if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } echo <<<EOF <div class="container-fluid"> <div class="col-md-10 col-lg-8 col-lg-offset-2 "> \t<h4 class="page-header">{$translator->Search_result}: <span class="badge">{$cnt}</span></h4> \t{$pagination} EOF; $enum = $course->enumerate(array('search' => $search), $offset, ITEMS_IN_PAGE); if (isset($enum)) { foreach ($enum as $data) { echo <<<EOF \t\t<h4>{$data[name]}</h4> \t\t<h6>{$data[category_name]}</h6> \t\t<p>{$data[describe]}</p> \t\t<p><a href="/course/{$data[id]}">{$translator->Go_to}...</a></p> EOF; } } else { $search = htmlspecialchars($search); echo <<<EOF \t\t<h4>{$translator->no_results} по "{$search}"</h4>\t\t EOF; } echo <<<EOF \t{$pagination} \t</div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); if (!is_array($this->param)) { return; } $func = array_shift($this->param); switch ($func) { case 'approve': $this->approve(); break; case 'delete': $this->delete(); break; default: $this->view(); } }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $training = new Training(); $t_data = $training->get(array('course_hash' => $this->course_hash, 'user_id' => $_SESSION['user_id'])); $c_data = $course->get(array('id' => $t_data['course_id'])); foreach ($c_data as $key => $val) { $c_data[$key] = htmlspecialchars($val, ENT_QUOTES); } echo <<<EOF <div class="container-fluid"> <div class="col-lg-10 col-lg-offset-1" id="window"> \t<div class="row" > \t<div class="col-xs-10"> \t <h4>{$c_data[category_name]}</h4> \t <h2>{$c_data[name]}</h2> \t</div> \t<div class="col-xs-2 text-right" id="top_buttons"> \t <a href="#" id="fullscreen"><span class="glyphicon glyphicon-fullscreen"></span></a> \t <a href="#" id="inscreen" class="collapse"><span class="glyphicon glyphicon-remove"></span></a> \t</div> \t</div> \t<div class="embed-responsive embed-responsive-16by9" id="fullscreen_media"> \t <iframe class="embed-responsive-item" src="/learn/{$this->course_hash}/index.html" id="iframe"></iframe> \t</div> \t<nav id="bottom_buttons"> \t <ul class="pager"> \t <li class="previous"><a href="#" id="back"><span aria-hidden="true">←</span> {$translator->Back}</a></li> \t <li class="top"><a href="#" id="top">{$translator->Top}</a>| \t\t<a href="/mycourses/finish/{$t_data[id]}" onclick='return confirm("{$translator->AreYouSure}");'>{$translator->Finish}</a></li> \t <li class="next"><a href="#" id="next">{$translator->Next} <span aria-hidden="true">→</span></a></li> \t </ul> \t</nav> </div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $obj = new Category(); $cnt = $obj->getCount(); if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } } $enum = $obj->enumerate(); foreach ($enum as $key => $val) { if ($val['id'] != 0) { $this->items[$val['parent_id']][] = $val; } } foreach ($this->items as $key => $val) { asort($this->items[$key]); } echo <<<EOF <h2 class="page-header">{$translator->Categories_header} <span class="badge">{$cnt}</span></h2> <div class="col-lg-8"> <ul class="list-group category-list" index="0"> EOF; $this->put_list(); echo <<<EOF </ul> <div class="row"> \t<div class="btn-group"> \t<a href="#" class="btn btn-sm" data-toggle="toggler" parent-id="0"> \t <span class="glyphicon glyphicon-plus"></span> {$translator->add}</a> \t</div> </div> </div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $category = new Category(); $course = new Course(); $cnt = $course->getCount(); $enum = $category->enumerate(array('active' => true)); foreach ($enum as $key => $val) { if ($val['id'] != 0) { $this->items[$val['parent_id']][] = $val; } } foreach ($this->items as $key => $val) { asort($this->items[$key]); } $enum = $course->enumerate(array('active' => true)); if (isset($enum)) { foreach ($enum as $key => $val) { $this->courses[$val['category_id']][] = $val; } } foreach ($this->items as $key => $val) { asort($this->items[$key]); } echo <<<EOF <h2 class="page-header">{$translator->Courses_header} <span class="badge">{$cnt}</span></h2> <div class="col-lg-8"> <ul class="list-group category-list" index="0"> EOF; $this->put_list(); echo <<<EOF </ul> </div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $training = new Training(); $id = array_shift($this->param); try { $t_exists = $training->checkFinish($_SESSION['user_id'], $id); } catch (Exception $e) { } $data = $course->get(array('id' => $id)); foreach ($data as $key => $val) { $data[$key] = htmlspecialchars($val, ENT_QUOTES); } foreach ($course->formats as $key => $val) { if ($key == $data['format_id']) { $format = htmlspecialchars($val, ENT_QUOTES); } } foreach ($course->languages as $key => $val) { if ($key == $data['language']) { $language = htmlspecialchars($val, ENT_QUOTES); } } if ($data['active'] == 't') { $active = 'checked'; } if ($data['exam'] == 't') { $exam = 'checked'; } if ($data[duration] > 8) { $duration = floor($data['duration'] / 8) . " {$translator->days}" . ($data['duration'] % 8 > 0 ? " + " . $data['duration'] % 8 . " {$translator->hours}" : ''); } else { $duration = $data['duration'] . " {$translator->hours}"; } if ($t_exists) { $disabled = 'disabled'; } echo <<<EOF <div class="container-fluid"> <div class="col-md-10 col-lg-8 col-lg-offset-2 "> \t<h4>{$data[category_name]}</h4> \t<h2>{$data[name]}</h2> \t<div class="row"> \t <div class="col-sm-6"><small>{$translator->Duration}: {$duration}</small></div> \t <div class="col-sm-6 text-right"><small>{$translator->Format}: {$format}</small></div> \t</div> \t<hr/> \t<label for="describe">{$translator->Describe}:</label> \t<p class="describe">{$data[describe]}</p> \t<label for="data">{$translator->Prerequisites}:</label> \t<p class="describe">{$data[prerequisites]}</p> \t<label for="skills">{$translator->Skills}:</label> \t<p class="describe">{$data[skills]}</p> \t<label for="equipment">{$translator->Equipment}:</label> \t<p class="describe">{$data[equipment]}</p> <!-- TODO> Add needed courses select-box \t <div class="form-group">Courses</div> <!--> \t<div> \t <label for="language">{$translator->Language}:</label> {$language} \t</div> \t<div> \t <label for="language">{$translator->Author}:</label> {$data[author]} \t</div> \t<hr/> \t<div> \t\t<a href="/enroll/{$data['id']}" class="btn btn-primary btn-lg {$disabled}" >{$translator->Register}</a> \t</div> \t</div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $user = new User(); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (isset($_GET['search'])) { unset($_GET['search']); unset($_GET['page']); $search = $_GET; } else { $search = null; } $cnt = $user->getCount($search); if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } foreach ($user->roles as $key => $val) { if (($_GET['role_id'] & $val) > 0) { $valname = 'role' . $val; ${$valname} = 'checked'; } } if ($_GET['role_id'] == 0) { $role0 = 'checked'; $values['role_id'] = 0; } } if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } echo <<<EOF <h2 class="page-header">{$translator->Users_header} <span class="badge">{$cnt}</span></h2> <div class="row"> \t<div class="col-md-1"> \t<button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#filter"> \t <span class="glyphicon glyphicon-filter"></span> {$translator->Filter}</button> \t</div> </div> <div class="row"> <div class="col-md-5 collapse" id="filter"> \t <form role="form" class="form-horizontal" action="?" method="get"> \t\t<div class="form-group"> \t\t <div class="form-group"> \t\t <label for="name" class="control-label col-sm-3">{$translator->Name}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="name" name="name" value="{$values[name]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="email" class="control-label col-sm-3">{$translator->Email}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="email" name="email" value="{$values[email]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="company" class="control-label col-sm-3">{$translator->Company}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="company" name="company" value="{$values[company]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="phone" class="control-label col-sm-3">{$translator->Phone}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="phone" name="phone" value="{$values[phone]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="country" class="control-label col-sm-3">{$translator->Country}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="country" name="country" value="{$values[country]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="city" class="control-label col-sm-3">{$translator->City}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="city" name="city" value="{$values[city]}"> \t\t </div> \t\t </div> \t\t <div class="col-sm-offset-3"> EOF; foreach ($user->roles as $key => $val) { $valname = 'role' . $val; echo "\t\t <input type=\"checkbox\" class=\"role_id\" id=\"{$valname}\" value=\"{$val}\" " . ${$valname} . ">\n\t\t <label for=\"{$valname}\">" . User::RolesAsString($val) . "</label>" . NL; } echo <<<EOF \t\t <input class="sr-only" id="role_id" name="role_id" value="{$values[role_id]}"> \t\t <input class="sr-only" name="search" value="1"> \t\t </div> \t\t <div class="form-group"> \t\t <div class="col-sm-offset-3 col-md-10"> \t\t <button type="submit" class="btn btn-sm btn-default">{$translator->Apply}</button> \t\t </div> \t\t </div> \t\t</div> \t </form> \t</div> </div> {$pagination} <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>{$translator->Name}</th> <th>{$translator->Roles}</th> <th>{$translator->Email}</th> <th>{$translator->Phone}</th> <th>{$translator->Company}</th> <th>{$translator->Place}</th> </tr> </thead> <tbody> EOF; $enum = $user->enumerate($search, $offset, ITEMS_IN_PAGE, 'users.last_name,users.first_name'); if (is_object($enum)) { $i = 1 + $offset; foreach ($enum as $key => $data) { if ($data['active'] == 'f') { $active = " class=\"not-active\""; } else { $active = ""; } echo " <tr>\n <td>{$i}</td>\n <td" . $active . ">{$data[name]}</td>\n <td>" . User::RolesAsString($data['role_id']) . "</td>\n <td>{$data[email]}</td>\n <td>{$data[phone]}</td>\n <td>{$data[company]} <small>{$data[position]}</small></td>\n <td>{$data[country]} <small>{$data[city]}</small></td>\n <td><a href=\"/admin_user/edit/{$data[id]}\" title=\"{$translator->edit}\"><span class=\"glyphicon glyphicon-user\"></span></a></td>\n <td><a href=\"/admin_user/delete/{$data[id]}\" title=\"{$translator->del}\" onClick=\"return confirm('{$translator->AreYouSure}');\"><span class=\"glyphicon glyphicon-trash\"></span></a></td>\n </tr>\n"; $i++; } } echo <<<EOF \t </table> \t</div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $training = new Training(); $t_data = $training->get(array('exam_hash' => $this->exam_hash, 'user_id' => $_SESSION['user_id'])); $c_data = $course->get(array('id' => $t_data['course_id'])); foreach ($c_data as $key => $val) { $c_data[$key] = htmlspecialchars($val, ENT_QUOTES); } echo <<<EOF <div class="container-fluid"> <div class="col-lg-10 col-lg-offset-1" id="window"> \t<div class="row" > \t<div class="col-xs-10"> \t <h4>{$c_data[category_name]}</h4> \t <h2>{$c_data[name]}</h2> \t</div> \t<div class="col-xs-2 text-right" id="top_buttons"> \t <a href="#" id="fullscreen"><span class="glyphicon glyphicon-fullscreen"></span></a> \t <a href="#" id="inscreen" class="collapse"><span class="glyphicon glyphicon-remove"></span></a> \t</div> \t</div> EOF; try { $d2 = new DateTime('now'); $diff = $d2->diff(new DateTime($t_data['finished'])); $diff = $diff->format('%r%i'); if ($diff < 0) { throw new Exception("Time out", self::TIMEOUT); } $exam = new Exam(); $enum = $exam->enumerate(array('training_id' => $t_data['id']), intval($this->page), 1, 'id'); $cnt = $exam->getCount(array('training_id' => $t_data['id'])); $current = $this->page + 1; $back = $this->page > 0 ? $this->page - 1 : 0; $next = $this->page + 1; if (!$enum) { throw new Exception("Not found", self::NOTFOUND); } $e_data = $enum->current(); $question = new Question(); $q_data = $question->get(array('id' => $e_data['question_id'])); echo <<<EOF \t<div class="embed-responsive embed-responsive-16by9" id="fullscreen_media"> \t<p>{$translator->Question}: {$current} / {$cnt}</p> \t<p> {$translator->Time_remain}: {$diff}</p> \t{$q_data[data]} \t<hr> \t{$translator->Answer}: \t <form action="?" method="post"> \t <input type="hidden" name="id" value="{$e_data[id]}"> EOF; switch ($q_data['type_id']) { case Question::SINGLE: echo "<ol>"; for ($i = 1; $i <= $q_data['count']; $i++) { echo "<li><input type=\"radio\" name=\"answer\" value=\"{$i}\" " . ($i == $e_data['answer'] ? 'checked' : '') . "></li>" . NL; } echo "</ol>"; break; case Question::MULTI: echo "<ol>"; $e_data['answer'] = explode(',', $e_data['answer']); for ($i = 1; $i <= $q_data['count']; $i++) { echo "<li><input type=\"checkbox\" name=\"answer[]\" value=\"{$i}\" " . (in_array($i, $e_data['answer']) ? 'checked' : '') . "></li>" . NL; } echo "</ol>"; break; case Question::TEXT: echo "<input type=\"text\" name=\"answer\" value=\"{$e_data['answer']}\">" . NL; break; default: } $back = $this->page > 0 ? $this->page - 1 : 0; $next = $this->page + 1; echo <<<EOF \t <input type="submit" class="btn btn-primary"> \t </form> \t</div> EOF; } catch (Exception $e) { switch ($e->getCode()) { case self::TIMEOUT: echo <<<EOF <div class="bs-callout bs-callout-danger" id="callout-type-b-i-elems"> <h4>{$translator->Timeout}</h4> <p>{$translator->Timeout_Desc}</p> <p class="text-muted">{$translator->BackCourses}</p> </div> EOF; $training->update($t_data['id'], array('status_id' => Training::FAILED)); break; case self::NOTFOUND: echo <<<EOF <div class="embed-responsive embed-responsive-16by9" id="fullscreen_media"> <div class="bs-callout bs-callout-info" id="callout-type-b-i-elems"> <h4>{$translator->Not_found}</h4> <p>{$translator->Not_found_Desc}</p> <p class="text-muted">{$translator->BackExam}</p> </div> </div> EOF; break; default: echo $e; echo <<<EOF <div class="bs-callout bs-callout-danger" id="callout-type-b-i-elems"> <h4>{$translator->Error}</h4> <p>{$translator->Error_Desc}</p> <p class="text-muted">{$translator->BackExam}</p> </div> EOF; } // echo "<script>window.history.back();</script>"; } echo <<<EOF \t<nav id="bottom_buttons"> \t <ul class="pager"> \t <li class="previous"><a href="{$back}" id="back"><span aria-hidden="true">←</span> {$translator->Back}</a></li> \t <li class="top"><a href="0" id="top">{$translator->Top}</a>| \t\t<a href="/result/{$t_data[id]}" onclick='return confirm("{$translator->AreYouSure}");'>{$translator->Finish}</a></li> \t <li class="next"><a href="{$next}" id="next">{$translator->Next} <span aria-hidden="true">→</span></a></li> \t </ul> \t</nav> </div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $question = new Question(); $cnt = $question->getCount(array('course_id' => $this->id)); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } } if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } $enum = $question->enumerate(array('course_id' => $this->id), $offset, ITEMS_IN_PAGE); $i = $offset + 1; echo <<<EOF <h2 class="page-header">{$translator->Questions_header} <span class="badge">{$cnt}</span></h2> <div class="col-lg-8"> {$pagination} <div class="row"> \t<div class="btn-group"> \t<a href="#" class="btn btn-sm btn-primary" data-toggle="add" parent-id="{$this->id}"> \t <span class="glyphicon glyphicon-plus"></span> {$translator->add}</a> \t</div> </div> <ol id="question-list" index="question-list" start="{$i}"> EOF; if (is_object($enum)) { foreach ($enum as $data) { $type = $question->types[$data['type_id']]; $type = $translator->{$type}; if (!$type) { $type = "<span class=\"alert-warning\">{$translator->No_text}</span>"; } if (!$data['data']) { $data['data'] = "<span class=\"alert-warning\">{$translator->No_text}</span>"; } if (!$data['answer']) { $data['answer'] = "<span class=\"alert-warning\">{$translator->No_text}</span>"; } if (!$data['count']) { $data['count'] = "<span class=\"alert-warning\">{$translator->No_text}</span>"; } echo <<<EOF \t<li class="question-item" item-id="{$data[id]}"> \t <a href="#" class="btn btn-sm" data-toggle="edit" item-id="{$data[id]}" parent-id="{$this->id}"> \t <span class="glyphicon glyphicon-pencil"></span></a> \t <a href="#" class="btn btn-sm" data-toggle="del" item-id="{$data[id]}" parent-id="{$this->id}"> \t <span class="glyphicon glyphicon-trash"></span></a> \t {$type} \t <p>{$data[data]}</p> \t <p>{$translator->Answer}: <small>{$data[answer]} / {$data[count]}</small></p> \t</li> EOF; } } echo <<<EOF </ol> {$pagination} </div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $data = $course->get(array('id' => $this->id)); foreach ($data as $key => $val) { $data[$key] = htmlspecialchars($val, ENT_QUOTES); } $path = preg_replace('/\\//', '</li><li>', $this->path); echo <<<EOF <h4>{$data[category_name]}</h4> <h2 class="page-header">{$data[name]}</h2> <ol class="breadcrumb"> \t<li><a href="/admin_manager/list/{$this->id}"><span class="glyphicon glyphicon-home"></span> {$translator->Back}</a> \t<li>{$path} </ol> EOF; if (preg_match('/.*(jpe?g|png|gif|svg)$/i', $this->path)) { $type = "image"; } if (preg_match('/.*(txt|htm|html)$/i', $this->path)) { $type = "text"; } if (preg_match('/.*(swf|pdf)$/i', $this->path)) { $type = "embed"; } if (preg_match('/.*(mov|mp4|wmv|avi)$/i', $this->path)) { $type = "video"; } if (preg_match('/.*(mp3)$/i', $this->path)) { $type = "audio"; } switch ($type) { case 'text': echo <<<EOF <div class="col-lg-8"> <form action="/admin_editor/save/{$this->id}/{$this->path}" method="post"> \t\t<textarea name="data" id="data" rows=5 class="form-control"> EOF; echo htmlspecialchars(file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/../files/courses/' . $this->id . '/' . $this->path)); echo <<<EOF \t\t</textarea> <button type="submit" class="btn btn-md btn-primary">{$translator->Save}</button>\t\t </form> </div> EOF; break; case 'image': echo <<<EOF \t\t<img src="/admin_editor/get_image/{$this->id}/{$this->path}" class="img-responsive"> \t\t EOF; break; case 'video': echo <<<EOF \t\t<div class="embed-responsive embed-responsive-16by9"> \t\t <video class="embed-responsive-item" controls> \t\t <source src="/admin_editor/get_image/{$this->id}/{$this->path}" ></source> \t\t </video> \t\t</div> EOF; break; case 'audio': echo <<<EOF \t\t<div class=""> \t\t <audio class="embed-responsive-item" controls> \t\t <source src="/admin_editor/get_image/{$this->id}/{$this->path}" > \t\t </audio> \t\t</div> EOF; break; case 'embed': echo <<<EOF \t\t<div class="embed-responsive embed-responsive-16by9"> \t\t <object data="/admin_editor/get_image/{$this->id}/{$this->path}" class="embed-responsive-item"></object> \t\t</div> EOF; break; } }
function displayBody() { parent::displayBody(); $translator = new Translator(); $trainer = new Trainer(); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (isset($_GET['search'])) { unset($_GET['search']); unset($_GET['page']); $search = $_GET; } else { $search = null; } $cnt = $trainer->getCount($search); if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } } if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } echo <<<EOF <h2 class="page-header">{$translator->Trainers_header} <span class="badge">{$cnt}</span></h2> <div class="row"> \t<div class="btn-group"> \t<a href="/admin_trainer/new" class="btn btn-sm btn-default"> \t <span class="glyphicon glyphicon-plus"></span><span class="glyphicon glyphicon-user"></span> {$translator->Add}</a> \t<button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#filter"> \t <span class="glyphicon glyphicon-filter"></span> {$translator->Filter} \t</button> \t</div> </div> <div class="row"> <div class="col-md-5 collapse" id="filter"> \t <form role="form" class="form-horizontal" action="?" method="get"> \t\t<div class="form-group"> \t\t <div class="form-group"> \t\t <label for="name" class="control-label col-sm-3">{$translator->Name}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="name" name="name" value="{$values[name]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="email" class="control-label col-sm-3">{$translator->Email}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="email" name="email" value="{$values[email]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="data" class="control-label col-sm-3">{$translator->Data}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="data" name="data" value="{$values[data]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <div class="col-sm-offset-3 col-md-10"> \t\t <input class="sr-only" name="search" value="1"> \t\t <button type="submit" class="btn btn-sm btn-default">{$translator->Apply}</button> \t\t </div> \t\t </div> \t\t</div> \t </form> \t</div> </div> {$pagination} <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>{$translator->Name}</th> <th>{$translator->Email}</th> <th>{$translator->Data}</th> </tr> </thead> <tbody> EOF; $enum = $trainer->enumerate($search, $offset, ITEMS_IN_PAGE); if (is_object($enum)) { $i = 1 + $offset; foreach ($enum as $key => $data) { if (strlen($data['data']) > 50) { $data['data'] = '<small>' . $data['data'] . '</small>'; } else { if (strlen($data['data']) > 200) { $data['data'] = '<small>' . substr($data['data'], 0, 200) . '...</small>'; } } echo " <tr>\n <td>{$i}</td>\n <td>{$data[name]}</td>\n <td>{$data[email]}</td>\n <td>{$data[data]}</td>\n <td><a href=\"/admin_trainer/edit/{$data[id]}\" title=\"{$translator->edit}\"><span class=\"glyphicon glyphicon-user\"></span></a></td>\n <td><a href=\"/admin_trainer/delete/{$data[id]}\" title=\"{$translator->del}\" onClick=\"return confirm('{$translator->AreYouSure}');\"><span class=\"glyphicon glyphicon-trash\"></span></a></td>\n </tr>" . NL; $i++; } } echo <<<EOF \t </table> \t</div> EOF; }
function displayBody() { parent::displayBody(); $translator = new Translator(); $course = new Course(); $category = new Category(); $training = new Training(); $t_data = $training->get(array('id' => $this->id, 'user_id' => $_SESSION['user_id'])); $c_data = $course->get(array('id' => $t_data['course_id'])); foreach ($c_data as $key => $val) { $c_data[$key] = htmlspecialchars($val, ENT_QUOTES); } $category_id = $c_data['category_id']; $enum = $category->enumerate(); if ($enum) { foreach ($enum as $key => $val) { if ($val['id'] != 0) { $items[$val['id']] = $val; } } $categories = $this->makeCategoryList($items, $category_id); } if ($t_data['status_id'] == Training::FINISHED) { $result = $translator->Congratulations; $result_class = "alert-success"; } else { $result = $translator->Sorry; $result_class = "alert-danger"; } echo <<<EOF <div class="container-fluid"> <div class="col-lg-10 col-lg-offset-1" id="window"> \t<h4>{$categories}</h4> \t<h2>{$c_data[name]}</h2> \t<h3 class="alert {$result_class}" role="alert">{$result}</h3> \t<h4>{$translator->Result}: {$t_data[result]}% ({$t_data['answers']} / {$t_data[questions]})</h4> \t<table class="table"> \t <tr> \t\t<th>#</th> \t\t<th>{$translator->Question}</th> \t\t<th>{$translator->Result}</th> \t </tr> EOF; $exam = new Exam(); $enum = $exam->enumerateResult($t_data['id']); $i = 1; foreach ($enum as $key => $e_data) { $answer = $e_data['result'] == 't' ? $translator->Right : $translator->Wrong; $class = $e_data['result'] == 't' ? "success" : "danger"; echo <<<EOF \t <tr class="alert alert-{$class}" role="alert"> \t\t<td>{$i}</td> \t\t<td>{$e_data[question]}</td> \t\t<td >{$answer}</td> \t </tr> EOF; $i++; } echo <<<EOF \t</table> </div> </div> <!-- /container --> EOF; }
function displayBody() { parent::displayBody(); if (!is_array($this->param)) { return; } $func = array_shift($this->param); switch ($func) { case 'new': $this->edit(true); break; case 'add': $this->add(); break; case 'edit': $this->edit(); break; case 'save': $this->save(); break; } }
function displayBody() { parent::displayBody(); $translator = new Translator(); $plan = new Plan(); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (isset($_GET['search'])) { unset($_GET['search']); unset($_GET['page']); $search = $_GET; } else { $search = array('active' => 'true'); } $search['not_finish'] = 'true'; $cnt = $plan->getCount($search); if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } } $categories = Course::getCategoriesForSelect(0); if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } echo <<<EOF <h2 class="page-header">{$translator->Plans_header} <span class="badge">{$cnt}</span></h2> <!-- disable filter temporary <div class="row"> \t<div class="btn-group"> \t<button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#filter"> \t <span class="glyphicon glyphicon-filter"></span> {$translator->Filter} \t</button> \t</div> </div> <div class="row"> <div class="col-md-5 collapse" id="filter"> \t <form role="form" class="form-horizontal" action="?" method="get"> \t\t<div class="form-group"> \t\t <div class="form-group"> \t\t <label for="category" class="control-label col-sm-3">{$translator->Category}:</label> \t\t <div class="col-sm-8"> \t\t <select name="category_id" class="form-control" > \t\t\t{$categories} \t\t </select> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="start" class="control-label col-sm-3">{$translator->Start}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control datetimepicker" id="start" name="start" value="{$values[start]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="finish" class="control-label col-sm-3">{$translator->Finish}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control datetimepicker" id="finish" name="finish" value="{$values[finish]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <div class="col-sm-offset-3 col-md-10"> \t\t <input class="sr-only" name="search" value="1"> \t\t <button type="submit" class="btn btn-sm btn-default">{$translator->Apply}</button> \t\t </div> \t\t </div> \t\t</div> \t </form> \t</div> </div> --> EOF; $course = new Course(); $training = new Training(); $enum = $plan->enumerate($search, $offset, ITEMS_IN_PAGE); if (is_object($enum)) { echo <<<EOF {$pagination} <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>{$translator->Course}</th> <th>{$translator->Start}</th> <th>{$translator->Finish}</th> <th>{$translator->Users}</th> </tr> </thead> <tbody> EOF; $i = 1 + $offset; foreach ($enum as $key => $data) { $c_data = $course->get(array('id' => $data['course_id'])); $participants = $training->getCount(array('plan_id' => $data['id'])); echo " <tr>\n <td>{$i}</td>\n <td>" . ($data['active'] == 'f' ? '<del>' : '') . "<p class=\"text-muted\">{$data[category_name]}</p>\n\t\t\t<a href=\"/course/{$c_data[id]}\">{$c_data[name]}</a></td>\n <td>{$data[start]}</td>\n <td>{$data[finish]}</td>\n <td>{$participants}</td>\n </tr>" . NL; $i++; } echo <<<EOF \t </table> \t</div> EOF; } else { echo $translator->No_trainings; } }
function displayBody() { parent::displayBody(); $translator = new Translator(); $training = new Training(); echo <<<EOF <h2 class="page-header">{$translator->MyCourses}</h2> EOF; $enum = $training->enumerate(array('user_id' => $_SESSION['user_id'], 'active' => 'true')); if ($enum) { foreach ($enum as $key => $data) { $now = new DateTime('now'); $finish = new DateTime($data['finish']); // check for timeout and set new status switch ($data['status_id']) { case Training::CREATED: case Training::STARTED: case Training::EXAM: case Training::EXAM_STARTED: if ($now > $finish) { $training->update($data['id'], array('status_id' => Training::TIMEOUT)); $data['status_id'] = Training::TIMEOUT; } default: } // prepeare data for display switch ($data['status_id']) { case Training::TIMEOUT: $data['result_desc'] = "<span class=\"label label-danger\">{$translator->Overtime}</span>"; $actions = "<a href=\"/course/{$data[course_id]}\" class=\"btn btn-default btn-md\">\n\t <span class=\"glyphicon glyphicon glyphicon-repeat\"></span> {$translator->Repeat}</a>\n\t <a href=\"/mycourses/delete/{$data[id]}\" class=\"btn btn-default btn-md\"\n\t onclick='return confirm(\"{$translator->AreYouSure}\");'>\n\t <span class=\"glyphicon glyphicon glyphicon-trash\"></span> {$translator->Delete}</a>"; break; case Training::CREATED: $data['result_desc'] = "<span class=\"label label-default\">{$translator->Not_started}</span>"; $actions = "<a href=\"/learn/{$data[course_hash]}\" class=\"btn btn-primary btn-md\">\n \t <span class=\"glyphicon glyphicon-play\"></span> {$translator->Learn}</a>\n \t <a href=\"/mycourses/dismiss/{$data[id]}\" class=\"btn btn-danger btn-md\">\n \t <span class=\"glyphicon glyphicon-trash\"></span> {$translator->Dismiss}</a>"; break; case Training::DELETED: $data['result_desc'] = "<span class=\"label label-default\">{$translator->Deleted}</span>"; $actions = "<a href=\"/course/{$data[course_id]}\" class=\"btn btn-default btn-md\">\n <span class=\"glyphicon glyphicon glyphicon-repeat\"></span> {$translator->Repeat}</a>\n <a href=\"/mycourses/delete/{$data[id]}\" class=\"btn btn-default btn-md\"\n onclick='return confirm(\"{$translator->AreYouSure}\");'>\n\t <span class=\"glyphicon glyphicon glyphicon-trash\"></span> {$translator->Delete}</a>"; break; case Training::STARTED: $data['result_desc'] = "<span class=\"label label-warning\">{$translator->Not_tested}</span>"; $actions = "<a href=\"/learn/{$data[course_hash]}\" class=\"btn btn-primary btn-md\">\n\t <span class=\"glyphicon glyphicon-play\"></span> {$translator->Learn}</a>\n\t "; break; case Training::EXAM: case Training::EXAM_STARTED: $data['result_desc'] = "<span class=\"label label-danger\">{$translator->NotCertified}</span>" . "<div>{$translator->Result}: " . intval($data['result']) . "%({$data[answers]}/{$data[questions]})</div>"; $actions = "<a href=\"/exam/{$data[exam_hash]}/\" class=\"btn btn-warning btn-md\">\n\t <span class=\"glyphicon glyphicon-check\"></span> {$translator->Test}</a>"; break; case Training::FAILED: $data['result_desc'] = "<span class=\"label label-danger\">{$translator->NotCertified}</span>" . "<div>{$translator->Result}: " . intval($data['result']) . "%({$data[answers]}/{$data[questions]})</div>"; $actions = "<a href=\"/course/{$data[course_id]}\" class=\"btn btn-default btn-md\">\n <span class=\"glyphicon glyphicon glyphicon-repeat\"></span> {$translator->Repeat}</a>\n <a href=\"/mycourses/delete/{$data[id]}\" class=\"btn btn-default btn-md\"\n onclick='return confirm(\"{$translator->AreYouSure}\");'>\n\t <span class=\"glyphicon glyphicon glyphicon-trash\"></span> {$translator->Delete}</a>"; break; case Training::FINISHED: if ($data['exam'] == 't') { $data['result_desc'] = "<span class=\"label label-success\">{$translator->Certified}</span>" . "<div>{$translator->Result}: " . intval($data['result']) . "%({$data[answers]}/{$data[questions]})</div>"; $actions = "<a href=\"/certificate/{$data[course_hash]}\" class=\"btn btn-success btn-md\">\n\t\t<span class=\"glyphicon glyphicon-certificate\"></span> {$translator->Certificate}</a>"; } else { $data['result_desc'] = "<span class=\"label label-success\">{$translator->Certified}</span>"; $actions = "<a href=\"/certificate/{$data[course_hash]}\" class=\"btn btn-success btn-md\">\n\t\t<span class=\"glyphicon glyphicon-thumbs-star\"></span> {$translator->Certificate}</a>"; } break; default: } if ($data['finished']) { $finish = $data['finished']; } else { $finish = $data['finish']; } echo <<<EOF <div class="panel panel-default col-md-6 col-lg-4 mycourse"> <div class="panel-heading overflow-hidden"> \t<p class="text-muted">{$data[category_name]}</p> \t<h4><a href="/course/{$data[course_id]}">{$data[course_name]}</a></h4> </div> <div class="panel-body"> \t<div class="row"> \t <div class="col-md-8"> \t<p>{$translator->Start}: {$data[start]}</p> \t<p>{$translator->Finish}: {$finish}</p> \t </div> \t <div class="col-md-4"> \t\t{$data[result_desc]} \t </div> \t</div> \t<div class="row"> \t{$actions} \t</div> </div> </div> EOF; } } else { echo <<<EOF <div class="panel panel-default col-lg-8"> <div class="panel-body"> \t{$translator->No_courses} </div> </div> EOF; } }