diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1cdab37 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig is awesome: http://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true diff --git a/actions/ActionAdmin/index.tpl b/actions/ActionAdmin/index.tpl index dc2da34..3e92e26 100644 --- a/actions/ActionAdmin/index.tpl +++ b/actions/ActionAdmin/index.tpl @@ -12,7 +12,7 @@ {block 'layout_content'} {component 'nav' - name = 'admin' + hook = 'admin' mods = 'stacked pills' items = [ [ 'name' => 'user', 'url' => "{router page='admin/plugins'}?plugin=admin&action=activate&security_ls_key={$LIVESTREET_SECURITY_KEY}", 'text' => {lang 'admin.install_plugin_admin'}, is_enabled => $availableAdminPlugin ], diff --git a/actions/ActionBlog/add.tpl b/actions/ActionBlog/add.tpl index 2e46db9..05bca29 100644 --- a/actions/ActionBlog/add.tpl +++ b/actions/ActionBlog/add.tpl @@ -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'} diff --git a/actions/ActionBlog/admin.tpl b/actions/ActionBlog/admin.tpl index 2cefb09..a2a9091 100644 --- a/actions/ActionBlog/admin.tpl +++ b/actions/ActionBlog/admin.tpl @@ -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}: {$blogEdit->getTitle()|escape} diff --git a/actions/ActionBlog/blog.tpl b/actions/ActionBlog/blog.tpl index f102ab8..32ff372 100644 --- a/actions/ActionBlog/blog.tpl +++ b/actions/ActionBlog/blog.tpl @@ -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} \ No newline at end of file diff --git a/actions/ActionBlog/index.tpl b/actions/ActionBlog/index.tpl index 6650e72..17f9bd0 100644 --- a/actions/ActionBlog/index.tpl +++ b/actions/ActionBlog/index.tpl @@ -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} \ No newline at end of file +{extends 'layouts/layout.topics.tpl'} \ No newline at end of file diff --git a/actions/ActionContent/add.tpl b/actions/ActionContent/add.tpl index 25b11d8..f0a3f0c 100644 --- a/actions/ActionContent/add.tpl +++ b/actions/ActionContent/add.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} \ No newline at end of file diff --git a/actions/ActionContent/drafts.tpl b/actions/ActionContent/drafts.tpl index fa6945b..99c6701 100644 --- a/actions/ActionContent/drafts.tpl +++ b/actions/ActionContent/drafts.tpl @@ -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} \ No newline at end of file diff --git a/actions/ActionIndex/index.tpl b/actions/ActionIndex/index.tpl index bc0a6c9..69afceb 100644 --- a/actions/ActionIndex/index.tpl +++ b/actions/ActionIndex/index.tpl @@ -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} \ No newline at end of file +{extends 'layouts/layout.index.tpl'} \ No newline at end of file diff --git a/actions/ActionProfile/created.comments.tpl b/actions/ActionProfile/created.comments.tpl index c6a4890..8f25603 100644 --- a/actions/ActionProfile/created.comments.tpl +++ b/actions/ActionProfile/created.comments.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} \ No newline at end of file diff --git a/actions/ActionProfile/created.notes.tpl b/actions/ActionProfile/created.notes.tpl index a94a20c..1ceaf12 100644 --- a/actions/ActionProfile/created.notes.tpl +++ b/actions/ActionProfile/created.notes.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 '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} \ No newline at end of file diff --git a/actions/ActionProfile/created.topics.tpl b/actions/ActionProfile/created.topics.tpl index 1399d59..f8a7eaf 100644 --- a/actions/ActionProfile/created.topics.tpl +++ b/actions/ActionProfile/created.topics.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 'topic' template='list' topics=$topics paging=$paging} + {component 'topic.list' topics=$topics paging=$paging} {/block} \ No newline at end of file diff --git a/actions/ActionProfile/favourite.comments.tpl b/actions/ActionProfile/favourite.comments.tpl index 84b669a..34091b9 100644 --- a/actions/ActionProfile/favourite.comments.tpl +++ b/actions/ActionProfile/favourite.comments.tpl @@ -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} diff --git a/actions/ActionProfile/favourite.topics.tpl b/actions/ActionProfile/favourite.topics.tpl index 5ed2c6e..4c0333e 100644 --- a/actions/ActionProfile/favourite.topics.tpl +++ b/actions/ActionProfile/favourite.topics.tpl @@ -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} \ No newline at end of file diff --git a/actions/ActionSearch/index.tpl b/actions/ActionSearch/index.tpl index bd71efb..8a1efc0 100644 --- a/actions/ActionSearch/index.tpl +++ b/actions/ActionSearch/index.tpl @@ -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} diff --git a/actions/ActionStream/all.tpl b/actions/ActionStream/all.tpl index d9a2636..9f7ead9 100644 --- a/actions/ActionStream/all.tpl +++ b/actions/ActionStream/all.tpl @@ -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'} diff --git a/actions/ActionStream/personal.tpl b/actions/ActionStream/personal.tpl index 0904abf..0a47ed6 100644 --- a/actions/ActionStream/personal.tpl +++ b/actions/ActionStream/personal.tpl @@ -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'} diff --git a/actions/ActionTalk/favourites.tpl b/actions/ActionTalk/favourites.tpl index 3f7bd79..7e5b781 100644 --- a/actions/ActionTalk/favourites.tpl +++ b/actions/ActionTalk/favourites.tpl @@ -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} \ No newline at end of file diff --git a/actions/ActionUserfeed/list.tpl b/actions/ActionUserfeed/list.tpl index 1bb63bb..05550fb 100644 --- a/actions/ActionUserfeed/list.tpl +++ b/actions/ActionUserfeed/list.tpl @@ -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} \ No newline at end of file +{extends 'layouts/layout.index.tpl'} \ No newline at end of file diff --git a/assets/css/colors.css b/assets/css/colors.css index 688c8fe..1fe550a 100644 --- a/assets/css/colors.css +++ b/assets/css/colors.css @@ -12,3 +12,23 @@ .ls-nav-item--userbar-username img.avatar { display: none; } +ul.classic { + list-style: inside; + list-style-type: circle; +} +ol.classic { + list-style: inside; + list-style-type: decimal; +} + +.ls-nav--userbar > .ls-nav-item > a{ + color: #ddd !important; + padding: 15px 20px !important; +} +.ls-nav--userbar > .ls-nav-item > a:hover{ + color: #ddd !important; + background: #333 !important; +} +.ls-nav--userbar > .ls-nav-item > a > img { + display: none; +} diff --git a/assets/css/layout.css b/assets/css/layout.css index 1d281c4..a3c196a 100644 --- a/assets/css/layout.css +++ b/assets/css/layout.css @@ -68,23 +68,10 @@ } } -ul.classic { - list-style: inside; - list-style-type: circle; -} -ol.classic { - list-style: inside; - list-style-type: decimal; -} -.ls-nav--userbar > .ls-nav-item > a{ - color: #ddd !important; - padding: 15px 20px !important; -} -.ls-nav--userbar > .ls-nav-item > a:hover{ - color: #ddd !important; - background: #333 !important; -} -.ls-nav--userbar > .ls-nav-item > a > img { - display: none; -} +/** + * Шапка сайта + */ +.ls-jumbotron { + background-image: url(../images/header.jpg); +} \ No newline at end of file diff --git a/assets/js/init.js b/assets/js/init.js index ada3496..3195cdf 100644 --- a/assets/js/init.js +++ b/assets/js/init.js @@ -37,6 +37,31 @@ jQuery(document).ready(function($){ $('.js-form-validate').parsley(); + /** + * Userbar + */ + $('.ls-userbar .ls-nav--root > .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' + } + }); + + + /** + * Навигация по контенту + */ + $('.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 + }); + + /** * Подтверждение удаления */ @@ -97,13 +122,13 @@ jQuery(document).ready(function($){ }); $('.js-field-date-default').livequery(function () { - $(this).lsFieldDate({ + $(this).lsDate({ language: LANGUAGE }); }); $('.js-field-time-default').livequery(function () { - $(this).lsFieldTime(); + $(this).lsTime(); }); $('[data-type=captcha]').livequery(function () { @@ -366,7 +391,7 @@ jQuery(document).ready(function($){ cancel_photo: aRouter.settings + 'ajax-crop-cancel-photo' }, changeavatar: function ( event, _this, avatars ) { - $( '.js-user-profile-avatar, .js-wall-entry[data-user-id=' + _this.option( 'params.user_id' ) + '] .comment-avatar img' ).attr( 'src', avatars[ '64crop' ] + '?' + Math.random() ); + $( '.js-user-profile-avatar, .js-wall-entry[data-user-id=' + _this.option( 'params.target_id' ) + '] .ls-comment-avatar img' ).attr( 'src', avatars[ '64crop' ] + '?' + Math.random() ); $( '.nav-item--userbar-username img' ).attr( 'src', avatars[ '24crop' ] + '?' + Math.random() ); } }); diff --git a/layouts/layout.activity.tpl b/layouts/layout.activity.tpl new file mode 100644 index 0000000..86d004c --- /dev/null +++ b/layouts/layout.activity.tpl @@ -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} \ No newline at end of file diff --git a/layouts/layout.base.tpl b/layouts/layout.base.tpl index 5db698a..e94d771 100644 --- a/layouts/layout.base.tpl +++ b/layouts/layout.base.tpl @@ -1,281 +1,259 @@ {** - * Основной лэйаут + * Основной лэйаут, который наследуют все остальные лэйауты * - * @param boolean $layoutShowSidebar Показывать сайдбар или нет, сайдбар не будет выводится если он не содержит блоков - * @param string $layoutNavContent Название навигации - * @param string $layoutNavContentPath Кастомный путь до навигации контента + * @param boolean $layoutShowSidebar Показывать сайдбар или нет, сайдбар не будет выводится если он не содержит блоков + * @param string $layoutNavContent Название навигации + * @param string $layoutNavContentPath Кастомный путь до навигации контента * @param string $layoutShowSystemMessages Показывать системные уведомления или нет *} -{extends 'Component@layout.layout'} +{extends 'component@layout.layout'} {block 'layout_options' append} - {$layoutShowSidebar = $layoutShowSidebar|default:true} - {$layoutShowSystemMessages = $layoutShowSystemMessages|default:true} + {$layoutShowSidebar = $layoutShowSidebar|default:true} + {$layoutShowSystemMessages = $layoutShowSystemMessages|default:true} {/block} {* {block 'layout_head_styles' append} + + {/block} *} {block 'layout_head' append} - {* Получаем блоки для вывода в сайдбаре *} - {if $layoutShowSidebar} - {show_blocks group='right' assign=layoutSidebarBlocks} + {* Получаем блоки для вывода в сайдбаре *} + {if $layoutShowSidebar} + {show_blocks group='right' assign=layoutSidebarBlocks} - {$layoutSidebarBlocks = trim( $layoutSidebarBlocks )} - {$layoutShowSidebar = !!$layoutSidebarBlocks} - {/if} + {$layoutSidebarBlocks = trim( $layoutSidebarBlocks )} + {$layoutShowSidebar = !!$layoutSidebarBlocks} + {/if} - {** - * Тип сетки сайта - *} - {if {Config::Get('view.grid.type')} == 'fluid'} - - {else} - - {/if} + {** + * Тип сетки сайта + *} + {if {Config::Get('view.grid.type')} == 'fluid'} + + {else} + + {/if} {/block} {block 'layout_body'} - {** - * Основная навигация - *} -
- + + {include 'navs/nav.main.tpl'} + + {component 'search' template='main' mods='light'} +
+ {if $oUserCurrent} + {component 'modal-create'} + {/if} + + {** + * Основной контэйнер + *} +
+ {* Вспомогательный контейнер-обертка *} +
+ {** + * Контент + *} +
+ + {hook run='layout_content_header_begin' action=$sAction} + + {* Основной заголовок страницы *} + {block 'layout_page_title' hide} + + {/block} + + {block 'layout_content_header'} + {* Навигация *} + {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} + {$_layoutNavContent = $layoutNav} + {/if} + + {* Проверяем наличие вывода на случай если меню с одним пунктом автоматом скрывается *} + {if $_layoutNavContent|strip:''} +
+ {$_layoutNavContent} +
+ {/if} + {/if} + + {* Системные сообщения *} + {if $layoutShowSystemMessages} + {if $aMsgError} + {component 'alert' text=$aMsgError mods='error' close=true} + {/if} + + {if $aMsgNotice} + {component 'alert' text=$aMsgNotice close=true} + {/if} + {/if} + {/block} + + {hook run='layout_content_begin' action=$sAction} + {block 'layout_content'}{/block} + + {hook run='layout_content_end' action=$sAction} +
+ + {** + * Сайдбар + * Показываем сайдбар + *} + {if $layoutShowSidebar} + {/if} - {/if} - - {* Системные сообщения *} - {if $layoutShowSystemMessages} - {if $aMsgError} - {component 'alert' text=$aMsgError mods='error' close=true} - {/if} - - {if $aMsgNotice} - {component 'alert' text=$aMsgNotice close=true} - {/if} - {/if} - {/block} - - {block 'layout_content'}{/block} - - {hook run='content_end'} -
- - {** - * Сайдбар - * Показываем сайдбар - *} - {if $layoutShowSidebar} - - {/if} -
{* /wrapper *} + {* /wrapper *} - {* Подвал *} - - {* /container *} + {* Подвал *} + + {* /container *} - {* Подключение модальных окон *} - {if $oUserCurrent} - {component 'tags-personal' template='modal'} - {else} - {component 'auth' template='modal'} - {/if} + {* Подключение модальных окон *} + {if $oUserCurrent} + {component 'tags-personal' template='modal'} + {else} + {component 'auth' template='modal'} + {/if} - {** - * Тулбар - * Добавление кнопок в тулбар - *} - {add_block group='toolbar' name='component@admin.toolbar.admin' priority=100} - {add_block group='toolbar' name='component@toolbar-scrollup.toolbar.scrollup' priority=-100} + {** + * Тулбар + * Добавление кнопок в тулбар + *} + {add_block group='toolbar' name='component@admin.toolbar.admin' priority=100} + {add_block group='toolbar' name='component@toolbar-scrollup.toolbar.scrollup' priority=-100} - {* Подключение тулбара *} - {component 'toolbar' classes='js-toolbar-default' items={show_blocks group='toolbar'}} + {* Подключение тулбара *} + {component 'toolbar' classes='js-toolbar-default' items={show_blocks group='toolbar'}} - - - {hook run='layout_body_end'} + {hook run='layout_body_end'} {/block} diff --git a/layouts/layout.blog.edit.tpl b/layouts/layout.blog.edit.tpl new file mode 100644 index 0000000..db81c6a --- /dev/null +++ b/layouts/layout.blog.edit.tpl @@ -0,0 +1,18 @@ +{** + * Форма ред-ия блога + *} + +{extends './layout.base.tpl'} + +{block 'layout_options' append} + {if $sEvent != 'add'} + {$layoutNav = [[ + hook => '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} \ No newline at end of file diff --git a/layouts/layout.content.form.tpl b/layouts/layout.content.form.tpl new file mode 100644 index 0000000..e691411 --- /dev/null +++ b/layouts/layout.content.form.tpl @@ -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} \ No newline at end of file diff --git a/layouts/layout.index.tpl b/layouts/layout.index.tpl new file mode 100644 index 0000000..b85b846 --- /dev/null +++ b/layouts/layout.index.tpl @@ -0,0 +1,18 @@ +{** + * Главная страница + *} + +{extends './layout.topics.tpl'} + +{block 'layout_options' prepend} + {* Все / Лента *} + {$layoutNav = [[ + hook => '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} \ No newline at end of file diff --git a/layouts/layout.topics.tpl b/layouts/layout.topics.tpl new file mode 100644 index 0000000..eba3da4 --- /dev/null +++ b/layouts/layout.topics.tpl @@ -0,0 +1,52 @@ +{** + * Список топиков + *} + +{extends './layout.base.tpl'} + +{block 'layout_options' append} + {* Меню фильтрации топиков *} + {if $sNavTopicsSubUrl} + {if ! isset($layoutNav)} + {$layoutNav = []} + {/if} + + {$layoutNav[] = [ + hook => '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[] = [ + hook => '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} \ No newline at end of file diff --git a/layouts/layout.user.created.tpl b/layouts/layout.user.created.tpl new file mode 100644 index 0000000..c21e002 --- /dev/null +++ b/layouts/layout.user.created.tpl @@ -0,0 +1,18 @@ +{** + * Публикации пользователя + *} + +{extends './layout.user.tpl'} + +{block 'layout_options' append} + {$layoutNav = [[ + hook => '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} \ No newline at end of file diff --git a/layouts/layout.user.favourite.tpl b/layouts/layout.user.favourite.tpl new file mode 100644 index 0000000..1668fe5 --- /dev/null +++ b/layouts/layout.user.favourite.tpl @@ -0,0 +1,17 @@ +{** + * Избранное пользователя + *} + +{extends './layout.user.tpl'} + +{block 'layout_options' append} + {$layoutNav = [[ + hook => '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} \ No newline at end of file diff --git a/layouts/layout.user.messages.tpl b/layouts/layout.user.messages.tpl index 687fa4d..6c2ac6d 100644 --- a/layouts/layout.user.messages.tpl +++ b/layouts/layout.user.messages.tpl @@ -5,7 +5,17 @@ {extends './layout.user.tpl'} {block 'layout_options' append} - {$sNav = 'messages'} + {$layoutNav = [[ + hook => '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'} diff --git a/layouts/layout.user.settings.tpl b/layouts/layout.user.settings.tpl index afc9af5..5b9c447 100644 --- a/layouts/layout.user.settings.tpl +++ b/layouts/layout.user.settings.tpl @@ -5,7 +5,16 @@ {extends './layout.user.tpl'} {block 'layout_options' append} - {$sNav = 'settings'} + {$layoutNav = [[ + hook => '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'} diff --git a/navs/nav.topics.sub.tpl b/navs/nav.topics.sub.tpl index 75f71e0..a426893 100644 --- a/navs/nav.topics.sub.tpl +++ b/navs/nav.topics.sub.tpl @@ -15,7 +15,7 @@ [ 'name' => 'top', 'url' => "{$sNavTopicsSubUrl}top/", 'text' => {lang name='blog.menu.all_top'} ] ]} - {component 'sort' activeItem=$periodSelectCurrent} + {component 'sort' template='timespan' activeItem=$periodSelectCurrent} {/if} -{hook run='nav_topics_sub_after' sMenuSubItemSelect=$sMenuSubItemSelect sNavTopicsSubUrl=$sNavTopicsSubUrl} +{hook run='nav_topics_sub_after' sMenuSubItemSelect=$sMenuSubItemSelect sNavTopicsSubUrl=$sNavTopicsSubUrl} \ No newline at end of file