Во обзоре InstantCMS 2.0 от 10.08.2013 была анонсирована возможность использовать одну базу для нескольких сайтов, чем я и решил воспользоваться. Установил еще один сайт в существующую базу. Все хорошо. Но, при попытке зайти в анкету клиента на втором сайте, второй движок начал просить компоненты от первого и как результат — ошибки.
Выяснилось, что происходит это при получении вкладок анкеты.Так, например, если вы имеете премиум или другие компоненты, которые добавляют вкладки в анкету, то на втором сайте, который использует базу первого — получите ошибку. Потому что второй сайт пытается отрисовать вкладки первого. Версия 2.3.0
Пофиксить можно так:
Открываем /system/core/database.php ищем функцию public function query($sql, $params=false, $quiet=false)
ниже
$sql = str_replace(array(
'cms_users', 'cms_users', 'cms_'
), array(
$config->db_users_table, $config->db_users_table, $this->prefix
), $sql);
добавляем
$sql = str_replace('cms_users_tabs', 'pfx_users_tabs', $sql);
где pfx — префикс для таблиц второго сайта, как вариант его можно выдернуть из настроек, но заморачиваться я не стал.
Просьба к разработчикам исправить этот баг в следующем релизе.
А кстати вот сразу вопросик… биллинг у меня установлен во втором сайте вкладка не появилась (ну и строчка там в персональном меню которая баланс отражает).
— Немного пред истории: Есть www.site1, создал подпапку www.site1/site2 установил туда инстант с использованием базы пользователей 1го сайта. Не работали профили пользователей, ну слава богу добрый человек написал как исправить.
— Теперь дальше… про биллинг… на сайте 2 в профиле нет вкладки баланс (ну наверно так как сюда www.site1/site2 он не установлен). Устанавливаю в сайт 2 биллинг появляется вкладка, но когда в нее заходишь билинг говорит что ключ то не подходит))) (лиц. ключ видимо не действует на подпапки хотя количество "денег" в надписи баланс показывает)
— По идее если одна база пользователей так и билинг у них у всех должен быть во всех "разделах" чтоль. Вообщем у кого есть какие соображения подскажите. Может можно как то сделать чтобы и биллинг брался с основной базы или как там?
По факту имеем, что движок пытается взять функционал с другого домена при наличии общей базы