summaryrefslogtreecommitdiffstats
path: root/examples/app/class/framework.class.php
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2016-10-22 00:29:30 -0400
committerMalf Furious <m@lfurio.us>2016-10-22 00:29:30 -0400
commited99654d2e139a847a63e9295bf976d17462ee34 (patch)
tree23ab0c9d3b813da85e08d4008dbf98b7f0c9fd01 /examples/app/class/framework.class.php
parent9d0ff6546fb03489bbd127aeec6ee161e204a139 (diff)
downloadscrott-ed99654d2e139a847a63e9295bf976d17462ee34.tar.gz
scrott-ed99654d2e139a847a63e9295bf976d17462ee34.zip
Deprecate application code
Setup to perform an iteration of development focused on a simpler implementation and eliminating redundancy in design.
Diffstat (limited to 'examples/app/class/framework.class.php')
-rw-r--r--examples/app/class/framework.class.php144
1 files changed, 144 insertions, 0 deletions
diff --git a/examples/app/class/framework.class.php b/examples/app/class/framework.class.php
new file mode 100644
index 0000000..a3c36cb
--- /dev/null
+++ b/examples/app/class/framework.class.php
@@ -0,0 +1,144 @@
+<?php
+
+/*
+ * SCROTT Copyright (C) 2016 Malf Furious
+ *
+ * Scrott is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Scrott is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ */
+
+/* Define Scrott version number */
+define("__VERSION__", "v0.0");
+
+/* Include the Scrott system-level configuration file if it exists */
+is_file("scrott.conf.php") &&
+ require_once "scrott.conf.php";
+
+/* Init PHP session */
+session_start();
+
+require_once "class/mysql.class.php";
+require_once "class/user.class.php";
+
+/*
+ * Global functions / operations and access to contextual or session-based information
+ */
+abstract class Framework
+{
+ static $dbobj = null;
+
+ /*
+ * Check for the existence of Scrott's system-level config
+ */
+ function scrottConfExists()
+ {
+ global $_SCROTT;
+ return isset($_SCROTT['conf']);
+ }
+
+ /*
+ * Get the absolute path on this server for the root of this app
+ */
+ function ar()
+ {
+ return substr($_SERVER['PHP_SELF'], 0, -10); // 10 = length of "/index.php"
+ }
+
+ /*
+ * Get the absolute path to the current page
+ */
+ function ap()
+ {
+ return $this->ar() . $_REQUEST['path'];
+ }
+
+ /*
+ * Redirect to the given URL and die
+ */
+ function redirectTo($url)
+ {
+ header("Location: " . $url);
+ exit;
+ }
+
+ /*
+ * Get a user object for the currently logged in user. Returns false if session is logged out.
+ */
+ function getCurrentUser()
+ {
+ if (isset($_SESSION['userguid']))
+ {
+ $user = new User($_SESSION['userguid']);
+
+ if ($user->type == "user")
+ return $user;
+
+ $this->setCurrentUser();
+ }
+
+ return false;
+ }
+
+ /*
+ * Get the IP address the client held when the current session began
+ */
+ function getOriginIP()
+ {
+ return $_SESSION['userip'];
+ }
+
+ /*
+ * Set the current logged in user
+ */
+ function setCurrentUser($user = null)
+ {
+ if ($user != null && isset($user->guid))
+ {
+ $_SESSION['userguid'] = $user->guid;
+ $_SESSION['userip'] = $_SERVER['REMOTE_ADDR'];
+ }
+
+ else
+ {
+ unset($_SESSION['userguid']);
+ unset($_SESSION['userip']);
+ }
+ }
+
+ /*
+ * Get or create the app's database connection object (this is a singleton object and dependent on system-level config)
+ */
+ static function getDbConnection()
+ {
+ global $_SCROTT;
+
+ if (self::$dbobj != null)
+ return self::$dbobj;
+
+ switch ($_SCROTT['dbEngine'])
+ {
+ case "mysql":
+ $host = $_SCROTT['dbAddress'];
+ $username = $_SCROTT['dbUser'];
+ $password = $_SCROTT['dbPass'];
+ $dbName = $_SCROTT['dbName'];
+ self::$dbobj = new Mysql($host, $username, $password, $dbName);
+ break;
+
+ default:
+ throw new Exception("Problem with Scrott Configuration. Invalid database engine specified.");
+ break;
+ }
+
+ return self::$dbobj;
+ }
+}
+
+?>