Ejemplo n.º 1
0
 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;
             }
         }
     }
 }
Ejemplo n.º 2
0
 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;
             }
         }
     }
 }