mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-26 03:30:48 +03:00
Новая система навигации по контенту для шаблонов
Навигация по контенту вынесена в переменую $layoutNav, приемущества этого подхода: * Код отвечающий за оформление навигации по контенту находится в одном месте, что упрощает его модификацию * Плагины смогут добавлять свои страницы с навигацией которая внешне не отличается от навигации шаблона, что уменьшает объем работы при адаптации плагина под шаблон Подробней про навигацию можно прочитать в документации - https://github.com/livestreet/livestreet/wiki/%D0%9D%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D1%8F
This commit is contained in:
parent
d95c3df9e5
commit
05bbd5d232
|
@ -6,7 +6,6 @@
|
|||
},
|
||||
"templates": {
|
||||
"ajax": "sort.ajax.tpl",
|
||||
"timespan": "sort.timespan.tpl",
|
||||
"sort": "sort.ajax.tpl"
|
||||
},
|
||||
"styles": {
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
{**
|
||||
* Выпадающее меню выбора временного периода (за 24 часа, за месяц и т.д.)
|
||||
*}
|
||||
|
||||
{component_define_params params=[ 'periodSelectCurrent' ]}
|
||||
|
||||
{if $periodSelectCurrent}
|
||||
{component 'dropdown'
|
||||
classes = 'js-dropdown-default'
|
||||
name = 'sort_by_date'
|
||||
text = {lang "blog.menu.top_period_$periodSelectCurrent"}
|
||||
menu = [
|
||||
[ 'name' => '1', 'url' => "{$periodSelectRoot}?period=1", 'text' => {lang 'blog.menu.top_period_1'} ],
|
||||
[ 'name' => '7', 'url' => "{$periodSelectRoot}?period=7", 'text' => {lang 'blog.menu.top_period_7'} ],
|
||||
[ 'name' => '30', 'url' => "{$periodSelectRoot}?period=30", 'text' => {lang 'blog.menu.top_period_30'} ],
|
||||
[ 'name' => 'all', 'url' => "{$periodSelectRoot}?period=all", 'text' => {lang 'blog.menu.top_period_all'} ]
|
||||
]
|
||||
params = $params}
|
||||
{/if}
|
|
@ -3,17 +3,9 @@
|
|||
*
|
||||
* @param array $blogCategories Список категорий блогов
|
||||
* @param object $blogEdit Блог, передается в случае если блог редактируется
|
||||
*
|
||||
* TODO: Вынести 'rangelength' в конфиг
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{if $sEvent == 'edit'}
|
||||
{$sNav = 'blog.edit'}
|
||||
{/if}
|
||||
{/block}
|
||||
{extends 'layouts/layout.blog.edit.tpl'}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{if $sEvent == 'add'}
|
||||
|
|
|
@ -6,11 +6,7 @@
|
|||
* @param array $blogUsersInvited Список приглашенных пользователей, передается в случае если блог закрытый
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'blog.edit'}
|
||||
{/block}
|
||||
{extends 'layouts/layout.blog.edit.tpl'}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{$aLang.blog.admin.title}: <a href="{$blogEdit->getUrlFull()}">{$blogEdit->getTitle()|escape}</a>
|
||||
|
|
|
@ -15,11 +15,7 @@
|
|||
* @param integer $countBlogAdministrators Кол-во администраторов
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'topics.sub'}
|
||||
{/block}
|
||||
{extends 'layouts/layout.topics.tpl'}
|
||||
|
||||
{block 'layout_content_header'}
|
||||
{component 'blog' blog=$blog blogs=$blogs}
|
||||
|
@ -34,7 +30,5 @@
|
|||
{* Список топиков *}
|
||||
{if $isPrivateBlog}
|
||||
{component 'alert' text=$aLang.blog.alerts.private mods='error'}
|
||||
{else}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{/if}
|
||||
{/block}
|
|
@ -7,12 +7,4 @@
|
|||
* @param string $periodSelectRoot
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'topics'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{/block}
|
||||
{extends 'layouts/layout.topics.tpl'}
|
|
@ -7,22 +7,8 @@
|
|||
* @parama integer $blogId
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{if $sEvent == 'add'}
|
||||
{$sNav = 'create'}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{if $sEvent == 'add'}
|
||||
{$aLang.topic.add.title.add}
|
||||
{else}
|
||||
{$aLang.topic.add.title.edit}
|
||||
{/if}
|
||||
{/block}
|
||||
{extends 'layouts/layout.content.form.tpl'}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic' template='add-type' topic=$topicEdit type=$topicType blogs=$blogsAllow blogId=$blogId skipBlogs=$skipBlogs}
|
||||
{component 'topic.add-type' topic=$topicEdit type=$topicType blogs=$blogsAllow blogId=$blogId skipBlogs=$skipBlogs}
|
||||
{/block}
|
|
@ -5,16 +5,12 @@
|
|||
* @parama array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'create'}
|
||||
{/block}
|
||||
{extends 'layouts/layout.content.form.tpl'}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{$aLang.topic.add.title.add}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{component 'topic.list' topics=$topics paging=$paging}
|
||||
{/block}
|
|
@ -5,12 +5,4 @@
|
|||
* @parama array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'topics'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{/block}
|
||||
{extends 'layouts/layout.index.tpl'}
|
|
@ -5,13 +5,12 @@
|
|||
* @param array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.user.tpl'}
|
||||
{extends 'layouts/layout.user.created.tpl'}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
{lang name='user.publications.title'}
|
||||
{lang 'user.publications.title'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{include 'navs/nav.user.created.tpl'}
|
||||
{component 'comment' template='list' comments=$comments paging=$paging classes='js-topic-comments-list'}
|
||||
{component 'comment.list' comments=$comments paging=$paging classes='js-topic-comments-list'}
|
||||
{/block}
|
|
@ -5,13 +5,12 @@
|
|||
* @param array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.user.tpl'}
|
||||
{extends 'layouts/layout.user.created.tpl'}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
{lang 'user.publications.title'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{include 'navs/nav.user.created.tpl'}
|
||||
{component 'user' template='list' users=$notesUsers pagination=$paging}
|
||||
{component 'user.list' users=$notesUsers pagination=$paging}
|
||||
{/block}
|
|
@ -5,13 +5,12 @@
|
|||
* @param array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.user.tpl'}
|
||||
{extends 'layouts/layout.user.created.tpl'}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
{lang name='user.publications.title'}
|
||||
{lang 'user.publications.title'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{include 'navs/nav.user.created.tpl'}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{component 'topic.list' topics=$topics paging=$paging}
|
||||
{/block}
|
|
@ -5,13 +5,12 @@
|
|||
* @param array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.user.tpl'}
|
||||
{extends 'layouts/layout.user.favourite.tpl'}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
{lang name='user.favourites.title'}
|
||||
{lang 'user.favourites.title'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{include 'navs/nav.user.favourite.tpl'}
|
||||
{component 'comment' template='list' comments=$comments paging=$paging classes='js-topic-comments-list'}
|
||||
{component 'comment.list' comments=$comments paging=$paging classes='js-topic-comments-list'}
|
||||
{/block}
|
||||
|
|
|
@ -6,15 +6,13 @@
|
|||
* @param array $activeFavouriteTag
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.user.tpl'}
|
||||
{extends 'layouts/layout.user.favourite.tpl'}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
{lang name='user.favourites.title'}
|
||||
{lang 'user.favourites.title'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{include 'navs/nav.user.favourite.tpl'}
|
||||
|
||||
{* Блок с тегами избранного *}
|
||||
{if $oUserCurrent && $oUserCurrent->getId() == $oUserProfile->getId()}
|
||||
{insert name='block' block='tagsPersonalTopic' params=[
|
||||
|
@ -23,5 +21,5 @@
|
|||
]}
|
||||
{/if}
|
||||
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{component 'topic.list' topics=$topics paging=$paging}
|
||||
{/block}
|
|
@ -14,10 +14,22 @@
|
|||
{$aLang.search.search}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'search' template='main' searchType=$searchType}
|
||||
{include 'navs/nav.search.tpl'}
|
||||
{block 'layout_content_header' prepend}
|
||||
{component 'search.main' searchType=$searchType}
|
||||
{/block}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$layoutNav = [
|
||||
name => 'search',
|
||||
activeItem => $searchType,
|
||||
items => [
|
||||
[ 'name' => 'topics', 'url' => "{router page='search/topics'}?q={$_aRequest.q}", 'text' => $aLang.search.result.topics, 'count' => $typeCounts.topics ],
|
||||
[ 'name' => 'comments', 'url' => "{router page='search/comments'}?q={$_aRequest.q}", 'text' => $aLang.search.result.comments, 'count' => $typeCounts.comments ]
|
||||
]
|
||||
]}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{if $resultItems}
|
||||
{if $searchType == 'topics'}
|
||||
{component 'topic' template='list' topics=$resultItems paging=$paging}
|
||||
|
|
|
@ -5,15 +5,7 @@
|
|||
* @param integer $activityEventsAllCount
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'activity'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{$aLang.activity.title}
|
||||
{/block}
|
||||
{extends 'layouts/layout.activity.tpl'}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'activity' events=$activityEvents count=$activityEventsAllCount classes='js-activity--all'}
|
||||
|
|
|
@ -5,15 +5,7 @@
|
|||
* @param integer $activityEventsAllCount
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'activity'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{$aLang.activity.title}
|
||||
{/block}
|
||||
{extends 'layouts/layout.activity.tpl'}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'activity' events=$activityEvents count=$activityEventsAllCount classes='js-activity--personal'}
|
||||
|
|
|
@ -8,5 +8,5 @@
|
|||
{extends 'layouts/layout.user.messages.tpl'}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'talk' template='list.tpl' talks=$talks paging=$paging}
|
||||
{component 'talk.list' talks=$talks paging=$paging}
|
||||
{/block}
|
|
@ -5,12 +5,4 @@
|
|||
* @param array $paging
|
||||
*}
|
||||
|
||||
{extends 'layouts/layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'topics'}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic' template='list' topics=$topics paging=$paging}
|
||||
{/block}
|
||||
{extends 'layouts/layout.index.tpl'}
|
|
@ -49,6 +49,19 @@ jQuery(document).ready(function($){
|
|||
});
|
||||
|
||||
|
||||
/**
|
||||
* Навигация по контенту
|
||||
*/
|
||||
$('.ls-nav--root.ls-nav--pills > .ls-nav-item--has-children').lsDropdown({
|
||||
selectors: {
|
||||
toggle: '> .ls-nav-item-link',
|
||||
text: '> .ls-nav-item-link > .ls-nav-item-text',
|
||||
menu: '> .ls-nav--sub'
|
||||
},
|
||||
selectable: true
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Подтверждение удаления
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
{**
|
||||
* Активность
|
||||
*}
|
||||
|
||||
{extends './layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$layoutNav = [[
|
||||
hook => 'activity',
|
||||
activeItem => $sMenuItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'user', 'url' => "{router page='stream'}personal/", 'text' => $aLang.activity.nav.personal, 'is_enabled' => !! $oUserCurrent ],
|
||||
[ 'name' => 'all', 'url' => "{router page='stream'}all/", 'text' => $aLang.activity.nav.all ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{$aLang.activity.title}
|
||||
{/block}
|
|
@ -1,5 +1,5 @@
|
|||
{**
|
||||
* Основной лэйаут
|
||||
* Основной лэйаут, который наследуют все остальные лэйауты
|
||||
*
|
||||
* @param boolean $layoutShowSidebar Показывать сайдбар или нет, сайдбар не будет выводится если он не содержит блоков
|
||||
* @param string $layoutNavContent Название навигации
|
||||
|
@ -7,7 +7,7 @@
|
|||
* @param string $layoutShowSystemMessages Показывать системные уведомления или нет
|
||||
*}
|
||||
|
||||
{extends 'Component@layout.layout'}
|
||||
{extends 'component@layout.layout'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$layoutShowSidebar = $layoutShowSidebar|default:true}
|
||||
|
@ -78,7 +78,12 @@
|
|||
* Основная навигация
|
||||
*}
|
||||
<nav class="ls-grid-row layout-nav">
|
||||
{include 'navs/nav.main.tpl'}
|
||||
{component 'nav' hook='main' activeItem=$sMenuHeadItemSelect mods='main' items=[
|
||||
[ 'text' => $aLang.topic.topics, 'url' => {router page='/'}, 'name' => 'blog' ],
|
||||
[ 'text' => $aLang.blog.blogs, 'url' => {router page='blogs'}, 'name' => 'blogs' ],
|
||||
[ 'text' => $aLang.user.users, 'url' => {router page='people'}, 'name' => 'people' ],
|
||||
[ 'text' => $aLang.activity.title, 'url' => {router page='stream'}, 'name' => 'stream' ]
|
||||
]}
|
||||
</nav>
|
||||
|
||||
|
||||
|
@ -106,17 +111,26 @@
|
|||
|
||||
{block 'layout_content_header'}
|
||||
{* Навигация *}
|
||||
{if $sNav}
|
||||
{if in_array($sNav, $aMenuContainers)}
|
||||
{$_navContent = $aMenuFetch.$sNav}
|
||||
{if $layoutNav}
|
||||
{$_layoutNavContent = ""}
|
||||
|
||||
{if is_array($layoutNav)}
|
||||
{foreach $layoutNav as $layoutNavItem}
|
||||
{if is_array($layoutNavItem)}
|
||||
{component 'nav' mods='pills' params=$layoutNavItem assign=_layoutNavItemContent}
|
||||
{$_layoutNavContent = "$_layoutNavContent $_layoutNavItemContent"}
|
||||
{else}
|
||||
{$_layoutNavContent = "$_layoutNavContent $layoutNavItem"}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{include "{$sNavPath}navs/nav.$sNav.tpl" assign=_navContent}
|
||||
{$_layoutNavContent = $layoutNav}
|
||||
{/if}
|
||||
|
||||
{* Проверяем наличие вывода на случай если меню с одним пунктом автоматом скрывается *}
|
||||
{if $_navContent|strip:''}
|
||||
{if $_layoutNavContent|strip:''}
|
||||
<div class="ls-nav-group">
|
||||
{$_navContent}
|
||||
{$_layoutNavContent}
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
{**
|
||||
* Форма ред-ия блога
|
||||
*}
|
||||
|
||||
{extends './layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{if $sEvent != 'add'}
|
||||
{$layoutNav = [[
|
||||
name => 'blog_edit',
|
||||
activeItem => $sMenuItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'profile', 'url' => "{router page='blog'}edit/{$blogEdit->getId()}/", 'text' => $aLang.blog.admin.nav.profile ],
|
||||
[ 'name' => 'admin', 'url' => "{router page='blog'}admin/{$blogEdit->getId()}/", 'text' => $aLang.blog.admin.nav.users ]
|
||||
]
|
||||
]]}
|
||||
{/if}
|
||||
{/block}
|
|
@ -0,0 +1,40 @@
|
|||
{**
|
||||
* Страница добавления контента
|
||||
*}
|
||||
|
||||
{extends './layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{if $sEvent != 'edit'}
|
||||
{$_items = []}
|
||||
|
||||
{* Формируем список пунктов *}
|
||||
{$_topicTypes = $LS->Topic_GetTopicTypes()}
|
||||
|
||||
{foreach $_topicTypes as $type}
|
||||
{$_items[] = [ 'name' => $type->getCode(), 'url' => $type->getUrlForAdd(), 'text' => $type->getName() ]}
|
||||
{/foreach}
|
||||
|
||||
{* Пункт "Черновики" *}
|
||||
{$_items[] = [
|
||||
'name' => 'drafts',
|
||||
'url' => "{router page='content'}drafts/",
|
||||
'text' => $aLang.topic.drafts,
|
||||
'count' => $iUserCurrentCountTopicDraft
|
||||
]}
|
||||
|
||||
{$layoutNav = [[
|
||||
name => 'content_form',
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => $_items
|
||||
]]}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block 'layout_page_title'}
|
||||
{if $sEvent == 'add'}
|
||||
{$aLang.topic.add.title.add}
|
||||
{else}
|
||||
{$aLang.topic.add.title.edit}
|
||||
{/if}
|
||||
{/block}
|
18
application/frontend/skin/developer/layouts/layout.index.tpl
Normal file
18
application/frontend/skin/developer/layouts/layout.index.tpl
Normal file
|
@ -0,0 +1,18 @@
|
|||
{**
|
||||
* Главная страница
|
||||
*}
|
||||
|
||||
{extends './layout.topics.tpl'}
|
||||
|
||||
{block 'layout_options' prepend}
|
||||
{* Все / Лента *}
|
||||
{$layoutNav = [[
|
||||
name => 'topics',
|
||||
activeItem => $sMenuItemSelect,
|
||||
showSingle => false,
|
||||
items => [
|
||||
[ 'name' => 'index', 'url' => {router page='/'}, 'text' => {lang name='blog.menu.all'}, 'count' => $iCountTopicsNew ],
|
||||
[ 'name' => 'feed', 'url' => {router page='feed'}, 'text' => $aLang.feed.title, 'is_enabled' => !! $oUserCurrent ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
|
@ -0,0 +1,52 @@
|
|||
{**
|
||||
* Список топиков
|
||||
*}
|
||||
|
||||
{extends './layout.base.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{* Меню фильтрации топиков *}
|
||||
{if $sNavTopicsSubUrl}
|
||||
{if ! isset($layoutNav)}
|
||||
{$layoutNav = []}
|
||||
{/if}
|
||||
|
||||
{$layoutNav[] = [
|
||||
name => 'topics_sub',
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'good', 'url' => $sNavTopicsSubUrl, 'text' => {lang name='blog.menu.all_good'} ],
|
||||
[ 'name' => 'new', 'url' => "{$sNavTopicsSubUrl}newall/", 'text' => {lang name='blog.menu.all_new'} ],
|
||||
[ 'name' => 'discussed', 'url' => "{$sNavTopicsSubUrl}discussed/", 'text' => {lang name='blog.menu.all_discussed'} ],
|
||||
[ 'name' => 'top', 'url' => "{$sNavTopicsSubUrl}top/", 'text' => {lang name='blog.menu.all_top'} ]
|
||||
]
|
||||
]}
|
||||
|
||||
{if $periodSelectCurrent}
|
||||
{* Фильтр по времени *}
|
||||
{$layoutNav[] = [
|
||||
name => 'topics_sub_timespan',
|
||||
activeItem => $periodSelectCurrent,
|
||||
items => [
|
||||
[
|
||||
'name' => 'good',
|
||||
'text' => {lang name='blog.menu.all_good'},
|
||||
'menu' => [
|
||||
activeItem => $periodSelectCurrent,
|
||||
items => [
|
||||
[ 'name' => '1', 'url' => "{$periodSelectRoot}?period=1", 'text' => {lang 'blog.menu.top_period_1'} ],
|
||||
[ 'name' => '7', 'url' => "{$periodSelectRoot}?period=7", 'text' => {lang 'blog.menu.top_period_7'} ],
|
||||
[ 'name' => '30', 'url' => "{$periodSelectRoot}?period=30", 'text' => {lang 'blog.menu.top_period_30'} ],
|
||||
[ 'name' => 'all', 'url' => "{$periodSelectRoot}?period=all", 'text' => {lang 'blog.menu.top_period_all'} ]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]}
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block 'layout_content'}
|
||||
{component 'topic.list' topics=$topics paging=$paging}
|
||||
{/block}
|
|
@ -0,0 +1,18 @@
|
|||
{**
|
||||
* Публикации пользователя
|
||||
*}
|
||||
|
||||
{extends './layout.user.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$layoutNav = [[
|
||||
name => 'profile_created',
|
||||
hookParams => [ 'oUserProfile' => $oUserProfile ],
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'topics', 'url' => "{$oUserProfile->getUserWebPath()}created/topics/", 'text' => {lang name='user.publications.nav.topics'}, 'count' => $iCountTopicUser ],
|
||||
[ 'name' => 'comments', 'url' => "{$oUserProfile->getUserWebPath()}created/comments/", 'text' => {lang name='user.publications.nav.comments'}, 'count' => $iCountCommentUser ],
|
||||
[ 'name' => 'notes', 'url' => "{$oUserProfile->getUserWebPath()}created/notes/", 'text' => {lang name='user.publications.nav.notes'}, 'count' => $iCountNoteUser, 'is_enabled' => $oUserCurrent && $oUserCurrent->getId() == $oUserProfile->getId() ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
|
@ -0,0 +1,17 @@
|
|||
{**
|
||||
* Избранное пользователя
|
||||
*}
|
||||
|
||||
{extends './layout.user.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$layoutNav = [[
|
||||
name => 'profile_created',
|
||||
hookParams => [ 'oUserProfile' => $oUserProfile ],
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'topics', 'text' => {lang name='user.favourites.nav.topics'}, 'url' => "{$oUserProfile->getUserWebPath()}favourites/topics/", 'count' => $iCountTopicFavourite ],
|
||||
[ 'name' => 'comments', 'text' => {lang name='user.favourites.nav.comments'}, 'url' => "{$oUserProfile->getUserWebPath()}favourites/comments/", 'count' => $iCountCommentFavourite ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
|
@ -5,7 +5,17 @@
|
|||
{extends './layout.user.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'messages'}
|
||||
{$layoutNav = [[
|
||||
name => 'talk',
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => [
|
||||
[ 'name' => 'inbox', 'url' => "{router page='talk'}", 'text' => $aLang.talk.nav.inbox ],
|
||||
[ 'name' => 'new', 'url' => "{router page='talk'}inbox/new/", 'text' => $aLang.talk.nav.new, 'count' => $iUserCurrentCountTalkNew, 'is_enabled' => $iUserCurrentCountTalkNew ],
|
||||
[ 'name' => 'add', 'url' => "{router page='talk'}add/", 'text' => $aLang.talk.nav.add ],
|
||||
[ 'name' => 'favourites', 'url' => "{router page='talk'}favourites/", 'text' => $aLang.talk.nav.favourites, 'count' => $iCountTalkFavourite ],
|
||||
[ 'name' => 'blacklist', 'url' => "{router page='talk'}blacklist/", 'text' => $aLang.talk.nav.blacklist ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
|
|
|
@ -5,7 +5,16 @@
|
|||
{extends './layout.user.tpl'}
|
||||
|
||||
{block 'layout_options' append}
|
||||
{$sNav = 'settings'}
|
||||
{$layoutNav = [[
|
||||
name => 'settings',
|
||||
activeItem => $sMenuSubItemSelect,
|
||||
items => [
|
||||
[ 'url' => "{router page='settings'}profile/", 'text' => {lang name='user.settings.nav.profile'}, 'name' => 'profile' ],
|
||||
[ 'url' => "{router page='settings'}account/", 'text' => {lang name='user.settings.nav.account'}, 'name' => 'account' ],
|
||||
[ 'url' => "{router page='settings'}tuning/", 'text' => {lang name='user.settings.nav.tuning'}, 'name' => 'tuning' ],
|
||||
[ 'url' => "{router page='settings'}invite/", 'text' => {lang name='user.settings.nav.invites'}, 'name' => 'invite' ]
|
||||
]
|
||||
]]}
|
||||
{/block}
|
||||
|
||||
{block 'layout_user_page_title'}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
{**
|
||||
* Навигация на странице активности
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'activity'
|
||||
activeItem = $sMenuItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'user', 'url' => "{router page='stream'}personal/", 'text' => $aLang.activity.nav.personal, 'is_enabled' => !! $oUserCurrent ],
|
||||
[ 'name' => 'all', 'url' => "{router page='stream'}all/", 'text' => $aLang.activity.nav.all ]
|
||||
]}
|
|
@ -1,12 +0,0 @@
|
|||
{**
|
||||
* Навгиация редактирования блога
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'blog_edit'
|
||||
activeItem = $sMenuItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'profile', 'url' => "{router page='blog'}edit/{$blogEdit->getId()}/", 'text' => $aLang.blog.admin.nav.profile ],
|
||||
[ 'name' => 'admin', 'url' => "{router page='blog'}admin/{$blogEdit->getId()}/", 'text' => $aLang.blog.admin.nav.users ]
|
||||
]}
|
|
@ -1,26 +0,0 @@
|
|||
{**
|
||||
* Навгиация создания топика
|
||||
*}
|
||||
|
||||
{$items = []}
|
||||
|
||||
{* Формируем список пунктов *}
|
||||
{$topicTypes = $LS->Topic_GetTopicTypes()}
|
||||
|
||||
{foreach $topicTypes as $type}
|
||||
{$items[] = [ 'name' => $type->getCode(), 'url' => $type->getUrlForAdd(), 'text' => $type->getName() ]}
|
||||
{/foreach}
|
||||
|
||||
{* Пункт "Черновики" *}
|
||||
{$items[] = [
|
||||
'name' => 'drafts',
|
||||
'url' => "{router page='content'}drafts/",
|
||||
'text' => $aLang.topic.drafts,
|
||||
'count' => $iUserCurrentCountTopicDraft
|
||||
]}
|
||||
|
||||
{component 'nav'
|
||||
name = 'create'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
items = $items}
|
|
@ -1,6 +0,0 @@
|
|||
{component 'nav' name='main' activeItem=$sMenuHeadItemSelect mods='main' items=[
|
||||
[ 'text' => $aLang.topic.topics, 'url' => {router page='/'}, 'name' => 'blog' ],
|
||||
[ 'text' => $aLang.blog.blogs, 'url' => {router page='blogs'}, 'name' => 'blogs' ],
|
||||
[ 'text' => $aLang.user.users, 'url' => {router page='people'}, 'name' => 'people' ],
|
||||
[ 'text' => $aLang.activity.title, 'url' => {router page='stream'}, 'name' => 'stream' ]
|
||||
]}
|
|
@ -1,15 +0,0 @@
|
|||
{**
|
||||
* Навигация на странице личных сообщений
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'talk'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'inbox', 'url' => "{router page='talk'}", 'text' => $aLang.talk.nav.inbox ],
|
||||
[ 'name' => 'new', 'url' => "{router page='talk'}inbox/new/", 'text' => $aLang.talk.nav.new, 'count' => $iUserCurrentCountTalkNew, 'is_enabled' => $iUserCurrentCountTalkNew ],
|
||||
[ 'name' => 'add', 'url' => "{router page='talk'}add/", 'text' => $aLang.talk.nav.add ],
|
||||
[ 'name' => 'favourites', 'url' => "{router page='talk'}favourites/", 'text' => $aLang.talk.nav.favourites, 'count' => $iCountTalkFavourite ],
|
||||
[ 'name' => 'blacklist', 'url' => "{router page='talk'}blacklist/", 'text' => $aLang.talk.nav.blacklist ]
|
||||
]}
|
|
@ -1,12 +0,0 @@
|
|||
{**
|
||||
* Навигация по результатам поиска
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'search'
|
||||
activeItem = $searchType
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'topics', 'url' => "{router page='search/topics'}?q={$_aRequest.q}", 'text' => $aLang.search.result.topics, 'count' => $typeCounts.topics ],
|
||||
[ 'name' => 'comments', 'url' => "{router page='search/comments'}?q={$_aRequest.q}", 'text' => $aLang.search.result.comments, 'count' => $typeCounts.comments ]
|
||||
]}
|
|
@ -1,14 +0,0 @@
|
|||
{**
|
||||
* Навигация на странице настроек
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'settings'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'url' => "{router page='settings'}profile/", 'text' => {lang name='user.settings.nav.profile'}, 'name' => 'profile' ],
|
||||
[ 'url' => "{router page='settings'}account/", 'text' => {lang name='user.settings.nav.account'}, 'name' => 'account' ],
|
||||
[ 'url' => "{router page='settings'}tuning/", 'text' => {lang name='user.settings.nav.tuning'}, 'name' => 'tuning' ],
|
||||
[ 'url' => "{router page='settings'}invite/", 'text' => {lang name='user.settings.nav.invites'}, 'name' => 'invite' ]
|
||||
]}
|
|
@ -1,21 +0,0 @@
|
|||
{**
|
||||
* Саб-навигация по топикам (Интересные, новые и т.д.)
|
||||
*}
|
||||
|
||||
{if $sNavTopicsSubUrl}
|
||||
{component 'nav'
|
||||
name = 'topics_sub'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'good', 'url' => $sNavTopicsSubUrl, 'text' => {lang name='blog.menu.all_good'} ],
|
||||
[ 'name' => 'new', 'url' => "{$sNavTopicsSubUrl}newall/", 'text' => {lang name='blog.menu.all_new'}, 'title' => {lang name='blog.menu.top_period_all'}, 'count' => $iCountTopicsSubNew ],
|
||||
[ 'name' => 'new', 'url' => "{$sNavTopicsSubUrl}new/", 'text' => "+$iCountTopicsSubNew", 'title' => {lang name='blog.menu.top_period_1'}, 'is_enabled' => $iCountTopicsSubNew ],
|
||||
[ 'name' => 'discussed', 'url' => "{$sNavTopicsSubUrl}discussed/", 'text' => {lang name='blog.menu.all_discussed'} ],
|
||||
[ 'name' => 'top', 'url' => "{$sNavTopicsSubUrl}top/", 'text' => {lang name='blog.menu.all_top'} ]
|
||||
]}
|
||||
|
||||
{component 'sort' template='timespan' activeItem=$periodSelectCurrent}
|
||||
{/if}
|
||||
|
||||
{hook run='nav_topics_sub_after' sMenuSubItemSelect=$sMenuSubItemSelect sNavTopicsSubUrl=$sNavTopicsSubUrl}
|
|
@ -1,14 +0,0 @@
|
|||
{**
|
||||
* Навигация по топикам
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'topics'
|
||||
activeItem = $sMenuItemSelect
|
||||
mods = 'pills'
|
||||
items = [
|
||||
[ 'name' => 'index', 'url' => {router page='/'}, 'text' => {lang name='blog.menu.all'}, 'count' => $iCountTopicsNew ],
|
||||
[ 'name' => 'feed', 'url' => {router page='feed'}, 'text' => $aLang.feed.title, 'is_enabled' => !! $oUserCurrent ]
|
||||
]}
|
||||
|
||||
{include 'navs/nav.topics.sub.tpl'}
|
|
@ -1,14 +0,0 @@
|
|||
{**
|
||||
* Навигация в профиле пользователя в разделе "Публикации"
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'profile_created'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
hookArguments = [ 'oUserProfile' => $oUserProfile ]
|
||||
items = [
|
||||
[ 'name' => 'topics', 'url' => "{$oUserProfile->getUserWebPath()}created/topics/", 'text' => {lang name='user.publications.nav.topics'}, 'count' => $iCountTopicUser ],
|
||||
[ 'name' => 'comments', 'url' => "{$oUserProfile->getUserWebPath()}created/comments/", 'text' => {lang name='user.publications.nav.comments'}, 'count' => $iCountCommentUser ],
|
||||
[ 'name' => 'notes', 'url' => "{$oUserProfile->getUserWebPath()}created/notes/", 'text' => {lang name='user.publications.nav.notes'}, 'count' => $iCountNoteUser, 'is_enabled' => $oUserCurrent && $oUserCurrent->getId() == $oUserProfile->getId() ]
|
||||
]}
|
|
@ -1,13 +0,0 @@
|
|||
{**
|
||||
* Навигация в профиле пользователя в разделе "Избранное"
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'profile_favourite'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
hookParams = [ 'oUserProfile' => $oUserProfile ]
|
||||
items = [
|
||||
[ 'name' => 'topics', 'text' => {lang name='user.favourites.nav.topics'}, 'url' => "{$oUserProfile->getUserWebPath()}favourites/topics/", 'count' => $iCountTopicFavourite ],
|
||||
[ 'name' => 'comments', 'text' => {lang name='user.favourites.nav.comments'}, 'url' => "{$oUserProfile->getUserWebPath()}favourites/comments/", 'count' => $iCountCommentFavourite ]
|
||||
]}
|
|
@ -1,10 +0,0 @@
|
|||
{**
|
||||
* Навигация на главной странице профиля
|
||||
*}
|
||||
|
||||
{component 'nav'
|
||||
name = 'profile_info'
|
||||
activeItem = $sMenuSubItemSelect
|
||||
mods = 'pills'
|
||||
hookParams = [ 'oUserProfile' => $oUserProfile ]
|
||||
items = [ [ 'text' => {lang name='user.profile.title'}, 'url' => $oUserProfile->getUserWebPath(), 'name' => 'main' ] ]}
|
|
@ -1 +1 @@
|
|||
Subproject commit a3a9dfe083d9ba292f7cb1a469e5283f043a0d5b
|
||||
Subproject commit a0b05f8d4fe4021175bcd76ca888b39ac19bf4e2
|
Loading…
Reference in a new issue