Переключение между сайтами на Drupal как?
Почитал документацию нашел вот такую функцию для переключения между базами Drupal db_set_active();
В сеттинге (settings.php) прописываем дополнительно еще 3 сайта с Drupal помимо основного (default) типа : site1, site2, site3
Сайты крутятся на multi-хостинге It-Patrol, но каково же было мое удивление, если сделать такую весчь как
db_set_active('site1');
....
код по редактированию ноды
node_save();
записываются вся изменения в Default базу (а не во site1 или иную другую).
Фактически при использовании кода:
db_set_active();
Далее вы можете редактировать таблицы, и т. д. выполняя запросы только напрямую к базе данных типа
db_query('UPDATE {uc_products} up
INNER JOIN {uc_products_sync} us
ON (up.model = us.sku)
SET up.list_price = us.list_price, up.cost = us.cost, up.sell_price = us.sell_price');
Функции же полностью связанные с ядром (Api) Drupal все равно работают только с дефолтовой базой.
Как сделать правильное и полное перекление в Drupal 7?
С ув., Алексей
Комментарии
Что то неправильно написал в settings.php, скорей всего.
Я не раз этой функцией пользовался,всё нормально работало.
Не-не...
Все правильно написал - но возникла проблема.
У меня есть CLI скрипт, который использует bootstrap.inc Drupal. Соответственно запускаем его тупо командой терминала "php script.php". Да базы переключаются без проблем, но только сам домен никак не хочет.
А строчка в settings.php простая:
'default' =>
array (
'default' =>
array (
'database' => 'dbmain',
'username' => 'dbmain',
'password' => '***',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'db1' =>
array (
'default' =>
array (
'database' => 'db1',
'username' => 'db1',
'password' => '***',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'db2' =>
array (
'default' =>
array (
'database' => 'db2',
'username' => 'db2',
'password' => '***',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'db3' =>
array (
'default' =>
array (
'database' => 'db3',
'username' => 'db3',
'password' => '***',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
Нужно из этого скрипта как бы переключать полностью домены, а сейчас переключаются только базы данных.
С ув., Алексей
А с этого места поподробнее.
Это как? Редирект чтобы был?
Да чтобы был редирект. Есть drupal, который установлен в IT-Patrol:
в директории
~/domains/moisait.ru лежит Drupal
В поддиректориях
~/domains/moisait.ru/sites/domain1
~/domains/moisait.ru/sites/domain2
~/domains/moisait.ru/sites/domain3
Мои сайты другими доменами.
domain1, domain2, domain3 которые используют файлы и модули Drupal основного домена (moisait).
Я написал Cli приложение которое по идеи должно по идее проводить работу с каждым сайтом из четырех (moisait.ru, domain1, domain2, domain3). Но я не представляю как из директорий moisait.ru достучаться до Drupal который используется domain1, domain2, domain3 (базы разные).
С ув., Алексей
Если тупо выкрадываешь скрипт ~/domains/moisait.ru/script.php и подключаешь в нем bootstrap Drupal. Он работает по умолчанию ТОЛЬКО с moisait.ru.
Что посоветуете?
Тут рекомендовали работать через $_SERVER - но я не понял что нужно сделать?
С ув., Алексей
Если тупо выкрадываешь скрипт ~/domains/moisait.ru/script.php и подключаешь в нем bootstrap Drupal. Он работает по умолчанию ТОЛЬКО с moisait.ru.
Что посоветуете?
Тут рекомендовали работать через $_SERVER - но я не понял что нужно сделать?
С ув., Алексей