function _convertThemes2Component() { global $objDatabase, $_CORELANG; // Find all themes $result = $objDatabase->Execute('SELECT `themesname`, `foldername` FROM `' . DBPREFIX . 'skins`'); if ($result->EOF) { \DBG::msg('No themes found!'); return false; } $errorMessages = ''; $themeRepository = new \Cx\Core\View\Model\Repository\ThemeRepository(); while (!$result->EOF) { $themePath = ASCMS_THEMES_PATH . '/' . $result->fields['foldername']; if (!is_dir($themePath)) { \DBG::msg('Skipping theme "' . $result->fields['themesname'] . '"; No such folder!'); $errorMessages .= '<div class="message-warning">' . sprintf($_CORELANG['TXT_CSS_UPDATE_MISSING_FOLDER'], $result->fields['themesname']) . '</div>'; $result->MoveNext(); continue; } // create a new one if no component.yml exists if (!file_exists($themePath . '/component.yml')) { \DBG::msg('Converting theme "' . $result->fields['themesname'] . ' to component'); $themeRepository->convertThemeToComponent($result->fields['foldername']); } $result->MoveNext(); } if (!empty($errorMessages)) { setUpdateMsg($errorMessages, 'msg'); setUpdateMsg('<input type="submit" value="' . $_CORELANG['TXT_CONTINUE_UPDATE'] . '" name="updateNext" /><input type="hidden" name="processUpdate" id="processUpdate" />', 'button'); $_SESSION['contrexx_update']['update']['done'][] = 'convertTemplates'; return false; } return true; }