Example #1
0
 protected function setUpModel(\Illuminate\Http\Request $request)
 {
     $uri = $request->route()->uri();
     $modelSlug = strpos($uri, '/') ? substr($uri, 0, strpos($uri, '/')) : $uri;
     $modelName = ucfirst(camel_case(str_singular($modelSlug)));
     $modules = new \Ormic\Modules();
     $module = $modules->getModuleOfModel($modelName);
     if ($module) {
         $modelClass = 'Ormic\\modules\\' . $module . '\\Model\\' . $modelName;
         $viewName = snake_case($module) . '::' . snake_case($modelName) . '.' . $this->currentAction;
     } else {
         $modelClass = 'Ormic\\Model\\' . $modelName;
         $viewName = snake_case($modelName) . '.' . $this->currentAction;
     }
     $this->model = new $modelClass();
     $this->model->setUser($this->user);
     try {
         $this->view = view($viewName);
     } catch (\InvalidArgumentException $ex) {
         try {
             $this->view = view('models.' . $this->currentAction);
         } catch (\InvalidArgumentException $ex) {
             // Still no view; give up.
             $this->view = view();
         }
     }
     $this->view->title = ucwords(str_replace('-', ' ', $modelSlug));
     $this->view->modelSlug = $modelSlug;
     $this->view->columns = $this->model->getColumns();
     $this->view->record = $this->model;
 }
Example #2
0
 private function getMenu()
 {
     $out = array();
     $modules = new \Ormic\Modules();
     foreach ($modules->files('resources/menu.php') as $menuFile) {
         $menu = (include $menuFile);
         $out = array_merge($out, $menu);
     }
     return $out;
 }
Example #3
0
 /**
  * Define the routes for the application.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function map(Router $router)
 {
     // Module routes.
     $modules = new \Ormic\Modules();
     foreach ($modules->getAll() as $mod) {
         require app_path() . '/../' . $mod . '/Http/routes.php';
     }
     // Core application routes.
     $router->group(['namespace' => $this->namespace], function ($router) {
         require app_path('Http/routes.php');
     });
 }
Example #4
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $this->call('down');
     $this->info("Upgrading core application.");
     $this->call('migrate');
     $modules = new \Ormic\Modules();
     foreach ($modules->getAll() as $name => $path) {
         $this->info("Upgrading {$name} module.");
         $dbPath = $path . '/database/migrations';
         $this->call('migrate', array('--path' => $dbPath));
     }
     $this->call('up');
 }
Example #5
0
 /**
  * Register any application services.
  *
  * This service provider is a great spot to register your various container
  * bindings with the application. As you can see, we are registering our
  * "Registrar" implementation here. You can add your own bindings too!
  *
  * @return void
  */
 public function register()
 {
     $this->app->bind('Illuminate\\Contracts\\Auth\\Registrar', 'Ormic\\Services\\Registrar');
     $modules = new \Ormic\Modules();
     foreach ($modules->getAll() as $name => $path) {
         $modServiceProvider = 'Ormic\\modules\\' . $name . '\\Providers\\' . studly_case($name) . 'ServiceProvider';
         if (class_exists($modServiceProvider)) {
             $this->app->register($modServiceProvider);
         }
         $viewDir = app_path() . '/../' . $path . '/resources/views';
         $this->loadViewsFrom($viewDir, snake_case($name));
     }
 }
Example #6
0
 public function __construct(Application $app, Dispatcher $events)
 {
     parent::__construct($app, $events);
     $fs = new Filesystem();
     $modules = new \Ormic\Modules();
     foreach ($modules->getAll() as $name => $path) {
         $commandsDir = app_path() . '/../' . $path . '/Console/Commands';
         $commandFiles = $fs->files($commandsDir);
         foreach ($commandFiles as $commandFile) {
             $command = substr(basename($commandFile), 0, -4);
             $this->commands[] = "Ormic\\modules\\{$name}\\Console\\Commands\\{$command}";
         }
     }
 }
Example #7
0
 /**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher  $events
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     // Register an observer on each model.
     $modules = new \Ormic\Modules();
     foreach ($modules->getModels(true) as $class => $model) {
         if (class_exists($class)) {
             $classInfo = new \ReflectionClass($class);
             if (!$classInfo->isAbstract() && $classInfo->isSubclassOf('Ormic\\Model\\Base')) {
                 $class::observe(new \Ormic\Observers\Datalog());
             }
         }
     }
 }
Example #8
0
<?php

Route::get('', 'Http\\Controllers\\HomeController@index');
// Users
Route::get('login', 'Http\\Controllers\\UsersController@getLogin');
Route::post('login', 'Http\\Controllers\\UsersController@postLogin');
Route::get('logout', 'Http\\Controllers\\UsersController@getLogout');
Route::get('register', 'Http\\Controllers\\UsersController@getRegister');
Route::post('register', 'Http\\Controllers\\UsersController@postRegister');
Route::get('admin/users', 'Http\\Controllers\\UsersController@admin');
/**
 * Module module routes.
 */
$mods = new \Ormic\Modules();
foreach ($mods->getModels() as $className => $moduleName) {
    // Ignore various model classes.
    if (in_array($className, array('Datalog', 'Column', 'Base'))) {
        continue;
    }
    $plural = str_plural($className);
    if ($moduleName) {
        $controllerClass = 'modules\\' . $moduleName . '\\Http\\Controllers\\' . $plural . 'Controller';
    } else {
        $controllerClass = 'Http\\Controllers\\' . $plural . 'Controller';
    }
    if (!class_exists('Ormic\\' . $controllerClass)) {
        $controllerClass = 'Http\\Controllers\\ModelsController';
    }
    $slug = str_slug(snake_case($plural, ' '));
    Route::get("{$slug}", $controllerClass . '@index');
    Route::get("{$slug}/new", $controllerClass . '@form');