From 2036626b560f22efd59673187a2de3b1319fcf8a Mon Sep 17 00:00:00 2001 From: root Date: Thu, 25 Sep 2014 10:26:56 +0200 Subject: version 4.0 --- bootstrap/action.php | 184 +++++++++++++-- bootstrap/bootstrap.php | 15 +- bootstrap/class/cache.php | 69 ++++++ bootstrap/class/user.php | 38 ++-- bootstrap/config.php | 3 + bootstrap/functions.php | 382 ++++++++++++++++++++++++++++++-- bootstrap/index.php | 63 +++++- bootstrap/robots.txt | 2 + bootstrap/static/footer.php | 1 + bootstrap/static/header.php | 32 ++- bootstrap/static/kitten-praying.jpg | Bin 0 -> 326589 bytes bootstrap/static/kitten-prays-small.jpg | Bin 0 -> 51758 bytes bootstrap/static/kitten-prays.jpg | Bin 0 -> 496315 bytes bootstrap/static/kitten.jpg | Bin 0 -> 66462 bytes bootstrap/static/style.min.css | 1 + 15 files changed, 710 insertions(+), 80 deletions(-) create mode 100644 bootstrap/class/cache.php create mode 100644 bootstrap/robots.txt create mode 100644 bootstrap/static/kitten-praying.jpg create mode 100644 bootstrap/static/kitten-prays-small.jpg create mode 100644 bootstrap/static/kitten-prays.jpg create mode 100644 bootstrap/static/kitten.jpg create mode 100644 bootstrap/static/style.min.css (limited to 'bootstrap') diff --git a/bootstrap/action.php b/bootstrap/action.php index 533ef0a..a52d471 100644 --- a/bootstrap/action.php +++ b/bootstrap/action.php @@ -1,51 +1,102 @@ login($_POST["name"], $_POST["password"]) ){ - header($_SERVER["SERVER_PROTCOL"] . " 302 Moved"); + print_login("missing"); + } else if ( $user->login($_POST["name"], $_POST["password"]) ){ + header($_SERVER["SERVER_PROTOCOL"] . " 302 Moved"); header("Location: /?page=" . $_GET["goto"]); + ob_clean(); exit; + } else { + print_login("password"); } break; - case("update"): + case("register"): if ( $_SERVER['REQUEST_METHOD'] != 'POST' ){ header($_SERVER["SERVER_PROTOCOL"] . " 405 Method Not Allowed"); + ob_clean(); echo "Method not allowed"; exit; } - if ( ! isset($_GET["id"]) || $_GET["id"] == 0 || $_GET["id"] == "" ){ + if ( ! isset($_POST["name"]) || $_POST["name"] == "" || ! isset($_POST["password"]) || $_POST["password"] == "" || ! isset($_POST["confirm"]) || $_POST["confirm"] == "" || ! isset($_POST["key"])){ + print_login("missing"); + } + else if ( $_POST["key"] != INVITEKEY ){ + print_login("key"); + } + else if ( $_POST["password"] != $_POST["confirm"]){ + print_login("password"); + } else { + if ( ! isset($_POST["email"]) || $_POST["email"] == "" ){ + $email = "null"; + $sql = $db->prepare("SELECT 1 FROM " . DBPREFIX . "user WHERE name = %s LIMIT 1;", $_POST["name"]); + } + else { + $email = $_POST["email"]; + $sql = $db->prepare("SELECT 1 FROM " . DBPREFIX . "user WHERE name = %s OR email = %s LIMIT 1", $_POST["name"], $_POST["email"]); + } + $check_db = $db->doQuery($sql); + $check_ar = $check_db->fetch_array(MYSQLI_NUM); + if ( $check_ar[0] == 1) { + print_login("double"); + } else { + if ( ! $user->register($_POST["name"], $_POST["password"], $email)) + print_login("database"); + else { + header($_SERVER["SERVER_PROTOCOL"] . " 302 Moved"); + header("Location: /?page=" . $_GET["goto"]); + ob_clean(); + exit; + } + } + } + break; + + case("update"): + if ( $_SERVER['REQUEST_METHOD'] != 'POST' ){ + header($_SERVER["SERVER_PROTOCOL"] . " 405 Method Not Allowed"); + ob_clean(); + echo "Method not allowed"; exit; } - $sql = $db->prepare("UPDATE " . DBPREFIX . "member SET name = %s AND adresse = %s AND telefonnummer = %s AND handynummer = %s AND email = %s AND geburtstag = %s WHERE id = %d;", - $_POST["name"], $_POST["adresse"], $_POST["telefonnummer"], $_POST["handynummer"], $_POST["email"], $_POST["geburtstag"], $_GET["id"] - ); - if ( ! $sql ) - exit; - if ( $result = $db->doQuery($sql) ){ - header($_SERVER["SERVER_PROTCOL"] . " 302 Moved"); - header("Location: /?page=" . $_GET["goto"]); + if ( ! isset($_GET["id"]) || $_GET["id"] == 0 || $_GET["id"] == "" ){ + print_list("update"); + } else { + $sql = $db->prepare("UPDATE " . DBPREFIX . "member SET name = %s, adresse = %s, telefonnummer = %s, handynummer = %s, email = %s, geburtstag = %s WHERE member_id = %d;", + $_POST["name"], $_POST["adresse"], $_POST["telefonnummer"], $_POST["handynummer"], $_POST["email"], $_POST["geburtstag"], $_GET["id"] + ); + if ( ! $sql ){ + ob_clean(); + echo "SQL preparation failed."; + exit; + } + if ( $result = $db->doQuery($sql) ){ + header($_SERVER["SERVER_PROTOCOL"] . " 302 Moved"); + header("Location: /?page=" . $_GET["goto"]); + $c->flush(); + } } - exit; break; case("add"): @@ -54,14 +105,107 @@ switch($_GET["task"]){ echo "Method not allowed"; exit; } - $sql = $db->prepare("INSERT INTO " . DBPREFIX . "member (id, name, adresse, telefonnummer, handynummer, email, geburtstag) VALUES (NULL, %s, %s, %s, %s, %s, %s);", + $sql = $db->prepare("INSERT INTO " . DBPREFIX . "member (member_id, name, adresse, telefonnummer, handynummer, email, geburtstag) VALUES (NULL, %s, %s, %s, %s, %s, %s);", $_POST["name"], $_POST["adresse"], $_POST["telefonnummer"], $_POST["handynummer"], $_POST["email"], $_POST["geburtstag"] ); - if ( ! $sql ) + if ( ! $sql ){ + echo "SQL preparation failed."; exit; + } if ( $result = $db->doQuery($sql) ){ - header($_SERVER["SERVER_PROTCOL"] . " 302 Moved"); + header($_SERVER["SERVER_PROTOCOL"] . " 302 Moved"); header("Location: /?page=" . $_GET["goto"]); + $c->flush($_GET["_flush"]); + } + break; + case("account"): + if ( $_SERVER['REQUEST_METHOD'] != 'POST' ){ + header($_SERVER["SERVER_PROTOCOL"] . " 405 Method Not Allowed"); + echo "Method not allowed"; + exit; + } + if ( ! isset($_POST["name"]) || $_POST["name"] == "" || ! isset($_POST["confirm"]) || $_POST["confirm"] == ""){ + print_account("info"); + } else if ( ! isset($_POST["email"]) ){ + $_POST["email"] = ""; + } else if ( ! password_verify($_POST["confirm"] . PEPPER , $user->getPassword()) ) { + print_account("password"); + } else { + $sql = false; + $check_ar[0] = 0; + if ( $_POST["name"] != $_SESSION["username"]){ + + if ( isset($_POST["email"]) && $_POST["email"] != "" && $_POST["email"] != $user->getEmail() ) + $sql = $db->prepare("SELECT 1 FROM " . DBPREFIX ."user WHERE name = %s OR email = %s ;", $_POST["name"], $_POST["email"]); + else + $sql = $db->prepare("SELECT 1 FROM " . DBPREFIX ."user WHERE name = %s ;", $_POST["name"]); + + } else if ( isset($_POST["email"]) && $_POST["email"] != "" && $_POST["email"] != $user->getEmail() ){ + $sql = $db->prepare("SELECT 1 FROM " . DBPREFIX ."user WHERE email = %s ;", $_POST["email"]); + + } else if ( $_POST["password"] == "" ){ + redirect("account"); + } + + if ( $sql ){ + $check_db = $db->doQuery($sql); + $check_ar = $check_db->fetch_array(MYSQLI_NUM); + } + + if ( $check_ar[0] == 1){ + print_account("double"); + } else { + if ( $_POST["password"] != $_POST["confirm"] && $_POST["password"] != "" ){ + $sql = $db->prepare("UPDATE " . DBPREFIX . "user SET name = %s, password = %s, email = %s WHERE id = %d;", $_POST["name"] , password_hash($_POST["password"]. PEPPER, PASSWORD_DEFAULT), $_POST["email"], $_SESSION["userid"]); + } else + $sql = $db->prepare("UPDATE " . DBPREFIX . "user SET name = %s, email = %s WHERE id = %d;", $_POST["name"], $_POST["email"], $_SESSION["userid"]); + if ( ! $db->doQuery($sql) ){ + + echo $sql; + print_account("database"); + } else + $_SESSION["username"] = $_POST["name"]; + redirect("account&success=1"); + } } - exit; + break; + case("recover"): + if ( $_SERVER['REQUEST_METHOD'] != 'POST' ){ + header($_SERVER["SERVER_PROTOCOL"] . " 405 Method Not Allowed"); + echo "Method not allowed"; + exit; + } + $sql = $db->prepare("SELECT 1, name FROM " . DBPREFIX . "user WHERE email = %s ;", $_POST["email"]); + $result_db = $db->doQuery($sql); + $result_ar = $result_db->fetch_array(MYSQLI_NUM); + if ( $result_ar[0] == 1){ + + $arr = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "_", "-"); + $password = ""; + $l = count($arr) -1 ; + for ($i=0;$i<10;$i++){ + $r = mt_rand(0, $l); + $password.=$arr[$r]; + } + + $hash = password_hash($password . PEPPER, PASSWORD_DEFAULT); + $sql = $db->prepare("UPDATE " . DBPREFIX . "user SET password = %s WHERE email = %s ;", $hash, $_POST["email"]); + if ( ! $db->doQuery($sql) ) + redirect("recover&track=0"); + + $body = +"Hello, +someone requested a new password for '".$result_ar[1]."' on https://jungegemeinde.iamfabulous.de. +The new password is '". $password ."'. Remember to change it immediately at https://jungegemeinde.iamfabulous.de/?page=account after successfull login. + +Kindly regards, +JG Adlershof"; + + // header injection + mail($_POST["email"], "JG: Passwort Reset", $body, "From: JG Adlershof \r\n" ); + redirect("recover&track=1"); + } else { + redirect("recover&track=0"); + } + break; } diff --git a/bootstrap/bootstrap.php b/bootstrap/bootstrap.php index 36c298e..aab8bbe 100644 --- a/bootstrap/bootstrap.php +++ b/bootstrap/bootstrap.php @@ -30,12 +30,14 @@ if ( ! defined('INCLASS') ) define('INCLASS', 'class/'); # redis access -# if ( ! defined('USE_REDIS') ) -# define('USE_REDIS', false); -# if ( ! defined('REDIS_CONNECT') ) -# define('REDIS_CONNECT', '/var/run/redis/redis.sock'); -# if ( ! defined('REDIS_DBNAME') ) -# define('REDIS_DBNAME', 1); + if ( ! defined('USE_REDIS') ) + define('USE_REDIS', true); + if ( ! defined('REDIS_CONNECT') ) + define('REDIS_CONNECT', '/var/run/redis/redis.sock'); + if ( ! defined('REDIS_DB') ) + define('REDIS_DB', 2); + if ( ! defined('CACHEPREFIX') ) + define('CACHEPREFIX', 'jg_'); # redirects to correct host if ( $_SERVER['HTTP_HOST'] != HOST){ @@ -45,6 +47,7 @@ if ( $_SERVER['HTTP_HOST'] != HOST){ } require(ABSPATH . 'functions.php'); +require(ABSPATH . INCLASS . 'cache.php'); require(ABSPATH . INCLASS . 'mysql.php'); require(ABSPATH . INCLASS . 'user.php'); diff --git a/bootstrap/class/cache.php b/bootstrap/class/cache.php new file mode 100644 index 0000000..8005484 --- /dev/null +++ b/bootstrap/class/cache.php @@ -0,0 +1,69 @@ +db = new Redis(); + + try { + $this->db->connect($rconnect); + } catch (Exception $e) { + return $e->getMessage(); + } + try { + $this->db->ping(); + } catch (Exception $e) { + return $e->getMessage(); + } + try { + $this->db->select($rdb); + } catch (Exception $e) { + return $e->getMessage(); + } + } + + public function check(){ + try { + return $this->db->ping(); + } catch (Exception $e) { + return $e->getMessage(); + } + } + + public function setKey($key, $value, $ttl = null){ + $this->db->set($key, $value, $ttl); + } + + public function getValue($key){ + return $this->db->get($key); + } + + public function getToken($data, $append = ""){ + $this->token = CACHEPREFIX . $append . md5(strtolower($data)); + return $this->token; + } + + public function exists($key){ + return $this->db->exists($key); + } + + public function delete($key){ + return $this->db->delete($key); + } + + public function del($key){ + return $this->db->delete($key); + } + + public function flush($token = null){ + if ( is_null($token) ) + return $this->db->flushDB(); + else + return $this->db->delete($token); + } +} + + diff --git a/bootstrap/class/user.php b/bootstrap/class/user.php index edbcaa6..969d734 100644 --- a/bootstrap/class/user.php +++ b/bootstrap/class/user.php @@ -9,8 +9,6 @@ class jg { private $query = false; public function __construct($name = null){ - if ( is_null($name) ) - return; $this->username = $name; @@ -24,10 +22,10 @@ class jg { # get's everything from the database private function _setQuery(){ - global $vfsdb; + global $db; - $sql = $vfsdv->prepare("SELECT * FROM " . DBPREFIX . "user WHERE name=%s;", $this->username); - $db_db = $vfsdb->doQuery($sql); + $sql = $db->prepare("SELECT * FROM " . DBPREFIX . "user WHERE name=%s;", $this->username); + $db_db = $db->doQuery($sql); if ( is_bool($db_db) ) $this->query = false; else @@ -54,7 +52,10 @@ class jg { } public function getEmail(){ - return $this->query['email']; + if ( $this->query['email'] == "null" ) + return ""; + else + return $this->query['email']; } public function getRegister(){ @@ -88,9 +89,11 @@ class jg { # set login to true $this->login = true; + $this->username=$user; + # start a session if needed if ( session_status() != PHP_SESSION_ACTIVE ) { - session_name(VFS_SESSION); + session_name(SESSION); session_start(); } @@ -99,6 +102,7 @@ class jg { # assign userid to the session variable $_SESSION["userid"] = $this->getUserId(); + $_SESSION["username"] = $this->username; return true; } @@ -120,21 +124,15 @@ class jg { } public function register($name, $password, $email){ - global $vfsdb; + global $db; - $password = $password . PEPPER; - $hash = password_hash($password, PASSWORD_DEFAULT); + $hash = password_hash($password . PEPPER, PASSWORD_DEFAULT); - $sql = $vfsdb->prepare(" - INSERT INTO " . DBPREFIX . "user VALUES ( - NULL, - name = %s, - password = %s, - email = %s, - register = %d - );", $name, $hash, $email, time() ); + $sql = $db->prepare(" + INSERT INTO " . DBPREFIX . "user (id, name, password, email, register) VALUES (NULL, %s, %s, %s, %d);", $name, $hash, $email, time() + ); - if ( ! $vfsdb->doQuery($sql) ) + if ( ! $db->doQuery($sql) ) return false; # the user is successfull registered, thus already logged in @@ -144,7 +142,7 @@ class jg { $this->_setPepper(); $this->_setQuery(); - $this->login($password); + $this->login($name, $password); return true; } diff --git a/bootstrap/config.php b/bootstrap/config.php index e39fb57..585f34a 100644 --- a/bootstrap/config.php +++ b/bootstrap/config.php @@ -28,3 +28,6 @@ define('PEPPER', 'somelongstringhere'); ### hostname # define('HOST', 'jungegemeinde.iamfabulous.de'); # define('DOMAIN', 'https://jungegemeinde.iamfabulous.de'); + +#define('INVITEKEY', 'fadfhaoshfasodfhioadsfhadsofhpf'); +define('INVITEKEY', 'p'); diff --git a/bootstrap/functions.php b/bootstrap/functions.php index 60408a2..3e937d2 100644 --- a/bootstrap/functions.php +++ b/bootstrap/functions.php @@ -1,5 +1,18 @@ isLoggedIn() != 1){ + redirect("login&goto=".$goto); + } +} + +function redirect($goto){ + header($_SERVER["SERVER_PROTOCOL"] . " 302 Moved"); + header("Location: /?page=".$goto); + ob_clean(); + exit; +} function failure($reason, $httpcode, $ajax = true, $heading = NULL){ # send header with $httpcode @@ -23,31 +36,56 @@ function failure($reason, $httpcode, $ajax = true, $heading = NULL){ exit; } -function print_login(){ +function print_login($option = false){ if(isset($_GET["goto"]) && $_GET["goto"] != "") - $goto = $_GET["goto"]; + $goto = htmlentities($_GET["goto"]); else $goto = "index"; + + global $user; + if ( $user->isLoggedIn() ){ + redirect("index"); + } ?>
-

Junge Gemeinde Adlershof

Login required

+

Junge Gemeinde Adlershof

+ +

Login required

+ +

Logout erfolgreich!

+ +

Nutzer/Passwort falsch

+ +

Bitte fülle alle Felder aus!

+ +
- -
- + +
+
- -
- + +
+
@@ -61,28 +99,60 @@ else
+
+

Mit * markierte Felder sind Pflichtfelder.

+ +
+[Passwort vergessen?]
logout(); + print_login("logout"); +} + function print_index(){ ?>

Junge Gemeinde Adlershof

+
+ praing kitten +
+
+
+

Wir sind die Junge Gemeinde in Adlershof.

+

Wir treffen uns immer Donnerstags um 19:30 Uhr in der Remise Arndtstraße 12a.

+

Am besten sind wir über unsere Aktiviere JavaScript um die E-Mail Adresse zu sehen! erreichbar.

doQuery("SELECT * FROM " . DBPREFIX . "member;"); ?>

Adress Liste

+ +

Es existiert kein Mitglied mit dieser ID

+
+
+
+
@@ -109,17 +179,13 @@ function print_list(){ - "; + "; $count++; } ?> - - */ - ?>
".htmlentities($row['email'])." ".htmlentities($row['geburtstag'])."
".$count."".$row[1]." - ".$row[2]."".$row[3]."".$row[4]."".$row[5]."".$row[6]."
+
@@ -130,20 +196,22 @@ function print_list(){ } function print_update_list($id){ + lredirect("liste"); global $db; $sql = $db->prepare("SELECT * FROM " . DBPREFIX . "member WHERE member_id = %d", $id); $result = $db->doQuery($sql); if(!$result){ - echo "Fail!"; + print_list("update"); exit; } - while ( $row = $result->fetch_array(MYSQLI_ASSOC) ){ + if ( $row = $result->fetch_array(MYSQLI_ASSOC) ){ ?>

Änderung für

-
&goto=liste'> + &goto=liste'> +
@@ -173,19 +241,24 @@ function print_update_list($id){
+

Füge die Daten hinzu

-
+ +
@@ -215,6 +288,7 @@ function print_add_entry_to_list(){
+
@@ -222,6 +296,7 @@ function print_add_entry_to_list(){ } function _add_entry(){ + lredirect("liste"); global $db; $sql = $db->prepare("INSERT INTO " . DPREFIX . "member (id, name, adresse, telefonnummer, handynummer, email, geburtstag) VALUES (NULL. %s, %s, %s, %s, %s, %s);", $_POST['name'], $_POST['adresse'], $_POST['telefonnummer'], $_POST['handynummer'], $_POST['email'], $_POST['geburtstag']); @@ -232,7 +307,272 @@ function _add_entry(){ } function print_404(){ - header($_SERVER['HTTP_PROTOCOL'] . ' 404 Not Found'); + header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); +?> +

404 - Not Found

+
+

The requested page () wasn't found on this server.

+ +isLoggedIn() ){ + redirect("index"); + } +?> + +
+
+ + +

Junge Gemeinde Adlershof

+ +

Register

+ +

Passwörter stimmen nicht überein!

+ +

Bitte fülle alle mit '*' markierten Felder aus!

+ +

Registrierung verweigert!

+ +

Nutzer/E-Mail gibt es schon!

+

Interner Fehler!

+ +
+ + +
+ +
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+ + Deine E-Mail wird gebraucht, wenn du dein Passwort vergessen hast. +
+
+ + +
+ +
+ + Du solltest den Schlüssel in einer Mail bekommen haben. +
+
+ + +
+ +
+ +
+
+ +
+
+
+

Mit * markierte Felder sind Pflichtfelder.

+ + +
+
+ + + +

+ +

Ändere deine Daten

+ +

Bitte fülle alle notwendigen Felder aus!

+ +

Dein Passwort stimmt nicht!

+ +

Nutzer/E-Mail schon vergeben!

+ +

Interner Fehler!

+ +

Erfolgreich aktualisiert!

+ +
+ + +
+ +
+ " required=""> + Wechsle deinen Namen hier. +
+
+ + +
+ +
+ + Ändere dein Passwort. Lass das Feld leer, wenn du es nicht ändern möchtest. +
+
+ + +
+ +
+ + Ändere deine E-Mail Adresse. +
+
+ + +
+ +
+ + Bestätige die Angaben mit deinem gültigen Passwort. +
+
+ + +
+ +
+ +
+
+ +
+
+
+

Mit * markierte Felder sind Pflichtfelder.

+ + +
+
+ + +

Junge Gemeinde Adlershof

+ +

Passwort zugeschickt!

+ +

Fehler! Passwort konnte nicht geändert werden.

+ +

Passwort wiederherstellen

+ +
+ + +
+ +
+ + Wenn deine E-Mail gespeichert ist, wird dir das neue Passwort automatisch zugestellt. +
+
+ + +
+ +
+ +
+
+ +
+
+ + +[^\S ]+/s', // strip whitespaces after tags, except space + '/[^\S ]+\', + '<', + '\\1' + ); + + $buffer = preg_replace($search, $replace, $buffer); + + return $buffer; } diff --git a/bootstrap/index.php b/bootstrap/index.php index 32b4a97..21cbda7 100644 --- a/bootstrap/index.php +++ b/bootstrap/index.php @@ -1,22 +1,52 @@ getToken($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]. $_SERVER["QUERY_STRING"], $a); + if ( $c->exists($token)){ + header("X-Cache: Hit"); + echo $c->getValue($token); + ob_end_flush(); + exit; + } +} else { + header("X-Cache: Miss "); +} $db = new db(); -$user = new jg(); +if ( ! isset($_SESSION["username"])) + $u = null; +else + $u = $_SESSION["username"]; + +$user = new jg($u); ?> - - + + + echo " Junge Gemeinde Adlershof @@ -29,6 +59,8 @@ require_once 'static/header.php';
setKey($token, $html, 3600); +} +ob_end_flush(); diff --git a/bootstrap/robots.txt b/bootstrap/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/bootstrap/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/bootstrap/static/footer.php b/bootstrap/static/footer.php index 4a14ac7..2c6a6cf 100755 --- a/bootstrap/static/footer.php +++ b/bootstrap/static/footer.php @@ -3,6 +3,7 @@

Copyright 2014 Maximilian Möhring

+ ?> diff --git a/bootstrap/static/header.php b/bootstrap/static/header.php index a7a5042..d20ddf9 100644 --- a/bootstrap/static/header.php +++ b/bootstrap/static/header.php @@ -7,20 +7,38 @@ - Home + Home diff --git a/bootstrap/static/kitten-praying.jpg b/bootstrap/static/kitten-praying.jpg new file mode 100644 index 0000000..7f291e0 Binary files /dev/null and b/bootstrap/static/kitten-praying.jpg differ diff --git a/bootstrap/static/kitten-prays-small.jpg b/bootstrap/static/kitten-prays-small.jpg new file mode 100644 index 0000000..5734aea Binary files /dev/null and b/bootstrap/static/kitten-prays-small.jpg differ diff --git a/bootstrap/static/kitten-prays.jpg b/bootstrap/static/kitten-prays.jpg new file mode 100644 index 0000000..3eb6ede Binary files /dev/null and b/bootstrap/static/kitten-prays.jpg differ diff --git a/bootstrap/static/kitten.jpg b/bootstrap/static/kitten.jpg new file mode 100644 index 0000000..376c195 Binary files /dev/null and b/bootstrap/static/kitten.jpg differ diff --git a/bootstrap/static/style.min.css b/bootstrap/static/style.min.css new file mode 100644 index 0000000..dc54b0f --- /dev/null +++ b/bootstrap/static/style.min.css @@ -0,0 +1 @@ +html{position:relative;min-height:100%}body{margin-bottom:60px}a{color:#3083D6}.navbar-default{border-color:#3083D6;background:#3083D6}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-nav>li>a{color:#fff}.footer{border-color:#3083D6;background:#3083D6;color:#fff;position:absolute;bottom:0;width:100%}#copyright-text{color:#fff}.noscript{background-color:red;color:#fff}.table-center{margin:0 auto!important;float:none!important}.disabled{color:#5E5E5E;text-decoration:line-through} -- cgit v1.2.3