102 lines
5.1 KiB
PHP
Executable File
102 lines
5.1 KiB
PHP
Executable File
<?php
|
|
|
|
use Kernel\Application;
|
|
|
|
return function (Application $app) {
|
|
// Admin Routes
|
|
$app->addRoute('GET', '/admin/modelo', [\Modules\Modelo\Controllers\ModeloController::class, 'index']);
|
|
$app->addRoute('GET', '/admin/modelo/create', [\Modules\Modelo\Controllers\ModeloController::class, 'create']);
|
|
$app->addRoute('POST', '/admin/modelo/store', [\Modules\Modelo\Controllers\ModeloController::class, 'store']);
|
|
$app->addRoute('GET', '/admin/modelo/edit/{id}', [\Modules\Modelo\Controllers\ModeloController::class, 'edit']);
|
|
$app->addRoute('POST', '/admin/modelo/update/{id}', [\Modules\Modelo\Controllers\ModeloController::class, 'update']);
|
|
$app->addRoute('GET', '/admin/modelo/delete/{id}', [\Modules\Modelo\Controllers\ModeloController::class, 'delete']);
|
|
$app->addRoute('GET', '/admin/modelo/manual', [\Modules\Modelo\Controllers\ModeloController::class, 'manual']);
|
|
|
|
// Public Routes
|
|
$app->addRoute('GET', '/modelo', [\Modules\Modelo\Controllers\PublicController::class, 'index']);
|
|
$app->addRoute('GET', '/modelo/{slug}', [\Modules\Modelo\Controllers\PublicController::class, 'show']);
|
|
|
|
// Install/Migrate Route (Temporary)
|
|
$app->addRoute('GET', '/admin/modelo/install', function () {
|
|
try {
|
|
// Create Table
|
|
if (!\Illuminate\Database\Capsule\Manager::schema()->hasTable('modelos')) {
|
|
\Illuminate\Database\Capsule\Manager::schema()->create('modelos', function ($table) {
|
|
$table->increments('modelos_id');
|
|
$table->integer('modelos_bus_id')->default(0)->index();
|
|
$table->string('modelos_title', 255);
|
|
$table->text('modelos_content');
|
|
$table->integer('modelos_order')->default(0);
|
|
$table->boolean('modelos_active')->default(true);
|
|
$table->string('modelos_visibility')->default('public');
|
|
$table->timestamps();
|
|
});
|
|
echo "Table 'modelos' created.<br>";
|
|
} else {
|
|
echo "Table 'modelos' already exists.<br>";
|
|
}
|
|
|
|
// Register Module
|
|
$module = \App\Models\Module::where('modules_name', 'modelo')->first();
|
|
if (!$module) {
|
|
$newModule = \App\Models\Module::create([
|
|
'modules_name' => 'modelo',
|
|
'modules_display_name' => 'Modelo (Template)',
|
|
'modules_description' => 'Módulo modelo para criação de novos módulos',
|
|
'modules_version' => '1.0.0',
|
|
'modules_author' => 'SysCMS Team',
|
|
'modules_ative' => true,
|
|
'modules_public' => true,
|
|
'modules_blocked' => false,
|
|
'modules_dependencies' => [],
|
|
'modules_permissions' => ["modelo.view", "modelo.manage"],
|
|
'modules_settings' => [
|
|
"menu" => [
|
|
"dashboard" => [
|
|
"icon" => "bi bi-box",
|
|
"label" => "Modelo",
|
|
"route" => "admin/modelo",
|
|
"order" => 99,
|
|
"permission" => "modelo.view"
|
|
]
|
|
]
|
|
],
|
|
'modules_path' => 'modules/modelo',
|
|
'modules_namespace' => 'Modules\\Modelo',
|
|
'modules_icon' => 'bi bi-box',
|
|
'menu_side_bar' => true,
|
|
'menu_nav_bar' => false,
|
|
'modules_order' => 99
|
|
]);
|
|
|
|
// Add to companies
|
|
if (\Illuminate\Database\Capsule\Manager::schema()->hasTable('bus')) {
|
|
$companies = \Modules\Company\Models\Company::all();
|
|
foreach ($companies as $company) {
|
|
\Illuminate\Database\Capsule\Manager::table('bus_modules')->insert([
|
|
'bus_modules_bus_id' => $company->bus_id,
|
|
'bus_modules_module_id' => $newModule->modules_id,
|
|
'bus_modules_is_enabled' => true,
|
|
'bus_modules_settings' => json_encode([]),
|
|
'bus_modules_enabled_by' => 1,
|
|
'bus_modules_enabled_at' => date('Y-m-d H:i:s'),
|
|
'bus_modules_show_public_nav' => true,
|
|
'bus_modules_show_dashboard_nav' => true,
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
]);
|
|
}
|
|
}
|
|
|
|
echo "Module 'modelo' registered.<br>";
|
|
} else {
|
|
echo "Module 'modelo' already registered.<br>";
|
|
}
|
|
|
|
echo "Installation completed. <a href='/admin/dashboard'>Go to Dashboard</a>";
|
|
} catch (\Exception $e) {
|
|
echo "Error: " . $e->getMessage() . " <a href='/admin/dashboard'>Go to Dashboard</a>";
|
|
}
|
|
});
|
|
};
|