2014-06-13 09:34:12 +03:00
|
|
|
|
{**
|
|
|
|
|
* Комментарии
|
|
|
|
|
*
|
2014-11-06 18:51:24 +02:00
|
|
|
|
* @param array $comments
|
|
|
|
|
* @param integer $count
|
|
|
|
|
* @param integer $targetId
|
|
|
|
|
* @param string $targetType
|
|
|
|
|
* @param string $dateReadLast
|
|
|
|
|
* @param boolean $forbidAdd
|
|
|
|
|
* @param integer $authorId
|
|
|
|
|
* @param integer $lastCommentId
|
|
|
|
|
* @param array $pagination
|
|
|
|
|
* @param boolean $isSubscribed
|
2015-06-06 07:38:10 +03:00
|
|
|
|
* @param integer $maxLevel
|
2014-06-13 09:34:12 +03:00
|
|
|
|
*
|
2015-01-27 15:25:52 +02:00
|
|
|
|
* @param array $commentParams
|
2014-11-06 18:51:24 +02:00
|
|
|
|
* @param boolean $useSubscribe
|
|
|
|
|
*
|
|
|
|
|
* @param string $forbidText
|
|
|
|
|
* @param string $authorText
|
|
|
|
|
* @param string $addCommentText
|
2015-06-06 07:38:10 +03:00
|
|
|
|
* @param string $title
|
|
|
|
|
* @param string $titleNoComments
|
2014-11-06 18:51:24 +02:00
|
|
|
|
*
|
|
|
|
|
* @param string $classes
|
|
|
|
|
* @param array $attributes
|
|
|
|
|
* @param string $mods
|
2014-06-13 09:34:12 +03:00
|
|
|
|
*}
|
|
|
|
|
|
2015-05-07 15:45:21 +03:00
|
|
|
|
{$component = 'ls-comments'}
|
2016-08-30 07:28:40 +03:00
|
|
|
|
{component_define_params params=[ 'addCommentText', 'authorId', 'authorText', 'commentParams', 'comments', 'count', 'dateReadLast', 'forbidAdd',
|
2016-04-07 12:40:28 +03:00
|
|
|
|
'forbidText', 'isSubscribed', 'lastCommentId', 'maxLevel', 'pagination', 'targetId', 'targetType', 'title', 'titleNoComments',
|
|
|
|
|
'useSubscribe', 'mods', 'classes', 'attributes' ]}
|
2014-06-26 20:11:34 +03:00
|
|
|
|
|
2014-06-13 09:34:12 +03:00
|
|
|
|
{block 'comment-list-options'}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{* Максимальная вложенность *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{$maxLevel = $maxLevel|default:Config::Get('module.comment.max_tree')}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{if $forbidAdd}
|
|
|
|
|
{$mods = "$mods forbid"}
|
|
|
|
|
{/if}
|
2014-06-13 09:34:12 +03:00
|
|
|
|
{/block}
|
|
|
|
|
|
2015-03-20 18:35:35 +02:00
|
|
|
|
{if $oUserCurrent && ! $pagination['total']}
|
|
|
|
|
{add_block group='toolbar' name='component@comment.toolbar'}
|
2015-02-17 16:40:18 +02:00
|
|
|
|
{/if}
|
2014-06-13 09:34:12 +03:00
|
|
|
|
|
2016-04-07 12:40:28 +03:00
|
|
|
|
<div class="{$component} js-comments {cmods name=$component mods=$mods} {$classes}"
|
2014-11-06 18:51:24 +02:00
|
|
|
|
data-target-type="{$targetType}"
|
|
|
|
|
data-target-id="{$targetId}"
|
2016-04-07 12:40:28 +03:00
|
|
|
|
data-comment-last-id="{$lastCommentId}"
|
|
|
|
|
{cattr list=$attributes}>
|
2015-06-11 19:41:06 +03:00
|
|
|
|
|
|
|
|
|
{* @hook Начало блока с комментариями *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{hook run='comments_begin' params=$params}
|
2015-06-11 19:41:06 +03:00
|
|
|
|
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{**
|
|
|
|
|
* Заголовок
|
|
|
|
|
*}
|
|
|
|
|
<header class="{$component}-header">
|
|
|
|
|
<h3 class="comments-title js-comments-title">
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{if $count}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{lang "{$title|default:'comments.comments_declension'}" count=$count plural=true}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{else}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{lang "{$titleNoComments|default:'comments.no_comments'}"}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{/if}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
</h3>
|
2015-06-11 19:41:06 +03:00
|
|
|
|
|
|
|
|
|
{* @hook Конец шапки *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{hook run='comments_header_end' params=$params}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{**
|
|
|
|
|
* Экшнбар
|
|
|
|
|
*}
|
|
|
|
|
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{$items = []}
|
|
|
|
|
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{* Свернуть/развернуть все комментарии *}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{* Не показываем если древовидные комментарии отключены *}
|
|
|
|
|
{if $maxLevel > 0}
|
|
|
|
|
{$items[] = [ 'buttons' => [[
|
|
|
|
|
'classes' => 'js-comments-fold-all-toggle',
|
|
|
|
|
'text' => $aLang.comments.folding.fold_all
|
|
|
|
|
]]]}
|
|
|
|
|
{/if}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
|
|
|
|
{* Подписка на комментарии *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{if $useSubscribe && $oUserCurrent}
|
2015-01-27 15:25:52 +02:00
|
|
|
|
{$items[] = [ 'buttons' => [[
|
2015-05-07 15:45:21 +03:00
|
|
|
|
'classes' => "{$component}-subscribe js-comments-subscribe {if $isSubscribed}active{/if}",
|
2015-01-27 15:25:52 +02:00
|
|
|
|
'text' => ( $isSubscribed ) ? $aLang.comments.unsubscribe : $aLang.comments.subscribe
|
|
|
|
|
]]]}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{/if}
|
|
|
|
|
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{if $items}
|
2015-06-11 19:41:06 +03:00
|
|
|
|
{component 'actionbar' name='comments_actionbar' items=$items classes="{$component}-actions"}
|
2015-06-06 07:38:10 +03:00
|
|
|
|
{/if}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
2015-06-13 13:30:14 +03:00
|
|
|
|
{* @hook Хук перед списком комментариев *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{hook run='comments_list_before' params=$params}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
|
|
|
|
{**
|
|
|
|
|
* Комментарии
|
|
|
|
|
*}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
<div class="ls-comment-list js-comment-list" {if ! $comments}style="display: none"{/if}>
|
2015-06-17 08:58:47 +03:00
|
|
|
|
{component 'comment' template='tree'
|
2016-04-07 12:40:28 +03:00
|
|
|
|
comments = $comments
|
2015-01-27 15:25:52 +02:00
|
|
|
|
forbidAdd = $forbidAdd
|
2015-06-06 07:38:10 +03:00
|
|
|
|
maxLevel = $maxLevel
|
2016-08-30 07:28:40 +03:00
|
|
|
|
authorId = $authorId
|
2016-04-07 12:40:28 +03:00
|
|
|
|
authorText = $authorText
|
|
|
|
|
dateReadLast = $dateReadLast
|
|
|
|
|
commentParams = $commentParams}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
2015-06-13 13:30:14 +03:00
|
|
|
|
{* @hook Хук после списка комментариев *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{hook run='comments_list_after' params=$params}
|
2015-06-11 19:41:06 +03:00
|
|
|
|
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
|
|
|
|
{**
|
2015-03-20 18:35:35 +02:00
|
|
|
|
* Пагинация
|
2014-11-06 18:51:24 +02:00
|
|
|
|
*}
|
2015-03-20 18:35:35 +02:00
|
|
|
|
{component 'pagination' classes="{$component}-pagination" params=$pagination}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{**
|
|
|
|
|
* Форма добавления комментария
|
|
|
|
|
*}
|
|
|
|
|
|
|
|
|
|
{* Проверяем запрещено комментирование или нет *}
|
|
|
|
|
{if $forbidAdd}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{component 'alert' mods='info' text=$forbidText}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
|
|
|
|
|
{* Если разрешено то показываем форму добавления комментария *}
|
|
|
|
|
{else}
|
|
|
|
|
{if $oUserCurrent}
|
|
|
|
|
{* Кнопка открывающая форму *}
|
2015-05-07 15:45:21 +03:00
|
|
|
|
<h4 class="ls-comment-reply-root js-comment-reply js-comment-reply-root" data-id="0">
|
2016-04-07 12:40:28 +03:00
|
|
|
|
<a href="#" class="ls-link-dotted">{$addCommentText|default:$aLang.comments.form.title}</a>
|
2014-11-06 18:51:24 +02:00
|
|
|
|
</h4>
|
|
|
|
|
{else}
|
2015-01-03 10:19:49 +02:00
|
|
|
|
{component 'alert' mods='info' text=$aLang.comments.alerts.unregistered}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{/if}
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{* Форма добавления комментария *}
|
|
|
|
|
{if $oUserCurrent && ( ! $forbidAdd || ( $forbidAdd && $count ) )}
|
2015-06-17 08:58:47 +03:00
|
|
|
|
{component 'comment' template='form' classes='js-comment-form' targetType=$targetType targetId=$targetId}
|
2014-11-06 18:51:24 +02:00
|
|
|
|
{/if}
|
2015-06-11 19:41:06 +03:00
|
|
|
|
|
|
|
|
|
{* @hook Конец блока с комментариями *}
|
2016-04-07 12:40:28 +03:00
|
|
|
|
{hook run='comments_end' params=$params}
|
2015-06-13 13:30:14 +03:00
|
|
|
|
</div>
|