diff --git a/application/frontend/components/blog/blocks/block.blog-users.tpl b/application/frontend/components/blog/blocks/block.blog-users.tpl
index 55a3a0f0..c81e6bf7 100644
--- a/application/frontend/components/blog/blocks/block.blog-users.tpl
+++ b/application/frontend/components/blog/blocks/block.blog-users.tpl
@@ -16,4 +16,4 @@
mods = 'blog-users'
title = $smarty.capture.block_title
titleUrl = "{$blog->getUrlFull()}users/"
- content = {component 'user' template='list-avatar' users=$blogUsers}}
\ No newline at end of file
+ content = {component 'user' template='avatar-list' users=$blogUsers blankslateParams=[ 'mods' => 'no-background' ]}}
\ No newline at end of file
diff --git a/application/frontend/components/user/avatar/user-avatar-list.tpl b/application/frontend/components/user/avatar/user-avatar-list.tpl
new file mode 100644
index 00000000..8b35ed17
--- /dev/null
+++ b/application/frontend/components/user/avatar/user-avatar-list.tpl
@@ -0,0 +1,20 @@
+{**
+ * Список пользователей (аватары)
+ *
+ * @param array $users Список пользователей
+ * @param array $pagination Массив с параметрами пагинации
+ * @param array $emptyText
+ *}
+
+{$items = []}
+
+{foreach $users as $user}
+ {* TODO: Костыль для блогов *}
+ {if $user->getUser()}{$user = $user->getUser()}{/if}
+
+ {$items[] = {component 'user' template='avatar' size=$smarty.local.size|default:'small' user=$user}}
+{/foreach}
+
+{component 'avatar' template='list' items=$items params=$smarty.local.params}
+
+{component 'pagination' total=+$pagination.iCountPage current=+$pagination.iCurrentPage url="{$pagination.sBaseUrl}/page__page__/"}
\ No newline at end of file
diff --git a/application/frontend/components/user/avatar/user-avatar.tpl b/application/frontend/components/user/avatar/user-avatar.tpl
new file mode 100644
index 00000000..cd2780de
--- /dev/null
+++ b/application/frontend/components/user/avatar/user-avatar.tpl
@@ -0,0 +1,26 @@
+{**
+ * Блок с аватаркой и именем пользователя
+ *
+ * @param object $user
+ * @param string $classes
+ * @param array $attributes
+ * @param array $mods
+ *}
+
+{$sizes = [
+ 'large' => 200,
+ 'default' => 100,
+ 'small' => 64,
+ 'xsmall' => 48,
+ 'xxsmall' => 24,
+ 'text' => 18
+]}
+
+{$user = $smarty.local.user}
+
+{component 'avatar'
+ image = $user->getProfileAvatarPath( $sizes[ $smarty.local.size|default:'default' ] )
+ url = $user->getUserWebPath()
+ classes = 'user-item'
+ name = $user->getDisplayName()
+ params = $smarty.local.params}
\ No newline at end of file
diff --git a/application/frontend/components/user/blocks/block.users-statistics.tpl b/application/frontend/components/user/blocks/block.users-statistics.tpl
index 6a171030..a5fe7673 100644
--- a/application/frontend/components/user/blocks/block.users-statistics.tpl
+++ b/application/frontend/components/user/blocks/block.users-statistics.tpl
@@ -2,7 +2,25 @@
* Статистика по пользователям
*}
+{capture 'user_block_stat'}
+
+ {* Кол-во пользователей *}
+ {component 'info-list' list=[
+ [ 'label' => "{lang name='user.stats.all'}:", 'content' => $usersStat.count_all ],
+ [ 'label' => "{lang name='user.stats.active'}:", 'content' => $usersStat.count_active ],
+ [ 'label' => "{lang name='user.stats.not_active'}:", 'content' => $usersStat.count_inactive ]
+ ]}
+
+ {* Пол *}
+ {component 'info-list' list=[
+ [ 'label' => "{lang name='user.stats.men'}:", 'content' => $usersStat.count_sex_man ],
+ [ 'label' => "{lang name='user.stats.women'}:", 'content' => $usersStat.count_sex_woman ],
+ [ 'label' => "{lang name='user.stats.none'}:", 'content' => $usersStat.count_sex_other ]
+ ]}
+
+{/capture}
+
{component 'block'
mods = 'info users-stats'
title = {lang 'user.stats.title'}
- content = {component 'user' template='stat' stat=$usersStat}}
\ No newline at end of file
+ content = $smarty.capture.user_block_stat}
\ No newline at end of file
diff --git a/application/frontend/components/user/component.json b/application/frontend/components/user/component.json
index f2f715a1..3666cd35 100644
--- a/application/frontend/components/user/component.json
+++ b/application/frontend/components/user/component.json
@@ -8,10 +8,10 @@
"button": "*",
"field": "*",
"photo": "*",
+ "avatar": "*",
"alert": "*"
},
"templates": {
- "list": "user-list.tpl",
"actions": "actions.tpl",
"header": "header.tpl",
"friend-item": "friend-item.tpl",
@@ -19,10 +19,14 @@
"info": "info.tpl",
"search-form": "search-form.users.tpl",
"stat": "stat.tpl",
- "item": "user-item.tpl",
- "list-avatar": "user-list-avatar.tpl",
- "list-item": "user-list-item.tpl",
- "list-loop": "user-list-loop.tpl",
+
+ "avatar": "avatar/user-avatar.tpl",
+ "avatar-list": "avatar/user-avatar-list.tpl",
+
+ "list": "list/user-list.tpl",
+ "list-item": "list/user-list-item.tpl",
+ "list-loop": "list/user-list-loop.tpl",
+
"list-small-item": "user-list-small-item.tpl",
"list-small": "user-list-small.tpl",
@@ -52,8 +56,6 @@
"styles": {
"blocks": "css/user-blocks.css",
"header": "css/user-header.css",
- "item": "css/user-item.css",
- "list-avatar": "css/user-list-avatar.css",
"list-small": "css/user-list-small.css",
"user": "css/user.css"
}
diff --git a/application/frontend/components/user/css/user-item.css b/application/frontend/components/user/css/user-item.css
deleted file mode 100644
index 0cb64021..00000000
--- a/application/frontend/components/user/css/user-item.css
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Блок с аватарой и логином пользователя
- *
- * @template user-item.tpl
- */
-
-.user-item {
- display: inline-block;
-}
-.user-item-avatar {
- vertical-align: middle;
- margin-right: 2px;
-}
-.user-item-name {
- font-weight: bold;
-}
-.user-item--rounded .user-item-avatar {
- border-radius: 50%;
-}
-.user-item.inactive {
- opacity: .5;
-}
\ No newline at end of file
diff --git a/application/frontend/components/user/css/user-list-avatar.css b/application/frontend/components/user/css/user-list-avatar.css
deleted file mode 100644
index 30738cd0..00000000
--- a/application/frontend/components/user/css/user-list-avatar.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Список пользователей
- *
- * @template user_list_avatar.tpl
- */
-.user-list-avatar { overflow: hidden; zoom: 1; }
-.user-list-avatar li { width: 64px; overflow: hidden; float: left; margin-right: 20px; margin-bottom: 15px; text-align: center; }
-.user-list-avatar .user-item-avatar { margin-bottom: 2px; margin-right: 0; display: block; }
-.user-list-avatar .user-item-name { font-size: 11px; font-weight: normal; }
\ No newline at end of file
diff --git a/application/frontend/components/user/info.tpl b/application/frontend/components/user/info.tpl
index 298ba5c4..13e19c77 100644
--- a/application/frontend/components/user/info.tpl
+++ b/application/frontend/components/user/info.tpl
@@ -217,7 +217,7 @@
*}
{if $smarty.local.friends}
{capture 'user_info_friends'}
- {component 'user' template='list-avatar' users=$smarty.local.friends}
+ {component 'user' template='avatar-list' users=$smarty.local.friends}
{/capture}
{component 'user' template='info-group'
diff --git a/application/frontend/components/user/user-list-item.tpl b/application/frontend/components/user/list/user-list-item.tpl
similarity index 100%
rename from application/frontend/components/user/user-list-item.tpl
rename to application/frontend/components/user/list/user-list-item.tpl
diff --git a/application/frontend/components/user/user-list-loop.tpl b/application/frontend/components/user/list/user-list-loop.tpl
similarity index 100%
rename from application/frontend/components/user/user-list-loop.tpl
rename to application/frontend/components/user/list/user-list-loop.tpl
diff --git a/application/frontend/components/user/user-list.tpl b/application/frontend/components/user/list/user-list.tpl
similarity index 100%
rename from application/frontend/components/user/user-list.tpl
rename to application/frontend/components/user/list/user-list.tpl
diff --git a/application/frontend/components/user/stat.tpl b/application/frontend/components/user/stat.tpl
deleted file mode 100644
index f3c64903..00000000
--- a/application/frontend/components/user/stat.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-{$stat = $smarty.local.stat}
-
-
- {* Кол-во пользователей *}
- {component 'info-list' list=[
- [ 'label' => "{lang name='user.stats.all'}:", 'content' => $stat.count_all ],
- [ 'label' => "{lang name='user.stats.active'}:", 'content' => $stat.count_active ],
- [ 'label' => "{lang name='user.stats.not_active'}:", 'content' => $stat.count_inactive ]
- ]}
-
- {* Пол *}
- {component 'info-list' list=[
- [ 'label' => "{lang name='user.stats.men'}:", 'content' => $stat.count_sex_man ],
- [ 'label' => "{lang name='user.stats.women'}:", 'content' => $stat.count_sex_woman ],
- [ 'label' => "{lang name='user.stats.none'}:", 'content' => $stat.count_sex_other ]
- ]}
-
\ No newline at end of file
diff --git a/application/frontend/components/user/user-item.tpl b/application/frontend/components/user/user-item.tpl
deleted file mode 100644
index ff0bfd1a..00000000
--- a/application/frontend/components/user/user-item.tpl
+++ /dev/null
@@ -1,26 +0,0 @@
-{**
- * Блок с аватаркой и именем пользователя
- *
- * @param object $user
- * @param integer $avatarSize
- *
- * @param string $classes
- * @param array $attributes
- * @param array $mods
- *}
-
-{$component = 'user-item'}
-
-{$user = $smarty.local.user}
-
-
\ No newline at end of file
diff --git a/application/frontend/components/user/user-list-avatar.tpl b/application/frontend/components/user/user-list-avatar.tpl
deleted file mode 100644
index d750f558..00000000
--- a/application/frontend/components/user/user-list-avatar.tpl
+++ /dev/null
@@ -1,28 +0,0 @@
-{**
- * Список пользователей (аватары)
- *
- * @param array $users Список пользователей
- * @param array $pagination Массив с параметрами пагинации
- * @param array $emptyText
- *}
-
-{$users = $smarty.local.users}
-{$pagination = $smarty.local.pagination}
-{$emptyText = $smarty.local.emptyText}
-
-{$emptyText = $emptyText|default:$aLang.common.empty}
-
-{if $users}
-
- {foreach $users as $user}
- {* TODO: Костыль для блогов *}
- {if $user->getUser()}{$user = $user->getUser()}{/if}
-
- - {component 'user' template='item' user=$user avatarSize=64}
- {/foreach}
-
-{else}
- {component 'blankslate' text=$emptyText}
-{/if}
-
-{component 'pagination' total=+$pagination.iCountPage current=+$pagination.iCurrentPage url="{$pagination.sBaseUrl}/page__page__/"}
\ No newline at end of file
diff --git a/application/frontend/components/user/user-list-small-item.tpl b/application/frontend/components/user/user-list-small-item.tpl
index f3fea274..67133895 100644
--- a/application/frontend/components/user/user-list-small-item.tpl
+++ b/application/frontend/components/user/user-list-small-item.tpl
@@ -28,6 +28,6 @@
{* Пользователь *}
{block 'user_list_small_item_content'}
- {component 'user' template='item' user=$user}
+ {component 'user' template='avatar' size='xxsmall' mods='inline' user=$user}
{/block}
\ No newline at end of file