Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Модуль Меню - заголовки для блоков меню их поля "Название"

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

Ответов: 8
Просмотров: 3587
Последний ответ 06 Июня 2014, 12:06:35
от admin
Требуется по "клику" на элемент увеличить значение поля и показать значение

Автор tkalyuginaРаздел JS и AJAX

Ответов: 0
Просмотров: 269
Последний ответ 02 Сентября 2016, 12:03:55
от tkalyugina
Тип поля "Состаное"

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

Ответов: 4
Просмотров: 265
Последний ответ 28 Декабря 2016, 17:14:17
от Sumrakrnd
Задать значени поля тип "Составное"?

Автор muldyРаздел Custom макросы

Ответов: 5
Просмотров: 2550
Последний ответ 14 Апреля 2014, 21:20:45
от ilyar
Мультизагрузка файлов в поля "набор изображения"

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

Ответов: 0
Просмотров: 62
Последний ответ 26 Апреля 2017, 19:26:48
от atach

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

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Здравствуйте! Подскажите, пожалуйста, как добавлять свои поля в форму добавления комментария к странице? Нужно сделать поле "Ваш сайт" и поле "Ваша фотография".

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #1 : 02 Декабря 2012, 13:52:42 »
если мы говорим о комментариях для модуля "комментарии", то поля добавить не сложно, надо найти соответствующий тип данных в модуле "шаблоны данных" и добавить то что вам надо, в админке они начнут отображаться... тут все гуд.

Но у вас, будет еще 2 момента...

Во-первых, надо вывести их в шаблоне комментария (так как, там они выводятся просто как html с заранее определенными name, а не берутся из админки)

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

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #2 : 02 Декабря 2012, 18:04:27 »
Спасибо! Буду разбираться)

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #3 : 01 Мая 2013, 16:35:34 »
У меня тоже на эту тему вопрос (Шаблон "demodizzy")
История такова, что я просто переименовал в шаблоне comments-list.xsl

Заголовки полей С

<label>
   <p>Заголовок комментария
      <input type="text" name="title" class="textinputs" />
         </p>
</label>            

НА:

<label>
<p>Должность / Компания:
   <input type="text" name="title" class="textinputs" />
   </p>
</label>

И вот теперь в этом же файле пытаюсь вывести на сайте в списке комментариев через запрос
<xsl:value-of select="//group[@name='common']/property[@name='h1']/value" disable-output-escaping="yes" />
cтроку этого самого поля...Но не получается...

Полный вид таков:

   <xsl:template match="item" mode="review">
      <div class="reviews-block-items" umi:element-id="{@id}" umi:region="row">
         <div class="descr" umi:field-name="message" umi:delete="delete" umi:empty="&empty;" itemprop="description">
           
                <p><xsl:apply-templates select="document(@xlink:author-href)" /></p>
                <p><xsl:value-of select="//group[@name='common']/property[@name='h1']/value" disable-output-escaping="yes" /></p> 
             <p><xsl:value-of select="." disable-output-escaping="yes" /></p>
         </div>            
      </div>
   </xsl:template>

Однако в шаблоне commet-view.xsl через этот же запрос оно успешно выводится, если открыть страницу с отдельным комментарием.

Что я упустил, подскажите, пожалуйста ?
« Последнее редактирование: 01 Мая 2013, 16:40:41 от Axiomateria »

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #4 : 02 Мая 2013, 19:09:29 »
когда вы работаете в шаблоне
<xsl:template match="item" mode="review"> ...

вы работаете с каким-то xml в котором есть какие-то данные. Если вы не уверенны что у данные которые вы хотите вывести есть в данном xml то посмотрите что в нем есть через вставку

<textarea style="height:500px; width:900px;">
     <xsl:copy-of select="."/>
   </textarea>

вставив её в тот шаблон который вас интересует и данная конструкция выведет вам весь xml, с которым вы работаете в данном шаблоне

P.S. подскажу что в шаблоне
<xsl:template match="item" mode="review"> ...
заголовок можно вывести через <xsl:value-of select="@title"  />

P.P.S атрибут disable-output-escaping="yes" используется для того чтобы отключить экранирование при выводе содержимого указанного в атрибуте select... так что <xsl:value-of select="..." disable-output-escaping="yes" /> имеет смысл писать тогда, например, когда вы выводите текст из поля типа "html поле"

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #5 : 05 Мая 2013, 22:38:40 »
P.S. подскажу что в шаблоне
<xsl:template match="item" mode="review"> ...
заголовок можно вывести через <xsl:value-of select="@title"  />

Спасибо!
Да вот так всё просто как всегда в этом случае и решился вопрос...


Однако теперь вопрос другой:
как сделать так что бы к отправленному отзыву, который был одобрен администратором сайта и разрешён к публикации закачать ещё и аватарку от автора пользователя. Администратор должен эти аватарки сам закачивать в первое время.
Я в типе данных "Комментарии" добавил поле под идентификатором  "photo_author_ reviews"
и вот теперь думаю - а правильно ли будет применить такой вариант, как отображение этой загруженной аватарки администратором на сайте к отзыву так:

Значения:
         <xsl:variable name="authorava1" select="document(concat('upage://', //result/page/@id, '.photo_author_reviews'))//value" />
         <xsl:variable name="authorava2" select="document(concat('udata://system/makeThumbnail/(.', $authorava1, ')/(100)/auto'))/udata/src"/>

и на месте вывода в отзыве аватарки запрос:
<img src="http://domen.ru/{$authorava2}"/>   

- с новостями такой фокус сработал, а вот с отзывами пока не ладится...

Что посоветуете в таком случае ?

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #6 : 06 Мая 2013, 12:36:05 »
правильнее назначать аватарку пользователю, так как автор комментария и пользователь связанны. И при выводе комментария (когда вы выводите информацию о авторе комментария) выводите аватар

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #7 : 06 Мая 2013, 16:26:11 »
правильнее назначать аватарку пользователю

назначить в админ/панеле в процессе редактирования отзыва ?

И при выводе комментария (когда вы выводите информацию о авторе комментария) выводите аватар

Так вот вывод этой аватарки и есть мой вопрос - каким посоветуете вызовом выводить эту самую аватарку пользователя ?

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #8 : 07 Мая 2013, 14:20:48 »
Или я вопрос не могу чётко сформулировать... или это в принципе не реализовать ни как...

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #9 : 20 Мая 2013, 09:23:49 »
посмотрите ветку обсуждения про аватар для tpl шаблонов

http://umihelp.ru/forum/index.php/topic,41.0.html


*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #10 : 20 Мая 2013, 20:59:35 »
Спасибо, почитал.
Та тема про то, как аватарку на форуме закачивать самим пользвователем, а у меня для вывода аватарки в комментариях в товару, которую сам администратор будет заливать. В шаблоне данных "Комментарии" я создал в группе полей "comment_props" дополнительное поле "photo_author_reviews" тип "Изображение".
Затем в шаблоне comment-list.xsl вставил "ремикс" этой строчки
<xsl:variable name="avatar" select="document(concat('uobject://',user_id,'.avatar'))/udata/property/value/@path" />

свою строчку:
<xsl:variable name="avatar" select="document(concat('uobject://',user_id,'.avatar'))/udata/property/value/@path" />:
 
но что-то не то опять... не работает...

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Свои поля при добавлении комментария
« Ответ #11 : 21 Мая 2013, 12:45:42 »
вы создали поле avatar в типе данных "комментарий", а затем при выводе каждого комментария пытаетесь вывести поле avatar из текущего пользователя uobject://',user_id....

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #12 : 22 Мая 2013, 15:36:53 »
Извиняюсь. Я ошибся.

Свою строчку я вставляю такую:
<xsl:variable name="photo_author_reviews" select="document(concat('uobject://',author_id,'.photo_author_reviews'))/udata/property/value/@path" />

где вместо поля "avatar" в типе данных "Комментарий" я создал такое же по сути поле с названием "photo_author_reviews".

*

Axiomateria

  • ****
  • 319
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Свои поля при добавлении комментария
« Ответ #13 : 11 Июня 2013, 14:46:27 »
В итоге выкрутился таким образом:

в шаблоне commet-list.xsl вот такой код заработал, теперь администратор может любую аватарку загрузить для респондента

<xsl:template match="item" mode="review">
      <div class="reviews-block-items" umi:element-id="{@id}" umi:region="row">
         <div class="descr" umi:field-name="message" umi:delete="delete" umi:empty="&empty;" itemprop="description">
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                   <td valign="top" width="100">         
         <div class="authoravatar">
           <xsl:attribute name="style">
           <xsl:value-of select="concat('background-image: url(', $site-info[@name = 'avatar_author_default']/value, ')')" />         
         </xsl:attribute>
           <xsl:call-template name="catalog-thumbnail">
           <xsl:with-param name="element-id" select="@id" />
           <xsl:with-param name="field-name">photo_author_reviews</xsl:with-param>
           <xsl:with-param name="width">90</xsl:with-param>
           <xsl:with-param name="height">90</xsl:with-param>
        </xsl:call-template>   
         </div>            
                   </td>
                   <td align="left" valign="top">       
                      <p class="author-name"><xsl:apply-templates select="document(@xlink:author-href)" /></p>
                   <p class="author-org"><xsl:value-of select="@title" /></p>
                      <p class="author-review">
                        <xsl:text>«</xsl:text>
                          <xsl:value-of select="." disable-output-escaping="yes" />
                         <xsl:text>»</xsl:text>
                      </p>
                   </td>
                </tr>
              </table>
         </div>            
      </div>
   </xsl:template>