public function show404() { if (Request::isPost()) { $page = App::collection(self::PAGES_COLLECTION)->create(Input::get('page')); Request::redirect($page->slug); } $layouts = array(); $layout_files = glob(Router::config('paths')['root'] . 'app/views/layouts/*'); foreach ($layout_files as $layout_file) { $layout_ext = pathinfo($layout_file, PATHINFO_EXTENSION); $layout_name = basename($layout_file, '.' . $layout_ext); $words = preg_split('/_/', $layout_name); $layout_label = join(' ', array_map(function ($word) { return ucfirst($word); }, $words)); $layouts[$layout_name] = $layout_label; } $this->render('cms/404', array('request_path' => Request::path(), 'layouts' => $layouts)); }
/** * shared_storage_dir * * @param mixed $relative * @param mixed $app_id */ function shared_storage_dir() { $paths = Router::config('paths'); return $paths['shared_storage']; }
$connection = $capsule->connection(); class_alias('\\Illuminate\\Database\\Eloquent\\Model', 'DLModel'); } // // Setup default date format // Use a string representing an RFC2822 or ISO 8601 date // http://tools.ietf.org/html/rfc2822#page-14 // \Carbon\Carbon::setToStringFormat('Y-m-d\\TH:i:sP'); // Setup paginator $connection->setPaginator(new Hook\Pagination\Environment()); // Setup Schema Grammar // $connection->setSchemaGrammar(); // Setup cache manager $connection->setCacheManager(function () { $cache_driver = Router::config('cache'); if ($cache_driver == "filesystem") { $config = array('files' => new \Illuminate\Filesystem\Filesystem(), 'config' => array('cache.driver' => 'file', 'cache.path' => storage_dir() . '/cache')); } else { if ($cache_driver == "database") { $config = array('db' => \DLModel::getConnectionResolver(), 'encrypter' => Hook\Security\Encryption\Encrypter::getInstance(), 'config' => array('cache.driver' => 'database', 'cache.connection' => 'default', 'cache.table' => 'cache', 'cache.prefix' => '')); } } return new Illuminate\Cache\CacheManager($config); }); // // TODO: Create `hook migrate` command. // -------------------------------------- // // // Try to create schema.
<?php use Hook\Http\Router; $db_config = Router::config('database'); $container = new Illuminate\Container\Container(); $event_dispatcher = new Illuminate\Events\Dispatcher($container); // // Parse Database URI // Example: mysql://username:password@hostname.com/database?options=1 // if (isset($db_config['uri'])) { $parts = parse_url($db_config['uri']); if (isset($parts['query'])) { parse_str($parts['query'], $db_config); } $db_config['collation'] = 'utf8_general_ci'; $db_config['charset'] = 'utf8'; $db_config['driver'] = $parts['scheme']; $db_config['host'] = $parts['host']; if (isset($parts['user'])) { $db_config['username'] = $parts['user']; } if (isset($parts['pass'])) { $db_config['password'] = $parts['pass']; } if (isset($parts['path'])) { $db_config['database'] = substr($parts['path'], 1); } } // ------------------ // MongoDB connection