Переключение между сайтами полное

Главные вкладки

Аватар пользователя alexsaab alexsaab 13 января 2013 в 23:59

Переключение между сайтами на 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?

С ув., Алексей

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 14 января 2013 в 14:23

Что то неправильно написал в settings.php, скорей всего.
Я не раз этой функцией пользовался,всё нормально работало.

Аватар пользователя alexsaab alexsaab 14 января 2013 в 15:15

Не-не...

Все правильно написал - но возникла проблема.

У меня есть CLI скрипт, который использует bootstrap.inc Drupal. Соответственно запускаем его тупо командой терминала "php script.php". Да базы переключаются без проблем, но только сам домен никак не хочет.

А строчка в settings.php простая:

$databases = array (
  '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' => '',
    ),
  ),
);

Нужно из этого скрипта как бы переключать полностью домены, а сейчас переключаются только базы данных.

С ув., Алексей

Аватар пользователя Chyvakoff Chyvakoff 14 января 2013 в 15:47

"alexsaab" wrote:
только сам домен никак не хочет.

А с этого места поподробнее.
"alexsaab" wrote:
Нужно из этого скрипта как бы переключать полностью домены

Это как? Редирект чтобы был?

Аватар пользователя alexsaab alexsaab 14 января 2013 в 17:46

Да чтобы был редирект. Есть 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 (базы разные).

С ув., Алексей

Аватар пользователя alexsaab alexsaab 14 января 2013 в 17:48

Если тупо выкрадываешь скрипт ~/domains/moisait.ru/script.php и подключаешь в нем bootstrap Drupal. Он работает по умолчанию ТОЛЬКО с moisait.ru.

Что посоветуете?

Тут рекомендовали работать через $_SERVER - но я не понял что нужно сделать?

С ув., Алексей

Аватар пользователя alexsaab alexsaab 14 января 2013 в 17:48

Если тупо выкрадываешь скрипт ~/domains/moisait.ru/script.php и подключаешь в нем bootstrap Drupal. Он работает по умолчанию ТОЛЬКО с moisait.ru.

Что посоветуете?

Тут рекомендовали работать через $_SERVER - но я не понял что нужно сделать?

С ув., Алексей