[Обновлено 22.10.15] Выделение авторов в компонентах (обозначаем автора в комментариях)

2233
Доброго времени, уважаемые любители инстанта!

Поскольку, нету времени на большее, выкладываю то, на что его хватило - выделение авторов статей, объявлений, блогов, топикстартеров на форуме. А так же, в придачу, микрохак выделения групп пользователей в комментариях. Плагины, увы, освоить частично не удается, частично нет времени. Потому, выкладываю как есть.

Небольшой момент - стили не наводил. Можно навести самому или подождать выходных. Будет немного больше времени, организую.

1. Выделение автора статьи, объявления, блога.

Открываем ccom_comments_list.tpl

В нужное место вставляем:
Код PHP:
  1. {if $post.author_nickname==$comment.author.nickname}Автор блога{/if}
  2. {if $article.author==$comment.author.nickname}Автор статьи{/if}
  3. {if $item.user==$comment.author.nickname}Автор объявления{/if}
Можно через elseif оформить, кому как удобнее.
Куда именно - решать Вам. Можно под аватарку, а можно на аватарку. А можно просто некий блок выделить внутри этих if, и задать свой стиль. К примеру,

Код PHP:
  1. <div id="cm_msg_{$comment.id}">
  2. {if $comment.show}
  3. {if $post.author_nickname==$comment.author.nickname}<div class="author_blog">{$comment.content}</div> /*добавлено*/
  4. {else}
  5. <a href="javascript:void(0)" onclick="expandComment({$comment.id})" id="expandlink{$comment.id}">{$LANG.SHOW_COMMENT}</a>
  6. <div id="expandblock{$comment.id}" style="display:none">{$comment.content}</div>
  7. {/if}
  8. </div>
2. Выделение топикстартера на форуме.

Открываем файл com_forum_view_thread.tpl

Аналогично к п.1.

Код PHP:
  1. {if $thread.user_id == $post.user_id}ТС{else}комментатор{/if}
Там где хотите, выводите, или какой-то блок выводите в класс, дабы сообщение выделялось.

3. Выделяем комментарий в зависимости от группы пользователя.

Открываем файл components/comments/model.php

Строка 264
Код PHP:
  1. $sql = "SELECT c.*,
заменяем на
Код PHP:
  1. $sql = "SELECT c.*, g.alias AS galias,
или дописываем чего не хватает.
Строка 272
Код PHP:
  1. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
после нее вставляем
Код PHP:
  1. LEFT JOIN cms_user_groups g ON u.group_id = g.id
Сохраняем, закрываем файл.
Открываем файл шаблона com_comments_list.tpl
К примеру, после строк 54-56
Код PHP:
  1. {else}
  2. <td class="cmm_content" valign="top">
  3. {/if}
вставляем
Код PHP:
  1. <div class="{$comment.galias}">
  2. <div id="cm_msg_{$comment.id}">
  3. {if $comment.show}
  4. {$comment.content}
  5. {else}
  6. <a href="javascript:void(0)" onclick="expandComment({$comment.id})" id="expandlink{$comment.id}">{$LANG.SHOW_COMMENT}</a>
  7. <div id="expandblock{$comment.id}" style="display:none">{$comment.content}</div>
  8. {/if}
  9. </div></div>
т.е., добавили новый блок
Код HTML:
  1. <div class="{$comment.galias}"></div>
В админке в пользователях по умолчанию есть такие группы:
admin
guest
moderators
registered
editors

Открываем свой css-файл, и добавляем стили
Код CSS:
  1. .admin {
  2. }
  3. .guest {
  4. }
  5. .moderators {
  6. }
  7. .registered {
  8. }
  9. .editors {
  10. }
Цвет фона, цвет шрифта, тени и т.п., на что хватит фантазии.

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

[UPDATE 22.10.2015]

Добавил стили для комментариев. Изменен вид самих комментариев + выведен автор комментария (автор статьи, блога, объявления). Заготовка есть, можно под свои требования изменить как душа пожелает.

Выделение по группам пользователей - на днях будет готово.

Сделал 2 файла, один - файл шаблона комментариев, его надо поместить в папку templates/your_template/components/, другой - файл стилей, из него стили скопировать в файл стилей своего шаблона. Кнопки Ответить, Редактировать, Удалить - выведены в блок с датой и рейтингом, на него нужно навести мышкой. Пока подумываю, куда бы лучше вывести, чтобы было наглядно и удобно.


Скрытый текст виден только зарегистрированным пользователям



Спасибо за внимание. С уважением, Сергей.
[fix] Клубы, друзья - не корректная работа js в ICMS 1.10.3
Комментарии (10)
Alexprofi 20 октября 2015 в 00:14 0
Я так понял, что это для 1-й ветки?
scanread 20 октября 2015 в 00:15 0
Совершенно верно.
Майкл 20 октября 2015 в 00:28 +1
И как сие смотрится?
scanread 20 октября 2015 в 00:38 +2
Весьма не плохо) Сразу видно, что в комментарии к статье, или к блогу, или к объявлению - отписал сам автор, который создал ту или иную запись. На форуме так же, видны ответы топикстартера. Порой, когда страниц много, не часто успеваешь запоминать, кто создал тему. А так, в самой теме наглядно по ответам все видно. Скажу так "на вкус и цвет товарищей нет". Одним нравятся мелкие красивости, другим - подавай все строго и выдержанно. Себе делал это все через css3-ленту, на аватарку с надписью "Автор или ТС".
scanread 20 октября 2015 в 00:50 +3
Если поиграться со стилями, то можно сделать по разному, к примеру, вот так:

""


""


""


""


или еще как-то. Фантазии нет предела smile
Raiden 20 октября 2015 в 12:42 0
Отличная вещь!) Фича, достойная внедрения в следующий релиз))
""
scanread 22 октября 2015 в 19:12 +1
Обновлены стили для комментариев + скриншоты.
al955 10 марта 2016 в 22:31 +1
Спасибо, все получилось. А к комментам к фотографиям как реализовать?
al955 5 апреля 2016 в 17:10 +1
Разобрался. Для комментов к фото пишем

{if $photo.user_id == $comment.user_id}Автор фотографии{/if}
Александр 23 марта 2018 в 11:02 0
Шикарная штука, не хватает только для стен юзеров и клубов добавить