/** * Update template information * * @param string $location Value backend|frontend */ private function _updateAllTemplate($location) { if ($location === 'frontend' || $location === 'backend') { $templates = get_child_folder(APP_DIR . '/templates/' . $location . '/'); if (count($templates)) { $templateTmp = []; foreach ($templates as $template) { $templateTmp[] = "'" . $template . "'"; } /** * @var CoreTemplates[] $templateMustDelete */ $templateMustDelete = CoreTemplates::find(['conditions' => 'base_name NOT IN(' . implode(',', $templateTmp) . ") AND location='" . $location . "'"]); if (count($templateMustDelete) > 0) { foreach ($templateMustDelete as $tMD) { if (method_exists($tMD, "delete")) { $tMD->delete(); } } } foreach ($templates as $template) { $pathTemplate = APP_DIR . '/templates/' . $location . '/' . $template . '/template.json'; if ($resource = check_template($pathTemplate)) { $templateObject = CoreTemplates::findFirst('base_name ="' . $template . '" AND location = "' . $location . '"'); if (!$templateObject) { $templateObject = new CoreTemplates(); $templateObject->base_name = $template; $templateObject->published = 0; $templateObject->location = $location; } $templateObject->name = $resource['name']; $templateObject->uri = $resource['uri']; $templateObject->author = $resource['author']; $templateObject->authorUri = $resource['authorUri']; $templateObject->version = $resource['version']; $templateObject->tag = $resource['tag']; $templateObject->description = $resource['description']; if (!$templateObject->save()) { $this->flashSession->error(__('m_template_notice_not_update_template', ['1' => $templateObject->name, '2' => '$location', '3' => APP_DIR . '/templates/{$location}/' . $templateObject->base_name . '/template.json'])); } } else { $this->flashSession->error(__('m_template_notice_not_update_template', ['1' => 'Base name: ' . $template, '2' => '$location', '3' => APP_DIR . '/templates/{$location}/' . $template . '/template.json'])); } } /** * @var CoreTemplates[] $templatePublished */ $templatePublished = CoreTemplates::find('published = 1 AND location="' . $location . '"'); if (!count($templatePublished)) { /** * @var CoreTemplates $templateDefault */ $templateDefault = CoreTemplates::findFirst('base_name = "default" AND location="frontend"'); if ($templateDefault) { $templateDefault->published = 1; $templateDefault->save(); } } } } }