mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-19 09:18:18 +03:00
Шаблон Synio
This commit is contained in:
parent
8201e54367
commit
0d09fee0d3
|
@ -14,5 +14,5 @@
|
|||
assign = blockContent}
|
||||
|
||||
{component 'block'
|
||||
mods = 'nopadding transparent blog-actions'
|
||||
mods = 'nopadding transparent blog-photo'
|
||||
content = $blockContent}
|
|
@ -25,7 +25,11 @@
|
|||
<header class="{$component}-header">
|
||||
{block 'block_header_inner'}
|
||||
<h3 class="{$component}-title">
|
||||
{if $titleUrl}
|
||||
<a href="{$titleUrl}">{$title}</a>
|
||||
{else}
|
||||
{$title}
|
||||
{/if}
|
||||
</h3>
|
||||
{/block}
|
||||
</header>
|
||||
|
|
|
@ -32,6 +32,9 @@
|
|||
max-height: 200px;
|
||||
position: relative;
|
||||
}
|
||||
.ls-block h3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* Шапка */
|
||||
.ls-block-header {
|
||||
|
@ -97,3 +100,12 @@
|
|||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.ls-block .ls-blankslate {
|
||||
margin-bottom: 0;
|
||||
padding: 10px;
|
||||
background: #eafff8;
|
||||
color: #555;
|
||||
border-radius: 5px;
|
||||
font-size: 11px;
|
||||
}
|
83
application/frontend/skin/synio/components/blog/add.tpl
Normal file
83
application/frontend/skin/synio/components/blog/add.tpl
Normal file
|
@ -0,0 +1,83 @@
|
|||
{**
|
||||
* Форма добавления/редактирования
|
||||
*
|
||||
* @param object $blog
|
||||
*}
|
||||
|
||||
{component_define_params params=[ 'blog' ]}
|
||||
|
||||
<form method="post" enctype="multipart/form-data" class="syn-form-panel js-blog-add js-form-validate">
|
||||
{hook run='form_add_blog_begin'}
|
||||
|
||||
{* Название блога *}
|
||||
{component 'field' template='text'
|
||||
name = 'blog_title'
|
||||
rules = [ 'required' => true, 'length' => "[2,200]" ]
|
||||
note = $aLang.blog.add.fields.title.note
|
||||
label = $aLang.blog.add.fields.title.label}
|
||||
|
||||
{* URL блога *}
|
||||
{component 'field' template='text'
|
||||
name = 'blog_url'
|
||||
rules = [ 'required' => true, 'regexp' => '^[\w- ]{2,50}$' ]
|
||||
isDisabled = $_aRequest.blog_id && ! $oUserCurrent->isAdministrator()
|
||||
note = $aLang.blog.add.fields.url.note
|
||||
label = $aLang.blog.add.fields.url.label}
|
||||
|
||||
{* Категория блога *}
|
||||
{if Config::Get('module.blog.category_allow') && ($oUserCurrent->isAdministrator() or ! Config::Get('module.blog.category_only_admin'))}
|
||||
{* Подключаем блок для управления категориями *}
|
||||
{insert name='block' block='fieldCategory' params=[ 'target' => $blog, 'entity' => 'ModuleBlog_EntityBlog' ]}
|
||||
{/if}
|
||||
|
||||
{* Тип блога *}
|
||||
{component 'field' template='select'
|
||||
name = 'blog_type'
|
||||
label = $aLang.blog.add.fields.type.label
|
||||
note = $aLang.blog.add.fields.type.note_open
|
||||
classes = 'js-blog-add-field-type'
|
||||
inputClasses = 'ls-width-200 js-blog-add-type'
|
||||
selectedValue = $_aRequest.blog_type
|
||||
items = [
|
||||
[ 'value' => 'open', 'text' => $aLang.blog.add.fields.type.value_open ],
|
||||
[ 'value' => 'close', 'text' => $aLang.blog.add.fields.type.value_close ]
|
||||
]}
|
||||
|
||||
{* Описание блога *}
|
||||
{component 'editor'
|
||||
mediaTargetType = 'blog'
|
||||
mediaTargetId = $_aRequest.blog_id
|
||||
name = 'blog_description'
|
||||
rules = [ 'required' => true, 'length' => '[10,3000]' ]
|
||||
inputClasses = 'js-editor-default'
|
||||
label = $aLang.blog.add.fields.description.label}
|
||||
|
||||
{* Ограничение по рейтингу *}
|
||||
{component 'field' template='text'
|
||||
name = 'blog_limit_rating_topic'
|
||||
rules = [ 'required' => true, 'type' => 'number' ]
|
||||
value = '0'
|
||||
inputClasses = 'ls-width-100'
|
||||
note = $aLang.blog.add.fields.rating.note
|
||||
label = $aLang.blog.add.fields.rating.label}
|
||||
|
||||
{* Принудительный вывод топиков на главную (доступно только админам) *}
|
||||
{if $oUserCurrent->isAdministrator()}
|
||||
{component 'field' template='checkbox'
|
||||
name = 'blog_skip_index'
|
||||
note = $aLang.blog.add.fields.skip_index.note
|
||||
label = $aLang.blog.add.fields.skip_index.label}
|
||||
{/if}
|
||||
|
||||
|
||||
{hook run='form_add_blog_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{component 'field' template='hidden.security-key'}
|
||||
|
||||
{* Кнопки *}
|
||||
{component 'button'
|
||||
name = 'submit_blog_add'
|
||||
text = {lang "{( $sEvent == 'add' ) ? 'common.create' : 'common.save'}"}
|
||||
mods = 'primary'}
|
||||
</form>
|
|
@ -0,0 +1,60 @@
|
|||
{**
|
||||
* Действия
|
||||
*}
|
||||
|
||||
{capture 'block_content'}
|
||||
{* Список экшенов *}
|
||||
{$actions = []}
|
||||
|
||||
{* Вступить/покинуть *}
|
||||
{if $oUserCurrent && $oUserCurrent->getId() != $blog->getOwnerId() && $blog->getType() == 'open'}
|
||||
{$actions[] = [
|
||||
'classes' => 'js-blog-profile-join',
|
||||
'attributes' => [ 'data-blog-id' => $blog->getId() ],
|
||||
'text' => {($blog->getUserIsJoin()) ? {lang 'blog.actions.leave'} : {lang 'blog.actions.join'}}
|
||||
]}
|
||||
{/if}
|
||||
|
||||
{* Написать в блог *}
|
||||
{if $oUserCurrent && ( ( $blog->getUserIsJoin() && $oUserCurrent->getRating() >= $blog->getLimitRatingTopic() ) || $blog->isAllowEdit() )}
|
||||
{$topicType=$LS->Topic_GetTopicTypeFirst()}
|
||||
{if $topicType}
|
||||
{$actions[] = [
|
||||
'url' => "{$topicType->getUrlForAdd()}?blog_id={$blog->getId()}",
|
||||
'text' => {lang 'blog.actions.write'}
|
||||
]}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{* Подписаться через RSS *}
|
||||
{$actions[] = [
|
||||
'url' => "{router page='rss'}blog/{$blog->getUrl()}/",
|
||||
'text' => {lang 'blog.actions.rss'}
|
||||
]}
|
||||
|
||||
{if $blog->isAllowEdit()}
|
||||
{* Редактировать *}
|
||||
{$actions[] = [ 'url' => "{router page='blog'}edit/{$blog->getId()}/", 'text' => $aLang.common.edit ]}
|
||||
|
||||
{* Удалить *}
|
||||
{if $oUserCurrent->isAdministrator()}
|
||||
{$actions[] = [
|
||||
'classes' => 'js-modal-toggle-default',
|
||||
'attributes' => [ 'data-lsmodaltoggle-modal' => 'modal-blog-delete' ],
|
||||
'text' => $aLang.common.remove
|
||||
]}
|
||||
{else}
|
||||
{$actions[] = [
|
||||
'url' => "{router page='blog'}delete/{$blog->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}",
|
||||
'classes' => 'js-confirm-remove-default',
|
||||
'text' => $aLang.common.remove
|
||||
]}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{component 'nav' hook='blog_actions' items=$actions mods='stacked' classes='profile-actions'}
|
||||
{/capture}
|
||||
|
||||
{component 'block'
|
||||
mods = 'nopadding user-actions'
|
||||
content = $smarty.capture.block_content}
|
|
@ -0,0 +1,67 @@
|
|||
{**
|
||||
* Фильтр блогов
|
||||
*}
|
||||
|
||||
{capture 'block_content'}
|
||||
<h3>{lang 'blog.blocks.search.categories.title'}</h3>
|
||||
|
||||
{* Категории *}
|
||||
{if $aBlogCategories}
|
||||
{$items = [[
|
||||
'name' => 'all',
|
||||
'text' => {lang 'blog.blocks.search.categories.all'},
|
||||
'url' => {router page='blogs'},
|
||||
'attributes' => [ 'data-value' => '0' ],
|
||||
'count' => $iCountBlogsAll
|
||||
]]}
|
||||
|
||||
{foreach $aBlogCategories as $category}
|
||||
{$oCategory = $category.entity}
|
||||
|
||||
{$items[] = [
|
||||
'text' => ($oCategory->getTitle()),
|
||||
'url' => '#',
|
||||
'attributes' => [ 'data-value' => $oCategory->getId(), 'style' => "margin-left: {$category.level * 20}px;" ],
|
||||
'count' => $oCategory->getCountTargetOfDescendants()
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{component 'nav'
|
||||
name = 'blogs_categories'
|
||||
classes = 'actionbar-item-link'
|
||||
attributes = [ 'id' => 'js-search-ajax-blog-category' ]
|
||||
activeItem = 'all'
|
||||
mods = 'stacked pills'
|
||||
items = $items}
|
||||
{else}
|
||||
{component 'blankslate' text=$aLang.blog.categories.empty}
|
||||
{/if}
|
||||
|
||||
<br>
|
||||
|
||||
{* Тип блога *}
|
||||
<h3>{lang 'blog.blocks.search.type.title'}</h3>
|
||||
|
||||
<div class="ls-field-checkbox-group">
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-type' name='blog_search_type' value='' label='Любой' checked=true}
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-type' name='blog_search_type' value='open' label='Открытый'}
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-type' name='blog_search_type' value='close' label='Закрытый'}
|
||||
</div>
|
||||
|
||||
{* Тип принадлежности блога *}
|
||||
{if $oUserCurrent}
|
||||
<h3>{lang 'blog.blocks.search.relation.title'}</h3>
|
||||
|
||||
<div class="ls-field-checkbox-group">
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-relation' name='blog_search_relation' value='all' label='Все' checked=true}
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-relation' name='blog_search_relation' value='my' label='Мои'}
|
||||
{component 'field' template='radio' inputClasses='js-search-ajax-blog-relation' name='blog_search_relation' value='join' label='Читаю'}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{/capture}
|
||||
|
||||
{component 'block'
|
||||
mods = 'blogs-search'
|
||||
title = {lang 'blog.blocks.search.title'}
|
||||
content = $smarty.capture.block_content}
|
|
@ -0,0 +1,22 @@
|
|||
{**
|
||||
* Блок со списком блогов
|
||||
*}
|
||||
|
||||
{capture 'block_footer'}
|
||||
<a href="{router 'blogs'}">{lang 'synio.all_blogs'}</a>
|
||||
{/capture}
|
||||
|
||||
{component 'block'
|
||||
mods = 'blogs'
|
||||
classes = 'blog-block-blogs js-block-default'
|
||||
title = {lang 'blog.blocks.blogs.title'}
|
||||
titleUrl = {router page='blogs'}
|
||||
footer = $smarty.capture.block_footer
|
||||
tabs = [
|
||||
'classes' => 'js-tabs-block',
|
||||
'tabs' => [
|
||||
[ 'text' => {lang 'blog.blocks.blogs.nav.top'}, 'url' => "{router page='ajax'}blogs/top", 'list' => $sBlogsTop ],
|
||||
[ 'text' => {lang 'blog.blocks.blogs.nav.joined'}, 'url' => "{router page='ajax'}blogs/join", 'is_enabled' => !! $oUserCurrent ],
|
||||
[ 'text' => {lang 'blog.blocks.blogs.nav.self'}, 'url' => "{router page='ajax'}blogs/self", 'is_enabled' => !! $oUserCurrent ]
|
||||
]
|
||||
]}
|
|
@ -0,0 +1,26 @@
|
|||
{**
|
||||
* Блок со списоком блогов
|
||||
* Список блогов
|
||||
*}
|
||||
|
||||
{$items = []}
|
||||
|
||||
{foreach $aBlogs as $blog}
|
||||
{capture 'item_content'}
|
||||
{lang 'blog.users.readers_total'}: <strong>{$blog->getCountUser()}</strong>
|
||||
{/capture}
|
||||
|
||||
{$items[] = [
|
||||
'title' => $blog->getTitle()|escape,
|
||||
'titleUrl' => $blog->getUrlFull(),
|
||||
'mods' => $blog->getUrlFull(),
|
||||
'content' => $smarty.capture.item_content,
|
||||
'image' => [
|
||||
'path' => $blog->getAvatarPath(48),
|
||||
'url' => $blog->getUrlFull(),
|
||||
'alt' => $blog->getTitle()|escape
|
||||
]
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{component 'item' template='group' items=$items}
|
56
application/frontend/skin/synio/components/blog/blog.tpl
Normal file
56
application/frontend/skin/synio/components/blog/blog.tpl
Normal file
|
@ -0,0 +1,56 @@
|
|||
{**
|
||||
* Блог
|
||||
*
|
||||
* @param object $blog Блог
|
||||
* @param object $blogs Список блогов для переноса топиков (для модальника удаления)
|
||||
* @param string $mods Модификаторы
|
||||
* @param string $attributes Дополнительные атрибуты основного блока
|
||||
* @param string $classes Дополнительные классы
|
||||
*}
|
||||
|
||||
{* Название компонента *}
|
||||
{$component = 'blog'}
|
||||
{component_define_params params=[ 'blog', 'blogs', 'mods', 'classes', 'attributes' ]}
|
||||
|
||||
{* Подключаем модальное окно удаления блога если пользователь админ *}
|
||||
{if $oUserCurrent && $oUserCurrent->isAdministrator()}
|
||||
{component 'blog' template='modal.delete' blog=$blog blogs=$blogs}
|
||||
{/if}
|
||||
|
||||
{* Является ли пользователь администратором или управляющим блога *}
|
||||
{$isBlogAdmin = $oUserCurrent && ($oUserCurrent->getId() == $blog->getOwnerId() || $oUserCurrent->isAdministrator() || $blog->getUserIsAdministrator())}
|
||||
|
||||
{* Блог *}
|
||||
<div class="{$component} {cmods name=$component mods=$mods} {$classes}" {cattr list=$attributes} data-id="{$blog->getId()}">
|
||||
<header class="{$component}-header">
|
||||
{* Заголовок *}
|
||||
<h2 class="page-header blog-title">
|
||||
{if $blog->getType() == 'close'}
|
||||
{component 'syn-icon' icon='lock' attributes=[ title => {lang 'blog.private'} ]}
|
||||
{/if}
|
||||
|
||||
{$blog->getTitle()|escape}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
{* Информация о блоге *}
|
||||
<div class="{$component}-content">
|
||||
{* Описание *}
|
||||
<div class="{$component}-description ls-text">
|
||||
{$blog->getDescription()}
|
||||
</div>
|
||||
|
||||
{* Информация *}
|
||||
{$info = [
|
||||
[ 'label' => $aLang.blog.date_created, 'content' => "{date_format date=$blog->getDateAdd() hours_back='12' minutes_back='60' now='60' day='day H:i' format='j F Y'}" ],
|
||||
[ 'label' => $aLang.blog.topics_total, 'content' => $blog->getCountTopic() ],
|
||||
[ 'label' => $aLang.blog.rating_limit, 'content' => $blog->getLimitRatingTopic() ]
|
||||
]}
|
||||
|
||||
{if $blog->category->getCategory()}
|
||||
{$info[] = [ 'label' => "{$aLang.blog.categories.category}:", 'content' => $blog->category->getCategory()->getTitle() ]}
|
||||
{/if}
|
||||
|
||||
{component 'info-list' list=$info}
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"styles": {
|
||||
"blog-list": "css/blog-list.css"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* Блок с кнопкой "Создать блог"
|
||||
*/
|
||||
.ls-block--blog-add .ls-block-content {
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/**
|
||||
* Список блогов
|
||||
*/
|
||||
.ls-block.blog-block-blogs .ls-item {
|
||||
padding: 10px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
.ls-block.blog-block-blogs .ls-item-title {
|
||||
font-size: 14px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.ls-block.blog-block-blogs .ls-item-image {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
.ls-block.ls-block--blog-photo {
|
||||
border: none;
|
||||
padding-bottom: 0;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
.ls-item-group .blog-list-item {
|
||||
padding-right: 70px;
|
||||
}
|
||||
.blog-list-item .ls-item-title {
|
||||
margin-top: -3px;
|
||||
line-height: 24px;
|
||||
font-size: 16px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.blog-list-item .ls-item-title a {
|
||||
text-decoration: underline;
|
||||
color: #275ec2;
|
||||
}
|
||||
.blog-list-item .ls-item-title a:hover {
|
||||
color: #f00;
|
||||
}
|
||||
.blog-list-item .ls-item-title .syn-icon {
|
||||
vertical-align: middle;
|
||||
margin-right: 3px;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
.blog-list-item-category {
|
||||
font-size: 11px;
|
||||
margin-top: -5px;
|
||||
margin-bottom: 7px;
|
||||
}
|
||||
.blog-list-item-category .fa {
|
||||
color: #65aed2;
|
||||
}
|
||||
|
||||
.blog-list-item-users {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
font-size: 11px;
|
||||
color: #5396b7;
|
||||
cursor: help;
|
||||
}
|
||||
.blog-list-item-users .syn-icon {
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
}
|
42
application/frontend/skin/synio/components/blog/css/blog.css
Normal file
42
application/frontend/skin/synio/components/blog/css/blog.css
Normal file
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
* Блог
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
.blog {
|
||||
margin-bottom: 40px;
|
||||
padding: 25px;
|
||||
background: #f8fbfe;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* Хидер */
|
||||
.blog-header {
|
||||
position: relative;
|
||||
padding: 0 0 15px 0;
|
||||
}
|
||||
|
||||
.blog-title {
|
||||
margin-bottom: 7px;
|
||||
}
|
||||
.blog-title .syn-icon {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
vertical-align: middle;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* Контент */
|
||||
.blog-description {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.blog-content .ls-info-list-item-content,
|
||||
.blog-content .ls-info-list-item-label-text {
|
||||
background: #f8fbfe;
|
||||
}
|
||||
.blog-content .ls-info-list-item-label {
|
||||
width: 200px;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{**
|
||||
* Пользователь
|
||||
*}
|
||||
|
||||
{extends 'component@user-list-add.item'}
|
||||
|
||||
{block 'user_list_add_item_actions' prepend}
|
||||
{* Кнопка "Повторно отправить инвайт" *}
|
||||
<li class="js-blog-invite-user-repeat" title="{$aLang.blog.invite.repeat}" data-user-id="{$userId}">
|
||||
{component 'icon' icon='repeat'}
|
||||
</li>
|
||||
{/block}
|
|
@ -0,0 +1,9 @@
|
|||
{**
|
||||
* Список пользователей
|
||||
*}
|
||||
|
||||
{extends 'component@user-list-add.list'}
|
||||
|
||||
{block 'user_list_add_item'}
|
||||
{component 'blog' template='invite-item' user=$user showActions=true}
|
||||
{/block}
|
|
@ -0,0 +1,15 @@
|
|||
{**
|
||||
* Приглашение пользователей в закрытый блог
|
||||
*}
|
||||
|
||||
{extends 'component@user-list-add.user-list-add'}
|
||||
|
||||
{block 'user_list_add_list'}
|
||||
{component 'blog' template='invite-list'
|
||||
hideableEmptyAlert = true
|
||||
users = $users
|
||||
showActions = true
|
||||
show = !! $users
|
||||
classes = "js-$component-users"
|
||||
itemClasses = "js-$component-user"}
|
||||
{/block}
|
|
@ -0,0 +1,48 @@
|
|||
{**
|
||||
* Блог в списке блогов
|
||||
*
|
||||
* @param object $blog
|
||||
*}
|
||||
|
||||
{$component = 'blog-list-item'}
|
||||
{component_define_params params=[ 'blog' ]}
|
||||
|
||||
{* Заголовок *}
|
||||
{capture 'title'}
|
||||
{if $blog->getType() == 'close'}
|
||||
{component 'syn-icon' icon='lock' attributes=[ title => {lang 'blog.private'} ]}
|
||||
{/if}
|
||||
|
||||
<a href="{$blog->getUrlFull()}">{$blog->getTitle()|escape}</a>
|
||||
{/capture}
|
||||
|
||||
{* Описание *}
|
||||
{capture 'content'}
|
||||
{* Рейтинг *}
|
||||
<div class="{$component}-users" title="{lang 'blog.users.readers_total'}">
|
||||
{component 'syn-icon' icon='user'} {$blog->getCountUser()}
|
||||
</div>
|
||||
|
||||
{$category = $blog->category->getCategory()}
|
||||
|
||||
{if $category}
|
||||
<div class="{$component}-category">
|
||||
{component 'icon' icon='folder'}
|
||||
{$category->getTitle()}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="ls-item-description">
|
||||
{$blog->getDescription()|strip_tags|truncate:170}
|
||||
</div>
|
||||
{/capture}
|
||||
|
||||
{component 'item'
|
||||
classes='blog-list-item'
|
||||
title=$smarty.capture.title
|
||||
content=$smarty.capture.content
|
||||
image=[
|
||||
'url' => $blog->getUrlFull(),
|
||||
'path' => $blog->getAvatarPath(64),
|
||||
'alt' => $blog->getTitle()|escape
|
||||
]}
|
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Группированный список
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
.ls-item-group {
|
||||
|
||||
}
|
||||
.ls-item-group .ls-item {
|
||||
padding: 13px 15px 13px 0;
|
||||
border-top: 1px solid #f1f3f5;
|
||||
}
|
||||
.ls-item-group .ls-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
75
application/frontend/skin/synio/components/item/css/item.css
Normal file
75
application/frontend/skin/synio/components/item/css/item.css
Normal file
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* Item
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
|
||||
.ls-item {
|
||||
position: relative;
|
||||
padding: 13px 15px 13px 0;
|
||||
border: none;
|
||||
}
|
||||
.ls-item:hover {
|
||||
background: #f5fdff;
|
||||
}
|
||||
.ls-item:hover .ls-info-list-item-content,
|
||||
.ls-item:hover .ls-info-list-item-label-text {
|
||||
background: #f8fbfe;
|
||||
}
|
||||
|
||||
/* */
|
||||
.ls-item > * {
|
||||
vertical-align: top;
|
||||
display: table-cell;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.ls-item > *:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/* Делаем так, чтобы блок body занимал максимальное */
|
||||
/* пространство по ширине */
|
||||
.ls-item-body {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ls-item-image {
|
||||
vertical-align: top;
|
||||
}
|
||||
.ls-item-title {
|
||||
font-size: 24px;
|
||||
line-height: 1.1em;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.ls-item-description {
|
||||
font-size: 11px;
|
||||
line-height: 16px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ls-item-description:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ls-item-actions {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 0;
|
||||
width: 150px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/**
|
||||
* @modifier has-image
|
||||
*/
|
||||
.ls-item--has-image {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @modifier image-rounded
|
||||
*/
|
||||
.ls-item--image-rounded .ls-item-image {
|
||||
border-radius: 50%;
|
||||
}
|
|
@ -43,3 +43,13 @@
|
|||
.syn-icon-trash:hover {
|
||||
background-image: url(icons/trash-hover.png);
|
||||
}
|
||||
.syn-icon-lock {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background-image: url(icons/lock.png);
|
||||
}
|
||||
.syn-icon-user {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background-image: url(icons/user.png);
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,80 @@
|
|||
/**
|
||||
* Таблицы
|
||||
*
|
||||
* @license GNU General Public License, version 2
|
||||
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
||||
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
||||
*/
|
||||
|
||||
caption {
|
||||
text-align: left;
|
||||
}
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
.ls-table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.ls-table:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ls-table td, .ls-table th {
|
||||
padding: 15px;
|
||||
vertical-align: top;
|
||||
line-height: 18px;
|
||||
border-top: 1px solid #f1f3f5;
|
||||
}
|
||||
.ls-table td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ls-table tr:hover td {
|
||||
background: #f5fdff;
|
||||
}
|
||||
.ls-table th {
|
||||
vertical-align: bottom;
|
||||
border-bottom: 1px solid #c3d4dc;
|
||||
font-weight: normal;
|
||||
padding: 10px;
|
||||
}
|
||||
.ls-table caption + thead th,
|
||||
.ls-table colgroup + thead th,
|
||||
.ls-table thead:first-child tr:first-child th,
|
||||
.ls-table thead:first-child tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.ls-table tr.active td {
|
||||
background: #F6F6FA;
|
||||
}
|
||||
.ls-table .ls-table-sort-asc:after {
|
||||
content: "▲";
|
||||
}
|
||||
.ls-table .ls-table-sort-desc:after {
|
||||
content: "▼";
|
||||
}
|
||||
|
||||
/**
|
||||
* Condensed
|
||||
*/
|
||||
.ls-table--condensed td,
|
||||
.ls-table--condensed th {
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Striped
|
||||
*/
|
||||
.ls-table--striped tbody tr:nth-child(odd) td {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hover
|
||||
*/
|
||||
.ls-table--hover tbody tr:hover td {
|
||||
background: #f5fdff;
|
||||
}
|
|
@ -9,6 +9,10 @@
|
|||
.user-list-small:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.user-list-small-title {
|
||||
font-size: 16px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.user-list-small-item {
|
||||
background: #f8fbfe;
|
||||
padding: 10px 55px 10px 10px;
|
||||
|
|
|
@ -1,15 +1,3 @@
|
|||
.user-list.ls-item-group {
|
||||
border: none;
|
||||
}
|
||||
.user-list .ls-item {
|
||||
padding: 13px 15px 13px 0;
|
||||
border: none;
|
||||
border-top: 1px solid #f1f3f5;
|
||||
}
|
||||
.user-list .ls-item:hover {
|
||||
background: #f5fdff;
|
||||
}
|
||||
|
||||
.user-list-item-username {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
{* Статус *}
|
||||
<div class="{$component}-status {if $isOnline}{$component}-status--online{/if}">
|
||||
{if $isOnline && $smarty.now - strtotime($session->getDateLast()) < 60*5}
|
||||
{if $isOnline}
|
||||
{$aLang.user.status.online}
|
||||
{else}
|
||||
{$date = {date_format date=$session->getDateLast() hours_back="12" minutes_back="60" day_back="8" now="60*5" day="day H:i" format="j F в G:i"}|lower}
|
||||
|
|
|
@ -5,7 +5,8 @@ return [
|
|||
'guest' => 'Гость',
|
||||
'site_pages' => 'Разделы',
|
||||
'drafts' => '%%count%% черновик;%%count%% черновика;%%count%% черновиков',
|
||||
'user_about_empty' => 'Пока ничего не известно...'
|
||||
'user_about_empty' => 'Пока ничего не известно...',
|
||||
'all_blogs' => 'Все блоги'
|
||||
],
|
||||
'activity' => [
|
||||
'block_recent' => [
|
||||
|
|
Loading…
Reference in a new issue