1 Отредактировано Selena (21.05.2017 11:23:55)

Тема: Как сделать единый справочник пользователей для разных сайтов

Добрый день! У меня в разработке 2 сайта - магазин RS и социальная сеть, поставленные на отдельные домены, но использующие одну базу SQL. Планируется, что у них будет единый справочник пользователей. За его основу взят справочник соцсети (таблица ks_user). Подскажите, пожалуйста, каким образом переопределить таблицу SQL, которую использует RS, на таблицу ks_user, чтоб в ней появились необходимые отсутствующие поля. Если я в RS просто меняю имя таблицы, то RS не загружается (что, в общем-то, логично), и я не могу "Исправить структуру БД". В RS имя таблицы я пробую менять следующим образом: создаю константу KS_TABLE_PREFIX='ks_', затем в классе \RS\Orm\AbstractObject изменяю функцию:

protected function _tableName($with_quotes = true)
    {
        if (!isset(static::$table)) {
            throw new \RS\Exception(t('Не задано имя таблицы в ORM объекте %0', $this->_self_class));
        }
        $table_prefix = ($table == 'users') ? $KS_TABLE_PREFIX : $DB_TABLE_PREFIX;
        $table = ($table == 'users') ? 'user' : $table;

        $table = \Setup::$table_prefix . static::$table;
        return ($with_quotes) ? "`$table`" : $table;
    }

Повысить оценку Понизить оценку

2 Отредактировано Закусило Александр (22.05.2017 14:18:52)

Re: Как сделать единый справочник пользователей для разных сайтов

В вашем случае, Вы в принципе верно место нашли, нужно только чтобы этот класс ядра где Вы вносите изменения был с окончанием .my.inc.php. Иначе при обновлении изменения сотрутся.

Но чтобы оценить и понять что происходит, мало информации. Ведь соц. сеть и магазин не одно и тоже совсем. У вас какую ошибку вообще выдаёт? Не совпадают обязательные поля? Или что там у Вас? У Вас структура таблиц координально отличается, или есть что-то общее?
Вообщем нужно копать...

3 Отредактировано Selena (23.05.2017 17:52:23)

Re: Как сделать единый справочник пользователей для разных сайтов

Структура таблиц кардинально отличается, отличается даже наименование поля id. Нужно "слить" их вместе, добавив в таблицу ks_user поля, необходимые для работы RS. Т.к. я не могу обновить эту структуру автоматически через "Исправить структуру БД", то я попробовала добавить поля вручную, но безрезультатно.
Ошибок на странице  не выдает никаких, открывается чистая пустая страница сайта. В консоли ошибка GET  [HTTP/1.0 500 Internal Server Error 6мс]. В ответе пустые необработанные данные.
Подскажите, что можно сделать?

Повысить оценку Понизить оценку

Re: Как сделать единый справочник пользователей для разных сайтов

Включили отображение ошибок? https://readyscript.ru/faq/#faq-errors