<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220215091357 extends AbstractMigration
{
public $language_code = "pt";
public $menu_name = "Side Menu";
public $menu_machinename = "side_menu";
public $menu_skin_name = "Side Menu Skin";
public $menu_skin_machinename = "side_menu_skin";
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
$name_withLanguageCode = $this->menu_name . " - " . strtoupper($this->language_code);
// query to get "menus" content type id and set variable
$this->addSql("
SET @contenttype_menu_id = (SELECT `id` FROM `std_content_types` WHERE `machine_name` = 'menus');
INSERT IGNORE INTO `std_content_types_skins`
(`content_type_id`, `machine_name`, `name`, `is_active`, `created_by`, `created_date`, `updated_by`, `updated_date`)
VALUES
(@contenttype_menu_id, '$this->menu_machinename', '$this->menu_name', 1, 1, now(), 1, now())
");
$this->addSql("
INSERT IGNORE INTO `std_pages`
(`template_id`, `created_by`, `updated_by`, `content_type`, `is_active`, `created_date`, `updated_date`, `order_value`, `publish_date`, `expire_date`, `name`)
VALUES
(NULL, 1, 1, @contenttype_menu_id, 1, NOW(), NOW(), NULL, NOW(), NULL, '$name_withLanguageCode')
");
$this->addSql("
SET @page_menu_id = LAST_INSERT_ID()
");
$this->addSql("
INSERT IGNORE INTO `std_pages_content`
(`page_id`, `language_code`, `created_by`, `updated_by`, `is_active`, `created_date`, `updated_date`, `title`, `url`, `canonical_url`, `meta_title`, `meta_keywords`, `meta_description`, `og_title`, `og_image`, `og_description`, `og_url`, `scripts_head`, `scripts_body`, `scripts_footer`, `content`)
VALUES
(@page_menu_id, '$this->language_code', 1, 1, 1, NOW(), NOW(), '$name_withLanguageCode', '', '', '', '', '', '', '', '', '', '', '','', '[]')
");
$this->addSql("
INSERT IGNORE INTO `std_pages_pages`
(`id`, `page_id`, `relation_id`, `order_value`, `content_type`)
VALUES
(NULL, @page_menu_id, 0, 1, @contenttype_menu_id)
");
$this->addSql("
SET @pages_pages_id = LAST_INSERT_ID()
");
$this->addSql("
SET @order_value = (SELECT MAX(`order_value`) FROM `std_config` WHERE `parent_name` = 'Menus') + 1
");
$this->addSql("
INSERT IGNORE INTO `std_config`
(`machine_name`, `created_by`, `updated_by`, `value`, `description_machine_name`, `details_machine_name`, `parent_name`, `variable_type`, `order_value`, `is_hidden`, `is_active`, `created_date`, `updated_date`, `label`, `content`, `language_code`)
VALUES
('$this->menu_machinename', 1, 1, @pages_pages_id, '$this->menu_machinename', '$this->menu_machinename', 'Menus', 'SELECT', @order_value, 0, 1, now(), now(), '$this->menu_name', '{\"query\": \"select sp.name as label,spp.id as id from std_pages sp LEFT OUTER JOIN std_pages_pages spp ON sp.id = spp.page_id LEFT OUTER JOIN std_content_types sct ON sp.content_type = sct.id inner join std_pages_content spc on sp.id=spc.page_id and spc.language_code=\'$this->language_code\' where sct.machine_name LIKE \'menus\' AND spp.relation_id = 0\"}', '$this->language_code')
");
$this->addSql("
SET @order_value = (SELECT MAX(`order_value`) FROM `std_config` WHERE `parent_name` = 'Menus') + 1
");
$this->addSql("
INSERT IGNORE INTO `std_config`
(`machine_name`, `created_by`, `updated_by`, `value`, `description_machine_name`, `details_machine_name`, `parent_name`, `variable_type`, `order_value`, `is_hidden`, `is_active`, `created_date`, `updated_date`, `label`, `content`, `language_code`)
VALUES
('$this->menu_skin_machinename', 1, 1, '$this->menu_machinename', '$this->menu_skin_machinename', '$this->menu_skin_machinename', 'Menus', 'SELECT', @order_value, 0, 1, now(), now(), '$this->menu_skin_name', '{\"query\": \"select scts.name as label,scts.machine_name as id from std_content_types_skins scts LEFT OUTER JOIN std_content_types sct ON scts.content_type_id = sct.id WHERE sct.machine_name LIKE \'menus\'\"}', '$this->language_code')
");
}
public function down(Schema $schema): void
{
$name_withLanguageCode = $this->menu_name . " - " . strtoupper($this->language_code);
$this->addSql("
DELETE FROM `std_config` WHERE `machine_name` = '$this->menu_machinename' AND `language_code` = '$this->language_code';
");
$this->addSql("
DELETE FROM `std_config` WHERE `machine_name` = '$this->menu_skin_machinename' AND `language_code` = '$this->language_code';
");
$this->addSql("
SET @page_menu_id = (SELECT `id` FROM `std_pages` WHERE `name` = '$name_withLanguageCode');
");
$this->addSql("
DELETE FROM `std_pages_pages` WHERE `page_id` = @page_menu_id;
");
$this->addSql("
DELETE FROM `std_pages_content` WHERE `title` = '$name_withLanguageCode';
");
$this->addSql("
DELETE FROM `std_pages` WHERE `id` = @page_menu_id;
");
$this->addSql("
DELETE FROM `std_content_types_skins` WHERE `machine_name` = '$this->menu_machinename';
");
}
}