First Commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
|
||||
class CreatePageBuilderTables
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// Pages
|
||||
if (!Capsule::schema()->hasTable('pages')) {
|
||||
Capsule::schema()->create('pages', function (Blueprint $table) {
|
||||
$table->increments('pages_id');
|
||||
$table->string('pages_title');
|
||||
$table->string('pages_slug')->unique();
|
||||
$table->longText('pages_content')->nullable();
|
||||
$table->string('pages_meta_title')->nullable();
|
||||
$table->text('pages_meta_description')->nullable();
|
||||
$table->text('pages_meta_keywords')->nullable();
|
||||
$table->boolean('pages_is_published')->default(false);
|
||||
$table->boolean('pages_public')->default(true);
|
||||
$table->timestamp('pages_published_at')->nullable();
|
||||
$table->string('pages_theme')->nullable()->index(); // Alterado de pages_theme_id para pages_theme (slug)
|
||||
$table->string('pages_layout')->default('default');
|
||||
$table->string('pages_css_classes')->nullable();
|
||||
$table->text('pages_custom_css')->nullable();
|
||||
$table->text('pages_custom_js')->nullable();
|
||||
$table->integer('pages_created_by')->unsigned()->nullable();
|
||||
$table->integer('pages_updated_by')->unsigned()->nullable();
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Capsule::schema()->dropIfExists('pages');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||
use App\Models\Module;
|
||||
use Modules\Company\Models\Company;
|
||||
|
||||
class InsertPageBuilderModule
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$moduleData = [
|
||||
'modules_name' => 'pagebuilder',
|
||||
'modules_display_name' => 'Page Builder',
|
||||
'modules_description' => 'Sistema construtor de páginas para gerenciar conteúdo público e temas',
|
||||
'modules_version' => '1.0.0',
|
||||
'modules_author' => 'SysCMS Team',
|
||||
'modules_ative' => true,
|
||||
'modules_public' => true,
|
||||
'modules_blocked' => false,
|
||||
'modules_dependencies' => [],
|
||||
'modules_permissions' => [
|
||||
"pagebuilder.view",
|
||||
"pagebuilder.create",
|
||||
"pagebuilder.edit",
|
||||
"pagebuilder.delete",
|
||||
"pagebuilder.publish",
|
||||
"pagebuilder.themes.manage",
|
||||
"pagebuilder.themes.activate"
|
||||
],
|
||||
'modules_settings' => [
|
||||
"enable_pagebuilder" => [
|
||||
"type" => "boolean",
|
||||
"default" => true,
|
||||
"description" => "Habilitar o módulo construtor de páginas"
|
||||
],
|
||||
"enable_admin_pages" => [
|
||||
"type" => "boolean",
|
||||
"default" => true,
|
||||
"description" => "Habilitar administração de páginas no dashboard"
|
||||
],
|
||||
"default_theme" => [
|
||||
"type" => "string",
|
||||
"default" => "default",
|
||||
"description" => "Tema padrão para novas páginas"
|
||||
],
|
||||
"enable_animations" => [
|
||||
"type" => "boolean",
|
||||
"default" => true,
|
||||
"description" => "Habilitar animações de rolagem nas páginas"
|
||||
]
|
||||
],
|
||||
'modules_path' => 'modules/pagebuilder',
|
||||
'modules_namespace' => 'Modules\\PageBuilder',
|
||||
'modules_icon' => 'bi bi-file-earmark-richtext',
|
||||
'menu_side_bar' => true,
|
||||
'menu_nav_bar' => false,
|
||||
'modules_order' => 5,
|
||||
'modules_install_date' => date('Y-m-d H:i:s'),
|
||||
'modules_update_date' => date('Y-m-d H:i:s')
|
||||
];
|
||||
|
||||
$existingModule = Module::where('modules_name', 'pagebuilder')->first();
|
||||
|
||||
if (!$existingModule) {
|
||||
$module = Module::create($moduleData);
|
||||
|
||||
if (Capsule::schema()->hasTable('bus')) {
|
||||
$companies = Company::all();
|
||||
foreach ($companies as $company) {
|
||||
$exists = Capsule::table('bus_modules')
|
||||
->where('bus_modules_bus_id', $company->bus_id)
|
||||
->where('bus_modules_module_id', $module->modules_id)
|
||||
->exists();
|
||||
|
||||
if (!$exists) {
|
||||
Capsule::table('bus_modules')->insert([
|
||||
'bus_modules_bus_id' => $company->bus_id,
|
||||
'bus_modules_module_id' => $module->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')
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$module = Module::where('modules_name', 'pagebuilder')->first();
|
||||
if ($module) {
|
||||
Capsule::table('bus_modules')->where('bus_modules_module_id', $module->modules_id)->delete();
|
||||
$module->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user