Аля "Народ.Ру": Каким способом реализовать много сайтовость с привязкой к главному сайту?

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

Аватар пользователя Goodseeker Goodseeker 25 июля 2013 в 17:25

Хочу сделать сайты для своих подопечных.
В основном им нужен сайт визитка + лента новостей.
Так же на сайте будет каталог продукции, который будет выводиться через Views.
Тип данных Каталог можно обновлять только с главного сайта. Т.е., если я у себя обновил Каталог, он так же обновляется и на всех других сайтах.

Например, есть сайт с разделами:
1. Каталог
2. Новости
3. Обо мне

У каждого сайта свой домен
У каждого сайта свои админ
У каждого сайта свои пользователи, которые могут регистрироваться самостоятельно.
Прикрепленные файлы ложатся в директорию своего сайта/домена
А файлы каталога обновляемого мной на моем сайте, хранятся в директории моего сайта
Нужно иметь возможность добавить тип материала или блок на все сайты.

Какой способ посоветуете, чтобы реализовать данную задачу?

PS
Пробовал с модулем Domain Access 7.x-3.10 - не получается разграничить доступ к профилям пользователей между доменами.

Сайтов планируется создать два-три десятка

Комментарии

Аватар пользователя FORTIS FORTIS 25 июля 2013 в 21:09

для админов посмотрите это
https://drupal.org/project/domain_admin
https://drupal.org/project/domain_roles

"Goodseeker" wrote:
У каждого сайта свои пользователи, которые могут регистрироваться самостоятельно.

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

если разделять очень нужно то поступить можно так:
domain или domain_roles может связывать пользователя и домен (при добавлении полдьзователя в админке есть выбор домена). при регистрации domain скорее всего тоже назначает пользователю тот домен на котором он регается. вам остается:
1. сделать модуль который при попытке авторизации проверяет еще и обязательно домен
2. в своем модуле подменить валидатор при регистрации который не дает регаться если уже есть такой логин или мыло (разрешить) и добавить связь с доменом, сами понимаете тут очень тонко Smile

но мне такое решение не нравится, нужно еще много мелочей продумать, например восстановление пароля.

Аватар пользователя FORTIS FORTIS 25 июля 2013 в 21:13

"Goodseeker" wrote:
Нужно иметь возможность добавить тип материала или блок на все сайты.

все это реализуемо с domain и подмодулями (Domain Content), поищите по ключевому слову "domain" на http://drupalmodules.com/
а для блоков вот https://drupal.org/project/domain_blocks

Аватар пользователя FORTIS FORTIS 25 июля 2013 в 21:14

зачем разделять пользователей если можно наоборот им облегчить жизнь и сделать общую авторизацию на всех сайтах?) openid даже для этого изобрели, а вы против течения Smile
разделяйте роли и всё

Аватар пользователя Goodseeker Goodseeker 26 июля 2013 в 0:02

FORTIS wrote:
зачем разделять пользователей если можно наоборот им облегчить жизнь и сделать общую авторизацию на всех сайтах?) openid даже для этого изобрели, а вы против течения Smile
разделяйте роли и всё

Сразу хочу сказать - Спасибо, что уделили мне внимание

Пользователей хочу разделять, так как каждый сайт/домен будет принадлежать своему администратору.
Каждый администратор будет вести работу с зарегистрированными на его сайте пользователями.

Начал перебирать модуль Domain Access - и остановился на этом моменте, что не могу разделить пользователей.

Сейчас начал изучать создание мультисайтинга с разными базами и общими таблицами.
Никогда не сталкивался с работой в базе данных, для меня все новое.

Спасибо, еще раз, что развернуто ответили

Аватар пользователя FORTIS FORTIS 26 июля 2013 в 6:47

Да, мультисайтинг не стал советовать т.к. не пробовал в связке с domain, но теоретически может подойти: общие таблицы и персональные таблицы user под домен. Но вам придется найти способ как создавать таблицу пользователей (с префиксом) к добавленному через админку домену, в мультисайтинге это ручная работа.
В целом пишут что совместное решение Domain Acces + Multi-site работоспособно, попробуйте интересен результат, в скором времени мне тоже предстоит попробовать.
немного инфы по теме https://drupal.org/node/1678740#comment-6227372

Аватар пользователя q2_faith q2_faith 26 июля 2013 в 12:39

имхо, проблема сложнее)
и решать ее надо не со стороны друпала, а со стороны сервера. мой предполагаемый алгоритм, юзер регистрируется на головном сайте и кликает на кнопку создать сайт(поддомен), на сервере запускается шелл скрипт, который создает поддомен в апаче, создает базу и запускает установку друпала(какой то вашей сборки с нужными модулями и настройками) с данными пользователя(как админа).
я не знаю как drupal_gardens аквия делала, но думаю, что примерно так там все и работает. может у них есть статья, поищите.

Аватар пользователя Goodseeker Goodseeker 26 июля 2013 в 15:59

Дело пахнет тем, что если будет сложно, придется упрощать )) Наверное...

На первом этапе можно вместо регистрации пользователей, создать тип данных "Анкета", которую смогут заполнять анонимные пользователи, а видеть смогут только админы Домена.

FORTIS
Похожая статья на Хабреhttp://habrahabr.ru/post/133086/

Буду копать, пока есть время.