/**
  * @Request({"redirect": "string"}, csrf=true)
  */
 public function migrateAction($redirect = null)
 {
     if ($updates = $this->scripts->hasUpdates()) {
         $this->scripts->update();
         $message = __('Your Pagekit database has been updated successfully.');
     } else {
         $message = __('Your database is up to date.');
     }
     App::config('system')->set('version', App::version());
     if ($redirect) {
         App::message()->success($message);
         return App::redirect($redirect);
     }
     return App::response()->json(compact('status', 'message'));
 }
 /**
  * @Request({"redirect": "string"}, csrf=true)
  */
 public function migrateAction($redirect = null)
 {
     $config = App::config('system');
     $manager = new PackageManager();
     $scripts = $manager->loadScripts(null, __DIR__ . '/../../scripts.php');
     if (isset($scripts['updates'])) {
         $updates = $manager->filterUpdates($scripts['updates'], $config->get('version'));
         $manager->execute($updates);
     }
     $config->set('version', App::version());
     $message = __('Your Pagekit database has been updated successfully.');
     if ($redirect) {
         App::message()->success($message);
         return App::redirect($redirect);
     }
     return App::response()->json(compact('status', 'message'));
 }
 /**
  * Method to get the system information
  *
  * @return string[]
  */
 public function get()
 {
     $server = new ServerBag($GLOBALS['_SERVER']);
     $info = [];
     $info['php'] = php_uname();
     if ($pdo = App::db()->getWrappedConnection() and $pdo instanceof PDOConnection) {
         $info['dbdriver'] = $pdo->getAttribute(\PDO::ATTR_DRIVER_NAME);
         $info['dbversion'] = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);
         $info['dbclient'] = $pdo->getAttribute(\PDO::ATTR_CLIENT_VERSION);
     }
     $info['phpversion'] = phpversion();
     $info['server'] = $server->get('SERVER_SOFTWARE', getenv('SERVER_SOFTWARE'));
     $info['sapi_name'] = php_sapi_name();
     $info['version'] = App::version();
     $info['useragent'] = $server->get('HTTP_USER_AGENT');
     $info['extensions'] = implode(", ", get_loaded_extensions());
     $info['directories'] = $this->getDirectories();
     return $info;
 }
Beispiel #4
0
<?php

use Pagekit\Application as App;
use Pagekit\Application\Console\Application as Console;
use Pagekit\Module\Loader\AutoLoader;
use Pagekit\Module\Loader\ConfigLoader;
$loader = (require $path . '/autoload.php');
$app = new App($config);
$app['autoloader'] = $loader;
$app['module']->register(['packages/*/*/index.php', 'app/modules/*/index.php', 'app/installer/index.php', 'app/system/index.php', 'app/console/index.php'], $path);
$app['module']->addLoader(new AutoLoader($app['autoloader']));
$app['module']->addLoader(new ConfigLoader(require $path . '/app/system/config.php'));
if ($app['config.file']) {
    $app['module']->addLoader(new ConfigLoader(require $app['config.file']));
    $app['module']->load('system');
}
$app['module']->load('console');
$console = new Console($app, 'Rimbo', $app->version());
$console->run();
 /**
  * @Route("/", methods="GET")
  */
 public function indexAction()
 {
     return ['$view' => ['title' => __('Dashboard'), 'name' => 'system/dashboard:views/index.php'], '$data' => ['widgets' => array_values($this->dashboard->getWidgets()), 'api' => App::get('system.api'), 'version' => App::version(), 'channel' => 'stable']];
 }
Beispiel #6
0
 public function indexAction()
 {
     return ['$view' => ['title' => __('Update'), 'name' => 'installer:views/update.php'], '$data' => ['api' => App::get('system.api'), 'version' => App::version(), 'channel' => 'stable']];
 }
Beispiel #7
0
 /**
  * @Request({"config": "array", "option": "array", "user": "******"})
  */
 public function installAction($config = [], $option = [], $user = [])
 {
     $status = $this->checkAction($config);
     $message = $status['message'];
     $status = $status['status'];
     try {
         if ('no-connection' == $status) {
             App::abort(400, __('No database connection.'));
         }
         if ('tables-exist' == $status) {
             App::abort(400, $message);
         }
         $scripts = new PackageScripts(App::path() . '/app/system/scripts.php');
         $scripts->install();
         App::db()->insert('@system_user', ['name' => $user['username'], 'username' => $user['username'], 'password' => App::get('auth.password')->hash($user['password']), 'status' => 1, 'email' => $user['email'], 'registered' => date('Y-m-d H:i:s'), 'roles' => '2,3']);
         $option['system']['version'] = App::version();
         $option['system']['extensions'] = ['blog'];
         $option['system']['site']['theme'] = 'theme-one';
         foreach ($option as $name => $values) {
             App::config()->set($name, App::config($name)->merge($values));
         }
         if ($this->packages) {
             $installer = new PackageManager(new NullOutput());
             $installer->install($this->packages);
         }
         if (file_exists(__DIR__ . '/../../install.php')) {
             require_once __DIR__ . '/../../install.php';
         }
         if (!$this->config) {
             $configuration = new Config();
             $configuration->set('application.debug', false);
             foreach ($config as $key => $value) {
                 $configuration->set($key, $value);
             }
             $configuration->set('system.secret', App::get('auth.random')->generateString(64));
             if (!file_put_contents($this->configFile, $configuration->dump())) {
                 $status = 'write-failed';
                 App::abort(400, __('Can\'t write config.'));
             }
         }
         App::module('system/cache')->clearCache();
         $status = 'success';
     } catch (DBALException $e) {
         $status = 'db-sql-failed';
         $message = __('Database error: %error%', ['%error%' => $e->getMessage()]);
     } catch (\Exception $e) {
         $message = $e->getMessage();
     }
     return ['status' => $status, 'message' => $message];
 }
Beispiel #8
0
<?php

use Pagekit\Application as App;
use Pagekit\Application\Console\Application as Console;
use Pagekit\Module\Loader\AutoLoader;
use Pagekit\Module\Loader\ConfigLoader;
$loader = (require $path . '/autoload.php');
$app = new App($config);
$app['autoloader'] = $loader;
$app['module']->register(['packages/*/*/index.php', 'app/modules/*/index.php', 'app/installer/index.php', 'app/system/index.php', 'app/console/index.php'], $path);
$app['module']->addLoader(new AutoLoader($app['autoloader']));
$app['module']->addLoader(new ConfigLoader(require $path . '/app/system/config.php'));
if ($app['config.file']) {
    $app['module']->addLoader(new ConfigLoader(require $app['config.file']));
    $app['module']->load('system');
}
$app['module']->load('console');
$console = new Console($app, 'Pagekit', $app->version());
$console->run();