private function postAction($params) { $post = Options::get("active_post"); $user = Services\FacebookAPI::getInstance()->getUser(); if ($post && $user && ($post = Posts::getById($post))) { /** @var $post Posts */ /** @var $score Score */ $score = Score::get(["user_id" => $user->getId(), "post_id" => $post->getId()]); if (!$score) { $score = Score::Factory(["user_id" => $user->getId(), "post_id" => $post->getId(), "score" => [], "start" => date('Y-m-d H:i:s')]); } /** @var $post_entry PostEntry */ $post_entries = $post->getPostentries(); $score_data = $score->getScore(); if (isset($params["answer"])) { $answer = $post_entries[count($score_data)]; $answer = PostEntry::getById($answer)->getAnswer(); $score_data[] = $params["answer"] == $answer ? 1 : 0; $score->setScore($score_data); } $pe_index = count($score_data); $score->save(); $post_entry = isset($post_entries[$pe_index]) ? $post_entries[$pe_index] : null; $post_entry = PostEntry::getById($post_entry); if ($post_entry) { $post_form = new Services\Fields(); $post_form->Title($post->getTitle(), "h1 class=\"quizz-title center\""); $post_form->desc($post_entry->getQuestion()); foreach ($post_entry->getPropositions() as $k => $p) { $post_form->radio(["name" => "post_entry", "slug" => "post_entry_{$k}", "id" => "post_entry_{$k}", "label" => $p]); } $post_form->submit(["action" => "send_post_answer", "slug" => "send_post_answer", "icon" => "send", "class" => "right", "text" => "Suivant", "noajax" => true]); echo json_encode(["html" => $post_form->render()]); exit; } else { $result = array_count_values($score_data); $result = isset($result[1]) ? $result[1] : 0; $score->setTotal($result); $score->setEnd(date('Y-m-d H:i:s')); $score->setTime($score->getTime()); $score->save(); $users_score = $score->getSuperiorsScores(); $users_number = $score->getAllUsers($post->getId()); $max_score = $users_score[0]['count(total)']; $all_users = $users_number[0]['count(id)']; $percent = $all_users > 1 ? $max_score / $all_users * 100 : 100; $time = $score->getTime(); $view = Services\View::getInstance(); echo json_encode(["html" => $view->render('partials/show-result.html', ['result' => $result, 'total' => count($score_data), 'users' => round($percent * 2) / 2, 'url' => "http://" . DOMAIN_NAME, 'app_id' => APP_ID, 'time' => $time])]); } } else { $view = Services\View::getInstance(); echo json_encode(["html" => $view->render('partials/no-quizz.html')]); } }
public function admin_settingsSubpage($params) { if (isset($params["option"])) { $this->saveOption($params["option"]); } $field = new Services\Fields("init"); $field->Title("Paramètres de configuration"); $field->text(["value" => Models\Options::get("app_title"), "slug" => "app_title", "id" => "app_title", "label" => "Titre de l'application"]); $field->text(["value" => Models\Options::get("main_text"), "slug" => "main_text", "id" => "main_text", "label" => "Texte Principale"]); $field->text(["value" => Models\Options::get("sub_text"), "slug" => "sub_text", "id" => "sub_text", "label" => "Texte Secondaire"]); $field->color(["value" => Models\Options::get("main_color") ? Models\Options::get("main_color") : null, "slug" => "main_color", "id" => "main_color", "label" => "Couleur principale"]); $field->color(["value" => Models\Options::get("sub_color") ? Models\Options::get("sub_color") : null, "slug" => "sub_color", "id" => "sub_color", "label" => "Couleur secondaire"]); $field->color(["value" => Models\Options::get("text_color") ? Models\Options::get("text_color") : null, "slug" => "text_color", "id" => "text_color", "label" => "Couleur du texte"]); $field->color(["value" => Models\Options::get("backgroud_color") ? Models\Options::get("backgroud_color") : null, "slug" => "backgroud_color", "id" => "backgroud_color", "label" => "Couleur du fond"]); $field->submit(["text" => "Valider", "datas" => ["container" => ".admin-content"]]); return $this->content_page = $field->render(); }