Мультисайтинг интернет-магазинов на Drupal 7 с разным контентом и общими пользователями

В этой статье я расскажу о своем опыте организации мультисайтинга на Drupal 7, в котором используется множество модулей, в том числе Drupal Commerce. Основная идея - нужно иметь разные товары, разные блоки и каталоги (таксономию), но одинаковые отображения (views), настройки модулей и пользователей.

В нашем случае нам необходим мультисайтинг Друпала с общими таблицами.

В первую очередь я установил Друпал 7 и полностью настроил интернет-магазин для одного сайта.

Далее, я решил хранить те таблицы, которые принадлежат только второму сайту - в той же самой бд, что и первый сайт, только с дополнительными перфиксами (на хостинге приходится экономить на кол-ве баз данных)

Создаю файл /sites/sites.php следующего содержания:

<?php
 
$sites = array(
  'site1.com' => 'kladovaya',
  'site2.ru' => 'olenenka',
);
 
?>

(см. http://habrahabr.ru/post/133086/#comment_4419444 )

Соответственно создаю папки /sites/kladovaya и /sites/olenenka
Копирую файл settings.php из папки /sites/default в папку /sites/kladovaya

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

У моих сайтов будут:
Разными: блоки; кеши; все ноды; комментарии к ним; продукты Commerce;
Одинаковыми: Вьюс, настройки всех возможных модулей (в том числе Commerce, насколько это возможно), пользователи, вообще всё остальное на сайте.

В префиксах я решил указывать одинаковое, т.е. то, что я буду объединять на наших сайтах. Такой подход мне кажется более безопасным и универсальным, чем указывание "от обратного" (см. http://www.drupal.ru/node/68299), ведь если добавятся новые таблицы или поля, то если они разные на разных сайтах - никаких глюков на других сайтах это не вызовет. А потом всегда можно будет расшарить новые таблицы на остальные сайты.

to be continued...

Drupal 7

Комментарии

Добавить комментарий