1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 11:40:48 +03:00

Доработка шаблона developer-jquery, оформление стены и профиля

This commit is contained in:
Denis Shakhov 2012-03-18 07:45:20 +07:00
parent 790ddbd37a
commit fb8f2fbaa4
39 changed files with 511 additions and 379 deletions

View file

@ -13,6 +13,7 @@ ls.usernote =( function ($) {
} else {
$('#usernote-form-text').val('');
}
$('#usernote-form-text').focus();
return false;
};

View file

@ -31,6 +31,7 @@ ls.wall = (function ($) {
this.addReply = function(sText) {
var url = aRouter['profile']+this.options.login+'/wall/add/';
var params = {sText: sText, iPid: this.iIdForReply};
console.log(params);
'*addReplyBefore*'; '*/addReplyBefore*';
ls.ajax(url, params, function(result) {
if (result.bStateError) {
@ -62,7 +63,7 @@ ls.wall = (function ($) {
};
this.loadNext = function() {
var divLast=$('#wall-contener').find('.js-wall-item:last');
var divLast=$('#wall-container').find('.js-wall-item:last');
if (divLast.length) {
var idLess=divLast.attr('id').replace('wall-item-','');
} else {
@ -73,7 +74,7 @@ ls.wall = (function ($) {
ls.msg.error(null, result.sMsg);
} else {
if (result.iCountWall) {
$('#wall-contener').append(result.sText);
$('#wall-container').append(result.sText);
}
var iCount=result.iCountWall-result.iCountWallReturn;
if (iCount) {
@ -88,7 +89,7 @@ ls.wall = (function ($) {
};
this.loadNew = function() {
var divFirst=$('#wall-contener').find('.js-wall-item:first');
var divFirst=$('#wall-container').find('.js-wall-item:first');
if (divFirst.length) {
var idMore=divFirst.attr('id').replace('wall-item-','');
} else {
@ -99,7 +100,7 @@ ls.wall = (function ($) {
ls.msg.error(null, result.sMsg);
} else {
if (result.iCountWall) {
$('#wall-contener').prepend(result.sText);
$('#wall-container').prepend(result.sText);
}
ls.hook.run('ls_wall_loadnew_after',[idMore, result]);
}
@ -108,7 +109,7 @@ ls.wall = (function ($) {
};
this.loadReplyNew = function(iPid) {
var divFirst=$('#wall-reply-contener-'+iPid).find('.js-wall-reply-item::first');
var divFirst=$('#wall-reply-container-'+iPid).find('.js-wall-reply-item::first');
if (divFirst.length) {
var idMore=divFirst.attr('id').replace('wall-reply-item-','');
} else {
@ -119,7 +120,7 @@ ls.wall = (function ($) {
ls.msg.error(null, result.sMsg);
} else {
if (result.iCountWall) {
$('#wall-reply-contener-'+iPid).prepend(result.sText);
$('#wall-reply-container-'+iPid).prepend(result.sText);
}
ls.hook.run('ls_wall_loadreplynew_after',[iPid, idMore, result]);
}
@ -128,7 +129,7 @@ ls.wall = (function ($) {
};
this.loadReplyNext = function(iPid) {
var divLast=$('#wall-reply-contener-'+iPid).find('.js-wall-reply-item:last');
var divLast=$('#wall-reply-container-'+iPid).find('.js-wall-reply-item:last');
if (divLast.length) {
var idLess=divLast.attr('id').replace('wall-reply-item-','');
} else {
@ -139,7 +140,7 @@ ls.wall = (function ($) {
ls.msg.error(null, result.sMsg);
} else {
if (result.iCountWall) {
$('#wall-reply-contener-'+iPid).append(result.sText);
$('#wall-reply-container-'+iPid).append(result.sText);
}
var iCount=result.iCountWall-result.iCountWallReturn;
if (iCount) {
@ -158,7 +159,7 @@ ls.wall = (function ($) {
if (iId==this.iIdForReply) {
reply.toggle();
} else {
reply.insertBefore($('#wall-reply-contener-'+iId));
reply.insertBefore($('#wall-reply-container-'+iId));
reply.show();
this.iIdForReply=iId;
}

View file

@ -25,7 +25,7 @@ return array(
* Блоги
*/
'blogs' => 'Блоги',
'blogs_title' => 'Название и смотритель',
'blogs_title' => 'Название',
'blogs_readers' => 'Читателей',
'blogs_rating' => 'Рейтинг',
'blogs_owner' => 'Смотритель',
@ -697,7 +697,7 @@ return array(
'talk_inbox_target' => 'Адресаты',
'talk_inbox_title' => 'Тема',
'talk_inbox_date' => 'Дата',
'talk_inbox_delete' => 'Удалить переписку',
'talk_inbox_delete' => 'Удалить выделенное',
'talk_inbox_delete_confirm' => 'Действительно удалить переписку?',
'talk_comments' => 'Переписка',
'talk_comment_add_text_error' => 'Текст комментария должен быть от 2 до 3000 символов',

View file

@ -9,7 +9,7 @@
<table class="table table-plugins">
<thead>
<tr>
<th class="table-plugins-cell-checkbox"><input type="checkbox" name="" onclick="ls.tools.checkAll('form_plugins_checkbox', this, true);" /></th>
<th class="cell-checkbox"><input type="checkbox" name="" onclick="ls.tools.checkAll('form_plugins_checkbox', this, true);" /></th>
<th>{$aLang.plugins_plugin_name}</th>
<th>{$aLang.plugins_plugin_version}</th>
<th>{$aLang.plugins_plugin_author}</th>
@ -21,7 +21,7 @@
<tbody>
{foreach from=$aPlugins item=aPlugin}
<tr {if $aPlugin.is_active}class="active"{/if}>
<td class="table-plugins-cell-checkbox"><input type="checkbox" name="plugin_del[{$aPlugin.code}]" class="form_plugins_checkbox" /></td>
<td class="cell-checkbox"><input type="checkbox" name="plugin_del[{$aPlugin.code}]" class="form_plugins_checkbox" /></td>
<td>
<h3>{$aPlugin.property->name->data}</h3>
{$aPlugin.property->description->data}

View file

@ -1,4 +1,13 @@
{include file='header.tpl' menu="profile"}
{assign var="sidebarPosition" value='left'}
{include file='header.tpl'}
{include file='actions/ActionProfile/profile_top.tpl'}
{include file='menu.profile_submitted.tpl'}
{include file='topic_list.tpl'}
{include file='footer.tpl'}

View file

@ -1,3 +1,12 @@
{include file='header.tpl' menu="profile"}
{assign var="sidebarPosition" value='left'}
{include file='header.tpl'}
{include file='actions/ActionProfile/profile_top.tpl'}
{include file='menu.profile_submitted.tpl'}
{include file='comment_list.tpl'}
{include file='footer.tpl'}

View file

@ -1,3 +1,15 @@
{include file='header.tpl' menu="profile"}
{assign var="sidebarPosition" value='left'}
{include file='header.tpl'}
{include file='actions/ActionProfile/profile_top.tpl'}
<h3 class="profile-page-header">Избранное</h3>
{include file='menu.profile_favourite.tpl'}
{include file='comment_list.tpl'}
{include file='footer.tpl'}

View file

@ -1,4 +1,16 @@
{include file='header.tpl' menu="profile"}
{assign var="sidebarPosition" value='left'}
{include file='header.tpl'}
{include file='actions/ActionProfile/profile_top.tpl'}
<h3 class="profile-page-header">Избранное</h3>
{include file='menu.profile_favourite.tpl'}
{include file='topic_list.tpl'}
{include file='footer.tpl'}

View file

@ -1,9 +1,29 @@
{include file='header.tpl' menu="profile"}
{assign var="sidebarPosition" value='left'}
{include file='header.tpl'}
{include file='actions/ActionProfile/profile_top.tpl'}
{include file='menu.profile_submitted.tpl'}
{if $aNotes}
<table class="table table-profile-notes" cellspacing="0">
{foreach from=$aNotes item=oNote}
<tr>
<td class="cell-username"><a href="{router page='profile'}{$oNote->getTargetUser()->getLogin()}/">{$oNote->getTargetUser()->getLogin()}</a></td>
<td class="cell-note">{$oNote->getText()}</td>
<td class="cell-date">{date_format date=$oNote->getDateAdd() format="j F Y"}</td>
</tr>
{/foreach}
</table>
{else}
<div class="notice-empty">Тут ничего нет</div>
{/if}
{foreach from=$aNotes item=oNote}
{$oNote->getTargetUser()->getLogin()} &mdash; {$oNote->getText()} &mdash; {$oNote->getDateAdd()} <br/>
{/foreach}
{include file='paging.tpl' aPaging="$aPaging"}
{include file='footer.tpl'}

View file

@ -0,0 +1,27 @@
<div class="profile">
<img src="{$oUserProfile->getProfileAvatarPath(48)}" alt="avatar" class="avatar" />
<div id="vote_area_user_{$oUserProfile->getId()}" class="vote {if $oUserProfile->getRating()>=0}vote-count-positive{else}vote-count-negative{/if} {if $oVote} voted {if $oVote->getDirection()>0}voted-up{elseif $oVote->getDirection()<0}voted-down{/if}{/if}">
<a href="#" class="vote-up" onclick="return ls.vote.vote({$oUserProfile->getId()},this,1,'user');"></a>
<div id="vote_total_user_{$oUserProfile->getId()}" class="vote-count" title="{$aLang.user_vote_count}: {$oUserProfile->getCountVote()}">{$oUserProfile->getRating()}</div>
<a href="#" class="vote-down" onclick="return ls.vote.vote({$oUserProfile->getId()},this,-1,'user');"></a>
</div>
<p class="strength">
{$aLang.user_skill}: <strong class="total" id="user_skill_{$oUserProfile->getId()}">{$oUserProfile->getSkill()}</strong>
</p>
<h2 class="page-header user-login">{$oUserProfile->getLogin()}</h2>
{if $oUserProfile->getProfileName()}
<p class="user-name">{$oUserProfile->getProfileName()|escape:'html'}</p>
{/if}
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
<ul id="profile_actions">
{include file='actions/ActionProfile/friend_item.tpl' oUserFriend=$oUserProfile->getUserFriend()}
<li><a href="{router page='talk'}add/?talk_users={$oUserProfile->getLogin()}">{$aLang.user_write_prvmsg}</a></li>
</ul>
{/if}
</div>

View file

@ -8,11 +8,52 @@
<img src="{cfg name='path.static.skin'}/images/no_photo.png" alt="photo" class="profile-photo" />
</a>
{/if}
</section>
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
<section class="block block-type-profile-note">
{if $oUserNote}
<script type="text/javascript">
ls.usernote.sText = {json var = $oUserNote->getText()};
</script>
{/if}
<div id="usernote-note" class="profile-note" {if !$oUserNote}style="display: none;"{/if}>
<p id="usernote-note-text">
{if $oUserNote}
{$oUserNote->getText()}
{/if}
</p>
<ul class="actions">
<li><a href="#" onclick="return ls.usernote.showForm();" class="link-dotted">{$aLang.user_note_form_edit}</a></li>
<li><a href="#" onclick="return ls.usernote.remove({$oUserProfile->getId()});" class="link-dotted">{$aLang.user_note_form_delete}</a></li>
</ul>
</div>
<div id="usernote-form" style="display: none;">
<p><textarea rows="4" cols="20" id="usernote-form-text" class="input-text input-width-full"></textarea></p>
<button onclick="return ls.usernote.save({$oUserProfile->getId()});" class="button button-primary">{$aLang.user_note_form_save}</button>
<button onclick="return ls.usernote.hideForm();" class="button">{$aLang.user_note_form_cancel}</button>
</div>
<a href="#" onclick="return ls.usernote.showForm();" id="usernote-button-add" class="link-dotted" {if $oUserNote}style="display:none;"{/if}>{$aLang.user_note_add}</a>
</section>
{/if}
<section class="block block-type-profile-nav">
<ul class="nav nav-profile">
<li class="active"><a href="#">Стена</a></li>
<li><a href="#">Информация</a></li>
<li><a href="#">Публикации</a></li>
<li><a href="#">Избранное</a></li>
<li {if $sAction=='profile' && ($aParams[0]=='whois' or $aParams[0]=='')}class="active"{/if}><a href="{$oUserProfile->getUserWebPath()}">Информация</a></li>
<li {if $sAction=='profile' && $aParams[0]=='wall'}class="active"{/if}><a href="{router page='profile'}{$oUserProfile->getLogin()}/wall/">Стена</a></li>
<li {if $sAction=='my' || ($sAction=='profile' && $aParams[0]=='notes')}class="active"{/if}>
<a href="{router page='my'}{$oUserProfile->getLogin()}/">
{$aLang.user_menu_publication} {if ($iCountCommentUser+$iCountTopicUser) > 0} ({$iCountCommentUser+$iCountTopicUser}) {/if}
</a>
</li>
<li {if $sAction=='profile' && $aParams[0]=='favourites'}class="active"{/if}><a href="{router page='profile'}{$oUserProfile->getLogin()}/favourites/">Избранное</a></li>
</ul>
</section>

View file

@ -4,67 +4,42 @@
{assign var="oSession" value=$oUserProfile->getSession()}
{assign var="oVote" value=$oUserProfile->getVote()}
<div class="profile">
<img src="{$oUserProfile->getProfileAvatarPath(48)}" alt="avatar" class="avatar" />
<div id="vote_area_user_{$oUserProfile->getId()}" class="vote {if $oUserProfile->getRating()>=0}vote-count-positive{else}vote-count-negative{/if} {if $oVote} voted {if $oVote->getDirection()>0}voted-up{elseif $oVote->getDirection()<0}voted-down{/if}{/if}">
<a href="#" class="vote-up" onclick="return ls.vote.vote({$oUserProfile->getId()},this,1,'user');"></a>
<div id="vote_total_user_{$oUserProfile->getId()}" class="vote-count" title="{$aLang.user_vote_count}: {$oUserProfile->getCountVote()}">{$oUserProfile->getRating()}</div>
<a href="#" class="vote-down" onclick="return ls.vote.vote({$oUserProfile->getId()},this,-1,'user');"></a>
</div>
<p class="strength">
{$aLang.user_skill}: <strong class="total" id="user_skill_{$oUserProfile->getId()}">{$oUserProfile->getSkill()}</strong>
</p>
<h2 class="page-header user-login">{$oUserProfile->getLogin()}</h2>
{if $oUserProfile->getProfileName()}
<p class="user-name">{$oUserProfile->getProfileName()|escape:'html'}</p>
{/if}
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
<ul id="profile_actions">
{include file='actions/ActionProfile/friend_item.tpl' oUserFriend=$oUserProfile->getUserFriend()}
<li><a href="{router page='talk'}add/?talk_users={$oUserProfile->getLogin()}">{$aLang.user_write_prvmsg}</a></li>
</ul>
{/if}
</div>
{include file='actions/ActionProfile/profile_top.tpl'}
<h3 class="profile-page-header">Стена</h3>
{include file='menu.profile.tpl'}
<script type="text/javascript">
ls.wall.init({
login:'{$oUserProfile->getLogin()}'
});
<script>
ls.wall.init({
login:'{$oUserProfile->getLogin()}'
});
</script>
Написать на стену:<br>
<textarea rows="4" cols="30" id="wall-text"></textarea>
<br>
<input type="submit" value="отправить" onclick="ls.wall.add(jQuery('#wall-text').val(),0);">
<div id="wall-contener">
<form class="wall-submit">
<label for="wall-text">Написать на стене:</label>
<p><textarea rows="4" id="wall-text" class="input-text input-width-full"></textarea></p>
<button type="button" onclick="ls.wall.add(jQuery('#wall-text').val(),0);" class="button button-primary">Отправить</button>
</form>
<div id="wall-container" class="comments wall">
{include file='actions/ActionProfile/wall_items.tpl'}
</div>
{if count($aWall)}
<br>
<a href="#" onclick="return ls.wall.loadNext();" id="wall-button-next">Показать еще, еще <span id="wall-count-next">{$iCountWall-count($aWall)}</span></a>
<a href="#" onclick="return ls.wall.loadNext();" id="wall-button-next" class="wall-more">К предыдущим записям (<span id="wall-count-next">{$iCountWall-count($aWall)}</span>)</a>
{/if}
<div id="wall-reply-form" style="display:none;">
<textarea rows="4" cols="30" id="wall-reply-text"></textarea>
<br>
<input type="submit" value="отправить" onclick="ls.wall.addReply(jQuery('#wall-reply-text').val());">
</div>
<form id="wall-reply-form" class="wall-submit wall-submit-reply" style="display: none;">
<p><textarea rows="4" id="wall-reply-text" class="input-text input-width-full"></textarea></p>
<button type="button" onclick="ls.wall.addReply(jQuery('#wall-reply-text').val());" class="button button-primary">Отправить</button>
</form>
{include file='footer.tpl'}

View file

@ -1,22 +1,37 @@
{foreach from=$aWall item=oWall}
{assign var="oWallUser" value=$oWall->getUser()}
{assign var="aReplyWall" value=$oWall->getLastReplyWall()}
<div id="wall-item-{$oWall->getId()}" class="js-wall-item">
{$oWallUser->getLogin()} {date_format date=$oWall->getDateAdd() format="j F Y, H:i"}
<br>
{$oWall->getText()} - ({$oWall->getId()})
<br>
<a href="#" id="wall-button-reply" onclick="return ls.wall.toggleReply({$oWall->getId()});">Ответить</a>
<div id="wall-reply-contener-{$oWall->getId()}" style="border: 1px solid red;">
<div id="wall-item-{$oWall->getId()}" class="js-wall-item comment-wrapper">
<div class="comment">
<a href="{$oWallUser->getUserWebPath()}"><img src="{$oWallUser->getProfileAvatarPath(48)}" alt="avatar" class="comment-avatar" /></a>
<ul class="comment-info clearfix">
<li class="comment-author"><a href="{$oWallUser->getUserWebPath()}">{$oWallUser->getLogin()}</a></li>
<li class="comment-date"><time datetime="{date_format date=$oWall->getDateAdd() format='c'}">{date_format date=$oWall->getDateAdd() hours_back="12" minutes_back="60" now="60" day="day H:i" format="j F Y, H:i"}</time></li>
</ul>
<div class="comment-content text">
{$oWall->getText()}
</div>
<ul class="comment-actions">
<li><a href="#" id="wall-button-reply" onclick="return ls.wall.toggleReply({$oWall->getId()});" class="link-dotted">Ответить</a></li>
</ul>
</div>
{if count($aReplyWall) < $oWall->getCountReply()}
<a href="#" onclick="return ls.wall.loadReplyNext({$oWall->getId()});" id="wall-reply-button-next-{$oWall->getId()}" class="wall-more wall-more-reply">
Показать все <span id="wall-reply-count-next-{$oWall->getId()}">{$oWall->getCountReply()}</span> {$oWall->getCountReply()|declension:$aLang.comment_declension:'russian'}
</a>
{/if}
<div id="wall-reply-container-{$oWall->getId()}" class="comment-wrapper">
{if $aReplyWall}
{include file='actions/ActionProfile/wall_items_reply.tpl'}
{/if}
</div>
{if count($aReplyWall) < $oWall->getCountReply()}
<a href="#" onclick="return ls.wall.loadReplyNext({$oWall->getId()});" id="wall-reply-button-next-{$oWall->getId()}">Остальные ответы, еще <span id="wall-reply-count-next-{$oWall->getId()}">{$oWall->getCountReply()-count($aReplyWall)}</span></a>
{/if}
</div>
{/foreach}

View file

@ -1,8 +1,15 @@
{foreach from=$aReplyWall item=oReplyWall}
{assign var="oReplyUser" value=$oReplyWall->getUser()}
<div id="wall-reply-item-{$oReplyWall->getId()}" class="js-wall-reply-item">
{$oReplyUser->getLogin()} {date_format date=$oReplyWall->getDateAdd() format="j F Y, H:i"}
<br>
{$oReplyWall->getText()} - ({$oReplyWall->getId()})
<div id="wall-reply-item-{$oReplyWall->getId()}" class="js-wall-reply-item comment wall-comment-reply">
<a href="{$oReplyUser->getUserWebPath()}"><img src="{$oReplyUser->getProfileAvatarPath(48)}" alt="avatar" class="comment-avatar" /></a>
<ul class="comment-info clearfix">
<li class="comment-author"><a href="{$oReplyUser->getUserWebPath()}">{$oReplyUser->getLogin()}</a></li>
<li class="comment-date"><time datetime="{date_format date=$oReplyWall->getDateAdd() format='c'}">{date_format date=$oReplyWall->getDateAdd() hours_back="12" minutes_back="60" now="60" day="day H:i" format="j F Y, H:i"}</time></li>
</ul>
<div class="comment-content text">
{$oReplyWall->getText()}
</div>
</div>
{/foreach}

View file

@ -4,65 +4,21 @@
{assign var="oSession" value=$oUserProfile->getSession()}
{assign var="oVote" value=$oUserProfile->getVote()}
<div class="profile">
<img src="{$oUserProfile->getProfileAvatarPath(48)}" alt="avatar" class="avatar" />
<div id="vote_area_user_{$oUserProfile->getId()}" class="vote {if $oUserProfile->getRating()>=0}vote-count-positive{else}vote-count-negative{/if} {if $oVote} voted {if $oVote->getDirection()>0}voted-up{elseif $oVote->getDirection()<0}voted-down{/if}{/if}">
<a href="#" class="vote-up" onclick="return ls.vote.vote({$oUserProfile->getId()},this,1,'user');"></a>
<div id="vote_total_user_{$oUserProfile->getId()}" class="vote-count" title="{$aLang.user_vote_count}: {$oUserProfile->getCountVote()}">{$oUserProfile->getRating()}</div>
<a href="#" class="vote-down" onclick="return ls.vote.vote({$oUserProfile->getId()},this,-1,'user');"></a>
</div>
<p class="strength">
{$aLang.user_skill}: <strong class="total" id="user_skill_{$oUserProfile->getId()}">{$oUserProfile->getSkill()}</strong>
</p>
<h2 class="page-header user-login">{$oUserProfile->getLogin()}</h2>
{if $oUserProfile->getProfileName()}
<p class="user-name">{$oUserProfile->getProfileName()|escape:'html'}</p>
{/if}
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
<ul id="profile_actions">
{include file='actions/ActionProfile/friend_item.tpl' oUserFriend=$oUserProfile->getUserFriend()}
<li><a href="{router page='talk'}add/?talk_users={$oUserProfile->getLogin()}">{$aLang.user_write_prvmsg}</a></li>
</ul>
{/if}
</div>
<h3 class="profile-page-header">Стена</h3>
{include file='actions/ActionProfile/profile_top.tpl'}
<h3 class="profile-page-header">Информация</h3>
{include file='menu.profile.tpl'}
{if $oUserProfile->getProfileIcq()}
<h3>{$aLang.profile_social_contacts}</h3>
<ul>
{if $oUserProfile->getProfileIcq()}
<li>ICQ: <a href="http://www.icq.com/people/about_me.php?uin={$oUserProfile->getProfileIcq()|escape:'html'}" target="_blank">{$oUserProfile->getProfileIcq()}</a></li>
{/if}
</ul>
{/if}
{assign var="aUserFieldContactValues" value=$oUserProfile->getUserFieldValues(true,array('contact','social'))}
<ul>
{foreach from=$aUserFieldContactValues item=oField}
<li>{$oField->getTitle()|escape:'html'}: {$oField->getValue(true,true)}</li>
{/foreach}
</ul>
{if $oUserProfile->getProfileSex()!='other' || $oUserProfile->getProfileBirthday() || ($oUserProfile->getProfileCountry() || $oUserProfile->getProfileRegion() || $oUserProfile->getProfileCity()) || $oUserProfile->getProfileAbout() || $oUserProfile->getProfileSite() || count($aUserFields)}
<h2>{$aLang.profile_privat}</h2>
<table class="table">
<h2 class="header-table">{$aLang.profile_privat}</h2>
<table class="table table-profile-info">
{if $oUserProfile->getProfileSex()!='other'}
<tr>
<td>{$aLang.profile_sex}:</td>
<td class="cell-label">{$aLang.profile_sex}:</td>
<td>
{if $oUserProfile->getProfileSex()=='man'}
{$aLang.profile_sex_man}
@ -73,37 +29,42 @@
</tr>
{/if}
{if $oUserProfile->getProfileBirthday()}
<tr>
<td>{$aLang.profile_birthday}:</td>
<td class="cell-label">{$aLang.profile_birthday}:</td>
<td>{date_format date=$oUserProfile->getProfileBirthday() format="j F Y"}</td>
</tr>
{/if}
{if ($oUserProfile->getProfileCountry()|| $oUserProfile->getProfileRegion() || $oUserProfile->getProfileCity())}
<tr>
<td>{$aLang.profile_place}:</td>
<td class="cell-label">{$aLang.profile_place}:</td>
<td>
{if $oUserProfile->getProfileCountry()}
<a href="{router page='people'}country/{$oUserProfile->getProfileCountry()|escape:'html'}/">{$oUserProfile->getProfileCountry()|escape:'html'}</a>{if $oUserProfile->getProfileCity()},{/if}
{/if}
{if $oUserProfile->getProfileCity()}
<a href="{router page='people'}city/{$oUserProfile->getProfileCity()|escape:'html'}/">{$oUserProfile->getProfileCity()|escape:'html'}</a>
{/if}
{if $oUserProfile->getProfileCountry()}
<a href="{router page='people'}country/{$oUserProfile->getProfileCountry()|escape:'html'}/">{$oUserProfile->getProfileCountry()|escape:'html'}</a>{if $oUserProfile->getProfileCity()},{/if}
{/if}
{if $oUserProfile->getProfileCity()}
<a href="{router page='people'}city/{$oUserProfile->getProfileCity()|escape:'html'}/">{$oUserProfile->getProfileCity()|escape:'html'}</a>
{/if}
</td>
</tr>
{/if}
{if $oUserProfile->getProfileAbout()}
<tr>
<td>{$aLang.profile_about}:</td>
<td class="cell-label">{$aLang.profile_about}:</td>
<td>{$oUserProfile->getProfileAbout()|escape:'html'}</td>
</tr>
{/if}
{if $oUserProfile->getProfileSite()}
<tr>
<td>{$aLang.profile_site}:</td>
<td class="cell-label">{$aLang.profile_site}:</td>
<td>
<a href="{$oUserProfile->getProfileSite(true)|escape:'html'}" rel="nofollow">
{if $oUserProfile->getProfileSiteName()}
@ -115,25 +76,58 @@
</td>
</tr>
{/if}
{if count($aUserFields)}
{foreach from=$aUserFields item=oField}
<tr>
<td class="var">{$oField->getTitle()|escape:'html'}:</td>
<td class="cell-label">{$oField->getTitle()|escape:'html'}:</td>
<td>{$oField->getValue(true,true)}</td>
</tr>
{/foreach}
{/if}
{hook run='profile_whois_privat_item' oUserProfile=$oUserProfile}
</table>
{/if}
{if $aUserFieldContactValues || $oUserProfile->getProfileIcq()}
<h2 class="header-table">{$aLang.profile_social_contacts}</h2>
<table class="table table-profile-info">
{if $oUserProfile->getProfileIcq()}
<tr>
<td class="cell-label">ICQ:</td>
<td><a href="http://www.icq.com/people/about_me.php?uin={$oUserProfile->getProfileIcq()|escape:'html'}" target="_blank">{$oUserProfile->getProfileIcq()}</a></td>
</tr>
{/if}
{assign var="aUserFieldContactValues" value=$oUserProfile->getUserFieldValues(true,array('contact','social'))}
{foreach from=$aUserFieldContactValues item=oField}
<tr>
<td class="cell-label">{$oField->getTitle()|escape:'html'}:</td>
<td>{$oField->getValue(true,true)}</td>
</tr>
{/foreach}
</table>
{/if}
{hook run='profile_whois_item' oUserProfile=$oUserProfile}
<h2>{$aLang.profile_activity}</h2>
<table class="table">
<h2 class="header-table">{$aLang.profile_activity}</h2>
<table class="table table-profile-info">
{if $aUsersFriend}
<tr>
<td>{$aLang.profile_friends}:</td>
<td class="cell-label">{$aLang.profile_friends}:</td>
<td>
{foreach from=$aUsersFriend item=oUser}
<a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>
@ -142,18 +136,20 @@
</tr>
{/if}
{if $oConfig->GetValue('general.reg.invite') and $oUserInviteFrom}
<tr>
<td>{$aLang.profile_invite_from}:</td>
<td class="cell-label">{$aLang.profile_invite_from}:</td>
<td>
<a href="{$oUserInviteFrom->getUserWebPath()}">{$oUserInviteFrom->getLogin()}</a>&nbsp;
</td>
</tr>
{/if}
{if $oConfig->GetValue('general.reg.invite') and $aUsersInvite}
<tr>
<td>{$aLang.profile_invite_to}:</td>
<td class="cell-label">{$aLang.profile_invite_to}:</td>
<td>
{foreach from=$aUsersInvite item=oUserInvite}
<a href="{$oUserInvite->getUserWebPath()}">{$oUserInvite->getLogin()}</a>&nbsp;
@ -162,9 +158,10 @@
</tr>
{/if}
{if $aBlogsOwner}
<tr>
<td>{$aLang.profile_blogs_self}:</td>
<td class="cell-label">{$aLang.profile_blogs_self}:</td>
<td>
{foreach from=$aBlogsOwner item=oBlog name=blog_owner}
<a href="{$oBlog->getUrlFull()}">{$oBlog->getTitle()|escape:'html'}</a>{if !$smarty.foreach.blog_owner.last}, {/if}
@ -173,9 +170,10 @@
</tr>
{/if}
{if $aBlogAdministrators}
<tr>
<td>{$aLang.profile_blogs_administration}:</td>
<td class="cell-label">{$aLang.profile_blogs_administration}:</td>
<td>
{foreach from=$aBlogAdministrators item=oBlogUser name=blog_user}
{assign var="oBlog" value=$oBlogUser->getBlog()}
@ -185,9 +183,10 @@
</tr>
{/if}
{if $aBlogModerators}
<tr>
<td>{$aLang.profile_blogs_moderation}:</td>
<td class="cell-label">{$aLang.profile_blogs_moderation}:</td>
<td>
{foreach from=$aBlogModerators item=oBlogUser name=blog_user}
{assign var="oBlog" value=$oBlogUser->getBlog()}
@ -197,9 +196,10 @@
</tr>
{/if}
{if $aBlogUsers}
<tr>
<td>{$aLang.profile_blogs_join}:</td>
<td class="cell-label">{$aLang.profile_blogs_join}:</td>
<td>
{foreach from=$aBlogUsers item=oBlogUser name=blog_user}
{assign var="oBlog" value=$oBlogUser->getBlog()}
@ -209,45 +209,24 @@
</tr>
{/if}
{hook run='profile_whois_activity_item' oUserProfile=$oUserProfile}
<tr>
<td>{$aLang.profile_date_registration}:</td>
<td class="cell-label">{$aLang.profile_date_registration}:</td>
<td>{date_format date=$oUserProfile->getDateRegister()}</td>
</tr>
{if $oSession}
<tr>
<td>{$aLang.profile_date_last}:</td>
<td class="cell-label">{$aLang.profile_date_last}:</td>
<td>{date_format date=$oSession->getDateLast()}</td>
</tr>
{/if}
</table>
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
{if $oUserNote}
<script type="text/javascript">
ls.usernote.sText={json var=$oUserNote->getText()};
</script>
{/if}
<div id="usernote-note" {if !$oUserNote}style="display:none;"{/if}>
<div id="usernote-note-text">
{if $oUserNote}
{$oUserNote->getText()}
{/if}
</div>
<a href="#" onclick="return ls.usernote.showForm();">{$aLang.user_note_form_edit}</a>
<a href="#" onclick="return ls.usernote.remove({$oUserProfile->getId()});">{$aLang.user_note_form_delete}</a>
</div>
<div id="usernote-form" style="display:none;">
<textarea rows="4" cols="20" id="usernote-form-text"></textarea><br/>
<button onclick="return ls.usernote.save({$oUserProfile->getId()});">{$aLang.user_note_form_save}</button>
<button onclick="return ls.usernote.hideForm();">{$aLang.user_note_form_cancel}</button>
</div>
<a href="#" onclick="return ls.usernote.showForm();" id="usernote-button-add" {if $oUserNote}style="display:none;"{/if}>{$aLang.user_note_add}</a>
{/if}
{include file='footer.tpl'}

View file

@ -23,8 +23,8 @@
{hook run='form_add_talk_end'}
<input type="submit" class="button" value="{$aLang.talk_create_submit}" name="submit_talk_add" />
<input type="submit" class="button" name="submit_preview" value="{$aLang.topic_create_submit_preview}" onclick="jQuery('#text_preview').parent().show(); ls.tools.textPreview('talk_text',false); return false;" />
<button class="button button-primary" name="submit_talk_add">{$aLang.talk_create_submit}</button>
<button class="button" name="submit_preview" onclick="jQuery('#text_preview').parent().show(); ls.tools.textPreview('talk_text',false); return false;">{$aLang.topic_create_submit_preview}</button>
</form>

View file

@ -1,10 +1,10 @@
<div class="block">
<h2>{$aLang.talk_blacklist_title}</h2>
<section class="block">
<h3>{$aLang.talk_blacklist_title}</h3>
<form onsubmit="return ls.talk.addToBlackList();">
<p><label>{$aLang.talk_balcklist_add_label}:<br />
<input type="text" id="talk_blacklist_add" name="add" class="input-wide autocomplete-users" /></label></p>
<p><label for="talk_blacklist_add">{$aLang.talk_balcklist_add_label}:</label>
<input type="text" id="talk_blacklist_add" name="add" class="input-text input-width-full autocomplete-users" /></p>
</form>
@ -17,4 +17,4 @@
</ul>
{/if}
</div>
</div>
</section>

View file

@ -10,7 +10,7 @@
<th>{$aLang.talk_inbox_target}</th>
<th></th>
<th>{$aLang.talk_inbox_title}</th>
<th>{$aLang.talk_inbox_date}</th>
<th class="ta-r">{$aLang.talk_inbox_date}</th>
</tr>
</thead>
@ -27,7 +27,7 @@
{/foreach}
</td>
<td align="center">
<td class="ta-c">
<a href="#" onclick="return ls.favourite.toggle({$oTalk->getId()},this,'talk');" class="favourite {if $oTalk->getIsFavourite()}active{/if}"></a>
</td>
<td>
@ -41,7 +41,7 @@
{$oTalk->getCountComment()} {if $oTalkUserAuthor->getCommentCountNew()}+{$oTalkUserAuthor->getCommentCountNew()}{/if}
{/if}
</td>
<td align="center">{date_format date=$oTalk->getDate()}</td>
<td class="ta-r">{date_format date=$oTalk->getDate()}</td>
</tr>
{/foreach}
</tbody>

View file

@ -4,7 +4,10 @@
{if $aUsersFriend}
<ul class="list" id="friends">
{foreach from=$aUsersFriend item=oFriend}
<li><input id="talk_friend_{$oFriend->getId()}" type="checkbox" name="friend[{$oFriend->getId()}]" class="checkbox" /><label for="talk_friend_{$oFriend->getId()}" id="talk_friend_{$oFriend->getId()}_label">{$oFriend->getLogin()}</label></li>
<li>
<input id="talk_friend_{$oFriend->getId()}" type="checkbox" name="friend[{$oFriend->getId()}]" class="input-checkbox" />
<label for="talk_friend_{$oFriend->getId()}" id="talk_friend_{$oFriend->getId()}_label">{$oFriend->getLogin()}</label>
</li>
{/foreach}
</ul>

View file

@ -2,55 +2,59 @@
{include file='menu.talk.tpl'}
<form action="{router page='talk'}" method="post" id="form_talks_list">
<input type="hidden" name="security_ls_key" value="{$LIVESTREET_SECURITY_KEY}" />
{if $aTalks}
<form action="{router page='talk'}" method="post" id="form_talks_list">
<input type="hidden" name="security_ls_key" value="{$LIVESTREET_SECURITY_KEY}" />
<table class="table">
<thead>
<tr>
<td width="20"><input type="checkbox" name="" onclick="ls.tools.checkAll('form_talks_checkbox', this);"></td>
<td width="150">{$aLang.talk_inbox_target}</td>
<td width="20"></td>
<td>{$aLang.talk_inbox_title}</td>
<td width="170" align="center">{$aLang.talk_inbox_date}</td>
</tr>
</thead>
<table class="table">
<thead>
<tr>
<th><input type="checkbox" name="" onclick="ls.tools.checkAll('form_talks_checkbox', this);"></th>
<th>{$aLang.talk_inbox_target}</th>
<th></th>
<th>{$aLang.talk_inbox_title}</th>
<th class="ta-r">{$aLang.talk_inbox_date}</th>
</tr>
</thead>
<tbody>
{foreach from=$aTalks item=oTalk}
{assign var="oTalkUserAuthor" value=$oTalk->getTalkUser()}
<tr>
<td><input type="checkbox" name="talk_del[{$oTalk->getId()}]" class="form_talks_checkbox" /></td>
<td>
{foreach from=$oTalk->getTalkUsers() item=oTalkUser name=users}
{if $oTalkUser->getUserId()!=$oUserCurrent->getId()}
{assign var="oUser" value=$oTalkUser->getUser()}
<a href="{$oUser->getUserWebPath()}" class="user {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}inactive{/if}">{$oUser->getLogin()}</a>
{/if}
{/foreach}
</td>
<td align="center">
<a href="#" onclick="return ls.favourite.toggle({$oTalk->getId()},this,'talk');" class="favourite {if $oTalk->getIsFavourite()}active{/if}"></a>
</td>
<td>
{if $oTalkUserAuthor->getCommentCountNew() or !$oTalkUserAuthor->getDateLast()}
<a href="{router page='talk'}read/{$oTalk->getId()}/"><strong>{$oTalk->getTitle()|escape:'html'}</strong></a>
{else}
<a href="{router page='talk'}read/{$oTalk->getId()}/">{$oTalk->getTitle()|escape:'html'}</a>
{/if}
&nbsp;
{if $oTalk->getCountComment()}
{$oTalk->getCountComment()} {if $oTalkUserAuthor->getCommentCountNew()}+{$oTalkUserAuthor->getCommentCountNew()}{/if}
{/if}
</td>
<td align="center">{date_format date=$oTalk->getDate()}</td>
</tr>
{/foreach}
</tbody>
</table>
<tbody>
{foreach from=$aTalks item=oTalk}
{assign var="oTalkUserAuthor" value=$oTalk->getTalkUser()}
<tr>
<td><input type="checkbox" name="talk_del[{$oTalk->getId()}]" class="form_talks_checkbox input-checkbox" /></td>
<td>
{foreach from=$oTalk->getTalkUsers() item=oTalkUser name=users}
{if $oTalkUser->getUserId()!=$oUserCurrent->getId()}
{assign var="oUser" value=$oTalkUser->getUser()}
<a href="{$oUser->getUserWebPath()}" class="user {if $oTalkUser->getUserActive()!=$TALK_USER_ACTIVE}inactive{/if}">{$oUser->getLogin()}</a>
{/if}
{/foreach}
</td>
<td class="ta-c">
<a href="#" onclick="return ls.favourite.toggle({$oTalk->getId()},this,'talk');" class="favourite {if $oTalk->getIsFavourite()}active{/if}"></a>
</td>
<td>
{if $oTalkUserAuthor->getCommentCountNew() or !$oTalkUserAuthor->getDateLast()}
<a href="{router page='talk'}read/{$oTalk->getId()}/"><strong>{$oTalk->getTitle()|escape:'html'}</strong></a>
{else}
<a href="{router page='talk'}read/{$oTalk->getId()}/">{$oTalk->getTitle()|escape:'html'}</a>
{/if}
&nbsp;
{if $oTalk->getCountComment()}
{$oTalk->getCountComment()} {if $oTalkUserAuthor->getCommentCountNew()}+{$oTalkUserAuthor->getCommentCountNew()}{/if}
{/if}
</td>
<td class="ta-r">{date_format date=$oTalk->getDate()}</td>
</tr>
{/foreach}
</tbody>
</table>
<button name="submit_talk_del" onclick="return (jQuery('.form_talks_checkbox:checked').size() == 0)?false:confirm('{$aLang.talk_inbox_delete_confirm}');">{$aLang.talk_inbox_delete}</button>
</form>
<button name="submit_talk_del" onclick="return (jQuery('.form_talks_checkbox:checked').size() == 0)?false:confirm('{$aLang.talk_inbox_delete_confirm}');" class="button">{$aLang.talk_inbox_delete}</button>
</form>
{else}
<div class="notice-empty">Тут ничего нет</div>
{/if}
{include file='paging.tpl' aPaging="$aPaging"}

View file

@ -4,23 +4,34 @@
{assign var="oUser" value=$oTalk->getUser()}
<div class="topic">
<h2 class="title">{$oTalk->getTitle()|escape:'html'}</h2>
<ul class="actions">
<li class="delete"><a href="{router page='talk'}delete/{$oTalk->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('{$aLang.talk_inbox_delete_confirm}');" class="delete">{$aLang.talk_inbox_delete}</a></li>
</ul>
<div class="content">
<article class="topic">
<header class="topic-header">
<h1 class="topic-title">{$oTalk->getTitle()|escape:'html'}</h1>
<div class="topic-info">
<time datetime="{date_format date=$oTalk->getDate() format='c'}" pubdate>
{date_format date=$oTalk->getDate() format="j F Y, H:i"}
</time>
</div>
</header>
<div class="topic-content text">
{$oTalk->getText()}
</div>
<ul class="info">
<li class="username"><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a></li>
<li class="date">{date_format date=$oTalk->getDate()}</li>
<li><a href="#" onclick="return ls.favourite.toggle({$oTalk->getId()},this,'talk');" class="favourite {if $oTalk->getIsFavourite()}active{/if}"></a></li>
</ul>
</div>
<footer class="topic-footer">
<ul class="actions">
<li class="delete"><a href="{router page='talk'}delete/{$oTalk->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('{$aLang.talk_inbox_delete_confirm}');" class="delete">{$aLang.delete}</a></li>
</ul>
<ul class="topic-info">
<li class="topic-info-author"><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a></li>
<li class="topic-info-favourite"><a href="#" onclick="return ls.favourite.toggle({$oTalk->getId()},this,'talk');" class="favourite {if $oTalk->getIsFavourite()}active{/if}"></a></li>
</ul>
</footer>
</article>
{assign var="oTalkUser" value=$oTalk->getTalkUser()}

View file

@ -1,10 +1,10 @@
<div class="block">
<h2>{$aLang.talk_speaker_title}</h2>
<section class="block">
<h3>{$aLang.talk_speaker_title}</h3>
{if $oTalk->getUserId()==$oUserCurrent->getId() or $oUserCurrent->isAdministrator()}
<form onsubmit="return ls.talk.addToTalk({$oTalk->getId()});">
<p><label>{$aLang.talk_speaker_add_label}:<br />
<input type="text" id="talk_speaker_add" name="add" class="input-wide autocomplete-users" /></label></p>
<p><label for="talk_speaker_add">{$aLang.talk_speaker_add_label}:</label>
<input type="text" id="talk_speaker_add" name="add" class="input-text input-width-full autocomplete-users" /></p>
<input type="hidden" id="talk_id" value="{$oTalk->getId()}" />
</form>
{/if}
@ -26,4 +26,4 @@
</ul>
{/if}
</div>
</div>
</section>

View file

@ -1,14 +1,14 @@
<table class="table table-blogs">
<thead>
<tr>
<th class="table-blogs-cell-name">{$aLang.blogs_title}</th>
<th class="cell-name">{$aLang.blogs_title}</th>
{if $oUserCurrent}
<th class="table-blogs-cell-join">{$aLang.blog_join_leave}</th>
<th class="cell-join">{$aLang.blog_join_leave}</th>
{/if}
<th class="table-blogs-cell-readers">{$aLang.blogs_readers}</th>
<th class="table-blogs-cell-rating align-center">{$aLang.blogs_rating}</th>
<th class="cell-readers">{$aLang.blogs_readers}</th>
<th class="cell-rating align-center">{$aLang.blogs_rating}</th>
</tr>
</thead>
@ -18,7 +18,7 @@
{assign var="oUserOwner" value=$oBlog->getOwner()}
<tr>
<td class="table-blogs-cell-name">
<td class="cell-name">
<a href="{router page='blog'}{$oBlog->getUrl()}/">
<img src="{$oBlog->getAvatarPath(48)}" width="48" height="48" alt="avatar" class="avatar" />
</a>
@ -31,7 +31,7 @@
</td>
{if $oUserCurrent}
<td class="table-blogs-cell-join">
<td class="cell-join">
{if $oUserCurrent->getId() != $oBlog->getOwnerId() and $oBlog->getType() == 'open'}
<a href="#" onclick="ls.blog.toggleJoin(this, {$oBlog->getId()}); return false;">
{if $oBlog->getUserIsJoin()}
@ -46,8 +46,8 @@
</td>
{/if}
<td class="table-blogs-cell-readers" id="blog_user_count_{$oBlog->getId()}">{$oBlog->getCountUser()}</td>
<td class="table-blogs-cell-rating align-center">{$oBlog->getRating()}</td>
<td class="cell-readers" id="blog_user_count_{$oBlog->getId()}">{$oBlog->getCountUser()}</td>
<td class="cell-rating align-center">{$oBlog->getRating()}</td>
</tr>
{/foreach}
</tbody>

View file

@ -25,7 +25,7 @@
<li class="comment-author"><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a></li>
<li class="comment-date">
<a href="{if $oConfig->GetValue('module.comment.nested_per_page')}{router page='comments'}{else}#comment{/if}{$oComment->getId()}" class="link-dotted" title="Ссылка на комментарий">
<time datetime="{date_format date=$oComment->getDate() format='c'}">{date_format date=$oComment->getDate()}</time>
<time datetime="{date_format date=$oComment->getDate() format='c'}">{date_format date=$oComment->getDate() hours_back="12" minutes_back="60" now="60" day="day H:i" format="j F Y, H:i"}</time>
</a>
</li>

View file

@ -1 +1 @@
/* ÃËÎÁÀËÜÍÛÅ ÑÒÈËÈ -------------------------------------- */ body { font-size: 13px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 18px; color: #333; background-color: #eee; } /* ÑÑÛËÊÈ -------------------------------------- */ a { color: #5055b2; text-decoration: none; } a:hover { color: #06e; } a.link-dashed { border-bottom: 1px dashed #5055b2; } a.link-dashed:hover { border-color: #06e; } a.link-dotted { text-decoration: none; border-bottom: 1px dotted #5055b2; } a.link-dotted:hover { border-color: #06e; } /* ÇÀÃÎËÎÂÊÈ -------------------------------------- */ h2.page-header { color: #333; font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 20px; } h2.page-header span { color: #aaa; } /* Øàïêà ñàéòà -------------------------------------- */ #header a { text-decoration: none; } #header .site-name { margin: 0 0 10px; font-size: 54px; line-height: 1em; font-weight: bold; } #header .site-name a:hover { color: #444AA3; } #header .site-description { width: 500px; color: #777; font-size: 15px; } /* Ôóòåð -------------------------------------- */ #footer .copyright { float: right; }
/* ÃËÎÁÀËÜÍÛÅ ÑÒÈËÈ -------------------------------------- */ body { font-size: 13px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 18px; color: #333; background-color: #eee; } /* ÑÑÛËÊÈ -------------------------------------- */ a { color: #5055b2; text-decoration: none; } a:hover { color: #06e; } a.link-dashed { border-bottom: 1px dashed #5055b2; } a.link-dashed:hover { border-color: #06e; } a.link-dotted { text-decoration: none; border-bottom: 1px dotted #5055b2; } a.link-dotted:hover { border-color: #06e; } /* ÇÀÃÎËÎÂÊÈ -------------------------------------- */ h2.page-header { color: #333; font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 20px; } h2.page-header span { color: #aaa; } h2.header-table { margin-bottom: 0; border-bottom: 1px solid #eee; padding-bottom: 5px; font-size: 14px; font-weight: bold; } /* Øàïêà ñàéòà -------------------------------------- */ #header a { text-decoration: none; } #header .site-name { margin: 0 0 10px; font-size: 54px; line-height: 1em; font-weight: bold; } #header .site-name a:hover { color: #444AA3; } #header .site-description { width: 500px; color: #777; font-size: 15px; } /* Ôóòåð -------------------------------------- */ #footer .copyright { float: right; }

View file

@ -11,13 +11,19 @@
.block .max-height-200 { overflow: auto; max-height: 200px; _height: expression( this.scrollHeight > 200 ? "200px" : "auto" ); position: relative; }
/* Block Type - Profile */
.block.block-type-profile { background: none; border: none; padding: 0; }
.block.block-type-profile .profile-photo { margin-bottom: 20px; }
/* Block Type - Activity Settings */
.block.block-type-activity h3 { margin-bottom: 7px; }
.block.block-type-activity p { margin-bottom: 15px; }
.block.block-type-activity ul li { margin-bottom: 5px; }
.block.block-type-activity .note { display: block; margin-bottom: 15px; color: #aaa; }
.block.block-type-activity .note { display: block; margin-bottom: 15px; color: #aaa; }
/* Block Type - Profile */
.block.block-type-profile { background: none; border: none; padding: 0; }
.block.block-type-profile .profile-photo { vertical-align: top; }
.block.block-type-profile-note { background: #F1F7AF; border: 1px solid #E1EA83; padding: 15px; }
.block.block-type-profile-note p { margin-bottom: 10px; }
.block.block-type-profile-note .actions { margin-bottom: 0; }
.block.block-type-profile-nav { padding: 0; }

View file

@ -49,6 +49,7 @@
.actions li .delete { }
.actions li .rss { }
.actions li a:hover { text-decoration: underline; }
.actions li a.link-dotted:hover { text-decoration: none; }
@ -163,6 +164,10 @@
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
.ta-c { text-align: center !important; }
.ta-r { text-align: right !important; }
.va-m { vertical-align: middle; }
.user, .ls-user { font-weight: bold; color: #333; }
.user .icon-user { margin-right: 3px; }
.user.inactive { color: #aaa; }

View file

@ -13,7 +13,7 @@
#content.content-full-width { width: 100%; margin-right: 0; }
#content.content-right { margin-right: 0; float: none; margin-left: 311px; width: auto; }
#content.content-right { margin-right: 0; float: none; margin-left: 311px; width: auto; overflow: hidden; }
#sidebar.sidebar-left { float: left; width: 250px; padding-right: 30px; border-right: 1px solid #eee; margin-right: 30px; }

View file

@ -1,37 +0,0 @@
/* jqModal base Styling courtesy of;
Brice Burgess <bhb@iceburg.net> */
/* The Window's CSS z-index value is respected (takes priority). If none is supplied,
the Window's z-index value will be set to 3000 by default (via jqModal.js). */
.jqmWindow {
display: none;
position: fixed;
top: 25%;
left: 50%;
margin-left: -150px;
width: 300px;
background-color: #fff;
color: #333;
border: 1px solid #666;
padding: 15px;
}
.jqmOverlay { background-color: #000; }
/* Background iframe styling for IE6. Prevents ActiveX bleed-through (<select> form elements, etc.) */
* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;
width: expression(this.parentNode.offsetWidth+'px');
height: expression(this.parentNode.offsetHeight+'px');
}
/* Fixed posistioning emulation for IE6
Star selector used to hide definition from browsers other than IE6
For valid CSS, use a conditional include instead */
* html .jqmWindow {
position: absolute;
top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px');
}

View file

@ -1 +1 @@
/* Íàâèãàöèÿ ------------------------------------------------- */ .nav { zoom: 1; } .nav:before, .nav:after { content: ""; display: table; } .nav:after { clear: both; } .nav li { float: left; } .nav li:last-child { border-right: none; } .nav li a { display: block; padding: 10px 15px; } .nav li a:hover { background: #f3f3f3; } .nav li.active a { background: #f3f3f3; } /* Ìåíþ ïðîôèëÿ */ #userbar { border: 1px solid #ddd; border-top: none; background: #ffffff; background: -moz-linear-gradient(top, #ffffff 0%, #f3f3f3 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f3f3f3)); background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: linear-gradient(top, #ffffff 0%,#f3f3f3 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f3f3f3',GradientType=0 ); border-radius: 0 0 4px 4px; box-shadow: 0 0 5px #ddd; } #userbar .search { float: left; margin: 5px 0 0 7px; margin-bottom: 0; } .nav.nav-userbar { float: right; } .nav.nav-userbar li { border-radius: 0 0 0 4px; border-left: 1px solid #eaeaea; } .nav.nav-userbar li:first-child a { border-radius: 0 0 0 4px; } .nav.nav-userbar li:last-child a { border-radius: 0 0 4px 0; } .nav.nav-userbar li:first-child { } /* Ãëàâíîå ìåíþ */ .nav.nav-main { border-radius: 4px; background: #222; background: -moz-linear-gradient(top, #333 0%, #222 100%); } .nav.nav-main li a { color: #ddd; } .nav.nav-main li a:hover { background: #333; } .nav.nav-main li:first-child a { border-radius: 4px 0 0 4px; } .nav.nav-main li:last-child a { border-radius: 0 4px 4px 0; } .nav.nav-main li.active a { background: #3a3a3a; color: #bbb; box-shadow: 0 0 7px rgba(0,0,0,.15) inset; } /* Âëîæåííîå ìåíþ */ .nav.nav-nested { height: 51px; margin: 0 0 50px 0; } .nav.nav-nested li { margin-right: 1px; position: relative; } .nav.nav-nested li a { background: #ddd; color: #333; padding: 7px 13px; } .nav.nav-nested li a:hover { background: #ccc; } .nav.nav-nested li.active > a { background: #333; color: #fff; } .nav.nav-nested ul { position: absolute; top: 100%; left: 0; width: 400px; margin-top: 1px; } /* Ïåðåêëþ÷àòåëè */ .nav.nav-pills { margin-bottom: 15px; } .nav.nav-pills li { margin-right: 3px; } .nav.nav-pills li a { border-radius: 4px; padding: 5px 12px; background: #eee; } .nav.nav-pills li a:hover { background: #eaeaea; } .nav.nav-pills li.active a { background: #2375C6; color: #fff; } /* Íàâèãàöèÿ ïî ïðîôèëþ ïîëüçîâàòåëÿ */ .nav.nav-profile { margin-bottom: 15px; } .nav.nav-profile li { float: none; margin-bottom: 2px; background: #eee; } .nav.nav-profile li a { padding: 5px 12px; border-radius: 0; } .nav.nav-profile li a:hover { background: #eaeaea; } .nav.nav-profile li.active a { background: #333; color: #fff; }
/* Íàâèãàöèÿ ------------------------------------------------- */ .nav { zoom: 1; } .nav:before, .nav:after { content: ""; display: table; } .nav:after { clear: both; } .nav li { float: left; } .nav li:last-child { border-right: none; } .nav li a { display: block; padding: 10px 15px; } .nav li a:hover { background: #f3f3f3; } .nav li.active a { background: #f3f3f3; } /* Ìåíþ ïðîôèëÿ */ #userbar { border: 1px solid #ddd; border-top: none; background: #ffffff; background: -moz-linear-gradient(top, #ffffff 0%, #f3f3f3 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f3f3f3)); background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 100%); background: linear-gradient(top, #ffffff 0%,#f3f3f3 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f3f3f3',GradientType=0 ); border-radius: 0 0 4px 4px; box-shadow: 0 0 5px #ddd; } #userbar .search { float: left; margin: 5px 0 0 7px; margin-bottom: 0; } .nav.nav-userbar { float: right; } .nav.nav-userbar li { border-radius: 0 0 0 4px; border-left: 1px solid #eaeaea; } .nav.nav-userbar li:first-child a { border-radius: 0 0 0 4px; } .nav.nav-userbar li:last-child a { border-radius: 0 0 4px 0; } .nav.nav-userbar li:first-child { } /* Ãëàâíîå ìåíþ */ .nav.nav-main { border-radius: 4px; background: #222; background: -moz-linear-gradient(top, #333 0%, #222 100%); } .nav.nav-main li a { color: #ddd; } .nav.nav-main li a:hover { background: #333; } .nav.nav-main li:first-child a { border-radius: 4px 0 0 4px; } .nav.nav-main li:last-child a { border-radius: 0 4px 4px 0; } .nav.nav-main li.active a { background: #3a3a3a; color: #bbb; box-shadow: 0 0 7px rgba(0,0,0,.15) inset; } /* Âëîæåííîå ìåíþ */ .nav.nav-nested { height: 51px; margin: 0 0 50px 0; } .nav.nav-nested li { margin-right: 1px; position: relative; } .nav.nav-nested li a { background: #ddd; color: #333; padding: 7px 13px; } .nav.nav-nested li a:hover { background: #ccc; } .nav.nav-nested li.active > a { background: #333; color: #fff; } .nav.nav-nested ul { position: absolute; top: 100%; left: 0; width: 400px; margin-top: 1px; } /* Ïåðåêëþ÷àòåëè */ .nav.nav-pills { margin-bottom: 15px; } .nav.nav-pills li { margin-right: 3px; } .nav.nav-pills li a { border-radius: 4px; padding: 5px 12px; background: #eee; } .nav.nav-pills li a:hover { background: #eaeaea; } .nav.nav-pills li.active a { background: #2375C6; color: #fff; } .nav.nav-pills.nav-pills-profile { margin-bottom: 30px; } /* Íàâèãàöèÿ ïî ïðîôèëþ ïîëüçîâàòåëÿ */ .nav.nav-profile { margin-bottom: 15px; } .nav.nav-profile li { float: none; margin-bottom: 2px; background: #eee; } .nav.nav-profile li a { padding: 5px 12px; border-radius: 0; } .nav.nav-profile li a:hover { background: #eaeaea; } .nav.nav-profile li.active a { background: #333; color: #fff; }

View file

@ -2,13 +2,15 @@
СТРАНИЦА ПОЛЬЗОВАТЕЛЯ
-------------------------------------------- */
.profile { min-height: 48px; margin-bottom: 0; padding: 0 100px 20px 65px; position: relative; border-bottom: 1px solid #ddd; }
.profile { min-height: 48px; margin-bottom: 0; padding: 0 100px 20px 65px; position: relative; border-bottom: 1px solid #ddd; }
.profile .avatar { position: absolute; top: 0; left: 0; }
.profile .vote { position: absolute; top: 0; right: 0; background: #eee; padding: 3px 6px; border-radius: 3px; }
.profile .strength { position: absolute; top: 28px; right: 0; background: #eee; padding: 3px 6px; border-radius: 3px; }
.profile .avatar { position: absolute; top: 0; left: 0; }
.profile .vote { position: absolute; top: 0; right: 0; background: #eee; padding: 3px 6px; border-radius: 3px; }
.profile .strength { position: absolute; top: 28px; right: 0; background: #eee; padding: 3px 6px; border-radius: 3px; }
.profile .user-login { font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 5px; }
.profile .user-name { color: #777; }
.profile .user-login { font-size: 27px; line-height: 1em; font-weight: bold; margin-bottom: 5px; }
.profile .user-name { color: #777; }
.profile-page-header { font-size: 12px; font-weight: bold; margin-bottom: 20px; background: #eee; color: #555; padding: 5px 10px 6px; }
.profile-note { }
.profile-page-header { font-size: 12px; font-weight: bold; margin-bottom: 20px; background: #eee; color: #555; padding: 5px 10px 6px; }

View file

@ -2,19 +2,27 @@
メタチヒネヨロ
------------------------------------------------------------------- */
.table { width: 100%; margin-bottom: 15px; }
.table th { text-align: left; }
.table td, .table th { border-bottom: 1px solid #eee; padding: 10px; }
.table tr.active td { background: #CBF4BC; }
.table .align-center { text-align: center; }
.table .valign-middle { vertical-align: middle; }
.table { width: 100%; margin-bottom: 15px; }
.table th { text-align: left; }
.table td, .table th { border-bottom: 1px solid #eee; padding: 10px; }
.table tr.active td { background: #CBF4BC; }
.table.table-blogs td.table-blogs-cell-name { width: 30%; }
.table.table-blogs td.table-blogs-cell-name .avatar { float: left; margin-right: 10px; }
.table.table-blogs td.table-blogs-cell-rating { width: 15%; font-weight: bold; }
.table.table-blogs .table-blogs-cell-readers { width: 15%; text-align: center; vertical-align: middle; }
.table.table-blogs .table-blogs-cell-join { text-align: center; vertical-align: middle; }
.table.table-blogs .table-blogs-cell-rating { text-align: center; vertical-align: middle; }
.table.table-blogs .cell-name { width: 30%; }
.table.table-blogs .cell-name .avatar { float: left; margin-right: 10px; }
.table.table-blogs .cell-rating { width: 15%; font-weight: bold; }
.table.table-blogs .cell-readers { width: 15%; text-align: center; vertical-align: middle; }
.table.table-blogs .cell-join { text-align: center; vertical-align: middle; }
.table.table-blogs .cell-rating { text-align: center; vertical-align: middle; }
.table.table-plugins .table-plugins-cell-checkbox { width: 20px; padding: 12px 0 10px 10px; }
.table.table-plugins h3 { font-weight: bold; font-size: 17px; line-height: 20px; margin-bottom: 5px; }
.table.table-plugins .cell-checkbox { width: 20px; padding: 12px 0 10px 10px; }
.table.table-plugins h3 { font-weight: bold; font-size: 17px; line-height: 20px; margin-bottom: 5px; }
.table.table-profile-notes { border-top: 1px solid #eee; }
.table.table-profile-notes td { vertical-align: top; }
.table.table-profile-notes .cell-username { width: 20%; font-weight: bold; }
.table.table-profile-notes .cell-note { width: 50%; }
.table.table-profile-notes .cell-date { text-align: right; }
.table.table-profile-info { margin-bottom: 40px; }
.table.table-profile-info td { vertical-align: top; }
.table.table-profile-info .cell-label { width: 30%; color: #777; }

View file

@ -0,0 +1,19 @@
/* --------------------------------------------
Стена
-------------------------------------------- */
.wall-submit { margin-bottom: 30px; }
.wall-submit.wall-submit-reply { margin: 10px 0 10px 25px; }
.wall-submit p { margin-bottom: 5px; }
.comments.wall,
.wall .comment { margin-bottom: 2px; }
.comment.wall-comment-reply { min-height: 0; padding-left: 48px; }
.comment.wall-comment-reply .comment-avatar { width: 30px; height: 30px; }
.comment.wall-comment-reply .comment-info { margin-bottom: 0; }
.comment.wall-comment-reply .comment-content { margin-bottom: 0; }
.wall-more { display: block; background: #f7f7f7; text-align: center; padding: 7px 0; font-size: 11px; margin-bottom: 2px; }
.wall-more:hover { background: #eee; }
.wall-more.wall-more-reply { margin-left: 25px; }

View file

@ -67,17 +67,17 @@
{if $oUserCurrent}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-user'} {* <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-user'}
{if $oUserCurrent->isAdministrator()}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-admin'} {* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-admin'}
{/if}
{else}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-guest'} {* <20><><EFBFBD><EFBFBD><EFBFBD> *}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-guest'}
{/if}
{if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-not-admin'} {* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> *}
{assign var=body_classes value=$body_classes|cat:' ls-user-role-not-admin'}
{/if}

View file

@ -1,29 +1 @@
<ul class="nav nav-nested">
<li {if $sAction=='profile'}class="active"{/if}>
<a href="{$oUserProfile->getUserWebPath()}">{$aLang.user_menu_profile}</a>
{if $sAction=='profile'}
<ul class="sub-menu">
<li {if $aParams[0]=='whois' or $aParams[0]==''}class="active"{/if}><a href="{$oUserProfile->getUserWebPath()}">{$aLang.user_menu_profile_whois}</a></li>
<li {if $aParams[0]=='favourites' and $aParams[1]==''}class="active"{/if}><a href="{router page='profile'}{$oUserProfile->getLogin()}/favourites/">{$aLang.user_menu_profile_favourites}</a>{if $iCountTopicFavourite} ({$iCountTopicFavourite}){/if}</li>
<li {if $aParams[1]=='comments'}class="active"{/if}><a href="{router page='profile'}{$oUserProfile->getLogin()}/favourites/comments/">{$aLang.user_menu_profile_favourites_comments}</a>{if $iCountCommentFavourite} ({$iCountCommentFavourite}){/if}</li>
{hook run='menu_profile_profile_item'}
</ul>
{/if}
</li>
<li {if $sAction=='my'}class="active"{/if}>
<a href="{router page='my'}{$oUserProfile->getLogin()}/">{$aLang.user_menu_publication} {if ($iCountCommentUser+$iCountTopicUser)>0} ({$iCountCommentUser+$iCountTopicUser}){/if}</a>
{if $sAction=='my'}
<ul class="sub-menu">
<li {if $aParams[0]=='blog' or $aParams[0]==''}class="active"{/if}><a href="{router page='my'}{$oUserProfile->getLogin()}/">{$aLang.user_menu_publication_blog}</a>{if $iCountTopicUser} ({$iCountTopicUser}){/if}</li>
<li {if $aParams[0]=='comment'}class="active"{/if}><a href="{router page='my'}{$oUserProfile->getLogin()}/comment/">{$aLang.user_menu_publication_comment}</a>{if $iCountCommentUser} ({$iCountCommentUser}){/if}</li>
{if $oUserCurrent and $oUserCurrent->getId()==$oUserProfile->getId()}
<li {if $aParams[0]=='notes'}class="active"{/if}><a href="{$oUserProfile->getUserWebPath()}notes/">{$aLang.user_menu_profile_notes}</a>{if $iCountNoteUser} ({$iCountNoteUser}){/if}</li>
{/if}
{hook run='menu_profile_my_item'}
</ul>
{/if}
</li>
{hook run='menu_profile'}
</ul>

View file

@ -0,0 +1,8 @@
<ul class="nav nav-pills nav-pills-profile">
<li {if $aParams[0]=='favourites' and $aParams[1]==''}class="active"{/if}>
<a href="{router page='profile'}{$oUserProfile->getLogin()}/favourites/">{$aLang.user_menu_profile_favourites} {if $iCountTopicFavourite} ({$iCountTopicFavourite}) {/if}</a>
</li>
<li {if $aParams[1]=='comments'}class="active"{/if}>
<a href="{router page='profile'}{$oUserProfile->getLogin()}/favourites/comments/">{$aLang.user_menu_profile_favourites_comments} {if $iCountCommentFavourite} ({$iCountCommentFavourite}) {/if}</a>
</li>
</ul>

View file

@ -0,0 +1,19 @@
<h3 class="profile-page-header">Публикации</h3>
<ul class="nav nav-pills nav-pills-profile">
<li {if $aParams[0]=='blog' or $aParams[0]==''}class="active"{/if}>
<a href="{router page='my'}{$oUserProfile->getLogin()}/">{$aLang.topic_title} {if $iCountTopicUser} ({$iCountTopicUser}) {/if}</a>
</li>
<li {if $aParams[0]=='comment'}class="active"{/if}>
<a href="{router page='my'}{$oUserProfile->getLogin()}/comment/">{$aLang.user_menu_publication_comment} {if $iCountCommentUser} ({$iCountCommentUser}) {/if}</a>
</li>
{if $oUserCurrent and $oUserCurrent->getId()==$oUserProfile->getId()}
<li {if $aParams[0]=='notes'}class="active"{/if}>
<a href="{$oUserProfile->getUserWebPath()}notes/">{$aLang.user_menu_profile_notes} {if $iCountNoteUser} ({$iCountNoteUser}) {/if}</a>
</li>
{/if}
{hook run='menu_profile_my_item'}
</ul>

View file

@ -2,7 +2,10 @@
$config = array();
$config['view']['theme'] = 'default'; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
$config['view']['theme'] = 'default';
$config['view']['name'] = 'LiveStreet';
$config['view']['description'] = 'Официальный сайт бесплатного движка социальной сети';
$config['head']['default']['js'] = Config::Get('head.default.js');
$config['head']['default']['js'][] = '___path.static.skin___/js/developer-jquery.js';
@ -28,17 +31,18 @@ $config['head']['default']['css'] = array(
"___path.static.skin___/css/modals.css",
"___path.static.skin___/css/blog.css",
"___path.static.skin___/css/profile.css",
"___path.static.skin___/css/wall.css",
"___path.static.skin___/css/jquery.notifier.css",
"___path.static.skin___/css/smoothness/jquery-ui.css",
"___path.static.skin___/css/mobile.css",
"___path.static.skin___/themes/___view.theme___/style.css",
);
/*
$config['block']['rule_profile'] = array(
'action' => array( 'profile', 'my' ),
'blocks' => array( 'right' => array('actions/ActionProfile/sidebar.tpl') ),
);
$config['block']['rule_talk_inbox'] = array(
/*$config['block']['rule_talk_inbox'] = array(
'action' => array( 'talk' => array('inbox','') ),
'blocks' => array( 'right' => array('actions/ActionTalk/filter.tpl') ),
);

View file

@ -1,5 +1,5 @@
{if !$oUserCurrent}
<div class="jqmWindow modal-login" id="login_form">
<div class="modal modal-login" id="login_form">
<header>
<h3>{$aLang.user_authorization}</h3>
<a href="#" class="close jqmClose"></a>