/** * * @param type $template * @return boolean * @throws Exception */ public function setTemplate(Template $template, $installDemodata = FALSE, $installDemoArchive = FALSE) { if ($this->currentTemplate->name == $template->name) { throw new \Exception(lang('Current installed template can not be installed again', 'template_manager')); } // processing all dependicies if (isset($template->xml->dependencies)) { if (isset($template->xml->dependencies->dependence)) { $dependenceDirector = new \template_manager\installer\DependenceDirector($template->xml->dependencies->dependence); $res = $dependenceDirector->verify($installDemodata); $this->massages = $dependenceDirector->getMessages(); if (FALSE == $res) { throw new \Exception(lang('One or more dependency error', 'template_manager')); } } } //Install template demodata // if ($installDemodata) { if (isset($template->xml->demodata)) { $demodataDirector = new \template_manager\installer\DemodataDirector($template->xml->demodata); $res = $demodataDirector->install(); $this->massages = $demodataDirector->getMessages(); if (FALSE == $res) { throw new \Exception(lang('One or more dependency error', 'template_manager')); } } $this->copyUploads($template->name); // } // Truncate table template_settings \CI::$APP->db->truncate('template_settings'); foreach ($template->xml->components->component as $component) { $attributes = $component->attributes(); $handler = (string) $attributes['handler']; $instance = $template->getComponent($handler); $instance->setParamsXml($component); } \CI::$APP->db->where('name', 'systemTemplatePath')->update('shop_settings', array('value' => './templates/' . $template->name . '/shop/')); \CI::$APP->db->update('settings', array('site_template' => $template->name)); $this->currentTemplate = $template; }