Как сделать кнопку "Ответить по нику" или "Цитировать"?

Скачал 1.0.3 версию движка, гоняю на локалке. Заметил такую вещь — нет кнопки цитировать или обратиться по нику. Как то можно ее сотворить? Или где копать?

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

avatar
avatar
Ну что, не ужели никто не знает?
avatar
<li><a href="#" onclick="ls.comments.toggleCommentForm({$oComment->getId()}); return false;" class="reply-link">{$aLang.comment_answer}</a></li>


Вот ссылка Ответить по нику. Но когда на нее нажимаешь, то вылезает простая форма ответить, и там нет уже вписанного туда ника человека, кому хочешь ответить.
avatar
На LS древовидная структура комментариев, т.е. и так понятно кому вы отвечаете.
Если вы все же хотите обратится по нику — см. скриншот выше
avatar
Нужно сделать, чтобы ник прописывался в форму ответа автоматически. Можно ли это реализовать? Смотрю на многих сайтах это сделали, но я не пойму как. По идее надо создавать вторую форму ответа с прописанной туда формулой, и подводить на нее альтернативную ссылку при ответе…
avatar
Реализовать скорее всего можно, но таких мануалов здесь не размещалось, а так вопрос вряд ли решается дописыванием пары строк кода, не стоит ждать ответа. Скорее всего у Вас одна дорога — на биржу.
avatar
Ну так может я правильно саму суть описал? Делаем второй код формы, где по дефолту стоит в начале ник отвечающему. И вызов по другой ссылке.
avatar
Я тут ничем не смогу помочь, т.к. не программист. Но чувствую, что никаких вторых форм писать не нужно, а нужно вытащить айдишник пользователя на чей коммент отвечаем (если это ответ на чей-то коммент, а не просто коммент) и добавить в форму ответа, предварительно из айдишника вытянув логин и ссылку на пользователя.
avatar
Да, именно так и нужно.
avatar
Либо сделать кнопку «цитировать»
avatar
В теории можно сюда подставлять <ls user="username" />, предварительно «вытащив» username из каммента, на который отвечаем.
avatar
Спасибо! А в данной строке js кода куда именно вставить и как вставить чтобы js код не повредить лишними кавычками?
avatar
А как вытащить айди из коммента? Вот это самое трудное для меня.
avatar
На коленке такую фичу нормально не сделать, но раз ты очень хочешь, то я накидал для тебя решение

Открываешь файл templates/skin/(your skin)/comment.tpl
Ищешь там это
<li class="comment-author {if $iAuthorId == $oUser->getId()}comment-topic-author{/if}" title="{if $iAuthorId == $oUser->getId() and $sAuthorNotice}{$sAuthorNotice}{/if}">
    <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>
</li>


Заменяешь на это
<li class="comment-author {if $iAuthorId == $oUser->getId()}comment-topic-author{/if}" title="{if $iAuthorId == $oUser->getId() and $sAuthorNotice}{$sAuthorNotice}{/if}">
    <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>
    {assign var="oParentComment" value=LS::E()->ModuleComment_GetCommentById($oComment->getPid())}

    {if !is_null($oParentComment) and $oParentComment->getUser()->getId() != $oComment->getUser()->getId()}
        ответ для <a href="#" onclick="ls.comments.goToParentComment({$oComment->getId()},{$oComment->getPid()}); return false;">{$oParentComment->getUser()->getLogin()}</a>
    {/if}
</li>


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

Я не рекомендую использовать это решение, оно
1. Создает N дополнительных запросов к базе, где N — это кол-во комментариев. Топики с сотней комментов будут открываться ощутимо дольше.
2. Делает эти запросы из шаблона, где подобной логики вообще не должно быть.
3. Исправляет исходные файлы шаблона, хотя этим должен заниматься плагин.
4. Ломает верстку, если логины будут длинными.

И, повторюсь, подобное решение — тебе же дороже выйдет, как тебе уже посоветовали выше — надо заказывать разработку.
  • emmy
  • +1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.