Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - Axiomateria

Страницы: 1 [2] 3
16
Казалось бы простая задачка - вывести общее количество объектов в разделе, но есть одно "но".
В этом разделе есть дочерний подраздел и в нём тоже есть объекты.
Вот и надо вывести не только количество объектов родительского раздела, но и прибавить ещё объекты из его дочернего разделе в одну сумму.
А вывести эту сумму надо в родительском разделе.
В общем если не обойтись без кастомного написания макроса для вывода всех разделов и подразделов, то сойдёт и простое решение с выводом количества объектов только родительского раздела.

17
Здравствуйте!
Я в недоумении, почему не срабатывает if test в файле object-view.xsl ?...
<xsl:template match="udata" mode="object-view">
               <xsl:if test=".//property[@name = 'photo']/value">  
                         <a href="#" title="{$document-title}" class="thumbnail">    
                             <img alt="{$altimg}" src="http://{$domain}{$titlephoto2}"/>
                         </a>
               </xsl:if>
 </xsl:template>

получается так, что если картинка к объекту @name = 'photo'  не загружена - то всё равно выводятся <a> и <img> со всеми своим атрибутами.

18
Задачка вроде простая, но пока не получается вытащить значение атрибута "@name" (в данном случае это значение "accessories")  в зависимости от его id (в данном случае id="401")

То есть надо в коде вёрстки вместо  {.//property[@name = 'accessories']/@name}
   <a href="#{.//property[@name = 'accessories']/@name}" data-toggle="tab">
         <xsl:apply-templates select=".//property[@name = 'accessories']/title" />
    </a>
подставить в чистом виде accessories

XML такой:
<property id="401" name="accessories" type="symlink">
<title>Аксессуары</title>
<value>
<page id="54" parentId="39" link="/shop/category_test/test/" is-active="1" object-id="413" type-id="132" update-time="1391879655" alt-name="test" xlink:href="upage://54">
<basetype id="55" module="catalog" method="object">Объекты каталога</basetype>
<name>Название объекта тест</name>
</page>
</value>
</property>

19
Здравствуйте!
Интересует способ отображения иконки для нового товара и новости на срок не более недели. То есть новый залитый объект каталога или новость в превьюшке и полной карточке товара отображался с пометкой "Новинка" (иконка рядом с заголовков например будет).
Понятно что показ иконки символизирующую новизну объекта надо привязать к дате публикации... но вот как это с объектом каталога сделать, да ещё с фиксированным периодом времени...

20
У меня в шаблоне объекта каталога применяется шаблон для вывода фотографии вот таким шаблоном:
                      <xsl:call-template name="catalog-thumbnail">
                            <xsl:with-param name="element-id" select="@id" />
                            <xsl:with-param name="field-name">photo</xsl:with-param>
                            <xsl:with-param name="empty">&empty-photo;</xsl:with-param>
                            <xsl:with-param name="width">1200</xsl:with-param>
                            <xsl:with-param name="height">360</xsl:with-param>
                       </xsl:call-template>
- то есть обрезка видимой части картинки происходит как-то по среднему, то есть верх и низ не видны... нелепая ситуация какая-то...
Может быть есть методы регулирования изображения в таком виде, что бы картинка выводилась начиная сверху, а обрезовался только низ  в установленных параметрах
                            <xsl:with-param name="width">1200</xsl:with-param>
                            <xsl:with-param name="height">360</xsl:with-param>
?

21
Здравствуйте!

У меня в объекте есть несколько разных полей с выпадающими списками элементов в них и не на всех объектов каталога они заполняются, то есть поле "Мобильная версия" с выпадающим список с трёмя элементами справочника:  "да" , "нет" ,  "в разработке".
На данный момент поле "Мобильная версия" отображается на сайте даже если ни чего не выбрано из эти трёх вариантов справочника.

Вызов:  
<xsl:apply-templates select=".//group[@name = 'card_site_full']/property" mode="cardsitefull" />

Шаблон:
    <xsl:template match="property[@type='relation']" mode="cardsitefull">
        <div class="item-properties">                                                        
            <xsl:value-of select="title"/>
            <xsl:text>: </xsl:text>
            <xsl:value-of select="value/item/@name"/>
        </div>
    </xsl:template>
    <xsl:template match="property[@type='relation' and value = '']" mode="cardsitefull"/>  

Как сделать так, что поле "Мобильная версия" вообще не выводилось, если ни один из трёх вариантов справочника не выбран при редактировании объекта ?

22
Здравствуйте!

Через вызов <xsl:apply-templates select="document('usel://ConfHotels/')/udata" mode="table-view-groups-conf" />  на странице с типом данных "Страница контента" (назовём её условно "Мажорные отели") выводятся превью объектов каталога по таком уже шаблону, что и превью этих же объектов на странице раздела каталога с типом данных "Раздел каталога".
На странице "Мажорные отели" выводятся превью объектов через usel все сразу, то есть полное количество (102 штуки) с длинной прокруткой на одной странице.
Вот этот самый файл:
<?xml version="1.0" encoding="utf-8"?>
<selection>
   <target expected-result="pages">
 <type module="catalog" method="object" />
 <type id="145"/>
   </target>
   <property name="detailed_description_hotel">
   </property>
   <extended>
      <properties>h1,title-hotel-photo,stars,location,detailed_description_hotel,price_special_offers</properties>
   </extended>
<sort>rand()</sort>
<limit page="0">{limit}</limit>    
</selection>
В настройках модуля "Каталог" указано значение "10" для количества выводимых объектов на одной странице и в разделе каталога на сайте пагинация выводиться успешно.
Что сделать надо, что бы и на странице, где объекты каталога выводятся через usel тоже выводилась пагинация ?
 

23
Шаблоны XSLT / Название страницы с файлом
« : 01 Декабря 2013, 02:01:31 »
Здравствуйте!

На странице объекта каталога  выводиться файл для скачивания:
<xsl:apply-templates select=".//property[@name='price_special_offers']" mode="se-link-file" />

и на данный момент получается вывести этим шаблоном название поля из типа данных "Объект каталога", то есть
<xsl:value-of select="title"/> называется "Скачать прайс-лист".:

<xsl:template match="property[@name='price_special_offers']" mode="se-link-file">
        <a href="{value}" title="{title}" target="_blank">
          <xsl:value-of select="title"/>
        </a>        
 </xsl:template>
<xsl:template match="property[@name='price_special_offers' and value = '']" mode="se-link-file"></xsl:template>

Но в конечном итоге надо вывести название страницы из поля "h1", в которую сам файл загружен, то есть из страницы типа данных "Скачиваемый файл", так что бы  на странице было название "Прайс-лист 2014".

Мутно объяснил, но если что готов на все уточнения ответить :)

24
Шаблоны XSLT / Два домена с одним шаблоном
« : 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
Здравствуйте!
Возможно ли в принципе для каждого элемента справочника привязать собственное изображение, как например если есть пять категории гостиниц, то вместо "5 звёзд", "3 звезды" и т.д. выводить не текст из выпадающего списка элементов, а привязанные изображения к ним ?

26
Здравствуйте!
Есть ли такая возможность как вывод в виде ссылок тем из группы "Входит в сюжеты" на главную страницу новостей?

Ситуация такая: все новости находятся в одном общем разделе "Новости" и идут одна за одной общим списком по дате публикации. Есть три сюжета: "новости культуры", "новости моды" и "разное", к которым привязана та или иная новость.
Надо сделать так, что бы на главной странице новостей в виде как бы "меню" возможно было вывести ссылки на сюжеты.
Пользователь, у примеру, нажимает на ссылку "новости культуры" и ему открывается страница с отфильтрованной выборкой только тех новостей ,которые при публикации были привязаны к сюжету "новости культуры".

Предполагаю, что здесь не обойтись без протокола usel

27
Здравствуйте!
В объекте каталога (гостиница) подключен справочник со множественным выбором "Ближайшее метро", где элементы соответственно станции метрополитена.
Вопрос: не могу решить вывод нескольких выбранных станций с перечислением их через запятую и в конце с точкой что б.

Пробовал применить шаблон  из файла object-view.xsl (цитирую не полностью)
   <xsl:template match="property" mode="div">
      <xsl:apply-templates select="document(concat('utype://', ../../../@type-id, '.', ../@name))/udata/group/field[@name = ./@name]/tip" mode="tip" />
      <xsl:value-of select="title" />
      <xsl:text>: </xsl:text>
      <span umi:field-name="{@name}"><xsl:apply-templates select="." /></span>
      <xsl:text>; </xsl:text>
   </xsl:template>
   
   <xsl:template match="property[last()]" mode="div">
      <xsl:apply-templates select="document(concat('utype://', ../../../@type-id, '.', ../@name))/udata/group/field[@name = ./@name]/tip" mode="tip" />
      <xsl:value-of select="title" />
      <xsl:text>: </xsl:text>
      <span umi:field-name="{@name}"><xsl:apply-templates select="." /></span>
      <xsl:text>. </xsl:text>
   </xsl:template>

НО как-то не задалось.
 

28
У меня такой вот xml получается с данными, при выводе данных объекта каталога:
<parents>
  <page id="149" parentId="142" link="/main/services/hotels/hotels_spb.html" is-visible="1" is-active="1" object-id="738" type-id="138" update-time="1378489691" alt-name="hotels_spb" xlink:href="upage://149">
    <basetype id="54" module="catalog" method="category">Разделы каталога</basetype>
    <name>Гостиницы Санкт-Петербурга</name>
  </page>
</parents>

Необходимо в объекте каталога, то есть в гостинице,  прописать заголовок раздела, в котором этот объект с гостиницей и находится.
То есть заголовок раздела вывести на всех объектах этого раздела.
В хмl этого объекта с гостиницей видно, что заголовок раздела "Гостиницы Санкт-Петербурга" содержится в  
<name>Гостиницы Санкт-Петербурга</name> -
 какой вызов нужен для его вывода на странице в объекте гостиницы?

Дальше этого <xsl:value-of select="result/page/@parentId" /> пока не продвинулся...

29
Здравствуйте!

Задача такая: отобразить на странице объекта каталога (гостиницы) группу полей с двумя разными полями.
1-е поле с текстом (тип "HTML-текст") + 2-е поле с фотографией (тип данных "Фотография").
То есть пользователь в этой админке заполняет 1-е поле текстом, а во 2-е поле загружает фотографию через файловый менеджер ( как пример - через кнопку "Обзор" по аналогии с процессом загрузки фотографий в новостях)

И на сайте в итоге и по идее пользователь видит загруженное фото рядом с текстом, при чём что главное фотография при нажатии увеличивается с эффектом "лайтбокс".


Решение почти реализовано так:
<xsl:template match="udata" mode="hotel-object-view">
   <xsl:apply-templates select=".//group[@name = 'hotel_restaurants' and not(property/value='')]" mode="hotel-restaurant" />
</xsl:template>

   <xsl:template match="group" mode="hotel-restaurant">
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel-restaurant" />
</xsl:template>
    <xsl:template match="property[@type='img_file']/value" mode="hotel-restaurant">
<div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
</xsl:template>
<xsl:template match="property" mode="hotel-restaurant">                                  
          <div class="cell2"><xsl:value-of select="value" disable-output-escaping="yes" /> </div>
</xsl:template>
 

где  <h3><xsl:value-of select="concat(title, ':')" /></h3> - заголовок группы полей, а
    <xsl:template match="property[@type='img_file']/value" mode="hotel-restaurant">
      <div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
   </xsl:template>    

попытка вывести отдельно фотографию....

Но на странице объекта каталога успешно выводиться только текст,
а вместо фотографии только голая ссылка на неё "/images/hotels_spb/5_star_hotels/astoria_kandinsky_bar.jpg"

Вопрос:
как сделать так, что бы в шаблоне можно было сообщить системе, что изображение надо выводить в таком формате:
<div class="cell1">
                       <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'picture_situation']/value}" title="{.//group[@name='hotel_restaurants']/title}">
                           <xsl:call-template name="catalog-thumbnail">
             <xsl:with-param name="element-id" select="page/@id" />
             <xsl:with-param name="field-name">picture_situation</xsl:with-param>
             <xsl:with-param name="width">220</xsl:with-param>
              </xsl:call-template>
                        </a>
                      </div>

?

 

30
Здравствуйте и процветайте!

Ситуация такова: создаются виртуальные копии новостей и ссылки на них дублируются на самой странице с новостью.
То есть получается так, что администратор сайта при создании/редактировании новости добавляет её в сюжет и оригинал новости и ёё виртуальная копия затем отображается в подробном описании новости под текстом "Похожие новости " в виде повторяющихся по два раза ссылок.
Что делать с этим дублированием, как отключить вывод ссылок на виртуальные копии новостей?

Страницы: 1 [2] 3