diff options
author | Valentin Popov <dev@valentineus.link> | 2016-09-21 17:12:07 +0300 |
---|---|---|
committer | Valentin Popov <dev@valentineus.link> | 2016-09-21 17:12:07 +0300 |
commit | 07c1b99cb5880f9f3b54ab417387487365db87ac (patch) | |
tree | 333a3c7eedded83a5829775c1e5210db2f17aa43 | |
parent | b9628f189b0ca2f7c411bd79566da37c73cc8e8f (diff) | |
download | iii-module-07c1b99cb5880f9f3b54ab417387487365db87ac.tar.xz iii-module-07c1b99cb5880f9f3b54ab417387487365db87ac.zip |
RC demo
-rw-r--r-- | demo/components/class-application.php | 59 | ||||
-rw-r--r-- | demo/components/footer.php | 4 | ||||
-rw-r--r-- | demo/components/navbar.php | 2 | ||||
-rw-r--r-- | demo/components/on-board-panel.php (renamed from demo/components/communication.php) | 1 | ||||
-rw-r--r-- | demo/index.php | 33 | ||||
-rw-r--r-- | demo/style.css | 2 |
6 files changed, 61 insertions, 40 deletions
diff --git a/demo/components/class-application.php b/demo/components/class-application.php index bdd6419..317795d 100644 --- a/demo/components/class-application.php +++ b/demo/components/class-application.php @@ -1,12 +1,18 @@ <?php /** -* Function of saving the token in a cookie. -* When you receive the new value clears all stored cookies. -* @param $token - The values of the token. +* The function returns the current ID. +* Returns zero if no ID is stored. */ -function NewToken($token) { - unset($_COOKIE); // Removes all - SetCookie("BOT_TOKEN", $token); // Save a new cookie +function GetID() { + // Search current ID... + if (isset($_COOKIE['CURRENT_ID'])) { + $id = (int)$_COOKIE['CURRENT_ID'] + 1; + // ...or returns zero + } else { + $id = 0; + } + // We issue results + return $id; } /** @@ -34,22 +40,6 @@ function GetSession($token, $bot) { } /** -* The function returns the current ID. -* Returns zero if no ID is stored. -*/ -function GetID() { - // Search current ID... - if (isset($_COOKIE['CURRENT_ID'])) { - $id = (int)$_COOKIE['CURRENT_ID'] + 1; - // ...or returns zero - } else { - $id = 0; - } - // We issue results - return $id; -} - -/** * The function overrides the current ID to * the specified or the next. If any missing ID * returns the one. @@ -67,8 +57,29 @@ function SetID($id) { $id = 1; } SetCookie('CURRENT_ID', $id, time()+300); // Save the result - // We issue results - return $id; + return $id; // We issue results +} + +/** +* Cleaning function of the parameter that is passed to it. +* @param $type - Type cleansed. +*/ +function ClearingCache($type) { + switch ($type) { + // Clear the cookies + case 'cookies': + foreach ($_COOKIE as $key => $value) { + SetCookie($key, $value, time()-1000); + } + break; + // Clear the POST + case 'post': + $_POST = array(); + break; + // ... + default: + break; + } } /** diff --git a/demo/components/footer.php b/demo/components/footer.php index b1df881..21f2e3e 100644 --- a/demo/components/footer.php +++ b/demo/components/footer.php @@ -1,8 +1,8 @@ <!-- Beginning footer --> <footer class="footer"> <div class="container"> - <p class="text-muted"> - <a href="mailto:dev@valentineus.link">dev@valentineus.link</a> + <p class="text-muted text-center"> + With love <i class="glyphicon glyphicon-heart text-danger"></i> from Russia </p> </div> </footer> diff --git a/demo/components/navbar.php b/demo/components/navbar.php index 9fcb9ee..3e57cac 100644 --- a/demo/components/navbar.php +++ b/demo/components/navbar.php @@ -1,8 +1,10 @@ <!-- Start navigation bar --> <nav class="navbar navbar-default navbar-fixed-top"> + <!-- Loaded banner GitHub --> <a href="https://github.com/valentineus/Module-III-API"> <img class="github-fork"> </a> + <!-- Filling panel --> <div class="container"> <div class="collapse navbar-collapse"> <!-- The right side of the navigation bar --> diff --git a/demo/components/communication.php b/demo/components/on-board-panel.php index e73be75..c9fab05 100644 --- a/demo/components/communication.php +++ b/demo/components/on-board-panel.php @@ -9,6 +9,7 @@ <div class="col-md-4"> <button type="submit" class="btn btn-default">Submit</button> <button type="button" class="btn btn-success" data-toggle="modal" data-target="#SettingsModal">Settings</button> + <button type="submit" class="btn btn-danger" name="reset">Reset</button> </div> </div><!-- row --> </form> diff --git a/demo/index.php b/demo/index.php index 29a3609..ec526d1 100644 --- a/demo/index.php +++ b/demo/index.php @@ -1,8 +1,3 @@ -<?php -ini_set("display_errors","1"); -ini_set("display_startup_errors","1"); -ini_set('error_reporting', E_ALL); -?> <!DOCTYPE html> <html> <head> @@ -20,6 +15,7 @@ ini_set('error_reporting', E_ALL); <!-- Title --> <title>Testing conversational bot</title> </head> + <body> <?php // Connect all of the dependencies include("../src/bot.php"); // Class for working with AI @@ -27,16 +23,27 @@ ini_set('error_reporting', E_ALL); include("components/navbar.php"); // Connect the navigation bar include("components/settings.php"); // Connecting a modal window with the settings ?> + <!-- Begin page content --> <div class="container"> <div class="page-header"> <h1>Communication Panel</h1> </div> + <?php + // Treat the reset button + if (isset($_POST['reset'])) { + ClearingCache("cookies"); // We clear all cookies + ClearingCache("post"); // Removes all requests that were not processed + header("Location: " . $_SERVER["REQUEST_URI"]); // Reloading the page + } + // Checking the token initialization if (isset($_POST['BOT_TOKEN'])) { $token = htmlspecialchars($_POST['BOT_TOKEN']); - NewToken($token); + ClearingCache("cookies"); // We clear all cookies + SetCookie("BOT_TOKEN", $token); // Save a new cookie + header("Location: " . $_SERVER["REQUEST_URI"]); // Reloading the page // ...Finding saved token } elseif (isset($_COOKIE['BOT_TOKEN'])) { $token = $_COOKIE['BOT_TOKEN']; @@ -47,7 +54,8 @@ ini_set('error_reporting', E_ALL); // Initialize the robot system define('BOT_TOKEN', $token); $bot = new Bot(BOT_TOKEN); - $session = GetSession($token, $bot); // Initialize the session + // Initialize the session + $session = GetSession($token, $bot); if (empty($session)) { // No session? Error! ?> <!-- Error Notification --> <div class="alert alert-danger alert-dismissible" role="alert"> @@ -65,16 +73,15 @@ ini_set('error_reporting', E_ALL); // Processes the message if (isset($_POST['textarea'])) { - $currentid = GetID(); // Get the current ID $currenttext = htmlspecialchars($_POST['textarea']); // Transform text - SavingStories($currentid, $currenttext, 'user'); // Keeping your message - $currentid = SetID($currentid); // Get next ID - SavingStories($currentid, $bot->say($currenttext), 'bot'); // Save bot response - header("Location: ".$_SERVER["REQUEST_URI"]); // Reloading the page + SavingStories(GetID(), $currenttext, 'user'); // Keeping your message + $currentid = SetID(GetID()); // Get next ID + SavingStories(SetID($currentid), $bot->say($currenttext), 'bot'); // Save bot response + header("Location: " . $_SERVER["REQUEST_URI"]); // Reloading the page } // Connecting the system interface - include("components/communication.php"); // Settings panel + include("components/on-board-panel.php"); // Settings panel include("components/results.php"); // Output messages ?> </div> diff --git a/demo/style.css b/demo/style.css index abb8316..22ddaed 100644 --- a/demo/style.css +++ b/demo/style.css @@ -27,7 +27,7 @@ textarea.form-control { margin: 20px 0; } -/* Loaded one icon from GitHub */ +/* Loaded banner from GitHub */ .github-fork { background: url('data:image/png;base64,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'); background-size: cover; |