public function up()
 {
     $menu = \app\backend\models\BackendMenu::findOne(['name' => 'Shop']);
     if (!is_null($menu)) {
         $this->insert(\app\backend\models\BackendMenu::tableName(), ['parent_id' => $menu->id, 'name' => 'Discounts', 'route' => '/shop/backend-discount/index', 'icon' => 'shekel', 'sort_order' => '10', 'added_by_ext' => 'core', 'rbac_check' => 'shop manage', 'css_class' => '', 'translation_category' => 'app']);
     }
 }
 public function down()
 {
     $errorMonitor = BackendMenu::findOne(['name' => 'Error monitoring']);
     $this->batchInsert(BackendMenu::tableName(), ['parent_id', 'name', 'route', 'icon', 'added_by_ext', 'rbac_check'], [[$errorMonitor->id, 'Monitor', 'backend/error-monitor/index', 'flash', 'core', 'setting manage'], [$errorMonitor->id, 'Config', 'backend/error-monitor/config', 'gear', 'core', 'setting manage']]);
     $errorMonitor->route = '';
     $errorMonitor->save();
 }
 public function up()
 {
     $shop = \app\backend\models\BackendMenu::findOne(['name' => 'Shop']);
     if (!is_null($shop)) {
         $item = new \app\backend\models\BackendMenu();
         $item->attributes = ['parent_id' => $shop->id, 'name' => 'Categories groups', 'route' => 'backend/category-group/index', 'icon' => 'tag', 'sort_order' => 0, 'added_by_ext' => 'core', 'rbac_check' => 'category manage', 'css_class' => '', 'translation_category' => 'shop'];
         $item->save();
     }
 }
 public function down()
 {
     $parent = BackendMenu::findOne(['parent_id' => 1, 'name' => 'Reviews']);
     foreach ($parent->children as $child) {
         /** @var $child BackendMenu */
         $child->delete();
     }
     $parent->route = 'backend/review/index';
     $parent->save(true, ['route']);
 }
 public function actionIndex($parent_id = 1)
 {
     $searchModel = new BackendMenu();
     $searchModel->parent_id = $parent_id;
     $params = Yii::$app->request->get();
     $dataProvider = $searchModel->search($params);
     $model = null;
     if ($parent_id > 0) {
         $model = BackendMenu::findOne($parent_id);
     }
     return $this->render('index', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel, 'model' => $model]);
 }
 public function up()
 {
     $tableOptions = $this->db->driverName === 'mysql' ? 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB' : null;
     $tblMenu = \app\backend\models\BackendMenu::tableName();
     $ordersMenuItem = \app\backend\models\BackendMenu::findOne(['name' => 'Orders', 'route' => 'shop/backend-order/index']);
     /** @var \app\backend\models\BackendMenu $ordersMenuItem */
     if (null === $ordersMenuItem) {
         echo 'Where is the Orders menu item?';
         return false;
     }
     $this->batchInsert($tblMenu, ['parent_id', 'name', 'route', 'icon', 'sort_order', 'added_by_ext', 'rbac_check', 'css_class', 'translation_category'], [[$ordersMenuItem->id, 'Orders', '/shop/backend-order/index', 'list-alt', 0, 'shop', 'order manage', '', 'app'], [$ordersMenuItem->id, 'Customers', '/shop/backend-customer/index', 'user', 1, 'shop', 'order manage', '', 'app'], [$ordersMenuItem->id, 'Contragents', '/shop/backend-contragent/index', 'user', 2, 'shop', 'order manage', '', 'app']]);
 }
 public function up()
 {
     $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
     $this->createTable(Measure::tableName(), ['id' => 'INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT', 'name' => 'VARCHAR(255) NOT NULL', 'symbol' => 'VARCHAR(255) NOT NULL', 'nominal' => 'FLOAT NOT NULL'], $tableOptions);
     $this->insert(Measure::tableName(), ['name' => Yii::t('app', 'Pieces'), 'symbol' => Yii::t('app', 'pcs'), 'nominal' => 1]);
     $this->addColumn(Product::tableName(), 'measure_id', 'INT UNSIGNED NOT NULL');
     $this->update(Product::tableName(), ['measure_id' => $this->db->lastInsertID]);
     /** @var BackendMenu $menu */
     $menu = BackendMenu::findOne(['name' => 'Shop']);
     if (!is_null($menu)) {
         $this->insert(BackendMenu::tableName(), ['parent_id' => $menu->id, 'name' => 'Measures', 'route' => '/shop/backend-measure/index', 'icon' => 'calculator', 'sort_order' => '9', 'added_by_ext' => 'core', 'rbac_check' => 'shop manage', 'css_class' => '', 'translation_category' => 'app']);
     }
 }
 public function up()
 {
     $tblMenu = '{{%backend_menu}}';
     $settingsMenuItem = \app\backend\models\BackendMenu::findOne(['name' => 'Settings']);
     /** @var \app\backend\models\BackendMenu $settingsMenuItem */
     if (null === $settingsMenuItem) {
         echo 'Where is the Settings menu item?';
         return false;
     }
     $this->batchInsert($tblMenu, ['parent_id', 'name', 'route', 'icon', 'sort_order', 'added_by_ext', 'rbac_check', 'css_class', 'translation_category'], [[$settingsMenuItem->id, 'Extensions', 'core/backend-extensions/index', 'puzzle-piece', 0, 'core', 'setting manage', '', 'app']]);
     \yii\caching\TagDependency::invalidate(Yii::$app->cache, [\devgroup\TagDependencyHelper\ActiveRecordHelper::getCommonTag(\app\backend\models\BackendMenu::className())]);
     return true;
 }
 public function up()
 {
     $tableOptions = $this->db->driverName === 'mysql' ? 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=MyISAM' : null;
     $this->insert('{{%object}}', ['name' => 'Addon', 'object_class' => Addon::className(), 'object_table_name' => Yii::$app->db->schema->getRawTableName(Addon::tableName()), 'column_properties_table_name' => Yii::$app->db->schema->getRawTableName('{{%addon_property}}'), 'eav_table_name' => Yii::$app->db->schema->getRawTableName('{{%addon_eav}}'), 'categories_table_name' => Yii::$app->db->schema->getRawTableName('{{%addon_category}}'), 'link_slug_category' => Yii::$app->db->schema->getRawTableName('{{%addon_category_full_slug}}'), 'link_slug_static_value' => Yii::$app->db->schema->getRawTableName('{{%addon_static_value_category}}'), 'object_slug_attribute' => 'slug']);
     $this->createTable('{{%addon}}', ['id' => $this->primaryKey(), 'name' => $this->text()->notNull(), 'price' => $this->float()->notNull()->defaultValue(0), 'currency_id' => $this->integer()->notNull()->defaultValue(0), 'price_is_multiplier' => $this->boolean()->notNull()->defaultValue(0), 'is_product_id' => $this->integer()->notNull()->defaultValue(0), 'add_to_order' => $this->boolean()->notNull()->defaultValue(0), 'addon_category_id' => $this->integer()->notNull(), 'can_change_quantity' => $this->boolean()->notNull()->defaultValue(0), 'measure_id' => $this->integer()->notNull()->defaultValue(1)], $tableOptions);
     $this->createIndex('by_category', '{{%addon}}', ['addon_category_id']);
     if ($this->db->driverName === 'mysql') {
         // add fulltext index in mysql for name column :-)
         $this->execute("ALTER TABLE {{%addon}} ADD FULLTEXT(`name`)");
     }
     $this->createTable('{{%addon_category}}', ['id' => $this->primaryKey(), 'name' => $this->text()->notNull()]);
     // real bindings of addons to objects
     $this->createTable('{{%addon_bindings}}', ['id' => $this->primaryKey(), 'addon_id' => $this->integer()->notNull(), 'appliance_object_id' => $this->integer()->notNull(), 'object_model_id' => $this->integer()->notNull(), 'sort_order' => $this->integer()->notNull()->defaultValue(0)], $tableOptions);
     $this->createIndex('addons4object', '{{%addon_bindings}}', ['appliance_object_id', 'object_model_id']);
     $this->addColumn('{{%order_item}}', 'addon_id', $this->integer()->notNull()->defaultValue(0));
     $tblMenu = '{{%backend_menu}}';
     /** @var BackendMenu $shopMenuItem */
     $shopMenuItem = BackendMenu::findOne(['name' => 'Shop']);
     $this->batchInsert($tblMenu, ['parent_id', 'name', 'route', 'icon', 'sort_order', 'added_by_ext', 'rbac_check', 'css_class', 'translation_category'], [[$shopMenuItem->id, 'Addons', 'shop/backend-addons/index', 'cart-plus', 0, 'core', 'product manage', '', 'app']]);
     \yii\caching\TagDependency::invalidate(Yii::$app->cache, [\devgroup\TagDependencyHelper\ActiveRecordHelper::getCommonTag(\app\backend\models\BackendMenu::className())]);
 }
 public function up()
 {
     $shopMenuItem = BackendMenu::findOne(['name' => 'Settings']);
     $this->insert(BackendMenu::tableName(), ['parent_id' => $shopMenuItem->id, 'name' => 'Google Merchants', 'route' => '/shop/backend-google-feed/settings', 'icon' => 'google', 'sort_order' => '0', 'added_by_ext' => 'core', 'rbac_check' => 'content manage', 'css_class' => Null, 'translation_category' => 'app']);
 }
 public function down()
 {
     $data = BackendMenu::findOne(['name' => 'Data']);
     $data->route = '/data/file/index';
     $data->save();
 }
 public function up()
 {
     $shopMenuItem = BackendMenu::findOne(['name' => 'Settings']);
     $this->insert(BackendMenu::tableName(), ['parent_id' => $shopMenuItem->id, 'name' => 'Wysiwyg editors', 'route' => '/core/backend-wysiwyg/index', 'icon' => 'pencil-square-o', 'sort_order' => '0', 'added_by_ext' => 'core', 'rbac_check' => 'content manage', 'css_class' => Null, 'translation_category' => 'app']);
 }