Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Обрезка видимой части изображения шаблоном "catalog-thumbnail"

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 3323
Последний ответ 25 Января 2014, 21:07:48
от NOIRMAN
Не могу разобраться с xslt шаблоном

Автор LarisaРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 4507
Последний ответ 13 Октября 2011, 20:02:58
от admin
Вывод карты сайта xsl шаблоном

Автор psfdekРаздел Шаблоны XSLT

Ответов: 11
Просмотров: 3656
Последний ответ 15 Марта 2016, 14:16:32
от psfdek
Редирект с домена без www на домен c www через htaccess

Автор crazygeorgioРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 4145
Последний ответ 09 Июля 2013, 20:26:36
от Vladimir
Смена технического домена на нормальтный.

Автор akarihРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 3669
Последний ответ 14 Декабря 2011, 21:31:26
от akarih

0 Пользователей и 1 Гость просматривают эту тему.

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Два домена с одним шаблоном
« : 25 Ноября 2013, 22:57:56 »
Здравствуйте!
Есть два домена в зоне RU и COM - оба вставлены в одну лицензию и с одним шаблоном.
Тот который RU открывает все страницы на русском языке на сайте и соответственно COM на сайте открывает страницы на английском языке. Шаблон (визуальный HTML/CSS) один и тот же для обоих языковых вариантов страниц, разные только типы данных для разных языковых страниц.
Но корректно открывается только страницы сайта на домене RU и на COM тоже все страницы нормально открываются, кроме  главной страницы, которая обозначена в структуре как "Страница по умолчанию". То есть получается две главные страницы на одном шаблоне и вызываются они в файле /layouts/default.xsl так:
	<xsl:template match="/" mode="layout">
<html>
<head>
                <xsl:call-template name="head"/>
</head>
       <body>                      
            <xsl:choose>
           <xsl:when test="/result/page/@is-default='1'">
          <xsl:call-template name="index_main"/>  
           </xsl:when>
                <xsl:when test="/result/page/@type-id='169'">    
          <xsl:call-template name="index_main_eng"/>
           </xsl:when>
           <xsl:otherwise>
          <xsl:call-template name="pages-info"/>
           </xsl:otherwise>
            </xsl:choose>
- где "index_main_eng" вызов главной страницы по умолчанию для сайта на домене COM.

Вопрос: как сделать так, что бы в системе на одной лицензии с одним визуальным шаблоном было две страницы по умолчанию?

Есть предположение, что надо сделать второй шаблон для  mode="layout_eng" и как-то его здесь ещё и подключить (в файле /library/common.xsl):
	<xsl:template match="/">
<xsl:choose>
<xsl:when test="count(udata) = 0">
<xsl:apply-templates select="." mode="layout" />
</xsl:when>

<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
« Последнее редактирование: 25 Ноября 2013, 23:03:17 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Два домена с одним шаблоном
« Ответ #1 : 03 Декабря 2013, 10:18:32 »
я правильно понимаю, что
1. у вас 2 языковых версии
2. в обеих версиях есть "страница по умолчанию"
3. обе версии используют один и тот же xslt шаблон

При это у вас не получалось вывести главную странице для en версии сайта и вы добавили
<xsl:when test="/result/page/@type-id='169'">    
<xsl:call-template name="index_main_eng"/>
</xsl:when>

или у вас была необходимость сделать главные страницы разными и вы поэтому добавили этот блок?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Два домена с одним шаблоном
« Ответ #2 : 03 Декабря 2013, 12:52:19 »
я правильно понимаю, что
1. у вас 2 языковых версии
2. в обеих версиях есть "страница по умолчанию"
3. обе версии используют один и тот же xslt шаблон

При это у вас не получалось вывести главную странице для en версии сайта и вы добавили
<xsl:when test="/result/page/@type-id='169'">    
<xsl:call-template name="index_main_eng"/>
</xsl:when>

Да, именно вот так и задумывалось.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Два домена с одним шаблоном
« Ответ #3 : 03 Декабря 2013, 12:58:10 »
а что вы видите на главной странице en версии, если убрать из шаблона блок:
<xsl:when test="/result/page/@type-id='169'">    
<xsl:call-template name="index_main_eng"/>
</xsl:when>
?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Два домена с одним шаблоном
« Ответ #4 : 03 Декабря 2013, 13:47:10 »
а что вы видите на главной странице en версии, если убрать из шаблона блок:
<xsl:when test="/result/page/@type-id='169'">    
<xsl:call-template name="index_main_eng"/>
</xsl:when>
?

Я так уже конечно экспериментировал, но в таком случае была главная страница английского сайта на русском языке со всеми  русскими ссылками в меню и т.п.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Два домена с одним шаблоном
« Ответ #5 : 03 Декабря 2013, 14:13:38 »
а как у вас в общем шаблоне вызывается макрос меню (чтобы понять почему он выводить русское меню). Возможно, в самих вызовах у вас указаны конкретные id которые есть только в русской версии?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Два домена с одним шаблоном
« Ответ #6 : 03 Декабря 2013, 14:13:59 »
А ещё я вот так пробовал:              
            <xsl:choose>
            <xsl:when test="/result/page/@is-default='1'">
           <xsl:call-template name="index_main"/> 
                           <xsl:call-template name="index_main_eng"/>
            </xsl:when>
            <xsl:otherwise>
           <xsl:call-template name="pages-info"/>
            </xsl:otherwise>
            </xsl:choose>
- в таком случае на английском сайте как и на русском шаблоны выстраивались друг над другом в два этажа.

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Два домена с одним шаблоном
« Ответ #7 : 03 Декабря 2013, 14:15:21 »
а как у вас в общем шаблоне вызывается макрос меню (чтобы понять почему он выводить русское меню). Возможно, в самих вызовах у вас указаны конкретные id которые есть только в русской версии?

Да, там меню спецефичное и формируется в виде вывода ссылок на дерево некоторых важных страниц сайта.
.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Два домена с одним шаблоном
« Ответ #8 : 03 Декабря 2013, 14:33:43 »
ну тогда у вас нет возможности использовать один блок для главной странице для разных языковых версий, так как у вас в этом блоке много вызовов которые привязанны конкретно к страницам русской версии сайта

На вскидку есть 2 варианта

1. этот и ему подобные в зависимости от отрибута  lang="en" в узле result
<xsl:choose>
               <xsl:when test="/result/page/@is-default='1' and /result/@lang='en'">
                 <xsl:call-template name="index_main_eng"/> 
               </xsl:when>
                <xsl:when test="/result/page/@is-default='1'">   
                 <xsl:call-template name="index_main"/>
               </xsl:when>
               <xsl:otherwise>
                 <xsl:call-template name="pages-info"/>
               </xsl:otherwise>
            </xsl:choose>

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

Например, у нас есть вызов меню в котором четко прописан id страницы с русской версии сайта (пусть id = 100), а в англ версии сайта там должен быть id = 200. Код вызова в общем шаблоне выглядит так:
<xsl:apply-templates select="document('udata://content/menu/void/1/100)/udata" />
.
Меняем id на языковую сущность (название придумываете сами)
<xsl:apply-templates select="document('udata://content/menu/void/1/&menu_parent_pid;)/udata" />
.
 Затем идем в файлы языковых сущностей ( /templates/demodizzy/xslt/i18n/constants.dtd и /templates/demodizzy/xslt/i18n/constants.en.dtd) и добавляете там соответствующие языковые сущности (<!ENTITY menu_parent_pid "100"> и <!ENTITY menu_parent_pid "200"> соответственно)

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Два домена с одним шаблоном
« Ответ #9 : 03 Декабря 2013, 15:23:54 »
Спасибо, admin!
Но в моём случае, как я понимаю, что константы не применить, так как это описываете вы, так как сайты на разных доменах и в итоге я подключил их на каждый свой отдельный шаблон в папке xslt.