/** * Create widgets if any */ private function createWidgets() { /** @var GitPackageConfigElementWidget[] $widgets */ $widgets = $this->config->getElements('widgets'); if (count($widgets) > 0) { $this->modx->log(modX::LOG_LEVEL_INFO, 'Creating widgets:'); foreach ($widgets as $widget) { $widgetObject = $this->modx->newObject('modDashboardWidget'); $widgetObject->set('name', $widget->getName()); $widgetObject->set('description', $widget->getDescription()); $widgetObject->set('type', $widget->getWidgetType()); if ($widget->getWidgetType() == 'file') { $widgetContent = $widget->getPackagePath() . '/core/components/' . $this->config->getLowCaseName() . '/' . $widget->getFilePath(); } else { $widgetContent = $widget->getFile(); } $widgetObject->set('content', $widgetContent); $widgetObject->set('namespace', $this->config->getLowCaseName()); $widgetObject->set('lexicon', $widget->getLexicon()); $widgetObject->set('size', $widget->getSize()); $widgetObject->save(); $this->modx->log(modX::LOG_LEVEL_INFO, 'Widget ' . $widget->getName() . ' created.'); } } }
private function addWidgets() { /** @var GitPackageConfigElementWidget[] $widgets */ $widgets = $this->config->getElements('widgets'); foreach ($widgets as $widget) { /** @var modSystemSetting $widgetObject */ $widgetObject = $this->modx->newObject('modDashboardWidget'); $widgetObject->fromArray(array('name' => $widget->getName(), 'description' => $widget->getDescription(), 'type' => $widget->getWidgetType(), 'content' => $widget->getWidgetType() == 'file' ? '[[++core_path]]' . 'components/' . $this->config->getLowCaseName() . '/' . $widget->getFilePath() : $widget->getFile(), 'namespace' => $this->config->getLowCaseName(), 'lexicon' => $widget->getLexicon(), 'size' => $widget->getSize()), '', true, true); $vehicle = $this->builder->createVehicle($widgetObject, 'widget'); $this->builder->putVehicle($vehicle); } }
private function removeTVs() { /** @var GitPackageConfigElementTV[] $tvs */ $tvs = $this->config->getElements('tvs'); if (count($tvs) > 0) { foreach ($tvs as $tv) { /** @var modTemplateVar $tvObject */ $tvObject = $this->modx->getObject('modTemplateVar', array('name' => $tv->getName())); if ($tvObject) { $this->modx->log(modX::LOG_LEVEL_INFO, 'Removing tv ' . $tv->getName()); $tvObject->remove(); } } } }
private function updateWidget() { $notUsedElements = array_keys($this->oldConfig->getElements('widgets')); $notUsedElements = array_flip($notUsedElements); /** @var GitPackageConfigElementWidget $widget */ foreach ($this->newConfig->getElements('widgets') as $name => $widget) { /** @var modDashboardWidget $widgetObject */ $widgetObject = $this->modx->getObject('modDashboardWidget', array('name' => $name)); if (!$widgetObject) { $widgetObject = $this->modx->newObject('modDashboardWidget'); $widgetObject->set('name', $widget->getName()); } $widgetObject->set('description', $widget->getDescription()); $widgetObject->set('type', $widget->getWidgetType()); if ($widget->getWidgetType() == 'file') { $widgetContent = $widget->getPackagePath() . '/core/components/' . $this->newConfig->getLowCaseName() . '/' . $widget->getFilePath(); } else { $widgetContent = $widget->getFile(); } $widgetObject->set('content', $widgetContent); $widgetObject->set('namespace', $this->newConfig->getLowCaseName()); $widgetObject->set('lexicon', $widget->getLexicon()); $widgetObject->set('size', $widget->getSize()); $widgetObject->save(); if (isset($notUsedElements[$name])) { unset($notUsedElements[$name]); } } foreach ($notUsedElements as $name => $value) { /** @var modDashboardWidget $widget */ $widget = $this->modx->getObject('modDashboardWidget', array('name' => $name)); if ($widget) { $widget->remove(); } } return true; }