Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Отображение автора новости в комментариях

Отображение автора новости в комментариях


     14.01.2013    Все вопросы » Хаки    3514

вопрос
Доброго времени. Подскажите пожалуйста, как сделать, чтобы выводилась надпись "автор новости" в комментарии если он сам оставил комментарий в своей же новости. Собственно далеко ходить не надо, такое реализовано на этом сайте в виде иконки "Автор вопроса"

DLE 9.4

Ответил: ПафНутиЙ


Это реализуется средствами jquery :
jQuery(document).ready(function($) {
    
    //подсветка комментов ТС
    newsAuthor = $("#news_author a").text(); // Ссылка на автора в новости, заключенная в div#news_author
    commItem = $(".comm-item"); // класс, оборачивающий комментарий
    commItem.each(function () {  
        commAuthor = $(this).find(".comm-author a").text(); // получаем имя автора коммента, находящегося внутри ссылки, завёрнутой с div.comm-author
        if (commAuthor == newsAuthor) {
            $(this).addClass("ts_comm"); // тут пишем всё, что должно произойти если ТС = автору коммента
        }
    });
});

html посмотрите в исх коде сайта.

В fullstory.tpl должна присутствовать вот такая конструкция:
<span id="news_author">{author}</span>

в comments.tpl такая:
<div class="comm-item">
<span class="comm-author">{author}</span>
</div>

Результатом работы приведенного скрипта будет добавление блоку комментария автора с классом comm-author дополнительного класса ts_comm.
Если написать вместо
$(this).addClass("ts_comm");

к примеру
$(this).text("Блаблабла");
вместо имени автора подставится Блаблабла.
Отредактировал 22-01-2013, 09:20 - ПафНутиЙ
Причина: дополнил ответ

6 комментариев

DanRacer
Юзер

DanRacer - 15 января 2013 04:42 -

Спасибо разобрался. Это работает если в fullstory есть тег {author}, а он изначально у меня отсутствует и пихать его не очень хочется по своим соображениям, а вот если автор новости оставит комментарий в своей публикации, хотелось бы его выделить (вот такой я балбес). Изменениями на уровне движка это никак нельзя реализовать, не?

Sander
PHP-developer

Sander - 15 января 2013 13:35 -

<div id="news_author" style="display:none;">{author}</div>

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

erik12
Юзер

erik12 - 19 января 2013 20:41 -

Можно поподробней, как сделать ?

Alyona
Юзер

Alyona - 14 июня 2019 15:29 -

Не работает.. Добавляю в шаблоне в файл libs.js и необходимые классы в сам шаблон. DLE 13.2

Alyona
Юзер

Alyona - 14 июня 2019 18:39 -

Вобщем то работает, но в моем случае

comments.tpl
<span class="tsc"><span class="comm-author">[profile]{login}[/profile]</span></span>


fullstory.tpl
<span id="news_author">[profile]{login}[/profile]</span>


ну и в libs
jQuery(document).ready(function($) {
    
    //подсветка комментов ТС
    newsAuthor = $("#news_author a").text(); // Ссылка на автора в новости, заключенная в div#news_author
    commItem = $(".tsc"); // класс, оборачивающий комментарий
    commItem.each(function () {   
        commAuthor = $(this).find(".comm-author a").text(); // получаем имя автора коммента, находящегося внутри ссылки, завёрнутой с div.comm-author
        if (commAuthor == newsAuthor) {
            $(this).addClass("ts_comm"); // тут пишем всё, что должно произойти если ТС = автору коммента
        }
    });
});



А вот как добавлять класс непосредственно к comm-author ?

Flash
Эксперт

Flash - 14 июня 2019 22:41 -

После
$(this).addClass("ts_comm");
добавляем
$(this).find(".comm-author").addClass("new_class");

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх