UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: umi_salesup от 18 Мая 2014, 07:35:49

Название: Мультисайтовость. Как создать второй сайт?
Отправлено: umi_salesup от 18 Мая 2014, 07:35:49
Добрый день!

У меня UMI.CMS Business 2.8.4.3 и есть сайт на ней.
Сам сайт (Сайт А) был изначально создан на юми.ру, потом была приобретена коробка и сайт перевезли на свой хостинг.

Есть необходимость сделать на этой же лицензии второй такой же сайт (Сайт Б) с отдельным доменом, на этом же шаблоне, с таким же дизайном (но, хотелось бы свой CSS, чтобы изменить цвета шрифтов, цвет элементов навигации и т.д.), названия разделов и контент будут другими. Надеюсь, объяснил понятно  :)

1. Сделал так — http://wiki.umisoft.ru/Мультисайтовость
2. Сделал так — http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_struktura/nastrojki_modulya_struktura/upravlenie_shablonami/

У сайта А шаблон называется Common.xsl и лежит в /xsltTpls
Для сайта Б в настройках модуля «Управление структурой» тоже указал Common.xsl (мне кажется это логичным, если я хочу сделать клон с таким же дизайном) — пробовал делать копию с именем Common2.xsl и ссылаться в настройках на нее, но эфект тот же.

В итоге, сайт Б появился, но:

1. Я не могу создать главную страницу. Т.е. создаю страницу из админки, она появляется и в админке и на сайте, отображается в меню, но не является главной. Вместо главной у меня «Страница не найдена» (не 404, а стандартная страница UMI.CMS).

2. У сайта А в шаблоне есть поля в шапке сайта и футере, редактирование которых было доступно через Edit-in-Place в режиме редактирования. Сайт Б утратил такую возможность и поля не отображаются вообще.

3. Если все таки удастся победить п.1 и п.2 — как при мультисайтовости реализовать разные файлы стилей для сайтов А и Б?

Спасибо.
   


Название: Re:Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 18 Мая 2014, 10:51:02
В итоге, сайт Б появился, но:

1. Я не могу создать главную страницу. Т.е. создаю страницу из админки, она появляется и в админке и на сайте, отображается в меню, но не является главной. Вместо главной у меня «Страница не найдена» (не 404, а стандартная страница UMI.CMS).

2. У сайта А в шаблоне есть поля в шапке сайта и футере, редактирование которых было доступно через Edit-in-Place в режиме редактирования. Сайт Б утратил такую возможность и поля не отображаются вообще.

3. Если все таки удастся победить п.1 и п.2 — как при мультисайтовости реализовать разные файлы стилей для сайтов А и Б?

1. Все должно работать по этому, предположу две возмжных причины данной проблемы:
   - у вас не стоит галочка "Страница по умолчанию" у главной страницы в "сайте Б"
   - у вас в xslt шаблоне вывод главной страницы завязан с id страницы (которая находиться на сайте А). P.S. вторая причины выглядит притянутой за уши, но все же, стоит проверить

2. возможно, предыдущий пункт не причем и проблема только в том, что для глобальных настроек система в основном шаблоне (скорее всего variables.xsl) обращается к страницам по их alt-name или по id типам данных, для того чтобы выводить необходимые данные (в том числе контактные данные, которые вы редактировали через EiP) и не найдя их выдает umi'ивскую 404 страницу. А так как вы используете шаблон на новом сайте, а копии страниц у на сайт Б вы скорее всего не делали (или у них были привязки которые поменялись при копировании страниц в структуре) , то шаблон не работает так как вы ожидаете.

3. по хорошему, я бы предложил вам создать отдельный набор шаблонов, так как нет гарантии что со временем вы захотите поменять не только css? но html структуру корзины или т.п., но если отвечать на ваш вопрос и учитывать, что оба сайта пользуются одним шаблоном, то стоит сделать следующее. Создать какое-то условие (проверка переменной с доменом сайта) на уровне xslt шаблона (например xsl:choose конструкцией) в том месте где подключаются css стили и подключать разные css.
Название: Re:Мультисайтовость. Как создать второй сайт?
Отправлено: umi_salesup от 18 Мая 2014, 12:09:55
Цитировать
1. Все должно работать по этому, предположу две возмжных причины данной проблемы:
   - у вас не стоит галочка "Страница по умолчанию" у главной страницы в "сайте Б"
   - у вас в xslt шаблоне вывод главной страницы завязан с id страницы (которая находиться на сайте А). P.S. вторая причины выглядит притянутой за уши, но все же, стоит проверить

2. возможно, предыдущий пункт не причем и проблема только в том, что для глобальных настроек система в основном шаблоне (скорее всего variables.xsl) обращается к страницам по их alt-name или по id типам данных, для того чтобы выводить необходимые данные (в том числе контактные данные, которые вы редактировали через EiP) и не найдя их выдает umi'ивскую 404 страницу. А так как вы используете шаблон на новом сайте, а копии страниц у на сайт Б вы скорее всего не делали (или у них были привязки которые поменялись при копировании страниц в структуре) , то шаблон не работает так как вы ожидаете.

Активация опции "Страница по умолчанию" действительно решила проблему с главной страницей, спасибо!

variables.xsl у меня начинается примерно так:

   <xsl:variable name="templateVersion" select="100" />

   <xsl:variable name="infoPageTypeId" select="819" />
   <xsl:variable name="blogPostPageTypeId" select="748" />
   <xsl:variable name="sharedFileTypeId" select="702" />
   <xsl:variable name="albumPageTypeId" select="696" />
   <xsl:variable name="photoPageTypeId" select="697" />
   <xsl:variable name="commentsPageTypeId" select="651" />
   <xsl:variable name="newsItemPageTypeId" select="23" />
   <xsl:variable name="guestTypeId" select="4" />

Можно судя по этому листингу сказать, что проблема с EiP из-за «обращается к страницам по их alt-name или по id типам данных»
Допустим, в тот месте шапки, где через EiP можно было редактировать, например, название компании, сейчас стоит код:
<a umi:element-id="" umi:empty="Введите название компании" umi:field-name="imya_i_familiya" href="/"></a>

На сайте А, это же место имеет код и работает исправно:
<a umi:element-id="29" umi:empty="Введите название компании" umi:field-name="imya_i_familiya" href="/" class="u-eip-edit-box" title="Кликните для редактирования"></a>

т.е. видно, что куда-то пропал id 29

Цитировать
3. по хорошему, я бы предложил вам создать отдельный набор шаблонов, так как нет гарантии что со временем вы захотите поменять не только css? но html структуру корзины или т.п., но если отвечать на ваш вопрос и учитывать, что оба сайта пользуются одним шаблоном, то стоит сделать следующее. Создать какое-то условие (проверка переменной с доменом сайта) на уровне xslt шаблона (например xsl:choose конструкцией) в том месте где подключаются css стили и подключать разные css.

Тут мне нравится фраза «по хорошему» и «создать отдельный набор шаблонов», но как это сделать практически не очень представляю. У меня есть каталог /xsltTpls в котором лежит тот самый шаблон Common.xsl и каталоги /i18n, /layouts, /library, /modules, /sys-tpls — т.е. мне надо сделать еще один /xsltTpls? Но стили лежат совсем в другом месте — /css
Название: Re:Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 18 Мая 2014, 12:29:47
У меня, к сожалению, нет пример xslt шаблонов "готового сайта umi", а то можно было бы быстро посмотреть, как там устроено.

Из того что я помню с последней работы с такими шаблонами, либо система ищет страницу настроек с определенным типом данных, либо система берет эту страницу настроек по конкретному id.

Проще всего, посмотреть в общем шаблоне шапку (в том месте где выводится EiP редактируемые блоки) откуда система выводит тот самый id.

Тут мне нравится фраза «по хорошему» и «создать отдельный набор шаблонов», но как это сделать практически не очень представляю. У меня есть каталог /xsltTpls в котором лежит тот самый шаблон Common.xsl и каталоги /i18n, /layouts, /library, /modules, /sys-tpls — т.е. мне надо сделать еще один /xsltTpls? Но стили лежат совсем в другом месте — /css

если в данной версии системы еще не работает Новый формат хранения шаблонов (http://dev.docs.umi-cms.ru/shablony_i_makrosy/novyj_format_hraneniya_shablonov/)  ( а это можно проверить, зайдя в настройки любого шаблона [админка - модуль Структура - настройки модуля] и посмотрев есть ли там поле "имя шаблона")

Если есть создавайте новый шаблон копируйте туда все (см. ссылку выше, там написано что и как), если нет, то просто делаете так:
- копируете всю папку xsltTpls и переименовав её как вам нравится (например siteB) и помещаете её внутри xsltPls оригинального, то есть у вас получается такая структура /xsltTpls/siteB/
- в настройке шаблонов меняете путь к своему шаблону на новый путь (/xsltTpls/siteB/сommon.xsl)

В итоге, у вас получиться отдельный набор шаблонов, в котором вы сможете поменять любой html, в том числе код подключаемый css файлы (внутри head основного шаблона)

P.S. единственное, что не поменяется при копировании, это подключение к языковым сущностям. Языковые сущности подключаются в каждом файле, на самом верху. Выглядит это как -то так
<!DOCTYPE xsl:stylesheet SYSTEM	"ulang://i18n/constants.dtd:file">
.
То есть, несмотря на то, что вы скопировали папку i18n (в готовых сайтах, по-моему, тоже есть данная папка) в xsl файлах у вас все равно подключаются файлы из папки /xsltTpls/i18n, а не из новой, скопированной, папки /xsltTpls/siteB/i18n

Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 14 Октября 2015, 09:57:40
Добрый день ! У меня были такие же проблемы ! Все решил кроме одной. Захожу по FTP в основной сайт, но там отсутствует второй домен. Как мне менять на втором сайте шрифты, дизайн и т.д., если я не могу войти во второй сайт по FTP ?
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 14 Октября 2015, 11:12:22
Если вы используете мультисайтовость, то файлы самой CMS у вас одни и те же. А вот файлы шаблона (и соответственно css и js) должны быть разные. Для того, чтобы посмотреть какой шаблон используется на том или ином сайте воспользуйтесь информацией из докуменnации UMI.CMS (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_struktura/nastrojki_modulya_struktura/upravlenie_shablonami/)
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 14 Октября 2015, 12:51:02
Для того, чтобы посмотреть какой шаблон используется на том или ином сайте воспользуйтесь информацией из докуменnации UMI.CMS (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_struktura/nastrojki_modulya_struktura/upravlenie_shablonami/)
Какой шаблон используется я знаю. На основном сайте чтобы изменить шапку и шрифты я заходил так: /home/login/domains/основной домен/public_html/css/decor.css
А вот как это сделать со вторым сайтом ?
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 15 Октября 2015, 15:13:44
Какой шаблон используется я знаю

Тогда вы можете в этом шаблоне посмотреть какие css подключаются.

P.S. Eсли посмотреть исходный код вашего сайта второго (впрочем и с первым это тоже будет работать), то вы увидите какие css подключаются и путь к ним.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 18 Октября 2015, 18:22:08
Вопрос в том как подключиться к второму сайту по ftp, чтобы эти css править ? по ftp доступ есть только к основному сайту, а к второму сайту нет !
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 19 Октября 2015, 09:44:59
если у вас есть несколько сайтов работающих на одной лицензии UMI.CMS ,  это означает что шаблоны, css и прочие файлы всех этих сатов физически лежат в одном месте, там где установлена UMI.CMS. Соответственно, если у вас есть доступ к файлам UMI.CMS, на которой расположен первый сайт, то там же лежат файлы второго сайта.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 19 Октября 2015, 14:39:34
если у вас есть несколько сайтов работающих на одной лицензии UMI.CMS ,  это означает что шаблоны, css и прочие файлы всех этих сатов физически лежат в одном месте, там где установлена UMI.CMS. Соответственно, если у вас есть доступ к файлам UMI.CMS, на которой расположен первый сайт, то там же лежат файлы второго сайта.
Заходил по ftp на основной сайт, файлы второго сайта не нашел !
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 19 Октября 2015, 15:43:51
Давайте разбираться по шагам. Как я вижу ситуацию.

1. У вас в админке UMI.CMS есть несколько сайтов
2. Зайдя в настройки модуля "Структура" вы увидите список шаблонов.
3. Там вы можете посмотреть название шаблона (оно может быть и пустым), тип шаблона и название файла (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_struktura/nastrojki_modulya_struktura/upravlenie_shablonami/)
4. Определите путь к шаблонам первого и второго сайта (смотри статью http://dev.docs.umi-cms.ru/shablony_i_makrosy/novyj_format_hraneniya_shablonov/)
5. В данных шаблонах подключаются какие-то css и js
Напишите путь к данным файлам

P.S. или откройте код первого и второго сайта и там посмотрите путь к подключаемым css и js файлам, которые вам необходимо поправить

Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 21 Октября 2015, 10:44:12
Давайте разбираться по шагам. Как я вижу ситуацию.

1. У вас в админке UMI.CMS есть несколько сайтов
2. Зайдя в настройки модуля "Структура" вы увидите список шаблонов.
3. Там вы можете посмотреть название шаблона (оно может быть и пустым), тип шаблона и название файла (http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_struktura/nastrojki_modulya_struktura/upravlenie_shablonami/)
4. Определите путь к шаблонам первого и второго сайта (смотри статью http://dev.docs.umi-cms.ru/shablony_i_makrosy/novyj_format_hraneniya_shablonov/)
5. В данных шаблонах подключаются какие-то css и js
Напишите путь к данным файлам

P.S. или откройте код первого и второго сайта и там посмотрите путь к подключаемым css и js файлам, которые вам необходимо поправить


В админке есть основной сайт и второй.
В настройке модуля "Структура" есть шаблон для основного сайта - common.xsl, такой же у второго.
В коде основного сайта есть путь вот такой: http://masterdom-shop.ru/css/decor.css?102,
В коде второго сайта есть такой путь: http://dom-mebeli54.ru/css/decor.css?102
Но по FTP его нет ! Единственное где я нашел папку с названием второго сайта это по FTP в папке "imap" есть пустая папка с названием второго сайта и папка с названием основного сайта в корой лежат какие-то файлы.
А в админке управления хостингом в разделе управления основным сайтом второй сайт выглядит так:
Сайт
masterdom-shop.ru
 А: dom-mebeli54.ru
Второй сайт добавлялся к осовному как алиас так было сказано сделать в инструкции мультисайтовости на umi.cms
В папках: "domains" и "public_html" есть только папка с основным сайтом.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: admin от 01 Января 2016, 03:37:41
- Когда вы делаете несколько сайтов на одной лицензии, то вы направляете несколько доменов на одну и туже папку с файлами UMI.CMS (что у вас и происходит)
- В самой UMI есть некоторое разделени, благодоря чему вы видите 2 разных сайта, с разными старницами и разными шаблонами
- но вот шаблоны (даже и разные в настрйоках модуля "Структура") вполне спокойно могут обращаться к одному и томуже файлу шаблона
- как следствие этот файл шаблона подключает одни и теже css файлы
- как следствие, любое изменение файлов шаблона или css файла который используется в этом шаблоне применится ко всем сайтам использующим данный файл шаблона

Решения:
Вариант 1 - сделать разные файлы шаблонов
- сделать копию шаблонов первого сайта,
- перенести их другое место
- в настройках модуля "Структура" назначит шаблону второго сайта, эту копию

Вариант 2 - сделать какую-то проверку (например через xsl:choose) в файле шаблона на домен/ Для этого можно воспользоваться тем, что у каждой страницы, в xml виде, есть атрибут  domain у узла result. Но учтите, что при некоторых настройках config.ini у вас может один и тот же домен может выглядеть по разному, например www.site.ru и site.ru
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 01 Февраля 2016, 10:02:44
- Когда вы делаете несколько сайтов на одной лицензии, то вы направляете несколько доменов на одну и туже папку с файлами UMI.CMS (что у вас и происходит)
- В самой UMI есть некоторое разделени, благодоря чему вы видите 2 разных сайта, с разными старницами и разными шаблонами
- но вот шаблоны (даже и разные в настрйоках модуля "Структура") вполне спокойно могут обращаться к одному и томуже файлу шаблона
- как следствие этот файл шаблона подключает одни и теже css файлы
- как следствие, любое изменение файлов шаблона или css файла который используется в этом шаблоне применится ко всем сайтам использующим данный файл шаблона

Решения:
Вариант 1 - сделать разные файлы шаблонов
- сделать копию шаблонов первого сайта,
- перенести их другое место
- в настройках модуля "Структура" назначит шаблону второго сайта, эту копию

Вариант 2 - сделать какую-то проверку (например через xsl:choose) в файле шаблона на домен/ Для этого можно воспользоваться тем, что у каждой страницы, в xml виде, есть атрибут  domain у узла result. Но учтите, что при некоторых настройках config.ini у вас может один и тот же домен может выглядеть по разному, например www.site.ru и site.ru
Сделал Вариант 1, Вариант 2 пока не знаю как сделать ! Что должно измениться после того как я сделал Вариант 1 ?
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 01 Февраля 2016, 10:06:38
А что если в папке "public_html" создать папку с именем второго сайта и скопировать туда все что лежит в папке с именем первого сайта ?
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: masterdom-shop от 01 Февраля 2016, 10:12:40
- Когда вы делаете несколько сайтов на одной лицензии, то вы направляете несколько доменов на одну и туже папку с файлами UMI.CMS (что у вас и происходит)
- В самой UMI есть некоторое разделени, благодоря чему вы видите 2 разных сайта, с разными старницами и разными шаблонами
- но вот шаблоны (даже и разные в настрйоках модуля "Структура") вполне спокойно могут обращаться к одному и томуже файлу шаблона
- как следствие этот файл шаблона подключает одни и теже css файлы
- как следствие, любое изменение файлов шаблона или css файла который используется в этом шаблоне применится ко всем сайтам использующим данный файл шаблона

Решения:
Вариант 1 - сделать разные файлы шаблонов
- сделать копию шаблонов первого сайта,
- перенести их другое место
- в настройках модуля "Структура" назначит шаблону второго сайта, эту копию

Вариант 2 - сделать какую-то проверку (например через xsl:choose) в файле шаблона на домен/ Для этого можно воспользоваться тем, что у каждой страницы, в xml виде, есть атрибут  domain у узла result. Но учтите, что при некоторых настройках config.ini у вас может один и тот же домен может выглядеть по разному, например www.site.ru и site.ru
А копию шаблона нужно переименовывать или оставить как есть ? Потому что после того как я переименовал копию сайт 2 открылся с ошибкой:
Неперехваченное исключение
UMI.CMS
Ошибка (coreException): Not found template "/home/masterdoms/domains/masterdom-shop.ru/public_html/xsltTpls/common1.xsl".
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aghigay от 01 Марта 2016, 22:05:59
Вообще говоря вариант 1 и вариант 2 - взаимоисключающие :-) Не надо делать их одновременно :-) Первый вариант на 100% решает все поставленные задачи
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aizul от 14 Марта 2016, 16:36:23
Тоже возникла проблема с мультисайтовостью.
Сделал 2 сайта (один из сайтов имеет 2 разных домена) таким образом:
1. в настройках домена siteА.ru добавил зеркала: siteB.ru, сайтБ.рф
2. в панели UMI добавил новый домен siteB.ru
3. в панели UMI, в свойствах siteB.ru добавил зеркало сайтБ.рф

В итоге siteB.ru нормально работает, а кириллический домен сайтБ.рф нет.
Пробовал писать обычным способом, так и в пуникоде (вроде так называется), безрезультатно.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aghigay от 14 Марта 2016, 17:37:21
рекомендую для начала ping - посмотреть что одинаковые IP отвечают на siteB.ru и сайтБ.рф
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aizul от 14 Марта 2016, 17:59:53
рекомендую для начала ping - посмотреть что одинаковые IP отвечают на siteB.ru и сайтБ.рф
Понял, что похоже нужно обратиться с хостеру.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aghigay от 14 Марта 2016, 18:01:59
Пишите как чего - подсобим :-)
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aizul от 15 Марта 2016, 14:37:31
Служба поддержки хостинга решила этот вопрос. Спасибо.
Название: Re: Мультисайтовость. Как создать второй сайт?
Отправлено: aghigay от 15 Марта 2016, 14:38:03
:-)