LippertComponents /
Blend
| 1 | <?php |
||||
| 2 | |||||
| 3 | /** |
||||
| 4 | * Auto Generated from Blender |
||||
| 5 | * Date: 2017/11/10 at 15:29:37 EST -05:00 |
||||
| 6 | */ |
||||
| 7 | |||||
| 8 | use \LCI\Blend\Migrations; |
||||
| 9 | |||||
| 10 | class InstallBlender extends Migrations |
||||
| 11 | { |
||||
| 12 | /** @var array */ |
||||
| 13 | protected $blender_table_classes = [ |
||||
| 14 | 'BlendMigrations' |
||||
| 15 | ]; |
||||
| 16 | |||||
| 17 | /** @var array */ |
||||
| 18 | protected $blender_events = [ |
||||
| 19 | 'OnBlendBeforeSave', |
||||
| 20 | 'OnBlendAfterSave', |
||||
| 21 | 'OnBlendSeed', |
||||
| 22 | 'OnBlendLoadRelatedData', |
||||
| 23 | 'OnBlendSeedSystemSettings' |
||||
| 24 | ]; |
||||
| 25 | |||||
| 26 | protected $empty_settings = [ |
||||
| 27 | 'blend.portable.systemSettings.templates', |
||||
| 28 | 'blend.portable.systemSettings.mediaSources', |
||||
| 29 | 'blend.portable.systemSettings.resources', |
||||
| 30 | |||||
| 31 | 'blend.portable.templateVariables.templates', |
||||
| 32 | 'blend.portable.templateVariables.mediaSources', |
||||
| 33 | 'blend.portable.templateVariables.resources', |
||||
| 34 | ]; |
||||
| 35 | |||||
| 36 | /** |
||||
| 37 | * Run the migrations. |
||||
| 38 | * |
||||
| 39 | * @return void |
||||
| 40 | */ |
||||
| 41 | public function up() |
||||
| 42 | { |
||||
| 43 | // install DB table: |
||||
| 44 | $manager = $this->modx->getManager(); |
||||
| 45 | |||||
| 46 | // the class table object name |
||||
| 47 | $table_class = $this->blender->getBlendClassObject(); |
||||
| 48 | //foreach ($this->blender_table_classes as $table_class) { |
||||
| 49 | if ($manager->createObjectContainer($table_class)) { |
||||
| 50 | $this->blender->out($table_class.' table class has been created'); |
||||
| 51 | |||||
| 52 | } else { |
||||
| 53 | $this->blender->out($table_class.' table class was not created', true); |
||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||
| 54 | } |
||||
| 55 | //} |
||||
| 56 | |||||
| 57 | // install events: |
||||
| 58 | foreach ($this->blender_events as $event_name) { |
||||
| 59 | $this->createSystemEvents($event_name); |
||||
| 60 | } |
||||
| 61 | |||||
| 62 | /** @var \LCI\Blend\Blendable\SystemSetting $systemSetting */ |
||||
| 63 | $systemSetting = $this->blender->getBlendableLoader()->getBlendableSystemSetting('blend.version'); |
||||
| 64 | $systemSetting |
||||
| 65 | ->setSeedsDir($this->getSeedsDir()) |
||||
| 66 | ->setFieldValue($this->blender->getVersion()) |
||||
| 67 | ->setFieldArea('Blend') |
||||
| 68 | ->blend(); |
||||
| 69 | |||||
| 70 | foreach ($this->empty_settings as $key) { |
||||
| 71 | |||||
| 72 | /** @var \LCI\Blend\Blendable\SystemSetting $systemSetting */ |
||||
| 73 | $systemSetting = $this->blender->getBlendableLoader()->getBlendableSystemSetting($key); |
||||
| 74 | $systemSetting |
||||
| 75 | ->setSeedsDir($this->getSeedsDir()) |
||||
| 76 | ->setFieldArea('Blend') |
||||
| 77 | ->blend(); |
||||
| 78 | } |
||||
| 79 | |||||
| 80 | $this->modx->cacheManager->refresh(); |
||||
| 81 | } |
||||
| 82 | |||||
| 83 | /** |
||||
| 84 | * Reverse the migrations. |
||||
| 85 | * |
||||
| 86 | * @return void |
||||
| 87 | */ |
||||
| 88 | public function down() |
||||
| 89 | { |
||||
| 90 | // remove DB Table: |
||||
| 91 | $manager = $this->modx->getManager(); |
||||
| 92 | |||||
| 93 | // the class table object name |
||||
| 94 | $table_class = $this->blender->getBlendClassObject(); |
||||
| 95 | //foreach ($this->blender_table_classes as $table_class) { |
||||
| 96 | if ($manager->removeObjectContainer($table_class)) { |
||||
| 97 | $this->blender->out($table_class.' table class has been dropped'); |
||||
| 98 | |||||
| 99 | } else { |
||||
| 100 | $this->blender->out($table_class.' table class was not dropped', true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type integer expected by parameter $verbose of LCI\Blend\Blender::out().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 101 | } |
||||
| 102 | //} |
||||
| 103 | |||||
| 104 | // remove events: |
||||
| 105 | foreach ($this->blender_events as $event_name) { |
||||
| 106 | $this->removeSystemEvents($event_name); |
||||
| 107 | } |
||||
| 108 | |||||
| 109 | /** @var \LCI\Blend\Blendable\SystemSetting $systemSetting */ |
||||
| 110 | $systemSetting = $this->blender->getBlendableLoader()->getBlendableSystemSetting('blend.version'); |
||||
| 111 | $systemSetting |
||||
| 112 | ->setSeedsDir($this->getSeedsDir()) |
||||
| 113 | ->revertBlend(); |
||||
| 114 | |||||
| 115 | foreach ($this->empty_settings as $key) { |
||||
| 116 | /** @var \LCI\Blend\Blendable\SystemSetting $systemSetting */ |
||||
| 117 | $systemSetting = $this->blender->getBlendableLoader()->getBlendableSystemSetting($key); |
||||
| 118 | $systemSetting |
||||
| 119 | ->setSeedsDir($this->getSeedsDir()) |
||||
| 120 | ->revertBlend(); |
||||
| 121 | } |
||||
| 122 | |||||
| 123 | $this->modx->cacheManager->refresh(); |
||||
| 124 | } |
||||
| 125 | |||||
| 126 | /** |
||||
| 127 | * @param $event_name |
||||
| 128 | */ |
||||
| 129 | protected function createSystemEvents($event_name) |
||||
| 130 | { |
||||
| 131 | $event = $this->modx->getObject('modEvent', ['name' => $event_name]); |
||||
| 132 | if (is_object($event)) { |
||||
| 133 | $this->blender->out($event_name.' event has already been installed', true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type integer expected by parameter $verbose of LCI\Blend\Blender::out().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 134 | } else { |
||||
| 135 | /** @var \modEvent $event */ |
||||
| 136 | $event = $this->modx->newObject('modEvent'); |
||||
| 137 | $event->set('name', $event_name); |
||||
| 138 | $event->set('service', 1); |
||||
| 139 | $event->set('groupname', 'Resources');// ?? |
||||
| 140 | |||||
| 141 | if ($event->save()) { |
||||
| 142 | $this->blender->out($event_name.' event has been installed'); |
||||
| 143 | |||||
| 144 | } else { |
||||
| 145 | $this->blender->out($event_name.' event did not install', true); |
||||
| 146 | } |
||||
| 147 | } |
||||
| 148 | } |
||||
| 149 | |||||
| 150 | /** |
||||
| 151 | * @param $event_name |
||||
| 152 | */ |
||||
| 153 | protected function removeSystemEvents($event_name) |
||||
| 154 | { |
||||
| 155 | $event = $this->modx->getObject('modEvent', ['name' => $event_name]); |
||||
| 156 | if (is_object($event)) { |
||||
| 157 | if ($event->remove()) { |
||||
| 158 | $this->blender->out($event_name . ' event was removed', true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type integer expected by parameter $verbose of LCI\Blend\Blender::out().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 159 | } else { |
||||
| 160 | $this->blender->out($event_name . ' event was not removed', true); |
||||
| 161 | } |
||||
| 162 | } else { |
||||
| 163 | $this->blender->out($event_name . ' event has already been removed', true); |
||||
| 164 | } |
||||
| 165 | } |
||||
| 166 | |||||
| 167 | /** |
||||
| 168 | * Method is called on construct, please fill me in |
||||
| 169 | */ |
||||
| 170 | protected function assignDescription() |
||||
| 171 | { |
||||
| 172 | $this->description = 'Install of Blender'; |
||||
| 173 | } |
||||
| 174 | |||||
| 175 | /** |
||||
| 176 | * Method is called on construct, please fill me in |
||||
| 177 | */ |
||||
| 178 | protected function assignVersion() |
||||
| 179 | { |
||||
| 180 | $this->version = '0.9.0'; |
||||
| 181 | } |
||||
| 182 | |||||
| 183 | /** |
||||
| 184 | * Method is called on construct, can change to only run this migration for those types |
||||
| 185 | */ |
||||
| 186 | protected function assignType() |
||||
| 187 | { |
||||
| 188 | $this->type = 'master'; |
||||
| 189 | } |
||||
| 190 | |||||
| 191 | /** |
||||
| 192 | * Method is called on construct, Child class can override and implement this |
||||
| 193 | */ |
||||
| 194 | protected function assignSeedsDir() |
||||
| 195 | { |
||||
| 196 | $this->seeds_dir = 'InstallBlender'; |
||||
| 197 | } |
||||
| 198 | } |
||||
| 199 |