public function save() { if (!$this->issetErrors() && (empty($this->values['d_name']) || empty($this->values['d_def_lang']) || empty($this->values['d_email']) || empty($this->values['d_sitename']))) { $this->newError(61, 'Не все обязательные поля были заполнены!'); } if ($this->issetErrors()) { return false; } else { if (!empty($this->id)) { // Изменение домена $sql = $this->getSql(); if (!empty($sql)) { db::q('UPDATE <<domains>> SET ' . $sql . ' WHERE d_id = "' . $this->id . '";'); } system::log('Изменен домен "' . $this->values['d_name'] . '" (id:' . $this->id . ')', warning); // Переименовываем папки с шаблонами if ($this->old_name != $this->values['d_name']) { $lang = languages::getAll(); while (list($key, $val) = each($lang)) { if ($this->id != 1 || $val['l_id'] != 1) { $old_name = '/__' . str_replace('.', '_', $this->old_name) . '_' . $val['l_prefix']; $new_name = '/__' . str_replace('.', '_', $this->values['d_name']) . '_' . $val['l_prefix']; @rename(TEMPL_DIR . $old_name, TEMPL_DIR . $new_name); } } } return true; } else { // Добавление домена $sql = $this->getSql(); if (!empty($sql)) { $this->id = db::q('INSERT INTO <<domains>> SET ' . $sql . ';'); } if (!empty($this->id)) { $lang = languages::getAll(); while (list($key, $val) = each($lang)) { rights::createForStructure($this->id, $val['id']); $templ = new template(); $templ->setName('default'); $templ->setFile('default'); $templ->setLangId($val['id']); $templ->setDomainId($this->id); $templ->save(); reg::setKey('/structure/' . $this->id . '/' . $val['id'] . '/title_prefix', '%text% | ' . $this->values['d_sitename']); reg::setKey('/structure/' . $this->id . '/' . $val['id'] . '/view_as_tree', 1); $dname = '/__' . str_replace('.', '_', $this->values['d_name']) . '_' . $val['l_prefix']; $this->copyDir(TEMPL_DIR, TEMPL_DIR . $dname); } system::log('Создан домен "' . $this->values['d_name'] . '" (id:' . $this->id . ')', warning); return true; } else { $this->newError(62, 'Произошла ошибка при добавлении домена!'); system::log('Произошла ошибка при добавлении домена!', error); return false; } } } }
public function save() { if (!$this->issetErrors() && (empty($this->values['l_name']) || empty($this->values['l_prefix']))) { $this->newError(52, 'Поля "Название" и "Префикс" обязательны для заполнения!'); } if ($this->issetErrors()) { return false; } else { if (!empty($this->id)) { // Изменение языка $sql = $this->getSql(); if (!empty($sql)) { db::q('UPDATE <<langs>> SET ' . $sql . ' WHERE l_id = "' . $this->id . '";'); } system::log('Изменена языковая версия сайта "' . $this->values['l_name'] . '" (id:' . $this->id . ')', warning); // Переименовываем папки с шаблонами if ($this->old_prefix != $this->values['l_prefix']) { $domain = domains::getAll(); while (list($key, $val) = each($domain)) { if ($this->id != 1 || $val['d_id'] != 1) { $old_name = '/__' . str_replace('.', '_', $val['d_name']) . '_' . $this->old_prefix; $new_name = '/__' . str_replace('.', '_', $val['d_name']) . '_' . $this->values['l_prefix']; @rename(TEMPL_DIR . $old_name, TEMPL_DIR . $new_name); } } } return true; } else { // Добавление языка $sql = $this->getSql(); if (!empty($sql)) { $this->id = db::q('INSERT INTO <<langs>> SET ' . $sql . ';'); } if (is_numeric($this->id)) { // Добавляем для каждого домена право и шаблон $domain = domains::getAll(); while (list($key, $val) = each($domain)) { rights::createForStructure($val['id'], $this->id); $templ = new template(); $templ->setName('default'); $templ->setFile('default'); $templ->setLangId($this->id); $templ->setDomainId($val['id']); $templ->save(); reg::setKey('/structure/' . $val['id'] . '/' . $this->id . '/title_prefix', '%text% | ' . $val['d_sitename']); reg::setKey('/structure/' . $val['id'] . '/' . $this->id . '/view_as_tree', 1); // Создаем папки с шаблонами $dname = '/__' . str_replace('.', '_', $val['d_name']) . '_' . $this->values['l_prefix']; $this->copyDir(TEMPL_DIR, TEMPL_DIR . $dname); } system::log('Создана новая языковая версия сайта "' . $this->values['l_name'] . '" (id:' . $this->id . ')', warning); return true; } else { $this->newError(53, 'Произошла ошибка при добавление языка!'); system::log('Произошла ошибка при добавление языка!', error); return false; } } } }