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

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

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


Сообщения - Prus

Страницы: [1] 2 3 4
1
Шаблоны XSLT / Вывод всех постов блогов
« : 23 Марта 2012, 19:17:21 »
Друзья. Столкнулся с такой проблемой, почему это не сделано автоматом, как в вордпрессе не понимаю.

Есть такая структура блогов


Блог-главный
- блог 1
- блог 2
- блог 3

В блогах 1,2,3 находяться посты, которые отлично выводятся

Мне нужно чтобы при заходе на страницу блог-главный выводились все посты со всех блогов по дате.

Я создал отдельный шаблон для страницы блог-главный и вместе где выводиться содержание страницы прописал

   <xsl:apply-templates select="document(concat('udata://blogs20/postslist/','(753)','/10/'))/udate"   />
                     

где 753 айди блога 1.

Но так вообще получается ошибка.

До этого я скопировал шаблон вывода из файла postlist.xsl в шаблон блога-главный и прописал mode="blog-index"

страница стала грузиться, но все равно ничего не выводиться.

Что я делаю не так? И как это правильно делать)


2
а какая логика? что не так?

3
Привет. Появился вопрос по работе с кастомными макросами. В tpl все было просто. В xslt нужно указывать больше параметров, как я понимаю. Или пока логики до конца не понял. Прошу подсказать на примере русских дат.
Взято тут: http://wiki.umisoft.ru/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B

  public function dateru($time) {
    $day = date('d', $time);
    $month = date('n', $time);
    $year = date('Y', $time);
 
    // Проверка существования месяца
    if (!checkdate($month, 1, $year)){
        throw new publicException("Проверьте порядок ввода даты.");
    }
 
    $months_ru = array(1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
    $date_ru = $day . '&nbsp;' . $months_ru[$month] . '&nbsp;' . $year . ' года.';
    return $date_ru; 
  }


Пишу
<xsl:value-of select="document(concat('udata://custom/dateru/', '$time'))/udata" />

Выводит: Проверьте порядок ввода даты.

вроде все норм, где ошибка?

4
ооо круто спасибо) разберусь)

5
это я видел. а работают кастомные tpl макросы в xslt?

6
Привет. Такой вопрос. Мне нужно вывести случайное фото в шапке сайте.

То есть при каждом обновлении страницы должна меняться фотография в шапке сайта где логотип.

Каждый раз выбирать для каждой страницы нужный альбом это клевый вариант.
Как можно сделать вывод случайного фото из определенного альбома сразу в шапку сайта.


7
И так если кому нужно готовое решение для создание слайдшоу на юми. Скрипт думаю можно выбрать любой и просто изменить значения какие нужно.
Посмотреть как работает у меня можно тут: http://beinisrael.com/apartamenty1/jerusalem/alkalaj/
слайдшоу и fancybox

Фотоальбом вставляется в товар, посредством ссылки на дерево
Вызываем фотоальбом в шаблоне
 <xsl:apply-templates select="document(concat('udata://photoalbum/album/', //property[@name = 'dopolnitelnye_fotografii']/value/page/@id,'/void/1000'))/udata" mode="tovar_photo_list"/>




Шаблон фотоальбома и превью:

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

   <xsl:template match="udata[@module = 'photoalbum'][@method = 'album'][total]" mode="tovar_photo_list">
         
      <div id="products_example">
         <div id="products">
            <div class="slides_container">
<xsl:apply-templates select="items/item" mode="tovar_photo_list" />
<xsl:apply-templates select="total" />
                                </div>
         <ul class="pagination">
             <xsl:apply-templates select="items/item" mode="tovar_photo_list_thumbs" />
                <xsl:apply-templates select="total" />
</ul>
         </div>
      </div>
   </xsl:template>

<xsl:template match="item" mode="tovar_photo_list">

<xsl:variable name="test1" select="document(concat('upage://',@id,'.photo'))/udata//value" />   
 <a href="{$test1}" umi:element-id="{@id}" umi:field-name="photo"  class="fancybox" rel="gallery1">
            <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">500</xsl:with-param>
               <xsl:with-param name="height">312</xsl:with-param>
            </xsl:call-template>
         </a>
      </xsl:template>

<xsl:template match="item" mode="tovar_photo_list_thumbs">
<li>
<a href="#">         
<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="width">55</xsl:with-param>
                                <xsl:with-param name="height">41</xsl:with-param>
         </xsl:call-template>

</a>
</li>
   </xsl:template>

8
не зря, я сделал два вопроса, из них составил правильный один ответ)

у меня изначально была ошибка. Вместо <xsl:variable name="test1" select="document('upage://@id.photo')/udata/property/value" />   

нужно писать
<xsl:variable name="test1" select="document(concat('upage://',@id,'.photo'))/udata//value" />   



9
один и тот же вопрос мне кажется по теме. И людям проще искать, глоссария я просто не увидел.

10
а ок)
ошибку понял. как мне вообще вывести адрес я не понимаю. я его нашел. вот он

<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.000154">
<page id="354" parentId="353" link="/kvartiry/ierusalim/alkalaj_r/735/" is-active="1" object-id="993" type-id="63" type-guid="photoalbum-photo" update-time="1329586331" alt-name="735">
<basetype id="40" module="photoalbum" method="photo">Фотография</basetype>
<name>735</name>
<properties>
<group id="144" name="photo_props">
<title>Свойства фотографии</title>
<property id="191" name="photo" type="img_file">
<title>Фотография</title>
<value path="./images/cms/data/ierusalim/alkalaj_r/735.jpg" folder="/images/cms/data/ierusalim/alkalaj_r" name="735" ext="jpg" width="550" height="350">/images/cms/data/ierusalim/alkalaj_r/735.jpg</value>
</property>
<property id="189" name="create_time" type="date">
<title>Дата создания</title>
<value unix-timestamp="1329586331">Sat, 18 Feb 2012 21:32:11 +0400</value>
</property>
</group>
</properties>
</page>
</udata>

но как его вставить в путь ссылки я не понимаю( уже много чего пробовал( подскажите. уверен что все просто.

11
передаетя вот это
http://beinisrael.com/upage/451

но я все равно не понимаю, как мне это может помочь?
какой макрос или запрос отвечает, за вытаскивание прямой ссылки на изображение?

12
как это смотреть? научи и моих вопросов будет еще меньше)

13
да уже сделал)

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

пример фото
http://beinisrael.com/upage/354

пытаюсь сделать так:
<xsl:variable name="test1" select="document('upage://@id.photo')/udata/property/value" />   
 <a href="что тут писать?" umi:element-id="{@id}" umi:field-name="photo"  class="fancybox" rel="gallery1">
            <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">500</xsl:with-param>
               <xsl:with-param name="height">312</xsl:with-param>
            </xsl:call-template>
         </a>
      </xsl:template>

если писать {$src} и вообще все что угодно после $ то шаблон перестает работать.

14
Ребят, помогите.

Работает все, кроме ссылки на изображение (прямой путь до .jpg)
если пишу $src перестает работать сайт.

Как вывести прямой путь?

15
<form method="post" action="/webforms/send/">

    <!-- необходимо передать идентификатор формы -->
    <input type="hidden" name="system_form_id" value="{@form_id}" />
<xsl:variable name="roomname" select="document(concat('upage://', $document-page-id))//property[@name = 'h1']/value" />
  <input type="hidden" name="data[new][cityroom]" value="{$roomname}" />
 
    <!-- этот парамет указывает куда совершать редирект -->
    <!-- в случае успешной отправки сообщения -->
    <input type="hidden" name="ref_onsuccess" value="/webforms/posted/" />
    <table сlass="form_order">
      <tr>
        <td colspan="2">
<xsl:variable name="h1" select="document(concat('upage://', $document-page-id))//property[@name = 'h1']/value" />
 <div class="h1room">Запрос на аренду апартаментов <xsl:value-of select="$h1" /></div>


после чего в шаблоне данных в форме создал не видимое поле с таким же названием и все.

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