Browse Source

Initial commit - developer skin

explain
Alexander Yakovlev 5 years ago
commit
59e2bf1df6
  1. 21
      actions/ActionAdmin/index.tpl
  2. 15
      actions/ActionAdmin/plugins.tpl
  3. 13
      actions/ActionAuth/activate.tpl
  4. 15
      actions/ActionAuth/confirm.tpl
  5. 13
      actions/ActionAuth/invite.tpl
  6. 13
      actions/ActionAuth/login.tpl
  7. 13
      actions/ActionAuth/reactivation.tpl
  8. 13
      actions/ActionAuth/register.tpl
  9. 13
      actions/ActionAuth/reset.tpl
  10. 14
      actions/ActionAuth/reset_confirm.tpl
  11. 28
      actions/ActionBlog/add.tpl
  12. 21
      actions/ActionBlog/admin.tpl
  13. 40
      actions/ActionBlog/blog.tpl
  14. 18
      actions/ActionBlog/index.tpl
  15. 42
      actions/ActionBlog/topic.tpl
  16. 19
      actions/ActionBlog/users.tpl
  17. 38
      actions/ActionBlogs/index.tpl
  18. 28
      actions/ActionContent/add.tpl
  19. 20
      actions/ActionContent/drafts.tpl
  20. 23
      actions/ActionError/index.tpl
  21. 16
      actions/ActionIndex/index.tpl
  22. 36
      actions/ActionPeople/index.tpl
  23. 20
      actions/ActionProfile/activity.tpl
  24. 17
      actions/ActionProfile/created.comments.tpl
  25. 17
      actions/ActionProfile/created.notes.tpl
  26. 17
      actions/ActionProfile/created.topics.tpl
  27. 17
      actions/ActionProfile/favourite.comments.tpl
  28. 27
      actions/ActionProfile/favourite.topics.tpl
  29. 16
      actions/ActionProfile/friends.tpl
  30. 25
      actions/ActionProfile/info.tpl
  31. 16
      actions/ActionProfile/wall.tpl
  32. 27
      actions/ActionRss/index.tpl
  33. 32
      actions/ActionSearch/index.tpl
  34. 18
      actions/ActionSearch/opensearch.tpl
  35. 14
      actions/ActionSettings/account.change_email_confirm.tpl
  36. 9
      actions/ActionSettings/account.tpl
  37. 9
      actions/ActionSettings/invite.tpl
  38. 9
      actions/ActionSettings/profile.tpl
  39. 9
      actions/ActionSettings/tuning.tpl
  40. 20
      actions/ActionStream/all.tpl
  41. 20
      actions/ActionStream/personal.tpl
  42. 18
      actions/ActionTag/index.tpl
  43. 9
      actions/ActionTalk/add.tpl
  44. 11
      actions/ActionTalk/blacklist.tpl
  45. 12
      actions/ActionTalk/favourites.tpl
  46. 13
      actions/ActionTalk/inbox.tpl
  47. 17
      actions/ActionTalk/talk.tpl
  48. 16
      actions/ActionUserfeed/list.tpl
  49. 77
      assets/css/layout.css
  50. 37
      assets/css/print.css
  51. BIN
      assets/images/avatars/avatar_blog_100x100crop.png
  52. BIN
      assets/images/avatars/avatar_blog_24x24crop.png
  53. BIN
      assets/images/avatars/avatar_blog_48x48crop.png
  54. BIN
      assets/images/avatars/avatar_blog_500x500crop.png
  55. BIN
      assets/images/avatars/avatar_blog_64x64crop.png
  56. BIN
      assets/images/avatars/avatar_female_100x100crop.png
  57. BIN
      assets/images/avatars/avatar_female_24x24crop.png
  58. BIN
      assets/images/avatars/avatar_female_48x48crop.png
  59. BIN
      assets/images/avatars/avatar_female_64x64crop.png
  60. BIN
      assets/images/avatars/avatar_male_100x100crop.png
  61. BIN
      assets/images/avatars/avatar_male_24x24crop.png
  62. BIN
      assets/images/avatars/avatar_male_48x48crop.png
  63. BIN
      assets/images/avatars/avatar_male_64x64crop.png
  64. BIN
      assets/images/avatars/user_photo_female.png
  65. BIN
      assets/images/avatars/user_photo_male.png
  66. BIN
      assets/images/favicons/favicon.ico
  67. BIN
      assets/images/favicons/opensearch.png
  68. BIN
      assets/images/header.jpg
  69. 642
      assets/js/init.js
  70. 0
      components/.gitkeep
  71. 15
      emails/email.blog_invite_new.tpl
  72. 16
      emails/email.comment_new.tpl
  73. 16
      emails/email.comment_reply.tpl
  74. 17
      emails/email.invite.tpl
  75. 13
      emails/email.reactivation.tpl
  76. 14
      emails/email.registration.tpl
  77. 15
      emails/email.registration_activate.tpl
  78. 13
      emails/email.reminder_code.tpl
  79. 11
      emails/email.reminder_password.tpl
  80. 15
      emails/email.talk_comment_new.tpl
  81. 15
      emails/email.talk_new.tpl
  82. 15
      emails/email.topic_new.tpl
  83. 15
      emails/email.user_changemail_from.tpl
  84. 15
      emails/email.user_changemail_to.tpl
  85. 16
      emails/email.user_complaint.tpl
  86. 14
      emails/email.user_friend_new.tpl
  87. 14
      emails/email.wall.new.tpl
  88. 15
      emails/email.wall.reply.tpl
  89. 11
      layouts/layout.admin.tpl
  90. 181
      layouts/layout.base.tpl
  91. 13
      layouts/layout.user.messages.tpl
  92. 13
      layouts/layout.user.settings.tpl
  93. 13
      layouts/layout.user.tpl
  94. 12
      navs/nav.activity.tpl
  95. 12
      navs/nav.blog.edit.tpl
  96. 26
      navs/nav.create.tpl
  97. 6
      navs/nav.main.tpl
  98. 15
      navs/nav.messages.tpl
  99. 12
      navs/nav.search.tpl
  100. 14
      navs/nav.settings.tpl
  101. Some files were not shown because too many files have changed in this diff Show More

21
actions/ActionAdmin/index.tpl

@ -0,0 +1,21 @@
{**
* Админка
*
* @param boolean $availableAdminPlugin
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{lang 'admin.title'}
{/block}
{block 'layout_content'}
{component 'nav'
name = '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 ],
[ 'name' => 'plugins', 'url' => "{router page='admin'}plugins/", 'text' => {lang 'admin.items.plugins'} ]
]}
{/block}

15
actions/ActionAdmin/plugins.tpl

@ -0,0 +1,15 @@
{**
* Плагины
*
* @param array $plugins Список плагинов
*}
{extends 'layouts/layout.admin.tpl'}
{block 'layout_admin_page_title'}
{lang 'admin.items.plugins'}
{/block}
{block 'layout_content'}
{component 'admin' template='plugins' plugins=$plugins}
{/block}

13
actions/ActionAuth/activate.tpl

@ -0,0 +1,13 @@
{**
* Уведомление об успешной регистрации
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.registration.notices.success_activate}
{/block}
{block 'layout_content'}
<a href="{router page='/'}">{$aLang.common.site_go_main}</a>
{/block}

15
actions/ActionAuth/confirm.tpl

@ -0,0 +1,15 @@
{**
* Просьба перейти по ссылке отправленной на емэйл для активации аккаунта
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.registration.confirm.title}
{/block}
{block 'layout_content'}
{$aLang.auth.registration.confirm.text}<br /><br />
<a href="{router page='/'}">{$aLang.common.site_go_main}</a>
{/block}

13
actions/ActionAuth/invite.tpl

@ -0,0 +1,13 @@
{**
* Регистрация через инвайт
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.invite.title}
{/block}
{block 'layout_content'}
{component 'auth' template='invite'}
{/block}

13
actions/ActionAuth/login.tpl

@ -0,0 +1,13 @@
{**
* Страница входа
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.login.title}
{/block}
{block 'layout_content'}
{component 'auth' template='login' showExtra=true}
{/block}

13
actions/ActionAuth/reactivation.tpl

@ -0,0 +1,13 @@
{**
* Форма запроса повторной активации аккаунта
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.reactivation.title}
{/block}
{block 'layout_content'}
{component 'auth' template='reactivation'}
{/block}

13
actions/ActionAuth/register.tpl

@ -0,0 +1,13 @@
{**
* Регистрация
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.registration.title}
{/block}
{block 'layout_content'}
{component 'auth' template='registration'}
{/block}

13
actions/ActionAuth/reset.tpl

@ -0,0 +1,13 @@
{**
* Форма восстановления пароля
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.reset.title}
{/block}
{block 'layout_content'}
{component 'auth' template='reset'}
{/block}

14
actions/ActionAuth/reset_confirm.tpl

@ -0,0 +1,14 @@
{**
* Восстановление пароля.
* Пароль отправлен на емэйл пользователя.
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.auth.reset.title}
{/block}
{block 'layout_content'}
{$aLang.auth.reset.notices.success_send_password}
{/block}

28
actions/ActionBlog/add.tpl

@ -0,0 +1,28 @@
{**
* Создание блога
*
* @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}
{block 'layout_page_title'}
{if $sEvent == 'add'}
{$aLang.blog.add.title}
{else}
{$aLang.blog.admin.title}: <a href="{$blogEdit->getUrlFull()}">{$blogEdit->getTitle()|escape}</a>
{/if}
{/block}
{block 'layout_content'}
{component 'blog' template='add' blog=$blogEdit}
{/block}

21
actions/ActionBlog/admin.tpl

@ -0,0 +1,21 @@
{**
* Управление пользователями блога
*
* @param object $blogEdit Блог
* @param array $blogUsers Список пользователей блога
* @param array $blogUsersInvited Список приглашенных пользователей, передается в случае если блог закрытый
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sNav = 'blog.edit'}
{/block}
{block 'layout_page_title'}
{$aLang.blog.admin.title}: <a href="{$blogEdit->getUrlFull()}">{$blogEdit->getTitle()|escape}</a>
{/block}
{block 'layout_content'}
{component 'blog' template='admin' users=$blogUsers pagination=$paging}
{/block}

40
actions/ActionBlog/blog.tpl

@ -0,0 +1,40 @@
{**
* Блог
*
* @param object $blog Блог
* @param boolean $isPrivateBlog Закрытый блог или нет
* @param array $topics Список топиков
* @param array $paging Пагинация
* @param string $periodSelectCurrent
* @param string $periodSelectRoot
* @param array $blogUsers Читатели блога
* @param array $blogModerators Модераторы блога
* @param array $blogAdministrators Администраторы блога
* @param integer $countBlogUsers Кол-во читателей
* @param integer $countBlogModerators Кол-во модераторов
* @param integer $countBlogAdministrators Кол-во администраторов
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sNav = 'topics.sub'}
{/block}
{block 'layout_content_header'}
{component 'blog' blog=$blog blogs=$blogs}
{$smarty.block.parent}
{* Сообщение для забаненного пользователя *}
{if $blogUserCurrent and $blogUserCurrent->getIsBanned()}
{component 'alert' text=$aLang.blog.alerts.banned mods='error'}
{/if}
{* Список топиков *}
{if $isPrivateBlog}
{component 'alert' text=$aLang.blog.alerts.private mods='error'}
{else}
{component 'topic' template='list' topics=$topics paging=$paging}
{/if}
{/block}

18
actions/ActionBlog/index.tpl

@ -0,0 +1,18 @@
{**
* Список топиков
*
* @param array $topics
* @param array $paging
* @param string $periodSelectCurrent
* @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}

42
actions/ActionBlog/topic.tpl

@ -0,0 +1,42 @@
{**
* Топик
*
* @param object $topic
* @param array $comments
* @param integer $lastCommentId
* @param array $pagingComments
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_content'}
{* Топик *}
{component 'topic' template='topic-type' topic=$topic}
{* Комментарии *}
{component 'comment' template='comments'
comments = $comments
count = $topic->getCountComment()
classes = 'js-topic-comments'
attributes = [ 'id' => 'comments' ]
targetId = $topic->getId()
targetType = 'topic'
authorId = $topic->getUserId()
authorText = $aLang.topic.author
dateReadLast = $topic->getDateRead()
forbidAdd = $topic->getForbidComment()
forbidText = $aLang.topic.comments.notices.not_allowed
useSubscribe = true
isSubscribed = $topic->getSubscribeNewComment() && $topic->getSubscribeNewComment()->getStatus()
lastCommentId = $lastCommentId
pagination = [
total => +$pagingComments.iCountPage,
current => +$pagingComments.iCurrentPage,
url => "{$pagingComments.sGetParams}{($pagingComments.sGetParams) ? '&' : '?'}cmtpage=__page__"
]
commentParams = [
useVote => true,
useEdit => true,
useFavourite => true
]}
{/block}

19
actions/ActionBlog/users.tpl

@ -0,0 +1,19 @@
{**
* Список пользователей которые подключены к блогу
*
* @param object $blog
* @param array $blogUsers
* @param integer $countBlogUsers
* @param array $paging
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.blog.users.readers_all} ({$countBlogUsers}):
<a href="{$blog->getUrlFull()}">{$blog->getTitle()|escape}</a>
{/block}
{block 'layout_content'}
{component 'user' template='list' users=$blogUsers pagination=$paging}
{/block}

38
actions/ActionBlogs/index.tpl

@ -0,0 +1,38 @@
{**
* Список блогов
*
* @param array $blogs
* @param integer $searchCount
* @param array $paging
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sMenuHeadItemSelect = 'blogs'}
{/block}
{block 'layout_page_title'}
{$aLang.blog.blogs}
{/block}
{block 'layout_content'}
{component 'blog' template='search-form'}
{* Сортировка *}
{component 'sort' template='ajax'
classes = 'js-search-sort js-search-sort-menu'
text = $aLang.blog.sort.by_users
items = [
[ name => 'blog_count_user', text => $aLang.blog.sort.by_users ],
[ name => 'blog_count_topic', text => $aLang.blog.sort.by_topics ],
[ name => 'blog_title', text => $aLang.sort.by_title ]
]}
{* Список блогов *}
<div class="js-search-ajax-blog">
<h3 class="h3 js-blog-list-search-title" style="display: none"></h3>
{component 'blog' template='list' blogs=$blogs useMore=true}
</div>
{/block}

28
actions/ActionContent/add.tpl

@ -0,0 +1,28 @@
{**
* Создание/редактирование топика
*
* @parama object $topicEdit
* @parama string $topicType
* @parama array $blogsAllow
* @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}
{block 'layout_content'}
{component 'topic' template='add-type' topic=$topicEdit type=$topicType blogs=$blogsAllow blogId=$blogId skipBlogs=$skipBlogs}
{/block}

20
actions/ActionContent/drafts.tpl

@ -0,0 +1,20 @@
{**
* Черновики
*
* @parama array $topics
* @parama array $paging
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sNav = 'create'}
{/block}
{block 'layout_page_title'}
{$aLang.topic.add.title.add}
{/block}
{block 'layout_content'}
{component 'topic' template='list' topics=$topics paging=$paging}
{/block}

23
actions/ActionError/index.tpl

@ -0,0 +1,23 @@
{**
* Страница вывода ошибок
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$layoutShowSystemMessages = false}
{/block}
{block 'layout_page_title'}
{if $aMsgError[0].title}
{$aLang.common.error.error}: <span>{$aMsgError[0].title}</span>
{/if}
{/block}
{block 'layout_content'}
<p>{$aMsgError[0].msg}</p>
<p>
<a href="javascript:history.go(-1);">{$aLang.common.site_history_back}</a>,
<a href="{router page='/'}">{$aLang.common.site_go_main}</a>
</p>
{/block}

16
actions/ActionIndex/index.tpl

@ -0,0 +1,16 @@
{**
* Главная
*
* @parama array $topics
* @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}

36
actions/ActionPeople/index.tpl

@ -0,0 +1,36 @@
{**
* Список всех пользователей
*
* @param array $users
* @param integer $searchCount
* @param array $countriesUsed
* @param array $paging
* @param array $usersStat
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.user.users}
{/block}
{block 'layout_content'}
{component 'user' template='search-form'}
{* Сортировка *}
{component 'sort' template='ajax'
classes = 'js-search-sort js-search-sort-menu'
text = $aLang.sort.by_rating
items = [
[ name => 'user_rating', text => $aLang.sort.by_rating, order => 'asc' ],
[ name => 'user_login', text => $aLang.sort.by_login ],
[ name => 'user_date_register', text => $aLang.sort.by_date_registration ]
]}
{* Список пользователей *}
<div class="js-search-ajax-users">
<h3 class="h3 js-user-list-search-title" style="display: none"></h3>
{component 'user' template='list' users=$users useMore=true}
</div>
{/block}

20
actions/ActionProfile/activity.tpl

@ -0,0 +1,20 @@
{**
* Активность пользователя
*
* @param array $activityEvents
* @param integer $activityEventsAllCount
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='activity.title'}
{/block}
{block 'layout_content' append}
{component 'activity'
events = $activityEvents
count = $activityEventsAllCount
targetId = $oUserProfile->getId()
classes = 'js-activity--user'}
{/block}

17
actions/ActionProfile/created.comments.tpl

@ -0,0 +1,17 @@
{**
* Список комментариев созданных пользователем
*
* @param array $comments
* @param array $paging
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='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'}
{/block}

17
actions/ActionProfile/created.notes.tpl

@ -0,0 +1,17 @@
{**
* Список заметок созданных пользователем
*
* @param array $notesUsers
* @param array $paging
*}
{extends 'layouts/layout.user.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}
{/block}

17
actions/ActionProfile/created.topics.tpl

@ -0,0 +1,17 @@
{**
* Список топиков созданных пользователем
*
* @param array $topics
* @param array $paging
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='user.publications.title'}
{/block}
{block 'layout_content' append}
{include 'navs/nav.user.created.tpl'}
{component 'topic' template='list' topics=$topics paging=$paging}
{/block}

17
actions/ActionProfile/favourite.comments.tpl

@ -0,0 +1,17 @@
{**
* Избранные комментарии пользователя
*
* @param array $comments
* @param array $paging
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='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'}
{/block}

27
actions/ActionProfile/favourite.topics.tpl

@ -0,0 +1,27 @@
{**
* Избранные топики пользователя
*
* @param array $topics
* @param array $paging
* @param array $activeFavouriteTag
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='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=[
'user' => $oUserProfile,
'activeTag' => $activeFavouriteTag
]}
{/if}
{component 'topic' template='list' topics=$topics paging=$paging}
{/block}

16
actions/ActionProfile/friends.tpl

@ -0,0 +1,16 @@
{**
* Список друзей
*
* @param array $friends
* @param array $paging
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='user.friends.title'}
{/block}
{block 'layout_content' append}
{component 'user' template='list' users=$friends pagination=$paging}
{/block}

25
actions/ActionProfile/info.tpl

@ -0,0 +1,25 @@
{**
* Профиль пользователя с информацией о нем
*
* @param array usersInvited
* @param object invitedByUser
* @param array blogsJoined
* @param array blogsModerate
* @param array blogsAdminister
* @param array blogsCreated
* @param array usersFriend
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_content' append}
{component 'user' template='info'
user = $oUserProfile
friends = $userFriends
usersInvited = $usersInvited
invitedByUser = $invitedByUser
blogsJoined = $blogsJoined
blogsAdminister = $blogsAdminister
blogsModerate = $blogsModerate
blogsCreated = $blogsCreated}
{/block}

16
actions/ActionProfile/wall.tpl

@ -0,0 +1,16 @@
{**
* Стена
*}
{extends 'layouts/layout.user.tpl'}
{block 'layout_user_page_title'}
{lang name='wall.title'}
{/block}
{block 'layout_content' append}
{insert name='block' block='wall' params=[
'classes' => 'js-wall-default',
'user_id' => $oUserProfile->getId()
]}
{/block}

27
actions/ActionRss/index.tpl

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>{$aChannel.title}</title>
<link>{$aChannel.link}</link>
<atom:link href="{$PATH_WEB_CURRENT}/" rel="self" type="application/rss+xml" />
<description><![CDATA[{$aChannel.description}]]></description>
<language>{$aChannel.language}</language>
<managingEditor>{$aChannel.managingEditor} ({Router::GetPath('/')})</managingEditor>
<webMaster>{$aChannel.managingEditor} ({Router::GetPath('/')})</webMaster>
<copyright>{Router::GetPath('/')}</copyright>
<generator>{$aChannel.generator}</generator>
{foreach $aItems as $item}
<item>
<title>{$item.title|escape:'html'}</title>
<guid isPermaLink="true">{$item.guid}</guid>
<link>{$item.link}</link>
<dc:creator>{$item.author}</dc:creator>
<description><![CDATA[{$item.description}]]></description>
<pubDate>{date_format date=$item.pubDate format="r"}</pubDate>
<category>{$item.category|replace:',':'</category>
<category>'}</category>
</item>
{/foreach}
</channel>
</rss>

32
actions/ActionSearch/index.tpl

@ -0,0 +1,32 @@
{**
* Страница с формой поиска
*
* @param array resultItems
* @param array paging
* @param array searchType
* @param array query
* @param array typeCounts
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{$aLang.search.search}
{/block}
{block 'layout_content'}
{component 'search' template='main' searchType=$searchType}
{include 'navs/nav.search.tpl'}
{if $resultItems}
{if $searchType == 'topics'}
{component 'topic' template='list' topics=$resultItems paging=$paging}
{elseif $searchType == 'comments'}
{component 'comment' template='list' comments=$resultItems paging=$paging}
{else}
{hook run='search_result' type=$searchType}
{/if}
{elseif $_aRequest.q}
{component 'blankslate' text=$aLang.search.alerts.empty}
{/if}
{/block}

18
actions/ActionSearch/opensearch.tpl

@ -0,0 +1,18 @@
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>{Config::Get('view.name')}</ShortName>
<Description>{$sHtmlTitle}</Description>
<Contact>{Config::Get('sys.mail.from_email')}</Contact>
<Url type="text/html" template="{router page='search/topics'}?q={literal}{searchTerms}{/literal}" />
<LongName>{$sHtmlDescription}</LongName>
<Image height="64" width="64" type="image/png">{Config::Get('path.skin.assets.web')}/images/favicons/opensearch.png</Image>
<Image height="16" width="16" type="image/vnd.microsoft.icon">{Config::Get('path.skin.assets.web')}/images/favicons/favicon.ico</Image>
<Developer>{Config::Get('view.name')} ({Router::GetPath('/')})</Developer>
<Attribution>
© «{Config::Get('view.name')}»
</Attribution>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<Language>ru-ru</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>

14
actions/ActionSettings/account.change_email_confirm.tpl

@ -0,0 +1,14 @@
{**
* Уведомления о смене емэйла
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$layoutShowSystemMessages = false}
{$layoutShowSidebar = false}
{/block}
{block 'layout_content'}
{$sText}
{/block}

9
actions/ActionSettings/account.tpl

@ -0,0 +1,9 @@
{**
* Настройки аккаунта (емэйл, пароль)
*}
{extends 'layouts/layout.user.settings.tpl'}
{block 'layout_content' append}
{component 'user' template='settings/account' user=$oUserCurrent}
{/block}

9
actions/ActionSettings/invite.tpl

@ -0,0 +1,9 @@
{**
* Управление инвайтами
*}
{extends 'layouts/layout.user.settings.tpl'}
{block 'layout_content' append}
{component 'user' template='settings/invite' user=$oUserCurrent}
{/block}

9
actions/ActionSettings/profile.tpl

@ -0,0 +1,9 @@
{**
* Основные настройки профиля
*}
{extends 'layouts/layout.user.settings.tpl'}
{block 'layout_content' append}
{component 'user' template='settings/profile' user=$oUserCurrent}
{/block}

9
actions/ActionSettings/tuning.tpl

@ -0,0 +1,9 @@
{**
* Настройка уведомлений
*}
{extends 'layouts/layout.user.settings.tpl'}
{block 'layout_content' append}
{component 'user' template='settings/tuning' user=$oUserCurrent}
{/block}

20
actions/ActionStream/all.tpl

@ -0,0 +1,20 @@
{**
* Вся активность
*
* @param array $activityEvents
* @param integer $activityEventsAllCount
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sNav = 'activity'}
{/block}
{block 'layout_page_title'}
{$aLang.activity.title}
{/block}
{block 'layout_content'}
{component 'activity' events=$activityEvents count=$activityEventsAllCount classes='js-activity--all'}
{/block}

20
actions/ActionStream/personal.tpl

@ -0,0 +1,20 @@
{**
* Настраиваемая, персональная страница активности
*
* @param array $activityEvents
* @param integer $activityEventsAllCount
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_options' append}
{$sNav = 'activity'}
{/block}
{block 'layout_page_title'}
{$aLang.activity.title}
{/block}
{block 'layout_content'}
{component 'activity' events=$activityEvents count=$activityEventsAllCount classes='js-activity--personal'}
{/block}

18
actions/ActionTag/index.tpl

@ -0,0 +1,18 @@
{**
* Поиск по тегам
*
* @param array $topics
* @param array $paging
* @param string $tag
*}
{extends 'layouts/layout.base.tpl'}
{block 'layout_page_title'}
{lang 'tags.search.title'}
{/block}
{block 'layout_content'}
{component 'tags' template='search-form'}
{component 'topic' template='list' topics=$topics paging=$paging}
{/block}

9
actions/ActionTalk/add.tpl

@ -0,0 +1,9 @@
{**
* Создание личного сообщения
*}
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{component 'talk' template='add'}
{/block}

11
actions/ActionTalk/blacklist.tpl

@ -0,0 +1,11 @@
{**
* Черный список
*
* @param array $talkBlacklistUsers
*}
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{component 'talk' template='blacklist' users=$talkBlacklistUsers}
{/block}

12
actions/ActionTalk/favourites.tpl

@ -0,0 +1,12 @@
{**
* Список избранных сообщений
*
* @param array $talks
* @param array $paging
*}
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{component 'talk' template='list.tpl' talks=$talks paging=$paging}
{/block}

13
actions/ActionTalk/inbox.tpl

@ -0,0 +1,13 @@
{**
* Список сообщений
*
* @param array $talks
* @param array $paging
*}
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{component 'talk' template='search-form'}
{component 'talk' template='list' talks=$talks paging=$paging selectable=true}
{/block}

17
actions/ActionTalk/talk.tpl

@ -0,0 +1,17 @@
{**
* Диалог
*
* @param object $talk
* @param array $comments
* @param integer $lastCommentId
*}
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{component 'talk'
talk = $talk
comments = $comments
lastCommentId = $lastCommentId
activeParticipantsCount = $activeParticipantsCount}
{/block}

16
actions/ActionUserfeed/list.tpl

@ -0,0 +1,16 @@
{**
* Лента пользователя
*
* @param array $topics
* @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}

77
assets/css/layout.css

@ -0,0 +1,77 @@
/**
* Сетка
*
* @license GNU General Public License, version 2
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
* @author Denis Shakhov <denis.shakhov@gmail.com>
*/
/**
* Сетка
*/
.layout-container {
margin: 0 auto;
padding: 0 50px;
}
.layout-content {
background: #fff;
padding: 40px !important;
}
.layout-nav .ls-nav.ls-nav--main {
margin: 0 auto;
}
.layout-footer {
padding: 20px 0 50px;
color: #777;
position: relative;
}
.layout-container.layout-no-sidebar .layout-content {
width: 100%;
margin-right: 0;
}
.layout-sidebar {
padding-left: 10px !important;
}
.layout-sidebar .ls-block {
margin-bottom: 10px;
}
/* Responsive */
@media (max-width: 999px) {
.layout-content { width: 100% !important; margin-bottom: 30px; padding: 15px !important; }
.layout-sidebar { width: 100% !important; margin-bottom: 30px; padding: 0; }
.ls-toolbar {
display: none;
}
}
@media (max-width: 480px) {
.layout-container {
padding: 0;
}
}
/**
* Главное меню
*/
.layout-nav {
padding: 0 50px;
margin-bottom: 10px;
background: #222;
}
@media (max-width: 480px) {
.layout-nav {
padding: 0;
margin-bottom: 0;
}
}
/**
* Шапка сайта
*/
.ls-jumbotron {
background-image: url(../images/header.jpg);
}

37
assets/css/print.css

@ -0,0 +1,37 @@
/**
* Стили для печати
*
* @license GNU General Public License, version 2
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
* @author Denis Shakhov <denis.shakhov@gmail.com>
*/
@media print {
@page { margin: 0.5cm; }
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; }
body, .text { font-size: 14pt; }
a, a:visited { text-decoration: underline; }
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
h1 { font-size: 30pt !important; }
h4 { font-size: 26pt !important; }
h5 { font-size: 23pt !important; }
h6 { font-size: 20pt !important; }
p, h3, h4, h5 { orphans: 3; widows: 3; }
h3, h4, h5 { page-break-after: avoid; }
#header, #userbar, #nav, #sidebar, #footer, #comments, .toolbar, .nav-filter-wrapper,
.topic-footer, .stat-performance, .actions, .reply-header { display: none !important; }
#wrapper { -webkit-box-shadow: none; box-shadow: none; border: 0; padding: 0; }
#content { width: 100%; margin: 0; }
.topic { margin-bottom: 100px; }
}

BIN
assets/images/avatars/avatar_blog_100x100crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
assets/images/avatars/avatar_blog_24x24crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
assets/images/avatars/avatar_blog_48x48crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
assets/images/avatars/avatar_blog_500x500crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
assets/images/avatars/avatar_blog_64x64crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
assets/images/avatars/avatar_female_100x100crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
assets/images/avatars/avatar_female_24x24crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/avatars/avatar_female_48x48crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/images/avatars/avatar_female_64x64crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
assets/images/avatars/avatar_male_100x100crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
assets/images/avatars/avatar_male_24x24crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/avatars/avatar_male_48x48crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
assets/images/avatars/avatar_male_64x64crop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
assets/images/avatars/user_photo_female.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
assets/images/avatars/user_photo_male.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
assets/images/favicons/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
assets/images/favicons/opensearch.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
assets/images/header.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

642
assets/js/init.js

@ -0,0 +1,642 @@
/**
* Инициализации модулей
*
* @license GNU General Public License, version 2
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
* @author Denis Shakhov <denis.shakhov@gmail.com>
*/
jQuery(document).ready(function($){
// Хук начала инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_start',[],window);
$('html').removeClass('no-js');
/**
* Иниц-ия модулей ядра
*/
ls.init({
production: false
});
ls.dev.init();
/**
* IE
*/
if ( $( 'html' ).hasClass( 'oldie' ) ) {
// Эмуляция placeholder'ов в IE
$( 'input[type=text], textarea' ).placeholder();
}
/**
* Form validate
* Валидатор нужно иниц-ть до иниц-ии аякс форм, чтобы избежать валидации аякс-полей после сабмита формы
*/
$('.js-form-validate').parsley();
/**
* Подтверждение удаления
*/
$('.js-confirm-remove-default').livequery(function () {
$(this).lsConfirm({
message: ls.lang.get('common.remove_confirm')
});
});
/**
* Notification
*/
ls.notification.init();
/**
* Actionbar
*/
$('.js-user-list-modal-actionbar').livequery(function () {
$( this ).lsActionbarItemSelect({
selectors: {
target_item: '.js-user-list-select .js-user-list-small-item'
}
});
});
/**
* Modals
*/
$('.js-modal-default').lsModal();
$('.js-modal-toggle-default').lsModalToggle();
/**
* Details
*/
$('.js-details-default').lsDetails();
/**
* Dropdowns
*/
$('.js-dropdown-default').livequery(function () {
$(this).lsDropdown();
});
/**
* Fields
*/
$('.js-field-geo-default').lsFieldGeo({
urls: {
regions: aRouter.ajax + 'geo/get/regions/',
cities: aRouter.ajax + 'geo/get/cities/'
}
});
$('.js-field-date-default').livequery(function () {
$(this).lsFieldDate({
language: LANGUAGE
});
});
$('.js-field-time-default').livequery(function () {
$(this).lsFieldTime();
});
$('[data-type=captcha]').livequery(function () {
$(this).lsCaptcha();
});
$('[data-type=recaptcha]').livequery(function () {
$(this).lsReCaptcha({
key: ls.registry.get('recaptcha.site_key')
});
});
/**
* Alerts
*/
$('.js-alert').lsAlert();
/**
* Tooltips
*/
$('.js-tooltip').lsTooltip();
$('.js-popover-default').lsTooltip({
useAttrTitle: false,
trigger: 'click',
classes: 'tooltip-light'
});
if (ls.registry.get('block_stream_show_tip')) {
$('.js-title-comment, .js-title-topic').livequery(function () {
$(this).lsTooltip({
position: {
my: "right center",
at: "left left"
},
show: {
delay: 1500
}
});
});
}
/**
* Autocomplete
*/
$( '.autocomplete-tags' ).lsAutocomplete({
multiple: false,
urls: {
load: aRouter.ajax + 'autocompleter/tag/'
}
});
$( '.autocomplete-tags-sep' ).lsAutocomplete({