migrations/Version20220215091357.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20220215091357 extends AbstractMigration
  10. {
  11.     public $language_code "pt";
  12.     public $menu_name "Side Menu";
  13.     public $menu_machinename "side_menu";
  14.     public $menu_skin_name "Side Menu Skin";
  15.     public $menu_skin_machinename "side_menu_skin";
  16.     public function getDescription(): string
  17.     {
  18.         return '';
  19.     }
  20.     public function up(Schema $schema): void
  21.     {
  22.         $name_withLanguageCode $this->menu_name " - " strtoupper($this->language_code);
  23.         // query to get "menus" content type id and set variable
  24.         $this->addSql("
  25.             SET @contenttype_menu_id = (SELECT `id` FROM `std_content_types` WHERE `machine_name` = 'menus');
  26.             INSERT IGNORE INTO `std_content_types_skins` 
  27.                 (`content_type_id`, `machine_name`, `name`,  `is_active`, `created_by`, `created_date`, `updated_by`, `updated_date`) 
  28.                 VALUES 
  29.                 (@contenttype_menu_id, '$this->menu_machinename', '$this->menu_name', 1, 1, now(), 1, now())
  30.         ");
  31.         $this->addSql("
  32.             INSERT IGNORE INTO `std_pages` 
  33.                 (`template_id`, `created_by`, `updated_by`, `content_type`, `is_active`, `created_date`, `updated_date`, `order_value`, `publish_date`, `expire_date`, `name`) 
  34.                 VALUES 
  35.                 (NULL, 1, 1, @contenttype_menu_id, 1, NOW(), NOW(), NULL, NOW(), NULL, '$name_withLanguageCode')
  36.         ");
  37.         $this->addSql("
  38.             SET @page_menu_id = LAST_INSERT_ID()
  39.         ");
  40.         $this->addSql("
  41.             INSERT IGNORE INTO `std_pages_content` 
  42.                 (`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`) 
  43.                 VALUES 
  44.                 (@page_menu_id, '$this->language_code', 1, 1, 1, NOW(), NOW(), '$name_withLanguageCode', '', '', '', '', '', '', '', '', '', '', '','', '[]')
  45.         ");
  46.         $this->addSql("
  47.             INSERT IGNORE INTO `std_pages_pages` 
  48.                 (`id`, `page_id`, `relation_id`, `order_value`, `content_type`) 
  49.                 VALUES 
  50.                 (NULL, @page_menu_id, 0, 1, @contenttype_menu_id)
  51.         ");
  52.         $this->addSql("
  53.             SET @pages_pages_id = LAST_INSERT_ID()
  54.         ");
  55.         $this->addSql("
  56.             SET @order_value = (SELECT MAX(`order_value`) FROM `std_config` WHERE `parent_name` = 'Menus') + 1
  57.         ");
  58.         $this->addSql("
  59.             INSERT IGNORE INTO `std_config` 
  60.                 (`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`) 
  61.                 VALUES 
  62.                 ('$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')
  63.         ");
  64.         $this->addSql("
  65.             SET @order_value = (SELECT MAX(`order_value`) FROM `std_config` WHERE `parent_name` = 'Menus') + 1
  66.         ");
  67.         $this->addSql("
  68.             INSERT IGNORE INTO `std_config` 
  69.                 (`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`) 
  70.                 VALUES 
  71.                 ('$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')
  72.         ");
  73.     }
  74.     public function down(Schema $schema): void
  75.     {
  76.         $name_withLanguageCode $this->menu_name " - " strtoupper($this->language_code);
  77.         $this->addSql("
  78.             DELETE FROM `std_config` WHERE `machine_name` = '$this->menu_machinename' AND `language_code` = '$this->language_code';
  79.         ");
  80.         $this->addSql("
  81.             DELETE FROM `std_config` WHERE `machine_name` = '$this->menu_skin_machinename' AND `language_code` = '$this->language_code';
  82.         ");
  83.         $this->addSql("
  84.             SET @page_menu_id = (SELECT `id` FROM `std_pages` WHERE `name` = '$name_withLanguageCode');
  85.         ");
  86.         $this->addSql("
  87.             DELETE FROM `std_pages_pages` WHERE `page_id` = @page_menu_id;
  88.         ");
  89.         $this->addSql("
  90.             DELETE FROM `std_pages_content` WHERE `title` = '$name_withLanguageCode';
  91.         ");
  92.         $this->addSql("
  93.             DELETE FROM `std_pages` WHERE `id` = @page_menu_id;
  94.         ");
  95.         $this->addSql("
  96.             DELETE FROM `std_content_types_skins` WHERE `machine_name` = '$this->menu_machinename';
  97.         ");
  98.     }
  99. }