示例#1
0
 /**
  * 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();
                 }
             }
         }
     }
 }