skript.0pk.ru

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » skript.0pk.ru » Компоненты » Единая база пользователей для 1.10.3


Единая база пользователей для 1.10.3

Сообщений 1 страница 2 из 2

1

Цель:

1. Единая база пользователей для нескольких сайтов (все сайты используют одну базу данных, префиксы разные)
2. Авторизовавшись на одном сайте, нужно быть автоматически авторизованным на всех остальных.
3. Отправив сообщение пользователю на первом сайте, дать ему возможность прочитать его на любом другом
http://smages.com/images/802big.jpg
Решение

1. хак файла \core\classes\db.class.php. -> Единая база пользователей
Для этого не обязательно, чтобы сайты были поддоменами - важна лишь единая база данных

2. хак файла \core\cms.php -> Единые куки для всех сайтов.
А вот для этого сайты обязательно должны быть поддоменами одного домена + сам основной домен.
Код

1. db.class.php
Добавить в блок объявлений переменных строку

Код:
public $users_prefix  = 'my';

где "my" - это ваш префикс таблиц, в которых хранятся пользователи. Например, префикс БД для основного домена.

в метод

Код:
public function query($sql, $ignore_errors=false, $replace_prefix = true){

добавить после

Код:
$sql = $replace_prefix ? $this->replacePrefix($sql) : $sql;

строки

Код:
$prefix = cmsConfig::getConfig('db_prefix');
        if ($this->users_prefix  !== $prefix) {
            $sql = trim(str_replace($prefix.'_user',$this->users_prefix.'_user',$sql));
        }

После этого все сайты будут обращаться к единой базе пользователей.

2. cms.php
в блок объявления переменных добавить строку

Код:
    private          static $maindomain = '.site.ru';

где site.ru - это ваш основной домен. Это нужно для единых кукисов.

заменить метод

Код:
    public static function setCookie($name, $value, $time){
        setcookie('InstantCMS['.$name.']', $value, $time, '/', null, false, true);
    }

на

Код:
    public static function setCookie($name, $value, $time){
        setcookie('InstantCMS['.$name.']', $value, $time, '/', self::$maindomain, false, true);
    }

заменить

Код:
    public static function unsetCookie($name){
        setcookie('InstantCMS['.$name.']', '', time()-3600, '/');
    }

на

Код:
    public static function unsetCookie($name){
        setcookie('InstantCMS['.$name.']', '', time()-3600, '/',self::$maindomain);
    }

Перед заменой - обязательно сделать копии своих файлов.
Скачать:

Теги: единая,база,пользователей,для,instantcms,скачать

0

2

на 1.10.1 как поставить эту базу?

0


Вы здесь » skript.0pk.ru » Компоненты » Единая база пользователей для 1.10.3


Рейтинг форумов | Создать форум бесплатно