/** * Retrieve a DBHandler instance * * @return $instance; */ public static function getInstance() { if (!self::$instance) { self::$instance = new PDO("mysql:host=" . self::DB_SERVER . ";dbname=" . self::DB_DATABASE, self::DB_SERVER_USERNAME, self::DB_SERVER_PASSWORD); self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$instance; }
/** * Installs tables with default user * @param $db_type */ public function install($db_type) { $f3 = \Base::instance(); $db_type = strtoupper($db_type); if ($db = DBHandler::instance()->get($db_type)) { $f3->set('DB', $db); } else { $f3->error(256, 'no valid Database Type specified'); } // setup the models \Model\User::setup(); \Model\Payload::setup(); \Model\Webot::setup(); // create demo admin user $user = new \Model\User(); $user->load(array('username = ?', 'mth3l3m3nt')); if ($user->dry()) { $user->username = '******'; $user->name = 'Framework Administrator'; $user->password = '******'; $user->email = '*****@*****.**'; $user->save(); //migrate payloads successfully $payload_file = $f3->ROOT . $f3->BASE . '/db_dump_optional/mth3l3m3nt_payload'; if (file_exists($payload_file)) { $payload = new \Model\Payload(); $payload_file_data = $f3->read($payload_file); $payloadarray = json_decode($payload_file_data, true); foreach ($payloadarray as $payloaddata) { $payload->pName = $payloaddata['pName']; $payload->pType = $payloaddata['pType']; $payload->pCategory = $payloaddata['pCategory']; $payload->pDescription = $payloaddata['pDescription']; $payload->payload = $payloaddata['payload']; $payload->save(); //ensures values set to null before continuing update $payload->reset(); } //migtate payloads \Flash::instance()->addMessage('Payload StarterPack: ,' . 'All Starter Pack Payloads added New database', 'success'); } else { \Flash::instance()->addMessage('Payload StarterPack: ,' . 'StarterPack Database not Found no payloads installed ', 'danger'); } \Flash::instance()->addMessage('Admin User created,' . ' username: mth3l3m3nt, password: mth3l3m3nt', 'success'); } \Flash::instance()->addMessage('New Database Setup Completed', 'success'); }
} //handles all pagination \Template::instance()->extend('pagebrowser', '\\Pagination::renderTag'); \Template\FooForms::init(); if (isset($writeableErr)) { header('Content-Type: text;'); die(implode("\n", $writeableErr)); } //Initialize some F3 Settings $f3->set('FLASH', Flash::instance()); $web = Web::instance(); //Database Setup From our Config Class Instance $cfg = Config::instance(); $f3->set('CONFIG', $cfg); if ($cfg->ACTIVE_DB) { $f3->set('DB', DBHandler::instance()->get($cfg->ACTIVE_DB)); } else { $f3->error(500, 'Sorry, but there is no active DB setup.'); } /////////////// // frontend // /////////////// $f3->route(array('GET /', 'GET /@page', 'GET /payloads', 'GET /page/@page'), 'Controller\\Payload->getList'); // view single $f3->route(array('GET /payload/@id'), 'Controller\\Payload->viewSingle'); $f3->route(array('GET /payload/search'), 'Controller\\Payload->search_frontend'); /////////////// // backend // /////////////// if (\Controller\Auth::isLoggedIn()) { // general CRUD operations