示例#1
0
    public function delete()
    {
        if (!empty($this->id) && $this->id != 1) {
            $is_ok = true;
            $list = languages::getAll();
            while (list($key, $val) = each($list)) {
                // Удаление страниц
                $tmp = ormPages::delAllFor($this->id, $val['id']);
                if (!$tmp) {
                    $is_ok = $tmp;
                } else {
                    // Удаление прав на домен
                    db::q('DELETE FROM <<modules_rights>>
	    				   WHERE mr_name = "' . $val['id'] . ' ' . $this->id . '"
	    				   		 and mr_mod_id = "3";');
                }
            }
            // Удаление домена
            if ($is_ok) {
                $is_ok = db::q('DELETE FROM <<domains>> WHERE d_id = "' . $this->id . '";');
                if ($is_ok !== false) {
                    // Удаление настроек
                    reg::delKey('/structure/' . $this->id);
                    system::log('Удален домен "' . $this->values['d_name'] . '" (id:' . $this->id . ')', warning);
                    return true;
                } else {
                    system::log('Произошла ошибка при удалении домена "' . $this->values['d_name'] . '" (id:' . $this->id . ')', error);
                    $this->newError(12, 'Произошла ошибка при удалении домена "' . $this->values['d_name'] . '"!');
                }
            } else {
                system::log('Пользователь пытался удалить домен "' . $this->values['d_name'] . '" (id:' . $this->id . '), но ему не хватило прав на удаление всех страниц!', error);
                $this->newError(63, 'Вы не можете удалить домен "' . $this->values['d_name'] . '", т.к. не имеете прав на удаление некоторых страниц!');
            }
        }
        return false;
    }
示例#2
0
    public function delete()
    {
        if (!empty($this->id) && $this->id != 1) {
            $is_ok = true;
            // Удаляем права, настройки и страницы связанные с данным языком
            $domain = domains::getAll();
            while (list($key, $val) = each($domain)) {
                // Удаление страниц
                $tmp = ormPages::delAllFor($val['id'], $this->id);
                if (!$tmp) {
                    $is_ok = $tmp;
                } else {
                    // Удаление настроек
                    reg::delKey('/structure/' . $val['id'] . '/' . $this->id);
                    // Удаление прав
                    db::q('DELETE FROM <<modules_rights>>
	    				   WHERE mr_name = "' . $this->id . ' ' . $val['id'] . '"
	    				   		 and mr_mod_id = "3";');
                }
            }
            // Удаляем сам язык
            if ($is_ok) {
                // У все доменов приязанных к текущему языку, меняем "язык по умолчанию".
                $domain = db::q('SELECT d_id FROM <<domains>> WHERE d_def_lang = "' . $this->id . '";', records);
                while (list($key, $val) = each($domain)) {
                    if (!empty($val['d_id'])) {
                        $domain = domains::get($val['d_id']);
                        if ($domain instanceof domain) {
                            $domain->setDefLang(1);
                            $domain->save();
                        }
                    }
                }
                $is_ok = db::q('DELETE FROM <<langs>> WHERE l_id = "' . $this->id . '";');
                if ($is_ok !== false) {
                    system::log('Удалена языковая версия сайта "' . $this->values['l_name'] . '" (id:' . $this->id . ')!', warning);
                    return true;
                } else {
                    system::log('Произошла ошибка при удалении языка "' . $this->values['l_name'] . '" (id:' . $this->id . ')!', error);
                    $this->newError(54, 'Произошла ошибка при удалении языка "' . $this->values['l_name'] . '"!');
                }
            } else {
                system::log('Пользователь пытался удалить языковую версию "' . $this->values['l_name'] . '" (id:' . $this->id . '), но у него не хватило прав на удаление всех страниц!', error);
                $this->newError(55, 'Вы не можете удалить язык сайта "' . $this->values['l_name'] . '", т.к. не имеете прав на удаление некоторых страниц!');
            }
        }
        return false;
    }