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

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

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


Сообщения - e.ioffe

Страницы: 1 ... 23 24 [25]
361
Шаблоны XSLT / Re:Position в выборке
« : 21 Мая 2013, 17:55:46 »
Жаль. А можно адрес сайта в личку? Может, что-то еще в голову придет.

362
Шаблоны XSLT / Re:Position в выборке
« : 21 Мая 2013, 14:50:41 »
Да, забыл дописать проверку, есть ли вообще в выборке элементы интересные нам. Вместо

<xsl:template match="udata[@method = 'menu'][items/item]" mode="bottom_menu">

нужно указать

<xsl:template match="udata[@method = 'menu'][items/item[extended//property[@name = 'bottom_menu']/value]]" mode="bottom_menu">

363
Шаблоны XSLT / Re:Position в выборке
« : 21 Мая 2013, 14:49:26 »
может уже ну его, через макрос menu, может через usel попробовать? там при выборке сразу можно будет поставить проверку на это поле bottom_menu

P.S. Кстати, этот то вариант работает?

Не сторонник использовать usel там, где можно обойтись стандартными udata :)

Именно для этого случая я бы использовал следующий код:

<xsl:apply-templates select="document('udata://content/menu/?extProps=bottom_menu')/udata" mode="bottom_menu" />

<xsl:template match="udata[@method = 'menu']" mode="bottom_menu" />

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

<xsl:template match="item" mode="bottom_menu" />

<xsl:template match="item[extended//property[@name = 'bottom_menu']/value]" mode="bottom_menu">
<li>
<xsl:apply-templates select="." mode="additional-class" />
<a href="{@link}" ><xsl:value-of select="." /></a>
</li>
</xsl:template>

<xsl:template match="item" mode="additional-class" />

<xsl:template match="item[first()]" mode="additional-class">
<xsl:attribute name="class">first</xsl:attribute>
</xsl:template>

Во-первых, при вызове content/menu указываем, что нам нужно дополнительно получить параметр bottom_menu. Затем фильтруем в зависимости от того, есть ли у элемента этот параметр или нет.

Если есть - показываем элемент и дальше определяем, какой у него должен быть класс. Если не первый, то класс не добавляем. Если первый, то добавляем.

Как-то так :)

364
Может быть, Вам нужно выводить не элемент справочника, а страницы, связанные с этим элементом?

Я использую следующий способ (на примере "Брендов"):
- создаем новый тип данных "Бренд" (как "дочерний" к объекту каталогу). В новом типе данных отмечаем значение "Использовать как справочник".
- создаем новый раздел в каталоге "Бренды"
- в шаблоне новый тип данных обрабатывается следующим выражением: <xsl:apply-templates select="result[@module = 'catalog' and @method = 'object' and page/@type-id = 'номер созданного типа данных']>
Затем вызывается usel, который "подбирает" нужные объекты из каталога.

365
Добрый день всем! У меня такой вопрос? Есть меню не обычное, а с картинками. Не могу догнать как его реализовать. Вот само меню с картинками

Если сайт на xslt, используйте extProps. Пример вызова: udata://content/menu/(Параметры)/?extProps=menu_pic_a (в вывод будет добавлено свойство "Изображение активного раздела"). Более подробно см. здесь - http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/makrosy_protokol_udata/#extended

366
Напишите свой кастомный метод, которому будете передавать анонс, а он уже будет нормально обрезать текст.

367
Начните с написания детального ТЗ 8) Пропишите всю логику работы, посмотрите, какие данные и в каком месте Вам нужны.

А потом можно взяться за админку. Например, достаточно хорошая статья на вики - http://wiki.umisoft.ru/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_(%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B)

368
Похоже, нашел решение проблемы. В последней версии для корректной отправки сообщения необходимо в папке шаблона создать папку mail, в которой будут располагаться шаблоны, описывающие отправляемое сообщение. Образцы сообщений можно взять с любого демонстрационного шаблона.

369
Шаблоны XSLT / Re:Position в выборке
« : 08 Апреля 2013, 17:15:16 »
Можно и в большинстве случаев именно так я и делаю и рекомендую делать слушателям курсов, но <xsl:if /> все равно продолжаю использовать.Например, в ситуации, когда мне надо добавить класс в верстку в зависимости от позиции элемента в xml документе (особенно если их несколько, например класс для первого, для последнего, для четного). В этом случае удобнее делать это в одном шаблоне иначе сэкономив на быстроте выполнении той или иной организации шаблона, вы можете потерять в скорости обработки из-за возрастания количества шаблонов.

Вставлю свои 5 копеек :) If использую в редких случаях, когда, например, нужно проверить, есть ли в корзине товары, но при этом не хочется городить дополнительные template.

Обычно класс для элемента вставляю с помощью конструкции (если уверен, что класс будет в любом случае)

<li>
<xsl:attribute name="class"><xsl:apply-templates select="." mode="additional-class" /></xsl:attribute>
</li>

<xsl:template macth="item[first()]" mode="additional-class">first</xsl:template>

<xsl:template macth="item[last()]" mode="additional-class">last</xsl:template>

Или, если в некоторых случаях класс не нужен, то:

<li>
<xsl:apply-templates select="." mode="additional-class" />
</li>

<xsl:template macth="item" mode="additional-class" />

<xsl:template macth="item[first()]" mode="additional-class">
<xsl:attribute name="class">first</xsl:attribute>
</xsl:template>

Страницы: 1 ... 23 24 [25]