CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Что такое "мультисайт"? И как его реализовать?
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Другое
Страницы: 1, 2, 3, 4
Alexander
В последнее время мне на мыло участились вопросы относительно наличия в системе "мультисайта". Интуитивно я понимаю что это значит, но понять что конкретно - никак не получается. Ради примера даже заглянул на демку UMI и посмотрел, как сделано там. К своему разочарованию, я пришел к выводу, что для UMI, мультисайт - это дополнительное поле в каждой таблице данных, характеризующее домен. При запросе от пользователя, система определяет домен и извлекает только тот контент, который закреплен за доменом.

На мой взгляд, такое "решение" является топорным и абсолютно непрактичным.
  1. Существенно ухудшается производительность, и увеличивается объем БД. Ведь к каждому запросу (к каждому индексу) добавляется идентификатор домена.
  2. Работает только на простых модулях. Я трудно понимаю, как можно сделать отбор данных по домену, когда затрагивается не одна таблица. Те же новости: теги, категории, сами новости, комментарии к ним...
  3. Не может решить всех проблем мультисайта. А именно: разные пользователи, разные шаблоны оформления, разные группы пользователей и т.п. Нет, конечно можно ко всем таблицам добавить идентификатор домена, но такое решение ужасно даже на стадии задумки.


По моему мнению мультисайт, это ДВЕ и более РАЗНЫЕ системы, которые имеют что-то общее. Но вот в чем заключается это общее... и как оно работает я пока не представляю. Какие идеи мультисайта есть у Вас? Что для вас есть мультисайт?
Phoenix84
ИМХО Мультисайт нафиг не нужен рядовым пользователям.

Под моим пониманием - мультисайт это создание чертовой тучи саттелитов...
SiTiS
Кстати я рассматривал этот вопрос...изложу свои выводы и домыслы. В свое время мне был необходим мультисайтовый движок, чтобы создать крупный городской портал. А именно был домен site.ru, и несколько поддоменов: auto.site.ru, home.site.ru, blog.site.ru и тд.. На них мне нужно было установить один движок, чтобы управление шло через одну админку всеми доменами и поддоменами. Так же чтобы была одна база пользователей. И была единая база таких модулей как новости. В остальном это разные сайты, с разными шаблонами, но на одной системе. Пробовал Typo3, но так и невкурил, уж больно сложная лошадка. Потом заказ ушел, я так нечего и не добился. На данный момент, не так давно я начал изучать систему jcore. Она разрабатывается как мультисайтовая, при том основной и дополнительные сайты могут располагаться на разных серверах, как бы есть серверная часть движка и клиентская. Alexander, погляди её, мне бы хотелось узнать твоего мнения по поводу данной cms. Вообще у меня есть немного сформировавшееся точка на счет мультисайтового движка, если есть интерес, могу предложить идеи.
sanes
Элементарно же. Управление и одной админки по типу Master, Slave И возможность сделать общую или раздельную регистрацию.
Alexander
Цитата (SiTiS @ 2021-07-29 00:24)
чтобы управление шло через одну админку всеми доменами и поддоменами.

В один момент времени (находясь на одной странице) мы можем управлять только новостями из какого-то одного сайта (одной базы). Т.е. мы не можем закрепить новость за доменом или перетащить новость с одного домена на другой...

Цитата (SiTiS @ 2021-07-29 00:24)
Так же чтобы была одна база пользователей. И была единая база таких модулей как новости.

Первое уже сделано, второе, думаю, нужно просто предусмотреть. Это все? О_о

Цитата (SiTiS @ 2021-07-29 00:24)
Она разрабатывается как мультисайтовая, при том основной и дополнительные сайты могут располагаться на разных серверах, как бы есть серверная часть движка и клиентская.

Таблицы пользователей и таблицы контента не могут располагаться на разных серверах. Другими словами в таком случае невозможно чтобы база данных пользователей была отдельно. Иначе как тогда делать JOIN запросы?
SiTiS
Цитата (Alexander @ 2021-07-29 00:24)
В один момент времени (находясь на одной странице) мы можем управлять только новостями из какого-то одного сайта (одной базы). Т.е. мы не можем закрепить новость за доменом или перетащить новость с одного домена на другой...
Несколько раз прочитал, но так и не понял в чем проблема...база то одна...И новости будут одни...или не то?
Цитата (Alexander @ 2021-07-29 00:24)
Первое уже сделано, второе, думаю, нужно просто предусмотреть. Это все? О_о
Как же всё...если ты хочешь сделать элеанор мультесайтовой, то нужно долго и много продумывать, одной базой пользователей не обойдешься.
Цитата (Alexander @ 2021-07-29 00:24)
Таблицы пользователей и таблицы контента не могут располагаться на разных серверах. Другими словами в таком случае невозможно чтобы база данных пользователей была отдельно. Иначе как тогда делать JOIN запросы?
Именно, поэтому есть серверная часть, а есть клиентская. В серверной хранятся базы всех сайтов и файлы основного сайта. В клиентской только файлы сайта, но база берется из серверной.
Alexander
Цитата (SiTiS @ 2021-07-29 00:24)
Несколько раз прочитал, но так и не понял в чем проблема...база то одна...И новости будут одни...или не то?

Да. Так, но если есть несколько сайтов с РАЗНЫМИ новостями, как ими управлять из одной админки? База новостей при это единой быть не может.

Цитата (SiTiS @ 2021-07-29 00:24)
если ты хочешь сделать элеанор мультесайтовой, то нужно долго и много продумывать, одной базой пользователей не обойдешься.

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

Цитата (SiTiS @ 2021-07-29 00:24)
В клиентской только файлы сайта, но база берется из серверной.

Понимаешь, базы будут в любом случае РАЗНЫМИ. Вне зависимости будут они на одном сервере или на разных. Смысл в том, что Сайт1 содержит базу новостей1, а Сайт2 содержит базу новостей2. При этом никто не мешает сайту1 коннектится к базе новостей2, брать оттуда новости и отображать (править их) у себя.
SiTiS
Цитата (Alexander @ 2021-07-29 00:24)
Да. Так, но если есть несколько сайтов с РАЗНЫМИ новостями, как ими управлять из одной админки? База новостей при это единой быть не может.
Нее, тут уже другой вопрос. По идеи надо делать модуль новостей общий (новости будут писаться на основном сайте, а на других просто отображаться) и модуль новостей отдельно для каждого сайта.
Цитата (Alexander @ 2021-07-29 00:24)
Я хочу, чтобы система умела все :)
"Зачем другие системы управления сайтами, если есть Eleanor CMS?!" - наш будущий лозунг B)
Цитата (Alexander @ 2021-07-29 00:24)
Понимаешь, базы будут в любом случае РАЗНЫМИ. Вне зависимости будут они на одном сервере или на разных. Смысл в том, что Сайт1 содержит базу новостей1, а Сайт2 содержит базу новостей2. При этом никто не мешает сайту1 коннектится к базе новостей2, брать оттуда новости и отображать (править их) у себя.
Конечно можно и так сделать, но в таком случае получается не совсем мультисайтовость. Это уже просто сайты со связанными базами. Но а не реально разве сделать например одну базу, но под каждый доп.сайт использовать префиксы?
KeSSLeR
Мне в свое время нужна была просто общая база пользователей для нескольких сайтов.(site.ru - основа, и море субдоменов..).
Так и не реализовал.. Ума не хватило..
Это я про элеанор :)
Примерно представляю как это может выглядеть, но в плане реализации я встал в тупик.

Добавлено через 0 минут, 54 секунд:

А общий логин\логаут вообще меня убил морально...
Alexander
Цитата (SiTiS @ 2021-07-29 00:24)
Это уже просто сайты со связанными базами. Но а не реально разве сделать например одну базу, но под каждый доп.сайт использовать префиксы?

Можно. я имел ввиду что таблицы будут разными.
sanes
Пожалуй, тогда нужна поддержка PostgreSQL
Djadka
В моём представление мультисайтинг, это что то вроде я зашёл в админку, посмотрел последние коменты новости по всем сайтам, потому что бы добавить новость я захожу на кокретный мною выбранный в админки сайт и добавляю новость или что то что надо. Я бы если честно делал бы разные бд, потому что это бы было не так накладно. Единственно можно было бы делать общию таблицу где хранились бы какие то индексовые данные, по типо сколько человек заходило, сессии какие. А если всё в одной, то это уже накладно будет. Делать сателиты, как писалось выше это не лочгично, что надо дублировать новости, может быть это рассмотреть как отдельную функцию. Мою видение такое Админка/Список сайтов/Добавить Новость и ........./ Новость добавляется для этого домена и для этого, этого, этого.
KeSSLeR
Цитата
Мою видение такое Админка/Список сайтов/Добавить Новость и

Либо при добавлении новости выбирать на какой сайт ее добавить) Тоже удобно было бы.
Ктото писал что новости на одном сайте, а на других они как бы только загаловками. Это не сложно реализовать в виде блока.
Alexander
Цитата (KeSSLeR @ 2021-07-29 00:24)
Либо при добавлении новости выбирать на какой сайт ее добавить) Тоже удобно было бы.

Вы не внимательно прочитали моё первое сообщение. Там я аргументированно показал, почему такое невозможно.

Цитата (sanes @ 2021-07-29 00:24)
Пожалуй, тогда нужна поддержка PostgreSQL

Зачем? Не знаю, как это возможно, там по-моему несколько другие структуры да и запросы местами отличаются... Хотя, если кто сможет помочь - пишите.

Djadka, вот Вы говорите, что делали бы разные БД, но сами же перед этим сказали что хотели бы видеть последние комментарии по ВСЕМ САЙТАМ ОДНОВРЕМЕННО. Как это возможно?
Alexander
Пока у меня есть начальная идея как сделать мультисайт.

Общая идея мультисайта заключается в том, чтобы быстро переключаться между различными сайтами. К примеру у нас есть несколько сайтов: site1.ru, site2.ru, site3.ru . Когда мы заходим в админку site1.ru, где-нибудь в футере доступен select со списком админок других сайтов, куда мы можем быстренько перейти (примерно как здесь на форуме список разделов). При выборе site2.ru, мы попадаем в админку этого сайта (без аутентификации), точно так же и при выборе site3.ru. Проще говоря мы можем быстро и безопасно переключаться из админки в админку.

Вот такая вот начальная и простая идея. Критикуйте и предлагайте.
sanes
Цитата (Alexander @ 2021-07-29 00:24)
Зачем? Не знаю, как это возможно, там по-моему несколько другие структуры да и запросы местами отличаются...
А то, что если будет висеть куча сайтов на 1 базе с разными префиксами, мускул благополучно загнётся. Система, как бы портальная и глупо думать, что она не будеть загружена.
Alexander
Цитата (sanes @ 2021-07-29 00:24)
А то, что если будет висеть куча сайтов на 1 базе с разными префиксами

А кто запрещает использовать несколько баз?
sanes
Цитата (Alexander @ 2021-07-29 00:24)
А кто запрещает использовать несколько баз?
Я только ЗА. Многие просто высказываются за использование одной. Страшно подумать, что будет с сервером при суммарной посещалке >50к
Djadka
Цитата (Alexander @ 2011-03-06, 16:06)
Djadka, вот Вы говорите, что делали бы разные БД, но сами же перед этим сказали что хотели бы видеть последние комментарии по ВСЕМ САЙТАМ ОДНОВРЕМЕННО. Как это возможно?


Разве нельзя законектится к удалённо базе данных, которая не находится на вашем хосту?! Если можно то можно и собирать данные отдельными блоками и потом соединить их. По крайне мере я так думаю.
sanes
Мы же обязательно ещё навесим интересных и полезных блоков, которые увеличат кол-во запросов в 3 раза.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.