mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-01 05:55:02 +03:00
Доработка личных сообщений
This commit is contained in:
parent
c6cf1ab756
commit
e906daa3c9
|
@ -29,8 +29,11 @@ return array(
|
|||
'create' => 'Создать',
|
||||
'cancel' => 'Отменить',
|
||||
'empty' => 'Тут ничего нет',
|
||||
'form_reset' => 'Очистить форму',
|
||||
'error' => array(
|
||||
'save' => 'Ошибка сохранения',
|
||||
'add' => 'Произошла ошибка при добавлении',
|
||||
'remove' => 'Произошла ошибка при удалении',
|
||||
'system' => array(
|
||||
'code' => array(
|
||||
'404' => 'К сожалению, такой страницы не существует. Вероятно, она была удалена с сервера, либо ее здесь никогда не было.',
|
||||
|
@ -41,6 +44,8 @@ return array(
|
|||
),
|
||||
'success' => array(
|
||||
'save' => 'Успешно сохранено',
|
||||
'add' => 'Успешно добавлено',
|
||||
'remove' => 'Успешно удалено',
|
||||
)
|
||||
),
|
||||
|
||||
|
@ -63,12 +68,15 @@ return array(
|
|||
* Избранное
|
||||
*/
|
||||
'favourite' => array(
|
||||
'add' => 'Добавить в избранное',
|
||||
'favourite' => 'Избранное',
|
||||
|
||||
'add' => 'Добавить в избранное',
|
||||
'remove' => 'Удалить из избранного',
|
||||
|
||||
// Всплывающие сообщения
|
||||
'notices' => array(
|
||||
|
||||
'add_success' => 'Добавлено в избранное',
|
||||
'remove_success' => 'Удалено из избранного'
|
||||
),
|
||||
),
|
||||
|
||||
|
@ -157,13 +165,15 @@ return array(
|
|||
*/
|
||||
'invite' => array(
|
||||
'invite_users' => 'Пригласить пользователей',
|
||||
'users_title' => 'Список приглашенных',
|
||||
'repeat' => 'Повторить',
|
||||
'empty' => 'Нет приглашенных пользователей',
|
||||
|
||||
// Форма добавления
|
||||
'form' => array(
|
||||
'users_label' => 'Список пользователей',
|
||||
// Поля
|
||||
'fields' => array(
|
||||
'add' => array(
|
||||
'label' => 'Список пользователей',
|
||||
'note' => 'Введите один или несколько логинов'
|
||||
),
|
||||
),
|
||||
|
||||
// Письмо с приглашением
|
||||
|
@ -342,7 +352,128 @@ return array(
|
|||
'by_users' => 'по кол-ву читателей',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
/**
|
||||
* Личные сообщения
|
||||
*/
|
||||
'messages' => array(
|
||||
|
||||
// Форма поиска
|
||||
'search' => array(
|
||||
'title' => 'Поиск по сообщениям',
|
||||
|
||||
// Поля
|
||||
'fields' => array(
|
||||
'sender' => array(
|
||||
'label' => 'Отправитель',
|
||||
'note' => 'Укажите логин отправителя'
|
||||
),
|
||||
'keyword' => array(
|
||||
'label' => 'Искать в заголовке',
|
||||
),
|
||||
'keyword_text' => array(
|
||||
'label' => 'Искать в тексте',
|
||||
),
|
||||
'start' => array(
|
||||
'label' => 'Ограничения по дате',
|
||||
'placeholder' => 'С числа'
|
||||
),
|
||||
'end' => array(
|
||||
'placeholder' => 'По число'
|
||||
),
|
||||
'favourite' => array(
|
||||
'label' => 'Искать только в избранном'
|
||||
),
|
||||
)
|
||||
),
|
||||
|
||||
// Черный список
|
||||
'blacklist' => array(
|
||||
// Поля
|
||||
'fields' => array(
|
||||
'talk_blacklist_add' => array(
|
||||
'label' => 'Список пользователей',
|
||||
'note' => 'Введите один или несколько логинов'
|
||||
),
|
||||
),
|
||||
|
||||
// Сообщения
|
||||
'alerts' => array(
|
||||
'blocked' => 'Пользователь <b>%%login%%</b> не принимает от вас писем'
|
||||
),
|
||||
),
|
||||
|
||||
// Всплывающие сообщения
|
||||
'notices' => array(
|
||||
|
||||
),
|
||||
|
||||
// Сообщения
|
||||
'alerts' => array(
|
||||
'empty' => 'Нет писем'
|
||||
),
|
||||
),
|
||||
|
||||
/**
|
||||
* Почта
|
||||
*/
|
||||
'talk_filter_error' => 'Ошибка фильтрации',
|
||||
'talk_filter_error_date_format' => 'Указан неверный формат даты',
|
||||
'talk_filter_result_count' => 'Найдено писем: %%count%%',
|
||||
'talk_filter_result_empty' => 'По вашим критериям писем не найдено',
|
||||
|
||||
'talk_user_in_blacklist' => 'Пользователь <b>%%login%%</b> не принимает от вас писем',
|
||||
'talk_blacklist_user_already_have' => 'Пользователь <b>%%login%%</b> есть в вашем black list`е',
|
||||
'talk_blacklist_user_not_found' => 'Пользователя <b>%%login%%</b> нет в вашем black list`е',
|
||||
'talk_blacklist_add_self' => 'Нельзя добавлять в black list себя',
|
||||
|
||||
'talk_favourite_inbox' => 'Избранные письма',
|
||||
|
||||
'talk_menu_inbox' => 'Сообщения',
|
||||
'talk_menu_inbox_new' => 'Только новые',
|
||||
'talk_menu_inbox_list' => 'Переписка',
|
||||
'talk_menu_inbox_create' => 'Новое письмо',
|
||||
'talk_menu_inbox_favourites' => 'Избранное',
|
||||
'talk_menu_inbox_blacklist' => 'Блокировать',
|
||||
|
||||
'talk_inbox' => 'Почтовый ящик',
|
||||
'talk_inbox_target' => 'Адресаты',
|
||||
'talk_inbox_title' => 'Тема',
|
||||
'talk_inbox_date' => 'Дата',
|
||||
'talk_inbox_make_read' => 'Отметить как прочитанное',
|
||||
'talk_inbox_delete' => 'Удалить выделенное',
|
||||
'talk_inbox_delete_confirm' => 'Действительно удалить переписку?',
|
||||
|
||||
'talk_comments' => 'Переписка',
|
||||
'talk_comment_add_text_error' => 'Текст комментария должен быть от 2 до 3000 символов',
|
||||
|
||||
'talk_create' => 'Новое письмо',
|
||||
'talk_create_users' => 'Кому',
|
||||
'talk_create_users_error' => 'Необходимо указать, кому вы хотите отправить сообщение',
|
||||
'talk_create_users_error_not_found' => 'У нас нет пользователя с логином',
|
||||
'talk_create_users_error_many' => 'Слишком много адресатов',
|
||||
'talk_create_title' => 'Заголовок',
|
||||
'talk_create_title_error' => 'Заголовок сообщения должен быть от 2 до 200 символов',
|
||||
'talk_create_text' => 'Сообщение',
|
||||
'talk_create_text_error' => 'Текст сообщения должен быть от 2 до 3000 символов',
|
||||
'talk_create_submit' => 'Отправить',
|
||||
|
||||
'talk_time_limit' => 'Вам нельзя отправлять инбоксы слишком часто',
|
||||
|
||||
'talk_speaker_title' => 'Участники разговора',
|
||||
'talk_speaker_edit' => 'Редактировать список',
|
||||
'talk_speaker_add_label' => 'Добавить пользователя',
|
||||
'talk_speaker_delete_ok' => 'Участник <b>%%login%%</b> успешно удален',
|
||||
'talk_speaker_user_not_found' => 'Пользователь <b>%%login%%</b> не участвует в разговоре',
|
||||
'talk_speaker_user_already_exist' => ' <b>%%login%%</b> уже участник разговора',
|
||||
'talk_speaker_not_found' => 'Пользователь не участвует в разговоре',
|
||||
'talk_speaker_add_ok' => 'Участник <b>%%login%%</b> успешно добавлен',
|
||||
'talk_speaker_delete_by_self' => 'Участник <b>%%login%%</b> удалил этот разговор',
|
||||
'talk_speaker_add_self' => 'Нельзя добавлять в участники себя',
|
||||
|
||||
'talk_not_found' => 'Разговор не найден',
|
||||
'talk_deleted' => 'Отправитель удалил сообщение',
|
||||
|
||||
/**
|
||||
* Блоги
|
||||
*/
|
||||
|
@ -937,84 +1068,6 @@ return array(
|
|||
'block_blog_navigator_button' => 'Смотреть',
|
||||
'site_history_back' => 'Вернуться назад',
|
||||
'site_go_main' => 'перейти на главную',
|
||||
/**
|
||||
* Почта
|
||||
*/
|
||||
'talk_menu_inbox' => 'Сообщения',
|
||||
'talk_menu_inbox_new' => 'Только новые',
|
||||
'talk_menu_inbox_list' => 'Переписка',
|
||||
'talk_menu_inbox_create' => 'Новое письмо',
|
||||
'talk_menu_inbox_favourites' => 'Избранное',
|
||||
'talk_menu_inbox_blacklist' => 'Блокировать',
|
||||
'talk_inbox' => 'Почтовый ящик',
|
||||
'talk_inbox_empty' => 'Тут ничего нет',
|
||||
'talk_inbox_target' => 'Адресаты',
|
||||
'talk_inbox_title' => 'Тема',
|
||||
'talk_inbox_date' => 'Дата',
|
||||
'talk_inbox_make_read' => 'Отметить как прочитанное',
|
||||
'talk_inbox_delete' => 'Удалить выделенное',
|
||||
'talk_inbox_delete_confirm' => 'Действительно удалить переписку?',
|
||||
'talk_comments' => 'Переписка',
|
||||
'talk_comment_add_text_error' => 'Текст комментария должен быть от 2 до 3000 символов',
|
||||
'talk_create' => 'Новое письмо',
|
||||
'talk_create_users' => 'Кому',
|
||||
'talk_create_users_error' => 'Необходимо указать, кому вы хотите отправить сообщение',
|
||||
'talk_create_users_error_not_found' => 'У нас нет пользователя с логином',
|
||||
'talk_create_users_error_many' => 'Слишком много адресатов',
|
||||
'talk_create_title' => 'Заголовок',
|
||||
'talk_create_title_error' => 'Заголовок сообщения должен быть от 2 до 200 символов',
|
||||
'talk_create_text' => 'Сообщение',
|
||||
'talk_create_text_error' => 'Текст сообщения должен быть от 2 до 3000 символов',
|
||||
'talk_create_submit' => 'Отправить',
|
||||
'talk_time_limit' => 'Вам нельзя отправлять инбоксы слишком часто',
|
||||
'talk_favourite_inbox' => 'Избранные письма',
|
||||
'talk_favourite_add' => 'Добавить в избранное',
|
||||
'talk_favourite_add_ok' => 'Письмо добавлено в избранное',
|
||||
'talk_favourite_add_no' => 'Этого письма нет в вашем избранном',
|
||||
'talk_favourite_add_already' => 'Это письмо уже есть в вашем избранном',
|
||||
'talk_favourite_del' => 'Удалить из избранного',
|
||||
'talk_favourite_del_ok' => 'Письмо удалено из избранного',
|
||||
'talk_favourite_empty' => 'Нет писем в избранном',
|
||||
'talk_filter_title' => 'Поиск сообщений',
|
||||
'talk_filter_erase' => 'Сбросить фильтр',
|
||||
'talk_filter_erase_form' => 'Очистить форму',
|
||||
'talk_filter_label_sender' => 'Отправитель',
|
||||
'talk_filter_label_keyword' => 'Искать в заголовке',
|
||||
'talk_filter_label_keyword_text' => 'Искать в тексте',
|
||||
'talk_filter_label_favourite' => 'Искать только в избранном',
|
||||
'talk_filter_label_date' => 'Ограничения по дате',
|
||||
'talk_filter_notice_sender' => 'Укажите логин отправителя',
|
||||
'talk_filter_notice_keyword' => 'Введите одно или несколько слов',
|
||||
'talk_filter_notice_date' => 'Дата вводится в формате 25.12.2008',
|
||||
'talk_filter_submit' => 'Отфильтровать',
|
||||
'talk_filter_submit_clear' => 'Очистить',
|
||||
'talk_filter_error' => 'Ошибка фильтрации',
|
||||
'talk_filter_error_date_format' => 'Указан неверный формат даты',
|
||||
'talk_filter_result_count' => 'Найдено писем: %%count%%',
|
||||
'talk_filter_result_empty' => 'По вашим критериям писем не найдено',
|
||||
'talk_user_in_blacklist' => 'Пользователь <b>%%login%%</b> не принимает от вас писем',
|
||||
'talk_blacklist_title' => 'Не принимать писем от:',
|
||||
'talk_blacklist_empty' => 'Принимать от всех',
|
||||
'talk_balcklist_add_label' => 'Добавить пользователей',
|
||||
'talk_balcklist_add_notice' => 'Введите один или несколько логинов',
|
||||
'talk_balcklist_add_submit' => 'Не принимать',
|
||||
'talk_blacklist_add_ok' => 'Пользователь <b>%%login%%</b> успешно добавлен',
|
||||
'talk_blacklist_user_already_have' => 'Пользователь <b>%%login%%</b> есть в вашем black list`е',
|
||||
'talk_blacklist_delete_ok' => 'Пользователь <b>%%login%%</b> успешно удален',
|
||||
'talk_blacklist_user_not_found' => 'Пользователя <b>%%login%%</b> нет в вашем black list`е',
|
||||
'talk_blacklist_add_self' => 'Нельзя добавлять в black list себя',
|
||||
'talk_speaker_title' => 'Участники разговора',
|
||||
'talk_speaker_edit' => 'Редактировать список',
|
||||
'talk_speaker_add_label' => 'Добавить пользователя',
|
||||
'talk_speaker_delete_ok' => 'Участник <b>%%login%%</b> успешно удален',
|
||||
'talk_speaker_user_not_found' => 'Пользователь <b>%%login%%</b> не участвует в разговоре',
|
||||
'talk_speaker_user_already_exist' => ' <b>%%login%%</b> уже участник разговора',
|
||||
'talk_speaker_not_found' => 'Пользователь не участвует в разговоре',
|
||||
'talk_speaker_add_ok' => 'Участник <b>%%login%%</b> успешно добавлен',
|
||||
'talk_speaker_delete_by_self' => 'Участник <b>%%login%%</b> удалил этот разговор',
|
||||
'talk_speaker_add_self' => 'Нельзя добавлять в участники себя',
|
||||
'talk_not_found' => 'Разговор не найден',
|
||||
'talk_deleted' => 'Отправитель удалил сообщение',
|
||||
/**
|
||||
* Userfeed
|
||||
*/
|
||||
|
|
|
@ -2,60 +2,34 @@
|
|||
* Создание личного сообщения
|
||||
*}
|
||||
|
||||
{extends file='layouts/layout.user.messages.tpl'}
|
||||
{extends 'layouts/layout.user.messages.tpl'}
|
||||
|
||||
{block name='layout_content'}
|
||||
{**
|
||||
* Выбор адресата среди друзей на странице создания личного сообщения
|
||||
*}
|
||||
<div class="accordion">
|
||||
<h3 class="accordion-header" onclick="jQuery('#block_talk_friends_content').toggle(); return false;"><span class="link-dotted">{$aLang.block_friends}</span></h3>
|
||||
|
||||
<div class="accordion-content" id="block_talk_friends_content">
|
||||
{if $aUsersFriend}
|
||||
<ul class="list" id="friends">
|
||||
{foreach $aUsersFriend as $oFriend}
|
||||
<li>
|
||||
<input id="talk_friend_{$oFriend->getId()}" type="checkbox" name="friend[{$oFriend->getId()}]" class="input-checkbox" />
|
||||
<label for="talk_friend_{$oFriend->getId()}" id="talk_friend_{$oFriend->getId()}_label">{$oFriend->getDisplayName()}</label>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
<footer>
|
||||
<a href="#" id="friend_check_all">{$aLang.block_friends_check}</a> |
|
||||
<a href="#" id="friend_uncheck_all">{$aLang.block_friends_uncheck}</a>
|
||||
</footer>
|
||||
{else}
|
||||
{include file='alert.tpl' mAlerts=$aLang.block_friends_empty sAlertStyle='empty'}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{block 'layout_content'}
|
||||
{include 'forms/editor.init.tpl' sEditorType='comment'}
|
||||
|
||||
{hook run='talk_add_begin'}
|
||||
|
||||
{include file='forms/editor.init.tpl' sEditorType='comment'}
|
||||
|
||||
<form action="" method="POST" enctype="multipart/form-data" class="js-form-validate">
|
||||
{hook run='form_add_talk_begin'}
|
||||
|
||||
{include file='forms/fields/form.field.hidden.security_key.tpl'}
|
||||
{include 'forms/fields/form.field.hidden.security_key.tpl'}
|
||||
|
||||
{* Получатели *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
{include 'forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'talk_users'
|
||||
sFieldRules = 'required="true" rangetags="[1,99]"'
|
||||
sFieldLabel = $aLang.talk_create_users
|
||||
sFieldClasses = 'width-full autocomplete-users-sep'}
|
||||
sFieldClasses = 'width-full autocomplete-users-sep'
|
||||
sFieldNote = "<a href=\"#\" class=\"link-dotted\" data-type=\"modal-toggle\" data-modal-url=\"{router page='ajax/modal-friend-list'}\" data-param-selectable=\"true\">Выбрать из списка друзей</a>"}
|
||||
|
||||
{* Заголовок *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
{include 'forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'talk_title'
|
||||
sFieldRules = 'required="true" rangelength="[2,200]"'
|
||||
sFieldLabel = $aLang.talk_create_title}
|
||||
|
||||
{* Текст сообщения *}
|
||||
{include file='forms/fields/form.field.textarea.tpl'
|
||||
{include 'forms/fields/form.field.textarea.tpl'
|
||||
sFieldName = 'talk_text'
|
||||
sFieldRules = 'required="true" rangelength="[2,3000]"'
|
||||
sFieldLabel = $aLang.topic_create_text
|
||||
|
@ -67,9 +41,8 @@
|
|||
{hook run='form_add_talk_end'}
|
||||
|
||||
{* Кнопки *}
|
||||
{* TODO: js *}
|
||||
{include file='forms/fields/form.field.button.tpl' sFieldName='submit_talk_add' sFieldStyle='primary' sFieldText=$aLang.talk_create_submit}
|
||||
{include file='forms/fields/form.field.button.tpl' sFieldName='submit_preview' sFieldType='button' sFieldText=$aLang.topic_create_submit_save sFieldAttributes='onclick="jQuery(\'#text_preview\').show(); ls.tools.textPreview(\'talk_text\',false); return false;"'}
|
||||
{include 'forms/fields/form.field.button.tpl' sFieldName='submit_talk_add' sFieldStyle='primary' sFieldText=$aLang.talk_create_submit}
|
||||
{include 'forms/fields/form.field.button.tpl' sFieldName='submit_preview' sFieldType='button' sFieldText=$aLang.topic_create_submit_save sFieldAttributes='onclick="jQuery(\'#text_preview\').show(); ls.tools.textPreview(\'talk_text\',false); return false;"'}
|
||||
</form>
|
||||
|
||||
{hook run='talk_add_end'}
|
||||
|
|
|
@ -2,21 +2,8 @@
|
|||
* Черный список
|
||||
*}
|
||||
|
||||
{extends file='layouts/layout.user.messages.tpl'}
|
||||
{extends 'layouts/layout.user.messages.tpl'}
|
||||
|
||||
{block name='layout_content'}
|
||||
<form onsubmit="return ls.talk.addToBlackList();">
|
||||
<p><label for="talk_blacklist_add">{$aLang.talk_balcklist_add_label}:</label>
|
||||
<input type="text" id="talk_blacklist_add" name="add" class="input-text width-full autocomplete-users-sep" /></p>
|
||||
</form>
|
||||
|
||||
<div id="black_list_block">
|
||||
{if $aUsersBlacklist}
|
||||
<ul class="list" id="black_list">
|
||||
{foreach $aUsersBlacklist as $oUser}
|
||||
<li id="blacklist_item_{$oUser->getId()}_area"><a href="{$oUser->getUserWebPath()}" class="user">{$oUser->getDisplayName()}</a> - <a href="#" id="blacklist_item_{$oUser->getId()}" class="delete">{$aLang.blog_delete}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
{block 'layout_content'}
|
||||
{include 'user_list_add.tpl' sUserListType='blacklist' iUserListId=$oUserCurrent->getId() aUserList=$aUsersBlacklist}
|
||||
{/block}
|
|
@ -5,11 +5,6 @@
|
|||
{extends file='layouts/layout.user.messages.tpl'}
|
||||
|
||||
{block name='layout_content'}
|
||||
{if $aTalks}
|
||||
{include file='actions/ActionTalk/message_list.tpl'}
|
||||
{else}
|
||||
{include file='alert.tpl' mAlerts=$aLang.talk_favourite_empty sAlertStyle='empty'}
|
||||
{/if}
|
||||
|
||||
{include file='actions/ActionTalk/message_list.tpl'}
|
||||
{include file='pagination.tpl' aPaging=$aPaging}
|
||||
{/block}
|
|
@ -10,83 +10,9 @@
|
|||
|
||||
{block name='layout_content'}
|
||||
{if $aTalks}
|
||||
{**
|
||||
* Поиск по личным сообщениям
|
||||
*}
|
||||
<div class="accordion">
|
||||
<h3 class="accordion-header" onclick="jQuery('#block_talk_search_content').toggle(); return false;"><span class="link-dotted">{$aLang.talk_filter_title}</span></h3>
|
||||
|
||||
<form action="{router page='talk'}" method="GET" name="talk_filter_form" id="block_talk_search_content" class="accordion-content" {if $_aRequest.submit_talk_filter}style="display:block;"{/if}>
|
||||
{* Отправитель *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'sender'
|
||||
sFieldClasses = 'width-full autocomplete-users-sep'
|
||||
sFieldLabel = $aLang.talk_filter_label_sender
|
||||
sFieldNote = $aLang.talk_filter_notice_sender}
|
||||
|
||||
|
||||
{* Искать в заголовке *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'keyword'
|
||||
sFieldLabel = $aLang.talk_filter_label_keyword
|
||||
sFieldNote = $aLang.talk_filter_notice_keyword}
|
||||
|
||||
|
||||
{* Искать в тексте *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'keyword_text'
|
||||
sFieldLabel = $aLang.talk_filter_label_keyword_text
|
||||
sFieldNote = $aLang.talk_filter_notice_keyword}
|
||||
|
||||
|
||||
{* Ограничения по дате *}
|
||||
{* TODO: i18n *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'start'
|
||||
sFieldClasses = 'width-200 date-picker'
|
||||
sFieldPlaceholder = 'From'
|
||||
sFieldLabel = $aLang.talk_filter_label_date}
|
||||
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'end'
|
||||
sFieldPlaceholder = 'To'
|
||||
sFieldClasses = 'width-200 date-picker'}
|
||||
|
||||
|
||||
{* Искать только в избранном *}
|
||||
{include file='forms/fields/form.field.checkbox.tpl'
|
||||
sFieldName = 'favourite'
|
||||
sFieldLabel = $aLang.talk_filter_label_favourite}
|
||||
|
||||
|
||||
{* Кнопки *}
|
||||
{include file='forms/fields/form.field.button.tpl'
|
||||
sFieldName = 'submit_talk_filter'
|
||||
sFieldStyle = 'primary'
|
||||
sFieldText = $aLang.talk_filter_submit}
|
||||
{include file='forms/fields/form.field.button.tpl' sFieldType='reset' sFieldText=$aLang.talk_filter_submit_clear}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
{**
|
||||
* Список сообщений
|
||||
*}
|
||||
<form action="{router page='talk'}" method="post" id="form_talks_list">
|
||||
<input type="hidden" name="security_ls_key" value="{$LIVESTREET_SECURITY_KEY}" />
|
||||
<input type="hidden" name="submit_talk_read" id="form_talks_list_submit_read" value="" />
|
||||
<input type="hidden" name="submit_talk_del" id="form_talks_list_submit_del" value="" />
|
||||
|
||||
<button type="submit" onclick="ls.talk.makeReadTalks()" class="button">{$aLang.talk_inbox_make_read}</button>
|
||||
<button type="submit" onclick="if (confirm('{$aLang.talk_inbox_delete_confirm}')){ ls.talk.removeTalks() };" class="button">{$aLang.talk_inbox_delete}</button>
|
||||
<br /><br />
|
||||
|
||||
{include file='actions/ActionTalk/message_list.tpl' bMessageListCheckboxes=true}
|
||||
</form>
|
||||
{else}
|
||||
{include file='alert.tpl' mAlerts=$aLang.talk_inbox_empty sAlertStyle='empty'}
|
||||
{include 'actions/ActionTalk/search.tpl'}
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
{include file='actions/ActionTalk/message_list.tpl' bMessageListCheckboxes=true}
|
||||
{include file='pagination.tpl' aPaging=$aPaging}
|
||||
{/block}
|
|
@ -5,111 +5,20 @@
|
|||
{extends file='layouts/layout.user.messages.tpl'}
|
||||
|
||||
{block name='layout_content'}
|
||||
{$oUser = $oTalk->getUser()}
|
||||
|
||||
|
||||
<article class="topic topic-type-talk">
|
||||
<header class="topic-header">
|
||||
<h1 class="topic-title">{$oTalk->getTitle()|escape:'html'}</h1>
|
||||
|
||||
<div class="topic-info">
|
||||
<a href="{$oUser->getUserWebPath()}"><img src="{$oUser->getProfileAvatarPath(48)}" width="32px" alt="avatar" class="avatar" /></a>
|
||||
<p class="author-wrapper"><a href="{$oUser->getUserWebPath()}" class="author">{$oUser->getDisplayName()}</a>
|
||||
<time datetime="{date_format date=$oTalk->getDate() format='c'}" pubdate>
|
||||
{date_format date=$oTalk->getDate() format="j F Y, H:i"}
|
||||
</time>
|
||||
</p>
|
||||
<p>
|
||||
{$aLang.talk_speaker_title}:
|
||||
|
||||
{foreach $oTalk->getTalkUsers() as $oTalkUser}
|
||||
{$oUserRecipient = $oTalkUser->getUser()}
|
||||
|
||||
{if $oUser->getId() != $oUserRecipient->getId()}
|
||||
<a class="user {if $oTalkUser->getUserActive() != $TALK_USER_ACTIVE}inactive{/if}"
|
||||
href="{$oUserRecipient->getUserWebPath()}"
|
||||
{if $oTalkUser->getUserActive() != $TALK_USER_ACTIVE}title="{$aLang.talk_speaker_not_found}"{/if}>{$oUserRecipient->getDisplayName()}</a>{if ! $oTalkUser@last}, {/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{if $oTalk->getUserId()==$oUserCurrent->getId() or $oUserCurrent->isAdministrator()}
|
||||
<a href="#" class="link-dotted" onclick="jQuery('#talk_recipients').toggle(); return false;">{$aLang.talk_speaker_edit}</a>
|
||||
{/if}
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
{**
|
||||
* Участники личного сообщения
|
||||
*}
|
||||
|
||||
{if $oTalk->getUserId()==$oUserCurrent->getId() or $oUserCurrent->isAdministrator()}
|
||||
<div class="talk-recipients" id="talk_recipients">
|
||||
<h3>{$aLang.talk_speaker_title}</h3>
|
||||
|
||||
<form onsubmit="return ls.talk.addToTalk({$oTalk->getId()});">
|
||||
<p><label for="talk_speaker_add">{$aLang.talk_speaker_add_label}:</label>
|
||||
<input type="text" id="talk_speaker_add" name="add" class="input-text width-300 autocomplete-users-sep" /></p>
|
||||
<input type="hidden" id="talk_id" value="{$oTalk->getId()}" />
|
||||
</form>
|
||||
|
||||
<div id="speaker_list_block">
|
||||
{if $oTalk->getTalkUsers()}
|
||||
<ul class="list" id="speaker_list">
|
||||
{foreach $oTalk->getTalkUsers() as $oTalkUser}
|
||||
{if $oTalkUser->getUserId()!=$oUserCurrent->getId()}
|
||||
{$oUser = $oTalkUser->getUser()}
|
||||
|
||||
{if $oTalkUser->getUserActive()!=$TALK_USER_DELETE_BY_AUTHOR}
|
||||
<li id="speaker_item_{$oTalkUser->getUserId()}_area">
|
||||
<a class="user {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}inactive{/if}" href="{$oUser->getUserWebPath()}">{$oUser->getDisplayName()}</a>
|
||||
{if $oTalkUser->getUserActive()==$TALK_USER_ACTIVE}- <a href="#" id="speaker_item_{$oTalkUser->getUserId()}" class="delete">{$aLang.blog_delete}</a>{/if}
|
||||
</li>
|
||||
{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<div class="topic-content text">
|
||||
{$oTalk->getText()}
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="topic-footer">
|
||||
<ul class="topic-info">
|
||||
{* Избранное *}
|
||||
<li class="topic-info-item topic-info-item-favourite">
|
||||
{include 'favourite.tpl'
|
||||
sFavouriteType = 'talk'
|
||||
oFavouriteObject = $oTalk}
|
||||
</li>
|
||||
|
||||
<li class="delete">
|
||||
<a href="{router page='talk'}delete/{$oTalk->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('{$aLang.talk_inbox_delete_confirm}');" class="delete">{$aLang.delete}</a>
|
||||
</li>
|
||||
|
||||
{hook run='talk_read_info_item' talk=$oTalk}
|
||||
</ul>
|
||||
</footer>
|
||||
</article>
|
||||
{* Сообщение *}
|
||||
{include 'actions/ActionTalk/message_entry.tpl'}
|
||||
|
||||
{* Вывод комментариев к сообщению *}
|
||||
{$oTalkUser = $oTalk->getTalkUser()}
|
||||
|
||||
{if ! $bNoComments}
|
||||
{include
|
||||
file='comments/comment_tree.tpl'
|
||||
iTargetId=$oTalk->getId()
|
||||
sTargetType='talk'
|
||||
iCountComment=$oTalk->getCountComment()
|
||||
sDateReadLast=$oTalkUser->getDateLast()
|
||||
sNoticeCommentAdd=$aLang.topic_comment_add
|
||||
bNoCommentFavourites=true}
|
||||
{include 'comments/comment_tree.tpl'
|
||||
iTargetId = $oTalk->getId()
|
||||
sTargetType = 'talk'
|
||||
iCountComment = $oTalk->getCountComment()
|
||||
sDateReadLast = $oTalkUser->getDateLast()
|
||||
sNoticeCommentAdd = $aLang.topic_comment_add
|
||||
bNoCommentFavourites = true}
|
||||
{else}
|
||||
{include file='alert.tpl' mAlerts=$aLang.talk_deleted sAlertStyle='empty'}
|
||||
{/if}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{extends 'entry.base.tpl'}
|
||||
|
||||
{block 'entry_options'}
|
||||
{$oEntry = $oTalk}
|
||||
{$sEntryType = 'talk'}
|
||||
{/block}
|
||||
|
||||
{block 'entry' append}
|
||||
{* Участники личного сообщения *}
|
||||
{if $oTalk->getUserId() == $oUserCurrent->getId() or $oUserCurrent->isAdministrator()}
|
||||
{include 'user_list_add.tpl'
|
||||
sUserListType = 'message'
|
||||
iUserListId = $oTalk->getId()
|
||||
aUserList = $oTalk->getTalkUsers()
|
||||
sUserListTitle = $aLang.talk_speaker_title
|
||||
aUserListSmallExcludeRemove = [ $oUserCurrent->getId() ]
|
||||
sUserItemInactiveTitle = $aLang.talk_speaker_not_found}
|
||||
{/if}
|
||||
{/block}
|
|
@ -2,74 +2,83 @@
|
|||
* Список сообщений
|
||||
*}
|
||||
|
||||
<table class="table table-talk">
|
||||
<thead>
|
||||
<tr>
|
||||
{if $bMessageListCheckboxes}
|
||||
<th class="cell-checkbox"><input type="checkbox" name="" class="input-checkbox" onclick="ls.tools.checkAll('form_talks_checkbox', this, true);"></th>
|
||||
{/if}
|
||||
<th class="cell-favourite"></th>
|
||||
<th class="cell-recipients">{$aLang.talk_inbox_target}</th>
|
||||
<th class="cell-title">{$aLang.talk_inbox_title}</th>
|
||||
<th class="cell-date ta-r">{$aLang.talk_inbox_date}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{foreach $aTalks as $oTalk}
|
||||
{$oTalkUserAuthor = $oTalk->getTalkUser()}
|
||||
{if $aTalks}
|
||||
{* Экшнбар *}
|
||||
{include 'actionbar.tpl' aActionbarItems=[
|
||||
[ 'icon' => 'icon-ok', 'classes' => 'js-temp', 'text' => $aLang.talk_inbox_make_read ],
|
||||
[ 'icon' => 'icon-remove', 'classes' => 'js-temp', 'text' => $aLang.talk_inbox_delete ]
|
||||
]}
|
||||
|
||||
{* Список сообщений *}
|
||||
<table class="table table-talk">
|
||||
<thead>
|
||||
<tr>
|
||||
{if $bMessageListCheckboxes}
|
||||
<td class="cell-checkbox"><input type="checkbox" name="talk_select[{$oTalk->getId()}]" class="form_talks_checkbox input-checkbox" /></td>
|
||||
<th class="cell-checkbox"><input type="checkbox" name="" class="input-checkbox" onclick="ls.tools.checkAll('form_talks_checkbox', this, true);"></th>
|
||||
{/if}
|
||||
<td class="cell-favourite">
|
||||
{include 'favourite.tpl'
|
||||
sFavouriteType = 'talk'
|
||||
oFavouriteObject = $oTalk}
|
||||
</td>
|
||||
<td>
|
||||
{strip}
|
||||
{$aTalkUserOther = []}
|
||||
|
||||
{foreach $oTalk->getTalkUsers() as $oTalkUser}
|
||||
{if $oTalkUser->getUserId() != $oUserCurrent->getId()}
|
||||
{$aTalkUserOther[] = $oTalkUser}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{foreach $aTalkUserOther as $oTalkUser}
|
||||
{$oUser = $oTalkUser->getUser()}
|
||||
|
||||
{if ! $oTalkUser@first}, {/if}<a href="{$oUser->getUserWebPath()}" class="user {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}inactive{/if}" {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}title="{$aLang.talk_speaker_not_found}"{/if}>{$oUser->getDisplayName()}</a>
|
||||
{/foreach}
|
||||
{/strip}
|
||||
</td>
|
||||
<td>
|
||||
<h2>
|
||||
<a href="{router page='talk'}read/{$oTalk->getId()}/">
|
||||
{if $oTalkUserAuthor->getCommentCountNew() or ! $oTalkUserAuthor->getDateLast()}
|
||||
<strong>{$oTalk->getTitle()|escape:'html'}</strong>
|
||||
{else}
|
||||
{$oTalk->getTitle()|escape:'html'}
|
||||
{/if}
|
||||
</a>
|
||||
|
||||
{if $oTalk->getCountComment()}
|
||||
({$oTalk->getCountComment()}{if $oTalkUserAuthor->getCommentCountNew()} +{$oTalkUserAuthor->getCommentCountNew()}{/if})
|
||||
{/if}
|
||||
|
||||
{if $oUserCurrent->getId()==$oTalk->getUserIdLast()}
|
||||
→
|
||||
{else}
|
||||
←
|
||||
{/if}
|
||||
</h2>
|
||||
|
||||
{$oTalk->getText()|strip_tags|truncate:120:"..."|escape}
|
||||
</td>
|
||||
<td class="cell-date ta-r">{date_format date=$oTalk->getDate() format="j F Y, H:i"}</td>
|
||||
<th class="cell-favourite"></th>
|
||||
<th class="cell-recipients">{$aLang.talk_inbox_target}</th>
|
||||
<th class="cell-title">{$aLang.talk_inbox_title}</th>
|
||||
<th class="cell-date ta-r">{$aLang.talk_inbox_date}</th>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{foreach $aTalks as $oTalk}
|
||||
{$oTalkUserAuthor = $oTalk->getTalkUser()}
|
||||
|
||||
<tr>
|
||||
{if $bMessageListCheckboxes}
|
||||
<td class="cell-checkbox"><input type="checkbox" name="talk_select[{$oTalk->getId()}]" class="form_talks_checkbox input-checkbox" /></td>
|
||||
{/if}
|
||||
<td class="cell-favourite">
|
||||
{include 'favourite.tpl' sFavouriteType='talk' oFavouriteObject=$oTalk}
|
||||
</td>
|
||||
<td>
|
||||
{strip}
|
||||
{$aTalkUserOther = []}
|
||||
|
||||
{foreach $oTalk->getTalkUsers() as $oTalkUser}
|
||||
{if $oTalkUser->getUserId() != $oUserCurrent->getId()}
|
||||
{$aTalkUserOther[] = $oTalkUser}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{foreach $aTalkUserOther as $oTalkUser}
|
||||
{$oUser = $oTalkUser->getUser()}
|
||||
|
||||
{if ! $oTalkUser@first}, {/if}<a href="{$oUser->getUserWebPath()}" class="user {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}inactive{/if}" {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}title="{$aLang.talk_speaker_not_found}"{/if}>{$oUser->getDisplayName()}</a>
|
||||
{/foreach}
|
||||
{/strip}
|
||||
</td>
|
||||
<td>
|
||||
<h2>
|
||||
<a href="{router page='talk'}read/{$oTalk->getId()}/">
|
||||
{if $oTalkUserAuthor->getCommentCountNew() or ! $oTalkUserAuthor->getDateLast()}
|
||||
<strong>{$oTalk->getTitle()|escape:'html'}</strong>
|
||||
{else}
|
||||
{$oTalk->getTitle()|escape:'html'}
|
||||
{/if}
|
||||
</a>
|
||||
|
||||
{if $oTalk->getCountComment()}
|
||||
({$oTalk->getCountComment()}{if $oTalkUserAuthor->getCommentCountNew()} +{$oTalkUserAuthor->getCommentCountNew()}{/if})
|
||||
{/if}
|
||||
|
||||
{if $oUserCurrent->getId()==$oTalk->getUserIdLast()}
|
||||
→
|
||||
{else}
|
||||
←
|
||||
{/if}
|
||||
</h2>
|
||||
|
||||
{$oTalk->getText()|strip_tags|truncate:120:"..."|escape}
|
||||
</td>
|
||||
<td class="cell-date ta-r">{date_format date=$oTalk->getDate() format="j F Y, H:i"}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{else}
|
||||
{include file='alert.tpl' mAlerts=$aLang.messages.alerts.empty sAlertStyle='empty'}
|
||||
{/if}
|
|
@ -0,0 +1,48 @@
|
|||
{**
|
||||
* Поиск по личным сообщениям
|
||||
*}
|
||||
<div class="accordion">
|
||||
<h3 class="accordion-header" onclick="jQuery('#block_talk_search_content').toggle(); return false;"><span class="link-dotted">{$aLang.messages.search.title}</span></h3>
|
||||
|
||||
<form action="{router page='talk'}" method="GET" name="talk_filter_form" id="block_talk_search_content" class="accordion-content" {if $_aRequest.submit_talk_filter}style="display:block;"{/if}>
|
||||
{* Отправитель *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'sender'
|
||||
sFieldLabel = $aLang.messages.search.fields.sender.label
|
||||
sFieldNote = $aLang.messages.search.fields.sender.note
|
||||
sFieldClasses = 'width-full autocomplete-users-sep'}
|
||||
|
||||
{* Искать в заголовке *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'keyword'
|
||||
sFieldLabel = $aLang.messages.search.fields.keyword.label}
|
||||
|
||||
{* Искать в тексте *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'keyword_text'
|
||||
sFieldLabel = $aLang.messages.search.fields.keyword_text.label}
|
||||
|
||||
{* Ограничения по дате *}
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'start'
|
||||
sFieldPlaceholder = $aLang.messages.search.fields.start.placeholder
|
||||
sFieldLabel = $aLang.messages.search.fields.start.label
|
||||
sFieldClasses = 'width-200 date-picker'}
|
||||
|
||||
{include file='forms/fields/form.field.text.tpl'
|
||||
sFieldName = 'end'
|
||||
sFieldPlaceholder = $aLang.messages.search.fields.end.placeholder
|
||||
sFieldClasses = 'width-200 date-picker'}
|
||||
|
||||
{* Искать только в избранном *}
|
||||
{include file='forms/fields/form.field.checkbox.tpl' sFieldName='favourite' sFieldLabel=$aLang.messages.search.fields.favourite.label}
|
||||
|
||||
{* Кнопки *}
|
||||
{include file='forms/fields/form.field.button.tpl'
|
||||
sFieldName = 'submit_talk_filter'
|
||||
sFieldStyle = 'primary'
|
||||
sFieldText = $aLang.search.find}
|
||||
|
||||
{include file='forms/fields/form.field.button.tpl' sFieldType='reset' sFieldText=$aLang.common.form_reset}
|
||||
</form>
|
||||
</div>
|
|
@ -9,18 +9,6 @@
|
|||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
.topic-type-talk .topic-header { background: #f7f7f7; padding: 10px 15px 15px; border-top: 1px solid #dfdfdf; border-bottom: 1px solid #eee; }
|
||||
.topic-type-talk .topic-header .topic-title { margin-bottom: 13px; font-size: 20px; }
|
||||
.topic-type-talk { background: #fafafa; padding: 20px; margin-bottom: 0; }
|
||||
|
||||
.topic-type-talk .topic-header .topic-info { margin-bottom: 0; position: relative; min-height: 30px; padding-left: 40px; line-height: 14px; }
|
||||
.topic-type-talk .topic-header .topic-info .avatar { position: absolute; top: 0; left: 0; }
|
||||
.topic-type-talk .topic-header .topic-info .author-wrapper { margin-bottom: 4px; position: relative; top: -2px; }
|
||||
.topic-type-talk .topic-header .topic-info .author-wrapper .author { font-weight: bold; margin-right: 15px; }
|
||||
.topic-type-talk .topic-header .topic-info .recipient { margin-right: 10px; }
|
||||
|
||||
.topic-type-talk .topic-content { font-size: 13px; padding: 15px; background: #fafafa; margin-bottom: 1px; border-top: 1px solid #fff; }
|
||||
|
||||
.topic-type-talk .topic-footer .topic-info { border-radius: 0; background: #fafafa; }
|
||||
|
||||
.topic-type-talk .talk-recipients { padding: 15px; background: #fafafa; display: none; border-top: 1px solid #fff; border-bottom: 1px solid #eee; }
|
||||
.topic-type-talk .talk-recipients h3 { font-size: 16px; font-weight: bold; margin-bottom: 10px; }
|
||||
.message-user-list { background: #fafafa; padding: 20px; border-top: 1px solid #eee; }
|
Loading…
Reference in a new issue