From 4a0e2099f0dc584b388b5da4b89a1144f1deaafb Mon Sep 17 00:00:00 2001 From: Denis Shakhov Date: Tue, 9 Jun 2015 23:39:50 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BB=D0=B8=D1=87=D0=BD=D1=8B=D1=85=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/talk/entity/Talk.entity.class.php | 11 ++++ .../frontend/components/talk/component.json | 3 +- .../components/talk/css/message-root.css | 21 ++++++++ .../frontend/components/talk/css/talk.css | 4 ++ .../components/talk/talk-message-root.tpl | 54 ++++++++++++++----- application/frontend/components/talk/talk.tpl | 20 ++++--- 6 files changed, 91 insertions(+), 22 deletions(-) create mode 100644 application/frontend/components/talk/css/message-root.css diff --git a/application/classes/modules/talk/entity/Talk.entity.class.php b/application/classes/modules/talk/entity/Talk.entity.class.php index 1ea4368f..4aea14eb 100644 --- a/application/classes/modules/talk/entity/Talk.entity.class.php +++ b/application/classes/modules/talk/entity/Talk.entity.class.php @@ -192,6 +192,17 @@ class ModuleTalk_EntityTalk extends Entity } + /** + * Возвращает полный URL для удаления сообщения + * + * @return string + */ + public function getUrlDelete() + { + return Router::GetPath('talk') . 'delete/' . $this->getId() . '/'; + } + + /** * Устанавливает ID сообщения * diff --git a/application/frontend/components/talk/component.json b/application/frontend/components/talk/component.json index 8f1bcc70..aeb2360d 100644 --- a/application/frontend/components/talk/component.json +++ b/application/frontend/components/talk/component.json @@ -30,6 +30,7 @@ "talk": "js/talk.js" }, "styles": { - "talk": "css/talk.css" + "talk": "css/talk.css", + "message-root": "css/message-root.css" } } \ No newline at end of file diff --git a/application/frontend/components/talk/css/message-root.css b/application/frontend/components/talk/css/message-root.css new file mode 100644 index 00000000..5a628347 --- /dev/null +++ b/application/frontend/components/talk/css/message-root.css @@ -0,0 +1,21 @@ +/** + * Первое сообщение в диалоге + * + * @license GNU General Public License, version 2 + * @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com} + * @author Denis Shakhov + */ + +.ls-talk-message-root, +.ls-talk-message-root-info, +.ls-talk-message-root-actionbar, +.ls-talk-message-root-text { + margin-bottom: 15px; +} + +.ls-talk-message-root-info-item { + display: inline-block; +} +.ls-talk-message-root-info-item--author { + margin-right: 15px; +} \ No newline at end of file diff --git a/application/frontend/components/talk/css/talk.css b/application/frontend/components/talk/css/talk.css index 2e8c2c64..ed89149b 100644 --- a/application/frontend/components/talk/css/talk.css +++ b/application/frontend/components/talk/css/talk.css @@ -15,6 +15,10 @@ margin-bottom: 0; } +.ls-talk-participants-details { + margin-bottom: 30px; +} + /** * Message user list */ diff --git a/application/frontend/components/talk/talk-message-root.tpl b/application/frontend/components/talk/talk-message-root.tpl index d9929fc0..f90f65d6 100644 --- a/application/frontend/components/talk/talk-message-root.tpl +++ b/application/frontend/components/talk/talk-message-root.tpl @@ -2,21 +2,47 @@ * Первое сообщение в диалоге *} -{extends 'Component@article.article'} +{$component = 'ls-talk-message-root'} -{block 'article_options'} - {$article = $smarty.local.talk} +{* Генерируем копии локальных переменных, *} +{* чтобы их можно было изменять в дочерних шаблонах *} +{foreach [ 'talk', 'mods', 'classes', 'attributes' ] as $param} + {assign var="$param" value=$smarty.local.$param} +{/foreach} - {$smarty.block.parent} - {$type = 'talk'} - {$classes = "{$classes} talk"} -{/block} +
+ {* Заголовок *} +

+ {$talk->getTitle()} +

-{* Информация *} -{block 'article_footer_info_items' append} - {* Избранное *} -
  • - {component 'favourite' classes="js-favourite-{$type}" target=$article} -
  • -{/block} \ No newline at end of file + {* Информация *} +
      + {* Автор *} +
    • + {component 'user' template='avatar' user=$talk->getUser() size='xxsmall' mods='inline'} +
    • + +
    • + +
    • +
    + + {* Содержимое *} +
    + {$talk->getText()} +
    + + {* Действия *} + {component 'actionbar' classes="{$component}-actionbar" items=[ + [ 'buttons' => [ + [ 'text' => {component 'favourite' classes="js-favourite-talk" target=$talk}, 'mods' => 'icon', 'classes' => 'js-talk-message-root-favourite' ] + ]], + [ 'buttons' => [ + [ 'icon' => 'trash', 'url' => "{$talk->getUrlDelete()}?security_ls_key={$LIVESTREET_SECURITY_KEY}", 'text' => {lang 'common.remove'}, 'show' => $oUserCurrent->getId() == $talk->getUser()->getId() || $oUserCurrent->isAdministrator() ] + ]] + ]} +
    \ No newline at end of file diff --git a/application/frontend/components/talk/talk.tpl b/application/frontend/components/talk/talk.tpl index 559b1c99..722b1904 100644 --- a/application/frontend/components/talk/talk.tpl +++ b/application/frontend/components/talk/talk.tpl @@ -13,13 +13,19 @@ {if ! $bNoComments} {* Участники личного сообщения *} - {include './participants/participants.tpl' - users = $talk->getTalkUsers() - classes = 'message-users js-message-users' - attributes = [ 'data-param-target_id' => $talk->getId() ] - editable = $talk->getUserId() == $oUserCurrent->getId() || $oUserCurrent->isAdministrator() - title = $aLang.talk.users.title - excludeRemove = [ $oUserCurrent->getId() ]} + {capture 'talk_message_root_participants'} + {include './participants/participants.tpl' + users = $talk->getTalkUsers() + classes = 'message-users js-message-users' + attributes = [ 'data-param-target_id' => $talk->getId() ] + editable = $talk->getUserId() == $oUserCurrent->getId() || $oUserCurrent->isAdministrator() + excludeRemove = [ $oUserCurrent->getId() ]} + {/capture} + + {component 'details' + classes = 'js-details-default ls-talk-participants-details' + title = "{lang 'talk.users.title'} ({count($talk->getTalkUsers())})" + content = $smarty.capture.talk_message_root_participants} {* Вывод комментариев к сообщению *} {component 'comment' template='comments'