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

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

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


Темы - Babajka

Страницы: [1]
1
Шаблоны XSLT / Position в выборке
« : 20 Марта 2013, 11:48:29 »
Здравсвуйте. На сайте находится несколько меню.
Распределение их происходит с помощью выборки из content menu определенных пунктов меню с метками, в этом случае bottom_menu.
Мне необходимо первому тэгу li присвоить класс first.
Но он не присваевается.
Собственно код:

<xsl:apply-templates select="document('udata://content/menu/')/udata" mode="bottom_menu"/>
<xsl:template match="udata[@method = 'menu']" mode="bottom_menu">
<ul >
<xsl:apply-templates select="items/item" mode="bottom_menu" />
</ul>
</xsl:template>

<xsl:template match="item" mode="bottom_menu">
<xsl:variable name="test" select="document(concat('upage://',@id, '.bottom_menu'))/udata/property/value" />
<xsl:if test="$test !=0">
<li>
<xsl:if test="position() = 1"><!-- тут и закрывается ошибка -->
<xsl:attribute name="class">first</xsl:attribute>
</xsl:if>
<a href="{@link}" >
<xsl:value-of select="." />
</a>
</li>
</xsl:if>
</xsl:template>

Собстенно, если заменить position()=1 на 6(т.к. это 6 пункт меню в админке). То все работает. Но это временная мера.
И сам вопрос: Как это сделать более красиво, что ли. Что бы, если в будущем добавлю еще пунктов меню, не расползлось все.

2
Доброго времени суток.
Возникла проблема с фотогалереей. Пытаюсь отобразить по 2 фотографии в строке. Службу заботы пытаю уже день четвертый, надеюсь на вашу помощь.
В albums.xsl содержится:
<xsl:template match="result[@module = 'photoalbum'][@method = 'album']">
<xsl:apply-templates select="document(concat('udata://photoalbum/album/',$document-page-id))/udata" />
</xsl:template>

<xsl:template match="udata[@module = 'photoalbum'][@method = 'album']" />

<xsl:template match="udata[@module = 'photoalbum'][@method = 'album'][total]">
<div class="photos">
<xsl:apply-templates select="items/item" mode="photo_list" />
<div class="clear" />
</div>
<xsl:apply-templates select="total" />
</xsl:template>

<xsl:template match="item" mode="photo_list">
<div class="line_photo">
<div class="item">
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 != 0]" mode="photo_list" />
</div>
<div class="item">
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 = 0]" mode="photo_list" />
</div>
</div>
</xsl:template>

<xsl:template match="page" mode="photo_list">
<div class="media">
<a href="{@link}" umi:element-id="{@id}" umi:field-name="photo">
<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">180</xsl:with-param>
<xsl:with-param name="height">135</xsl:with-param>
</xsl:call-template>
</a>
</div>
<div class="description">
<h3 umi:element-id="{@id}" umi:field-name="h1">
<xsl:value-of select="//property[@name = 'h1']/value" />
</h3>
<xsl:value-of select="//property[@name = 'descr']/value" disable-output-escaping="yes" />
<a href="{@link}" >&more;</a>
</div>
<div class="clear" />
</xsl:template>

Но выводит по 1 "фото+описание" в строке. Вывод кода прямиком из Fire Fox.
<div class="line_photo">
<div class="item">
<div class="media"><a href="/photo/arochnaya_teplica_fermerskaya_1/" umi:element-id="28" umi:field-name="photo"><img src="/images/cms/thumbs/80daed57299900699b31a66148d75e1693555ca7/1_180_135_5_80.jpg" width="180" height="135" umi:element-id="28" umi:field-name="photo" umi:empty="/images/design/nofoto.jpg"></a></div>
<div class="description">
<h3 href="/photo/arochnaya_teplica_fermerskaya_1/" umi:element-id="28" umi:field-name="h1">Арочная теплица ФЕРМЕРСКАЯ 1</h3><p><strong>Категория:</strong> арочные теплицы Solidprof<br /> <strong>Тип каркаса:</strong> сборный алюминиевый<br /> <strong>Материал каркаса:</strong> алюмин.проф.труба</p><a href="/photo/arochnaya_teplica_fermerskaya_1/">Подробнее</a>
</div>
<div class="clear"></div>
</div>
<div class="item"></div><!-- !!! -->
</div>
Строка помеченая !!! это строка:
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 = 0]" mode="photo_list" />. 
Следовательно условие [position() mod 2 = 0] невыводит ничего.
Если вместо этого условия поставить:
- page[position() = last()] то он выводит все те же фото+описание что и условие page[position() mod 2 != 0].
- page[position() = first()] он выдает ошибки и не выдает шаблон photoalbum вообще.
Следовательно, по моему мнению, оно хватает некое булево значение. И выводит фото+описание при 1 и не выводит при 0.

Но как можно сделать что бы выводилось по 2 блока <div class="item"> в строке?

3
Шаблоны XSLT / Шаблон выборки из каталога
« : 25 Декабря 2012, 16:16:20 »
Есть каталог с 4 "разделами каталога", в этих еще "разделы каталога" и в них "объекты каталога"
На сайте создано отоброжение определенных "объектов каталога" на главной, по определенной "системе".

<xsl:template match="result[page/@is-default]" priority="1">
<xsl:apply-templates select="document(concat('upage://',$settings-id,'.index_catalog'))/udata/property" mode="index-catalog" priority="1" />
</xsl:template>

<xsl:template match="property[@name = 'index_catalog']" mode="index-catalog" priority="1">
<xsl:variable name="cat_id" select="value/page[1]/@id" />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList//',$cat_id,'///2'))" />
</xsl:template>

Мне нужно вывести другие "объекты каталога" на другой странице. Но не таким же способом. В данном случае id страницы - 229, выборка производится по присутствию id="347". Но в дальнейшей разработке данного "шаблона" я затрудняюсь.

<xsl:template match="result[page/@id = '229']" priority="1">
<xsl:apply-templates select="document(concat('upage://',$settings-id,'.index_catalog'))/udata/property" mode="index-litecatalog" priority="1" />
</xsl:template>

<xsl:template match="property[@id = '347']" mode="index-litecatalog" priority="1">
<xsl:variable name="lite_id" select="value/page[1]/@id" />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList//',$lite_id,'///2'))"  priority="1" />
</xsl:template>

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

4
Сделал форму обратной связи, как в данной статье, предложенный Надеждой.
http://umi-cms.spb.su/forum/index.php?what=showtopic&theme=8
Но ничего не выходит, не отправляется. Это ясно что из-за того что она в tpl делает, а я пытаюсь в xslt.
Но как именно можно реализовать это в xslt?

5
У меня версия "Start". Пытаюсь создать боковое меню в которых выводятся заголовки лент новостей. Создал чекбоксы для лент, с идентификатором - "bokovoe_menu".

Вывожу вот этим куском кода:

<xsl:apply-templates select="document('udata://content/menu/(null)/1/')" mode="bokovoe_menu" />

В шаблон вставляю в вот этот код:

<xsl:template match="udata[@method = 'menu']" mode="bokovoe_menu">
<ul umi:element-id="0" umi:module="content" umi:region="list" umi:sortable="sortable" umi:add-method="popup">
<xsl:apply-templates select="items/item" mode="bokovoe_menu" />
</ul>
</xsl:template>

<xsl:template match="item" mode="bokovoe_menu">
<li>
<a href="{@link}" umi:element-id="{@id}" umi:region="row" umi:field-name="name" umi:empty="&empty-section-name;" umi:delete="delete">
<xsl:value-of select="." />
</a>
</li>
</xsl:template>

Но заместо вывода заголовков лент новостей, выводятся все те же что и в main_menu.

6
Пытаюсь сделать что бы в модуле блог, при условии что нет ни одного комментария, весь шаблон комментариев не выводился. Догадываюсь что дело в правильном прописывании when test="*******" но как и что именно не ясно.

<xsl:choose>
<xsl:when test="document(concat('udata://blogs20/commentsList/'))">
<xsl:apply-templates select="document(concat('udata://blogs20/commentsList/',$document-page-id,'/'))/udata" /><br />
</xsl:when>
</xsl:choose>

7
Шаблоны XSLT / Задать параметр template-resources
« : 07 Ноября 2012, 17:08:04 »
Пытаюсь перейти на новый формат хранения шаблонов. Прописал href="%template_resources%css/style.css", не понятно где вводить значение <xsl:param name="template-resources" />.

8
Слышал о патче "mantis #13480", который помогает при загрузке большого объема данных. Но ни где найти его не могу. В частности, когда загружаю csv данные, выдает ошибку на какой либо строке. При этом по разному разбивал данные, все равно ошибки выдает. Кто нибудь подскажет где можно скачать этот патч или может подскажете решение данной проблемы?

9
Шаблоны XSLT / Адрес из поля как ссылку.
« : 10 Сентября 2012, 16:48:03 »
Ссылка типа <a href="{@link}" umi:element-id="{@id}" umi:field-name="name" umi:delete="delete"><xsl:apply-templates select="//property[@name = 'instrukcii']" mode="instrukcii" /></a> ведет на эту же страницу. Нужно что бы она вела на ссылку которую указываешь в полях в админке у товара. Как это сделать? Предположительно дело в самом href="{@link}". Но что именно ни как не пойму.

10
Был создан тип данных "Настройки сайта" и страница "Настройки"
В итоге отображается ошибка
"Warning: DOMDocument::load(): Entity 'settings-page-id' not def "
Как ее исправить?

11
Если в поисковой фразе встречается "/" товар не находится.
Как то это можно исправить?

12
Работаю с большим каталогом товаров. При добавлении вручную еще одного лота товаров возникает проблема при добавлении фотографии. После нажатия на добавление фотографии - открывается файловый менеджер. И начинает грузиться до бесконечности. Собственно это и есть проблема, как нибудь это можно исправить?

13
Установка UMI.CMS / UMI на Denwer ошибка 13011
« : 18 Июля 2012, 15:40:51 »
Доброго времени суток. Пытаюсь поставить cms UMI на Denwer (Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12). Столкнулся с проблемой на стадии ввода хоста, имени базы, лог и пасса. Выдает ошибку 13011: "Не удалось подключиться к mysql-серверу". Не могу понять в чем беда?

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