mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-17 07:10:48 +03:00
Шаблон Synio
Профиль пользователя, Стена
This commit is contained in:
parent
1fbaa0ac46
commit
11618a9ff0
|
@ -26,6 +26,6 @@
|
|||
}
|
||||
|
||||
/* Список */
|
||||
.user-info-group-items .info-list-item-label { width: 150px; }
|
||||
.user-info-group-items .info-list-item { margin-bottom: 10px; }
|
||||
.user-info-group-items .info-list-item-content { font-weight: normal; }
|
||||
.user-info-group-items .ls-info-list-item-label { width: 150px; }
|
||||
.user-info-group-items .ls-info-list-item { margin-bottom: 10px; }
|
||||
.user-info-group-items .ls-info-list-item-content { font-weight: normal; }
|
|
@ -3,19 +3,29 @@
|
|||
*}
|
||||
|
||||
{$component = 'user-info-group'}
|
||||
{component_define_params params=[ 'html', 'items', 'name', 'title', 'mods', 'classes', 'attributes' ]}
|
||||
{component_define_params params=[ 'url', 'count', 'html', 'items', 'name', 'title', 'mods', 'classes', 'attributes' ]}
|
||||
|
||||
{hook run="{$component}-{$name}-before"}
|
||||
|
||||
{* Получаем пункты установленные плагинами *}
|
||||
{hook run="{$component}-{$name}-items" assign='itemsHook' items=$items array=true}
|
||||
{$items = $itemsHook|default:$items}
|
||||
{$items = ($itemsHook) ? $itemsHook : $items}
|
||||
|
||||
{if $html || $items}
|
||||
<div class="{$component} {cmods name=$component mods=$mods} {$classes}" {cattr list=$attributes}>
|
||||
<h3 class="user-info-group-title">
|
||||
{$title}
|
||||
</h3>
|
||||
{if $title}
|
||||
<h3 class="{$component}-title">
|
||||
{if $url}
|
||||
<a href="{$url}">{$title}</a>
|
||||
{else}
|
||||
{$title}
|
||||
{/if}
|
||||
|
||||
{if $count}
|
||||
<span class="user-info-group-count">{$count}</span>
|
||||
{/if}
|
||||
</h3>
|
||||
{/if}
|
||||
|
||||
<div class="user-info-group-content">
|
||||
{if $html}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Список аватаров
|
||||
*
|
||||
* @module ls/avatar/name
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
.ls-avatar-list .ls-avatar {
|
||||
float: left;
|
||||
margin: 0 10px 10px 0;
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
/**
|
||||
* Аватар
|
||||
*
|
||||
* @module ls/avatar
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
.ls-avatar {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ls-avatar-image {
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.ls-avatar-image-link {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ls-avatar-name {
|
||||
font-size: 11px;
|
||||
}
|
||||
.ls-avatar-name-link {
|
||||
color: #275ec2;
|
||||
}
|
||||
.ls-avatar-name-link:hover {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
.ls-avatar--size-small .ls-avatar-image {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.ls-avatar--size-xsmall .ls-avatar-image {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
.ls-avatar--size-xxsmall .ls-avatar-image {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ls-avatar--size-text .ls-avatar-image {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
/**
|
||||
* @modifier has-name
|
||||
*/
|
||||
.ls-avatar--has-name {
|
||||
max-width: 64px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ls-avatar--has-name .ls-avatar-image {
|
||||
margin: 0 auto 2px;
|
||||
}
|
||||
|
||||
.ls-avatar--has-name .ls-avatar-name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @modifier inline
|
||||
*/
|
||||
.ls-avatar--has-name.ls-avatar--inline {
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.ls-avatar--has-name.ls-avatar--inline .ls-avatar-image,
|
||||
.ls-avatar--has-name.ls-avatar--inline .ls-avatar-image-link,
|
||||
.ls-avatar--has-name.ls-avatar--inline .ls-avatar-name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ls-avatar--has-name.ls-avatar--inline .ls-avatar-image {
|
||||
margin: 0 2px 0 0;
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
/**
|
||||
* Список с информацией
|
||||
*/
|
||||
.ls-info-list {
|
||||
margin-bottom: 20px;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
.ls-info-list:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.ls-info-list-item {
|
||||
position: relative;
|
||||
margin-bottom: 5px;
|
||||
overflow: hidden;
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
.ls-info-list-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ls-info-list-item:after {
|
||||
content: "";
|
||||
border-bottom: 1px dotted #d1d8dc;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 1.2em;
|
||||
z-index: 1;
|
||||
}
|
||||
.ls-info-list-item > * {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.ls-info-list-item-label {
|
||||
width: 130px;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.ls-info-list-item-content {
|
||||
font-weight: normal;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
margin-left: 150px;
|
||||
padding-left: 2px;
|
||||
}
|
||||
.ls-info-list-item-content a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.ls-info-list-item-label-text {
|
||||
background: #fff;
|
||||
padding-right: 2px;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
{**
|
||||
* Список с информацией
|
||||
*
|
||||
* @param array $list (null) Массив в формате [ label, content ]
|
||||
* @param string $title (null) Заголовок
|
||||
*}
|
||||
|
||||
{* Название компонента *}
|
||||
{$component = 'ls-info-list'}
|
||||
{component_define_params params=[ 'url', 'count', 'title', 'list', 'mods', 'classes', 'attributes' ]}
|
||||
|
||||
{block 'info_list_options'}{/block}
|
||||
|
||||
{if $list}
|
||||
<div class="{$component} {cmods name=$component mods=$mods} {$classes}" {cattr list=$attributes}>
|
||||
{* Заголовок *}
|
||||
{if $title}
|
||||
<h2 class="{$component}-title">
|
||||
{if $url}
|
||||
<a href="{$url}">{$title}</a>
|
||||
{else}
|
||||
{$title}
|
||||
{/if}
|
||||
|
||||
{if $count}
|
||||
<span class="user-info-group-count">{$count}</span>
|
||||
{/if}
|
||||
</h2>
|
||||
{/if}
|
||||
|
||||
{* Список *}
|
||||
<ul class="{$component}-list">
|
||||
{foreach $list as $item}
|
||||
<li class="{$component}-item {$item['classes']}" {cattr list=$item['attributes']}>
|
||||
<div class="{$component}-item-label">
|
||||
<span class="{$component}-item-label-text">{$item['label']}</span>
|
||||
</div>
|
||||
|
||||
<div class="{$component}-item-content">
|
||||
{$item['content']}
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
|
@ -47,7 +47,8 @@ p:last-child {
|
|||
* Заголовки
|
||||
*/
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
.h1, .h2, .h3, .h4, .h5, .h6 {
|
||||
.h1, .h2, .h3, .h4, .h5, .h6,
|
||||
.ls-heading {
|
||||
margin: 0 0 15px;
|
||||
font-family: "PT Sans", sans-serif;
|
||||
font-weight: 300;
|
||||
|
@ -69,6 +70,14 @@ h4 small, .h4 small,
|
|||
h5 small, .h5 small,
|
||||
h6 small, .h6 small { font-size: 65%; color: #aaa; }
|
||||
|
||||
.ls-heading a {
|
||||
color: #275ec2;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.ls-heading a:hover {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
/* Заголовок страницы */
|
||||
.page-header {
|
||||
color: #333;
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
|
||||
/* Заголовок */
|
||||
.profile-page-header {
|
||||
color: #333;
|
||||
|
@ -16,19 +15,8 @@
|
|||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* Блок с информацией */
|
||||
.user-info-group {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
.user-info-group:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.user-info-group-title {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
/* О себе */
|
||||
.user-info-group.user-info-about {
|
||||
.user-info-about {
|
||||
padding: 17px 20px 20px 20px;
|
||||
background: #fcfce9;
|
||||
border-radius: 5px;
|
||||
|
@ -36,15 +24,52 @@
|
|||
color: #000;
|
||||
position: relative;
|
||||
}
|
||||
.user-info-about .user-info-group-title {
|
||||
.user-info-about-title {
|
||||
font-size: 19px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.user-info-about-empty-text {
|
||||
opacity: .3;
|
||||
opacity: .4;
|
||||
}
|
||||
|
||||
/* Список */
|
||||
.user-info-group-items .info-list-item-label { width: 150px; }
|
||||
.user-info-group-items .info-list-item { margin-bottom: 10px; }
|
||||
.user-info-group-items .info-list-item-content { font-weight: normal; }
|
||||
/* Блок с информацией */
|
||||
.user-info-group-wrapper {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
.user-info-group-col {
|
||||
float: left;
|
||||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.user-info-group-col:first-child {
|
||||
padding-right: 20px;
|
||||
}
|
||||
.user-info-group-col:last-child {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.user-info-group {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
.user-info-group:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.user-info-group-title {
|
||||
margin-bottom: 15px;
|
||||
font-size: 22px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.user-info-group-count {
|
||||
color: #949aa1;
|
||||
}
|
||||
|
||||
.user-info-group-items .ls-info-list-item-label {
|
||||
width: 150px;
|
||||
}
|
||||
.user-info-group-items .ls-info-list-item {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.user-info-group-items .ls-info-list-item-content {
|
||||
font-weight: normal;
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{**
|
||||
* Блок с информацией
|
||||
*}
|
||||
|
||||
{$component = 'user-info-group'}
|
||||
{component_define_params params=[ 'url', 'count', 'html', 'items', 'name', 'title', 'mods', 'classes', 'attributes' ]}
|
||||
|
||||
{hook run="{$component}-{$name}-before"}
|
||||
|
||||
{* Получаем пункты установленные плагинами *}
|
||||
{hook run="{$component}-{$name}-items" assign='itemsHook' items=$items array=true}
|
||||
{$items = ($itemsHook) ? $itemsHook : $items}
|
||||
|
||||
{if $html || $items}
|
||||
<div class="{$component} {cmods name=$component mods=$mods} {$classes}" {cattr list=$attributes}>
|
||||
{if $title}
|
||||
<h3 class="{$component}-title ls-heading">
|
||||
{if $url}
|
||||
<a href="{$url}">{$title}</a>
|
||||
{else}
|
||||
{$title}
|
||||
{/if}
|
||||
|
||||
{if $count}
|
||||
<span class="user-info-group-count">{$count}</span>
|
||||
{/if}
|
||||
</h3>
|
||||
{/if}
|
||||
|
||||
<div class="user-info-group-content">
|
||||
{if $html}
|
||||
{$html}
|
||||
{else}
|
||||
{component 'info-list' list=$items classes='user-info-group-items'}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{hook run="{$component}-{$name}-after"}
|
|
@ -22,199 +22,205 @@
|
|||
{**
|
||||
* О себе
|
||||
*}
|
||||
<div class="user-info-about">
|
||||
<h3 class="user-info-about-title">
|
||||
{lang 'user.profile.about.title'}
|
||||
</h3>
|
||||
|
||||
{capture 'user_info_about'}
|
||||
{if $user->getProfileAbout()}
|
||||
<div class="ls-text">
|
||||
{$user->getProfileAbout()}
|
||||
</div>
|
||||
{else}
|
||||
<div class="user-info-about-empty-text">Пока ничего не известно...</div>
|
||||
<div class="user-info-about-empty-text">
|
||||
{lang 'synio.user_about_empty'}
|
||||
</div>
|
||||
{/if}
|
||||
{/capture}
|
||||
|
||||
{component 'user.info-group' classes='user-info-about' title={lang 'user.profile.about.title'} html=$smarty.capture.user_info_about}
|
||||
</div>
|
||||
|
||||
|
||||
{**
|
||||
* Личное
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array(''))}
|
||||
<div class="user-info-group-wrapper ls-clearfix">
|
||||
<div class="user-info-group-col">
|
||||
{**
|
||||
* Личное
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array(''))}
|
||||
|
||||
{* Пол *}
|
||||
{if $user->getProfileSex() != 'other'}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.gender'},
|
||||
'content' => "{if $user->getProfileSex() == 'man'}{lang name='user.profile.personal.gender_male'}{else}{lang name='user.profile.personal.gender_female'}{/if}"
|
||||
]}
|
||||
{/if}
|
||||
{* Пол *}
|
||||
{if $user->getProfileSex() != 'other'}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.gender'},
|
||||
'content' => "{if $user->getProfileSex() == 'man'}{lang name='user.profile.personal.gender_male'}{else}{lang name='user.profile.personal.gender_female'}{/if}"
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* День рождения *}
|
||||
{if $user->getProfileBirthday()}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.birthday'},
|
||||
'content' => {date_format date=$user->getProfileBirthday() format="j F Y" notz=true}
|
||||
]}
|
||||
{/if}
|
||||
{* День рождения *}
|
||||
{if $user->getProfileBirthday()}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.birthday'},
|
||||
'content' => {date_format date=$user->getProfileBirthday() format="j F Y" notz=true}
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Местоположение *}
|
||||
{if $geoTarget}
|
||||
{capture 'info_private_geo'}
|
||||
<span itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
|
||||
{if $geoTarget->getCountryId()}
|
||||
<a href="{router page='people'}country/{$geoTarget->getCountryId()}/" itemprop="country-name">{$user->getProfileCountry()|escape}</a>{if $geoTarget->getCityId()},{/if}
|
||||
{/if}
|
||||
{* Местоположение *}
|
||||
{if $geoTarget}
|
||||
{capture 'info_private_geo'}
|
||||
<span itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
|
||||
{if $geoTarget->getCountryId()}
|
||||
<a href="{router page='people'}country/{$geoTarget->getCountryId()}/" itemprop="country-name">{$user->getProfileCountry()|escape}</a>{if $geoTarget->getCityId()},{/if}
|
||||
{/if}
|
||||
|
||||
{if $geoTarget->getCityId()}
|
||||
<a href="{router page='people'}city/{$geoTarget->getCityId()}/" itemprop="locality">{$user->getProfileCity()|escape}</a>
|
||||
{/if}
|
||||
</span>
|
||||
{/capture}
|
||||
{if $geoTarget->getCityId()}
|
||||
<a href="{router page='people'}city/{$geoTarget->getCityId()}/" itemprop="locality">{$user->getProfileCity()|escape}</a>
|
||||
{/if}
|
||||
</span>
|
||||
{/capture}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.place'},
|
||||
'content' => $smarty.capture.info_private_geo
|
||||
]}
|
||||
{/if}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.personal.place'},
|
||||
'content' => $smarty.capture.info_private_geo
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{component 'user.info-group' title={lang name='user.profile.personal.title'} items=$items}
|
||||
{component 'user.info-group' title={lang name='user.profile.personal.title'} items=$items}
|
||||
|
||||
{**
|
||||
* Активность
|
||||
*}
|
||||
{$items = []}
|
||||
|
||||
{* Кто пригласил пользователя *}
|
||||
{if $invitedByUser}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.invited_by'},
|
||||
'content' => "<a href=\"{$invitedByUser->getUserWebPath()}\">{$invitedByUser->getDisplayName()}</a>"
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Приглашенные пользователем *}
|
||||
{if $usersInvited}
|
||||
{$users = ''}
|
||||
|
||||
{foreach $usersInvited as $userInvited}
|
||||
{$users = $users|cat:"<a href=\"{$userInvited->getUserWebPath()}\">{$userInvited->getDisplayName()}</a> "}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.invited'},
|
||||
'content' => $users
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги созданные пользователем *}
|
||||
{if $blogsCreated}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsCreated as $blog}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blog@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_created'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги администрируемые пользователем *}
|
||||
{if $blogsAdminister}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsAdminister as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_admin'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги модерируемые пользователем *}
|
||||
{if $blogsModerate}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsModerate as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_mod'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги в которые вступил пользователь *}
|
||||
{if $blogsJoined}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsJoined as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_joined'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Дата регистрации *}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.date_registration'},
|
||||
'content' => {date_format date=$user->getDateRegister()}
|
||||
]}
|
||||
|
||||
{* Дата последнего визита *}
|
||||
{if $session}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.date_last_session'},
|
||||
'content' => {date_format date=$session->getDateLast()}
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{component 'user.info-group' name='activity' title={lang name='user.profile.activity.title'} items=$items}
|
||||
</div>
|
||||
|
||||
<div class="user-info-group-col">
|
||||
{**
|
||||
* Контакты
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array('contact'))}
|
||||
|
||||
{foreach $userfields as $field}
|
||||
{$items[] = [
|
||||
'label' => $field->getTitle()|escape,
|
||||
'content' => $field->getValue(true, true)
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{component 'user.info-group' name='contact' title={lang name='user.profile.contact'} items=$items}
|
||||
|
||||
|
||||
{**
|
||||
* Контакты
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array('contact'))}
|
||||
{**
|
||||
* Соц. сети
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array('social'))}
|
||||
|
||||
{foreach $userfields as $field}
|
||||
{$items[] = [
|
||||
'label' => $field->getTitle()|escape,
|
||||
'content' => $field->getValue(true, true)
|
||||
]}
|
||||
{/foreach}
|
||||
{foreach $userfields as $field}
|
||||
{$items[] = [
|
||||
'label' => $field->getTitle()|escape,
|
||||
'content' => $field->getValue(true, true)
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{component 'user.info-group' name='contact' title={lang name='user.profile.contact'} items=$items}
|
||||
|
||||
|
||||
{**
|
||||
* Соц. сети
|
||||
*}
|
||||
{$items = []}
|
||||
{$userfields = $user->getUserFieldValues(true, array('social'))}
|
||||
|
||||
{foreach $userfields as $field}
|
||||
{$items[] = [
|
||||
'label' => $field->getTitle()|escape,
|
||||
'content' => $field->getValue(true, true)
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{component 'user.info-group' name='social-networks' title={lang name='user.profile.social_networks'} items=$items}
|
||||
|
||||
|
||||
|
||||
{**
|
||||
* Активность
|
||||
*}
|
||||
{$items = []}
|
||||
|
||||
{* Кто пригласил пользователя *}
|
||||
{if $invitedByUser}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.invited_by'},
|
||||
'content' => "<a href=\"{$invitedByUser->getUserWebPath()}\">{$invitedByUser->getDisplayName()}</a>"
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Приглашенные пользователем *}
|
||||
{if $usersInvited}
|
||||
{$users = ''}
|
||||
|
||||
{foreach $usersInvited as $userInvited}
|
||||
{$users = $users|cat:"<a href=\"{$userInvited->getUserWebPath()}\">{$userInvited->getDisplayName()}</a> "}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.invited'},
|
||||
'content' => $users
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги созданные пользователем *}
|
||||
{if $blogsCreated}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsCreated as $blog}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blog@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_created'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги администрируемые пользователем *}
|
||||
{if $blogsAdminister}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsAdminister as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_admin'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги модерируемые пользователем *}
|
||||
{if $blogsModerate}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsModerate as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_mod'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Блоги в которые вступил пользователь *}
|
||||
{if $blogsJoined}
|
||||
{$blogs = ''}
|
||||
|
||||
{foreach $blogsJoined as $blogUser}
|
||||
{$blog = $blogUser->getBlog()}
|
||||
{$blogs = $blogs|cat:"<a href=\"{$blog->getUrlFull()}\">{$blog->getTitle()|escape}</a>{if ! $blogUser@last}, {/if}"}
|
||||
{/foreach}
|
||||
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.profile.activity.blogs_joined'},
|
||||
'content' => $blogs
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Дата регистрации *}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.date_registration'},
|
||||
'content' => {date_format date=$user->getDateRegister()}
|
||||
]}
|
||||
|
||||
{* Дата последнего визита *}
|
||||
{if $session}
|
||||
{$items[] = [
|
||||
'label' => {lang name='user.date_last_session'},
|
||||
'content' => {date_format date=$session->getDateLast()}
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{component 'user.info-group' name='activity' title={lang name='user.profile.activity.title'} items=$items}
|
||||
{component 'user.info-group' name='social-networks' title={lang name='user.profile.social_networks'} items=$items}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{**
|
||||
* Друзья
|
||||
|
@ -225,10 +231,15 @@
|
|||
{/capture}
|
||||
|
||||
{component 'user.info-group'
|
||||
title = "<a href=\"{$user->getUserWebPath()}friends/\">{$aLang.user.friends.title}</a> ({$iCountFriendsUser})"
|
||||
url = "{$user->getUserWebPath()}friends/"
|
||||
title = $aLang.user.friends.title
|
||||
count = $iCountFriendsUser
|
||||
html = $smarty.capture.user_info_friends}
|
||||
{/if}
|
||||
|
||||
{* @hook Конец информации о пользователе *}
|
||||
{hook run='user_info_end' user=$user}
|
||||
|
||||
{**
|
||||
* Стена
|
||||
*}
|
||||
|
@ -239,7 +250,4 @@
|
|||
]}
|
||||
{/capture}
|
||||
|
||||
{component 'user.info-group' name='wall' title={lang name='wall.title'} html=$smarty.capture.user_info_wall}
|
||||
|
||||
{* @hook Конец информации о пользователе *}
|
||||
{hook run='user_info_end' user=$user}
|
||||
{component 'user.info-group' name='wall' title={lang name='wall.title'} html=$smarty.capture.user_info_wall}
|
73
application/frontend/skin/synio/components/wall/css/wall.css
Normal file
73
application/frontend/skin/synio/components/wall/css/wall.css
Normal file
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* Стена
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Форма добавления сообщения на стену
|
||||
*/
|
||||
.wall > .wall-form {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.wall-form {
|
||||
margin-bottom: 10px;
|
||||
padding: 15px;
|
||||
background: #f8fbfe;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.wall-form .ls-field {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.wall-form textarea {
|
||||
height: 30px;
|
||||
padding-top: 6px;
|
||||
padding-left: 8px;
|
||||
min-height: 30px;
|
||||
max-height: 30px;
|
||||
resize: none;
|
||||
}
|
||||
.wall-form-footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Open */
|
||||
.wall-form.open .ls-field {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.wall-form.open textarea {
|
||||
height: 90px;
|
||||
max-height: 300px;
|
||||
resize: vertical;
|
||||
}
|
||||
.wall-form.open .wall-form-footer {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Сообщения
|
||||
*/
|
||||
.wall-comments {
|
||||
padding-left: 70px;
|
||||
}
|
||||
|
||||
.wall-comments .wall-comment {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.wall-comments .wall-comment:first-child {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Кнопка подгрузки комментариев
|
||||
*/
|
||||
.ls-more.wall-more-comments {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
font-size: 11px;
|
||||
padding: 8px;
|
||||
}
|
|
@ -4,7 +4,8 @@ return [
|
|||
'synio' => [
|
||||
'guest' => 'Гость',
|
||||
'site_pages' => 'Разделы',
|
||||
'drafts' => '%%count%% черновик;%%count%% черновика;%%count%% черновиков'
|
||||
'drafts' => '%%count%% черновик;%%count%% черновика;%%count%% черновиков',
|
||||
'user_about_empty' => 'Пока ничего не известно...'
|
||||
],
|
||||
'activity' => [
|
||||
'block_recent' => [
|
||||
|
|
Loading…
Reference in a new issue