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; }
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; }
/** * 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'); }); }
/** * 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'); }
/** * 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)); } }
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}"; } } }
/** * 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()); } } } }
<?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');