1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-29 04:55:02 +03:00

Frontend framework

* Написан плагин для модальных окон с возможностью прокрутки длинных окон
* Модальные окна перенесены в папку modals
* Мелкие исправления
This commit is contained in:
Denis Shakhov 2013-01-26 03:14:41 +07:00
parent 46213e95d6
commit ac528e6a23
22 changed files with 618 additions and 409 deletions

View file

@ -0,0 +1,65 @@
/*
* Modal
*/
/* Base class */
.modal {
display: none;
margin: 50px auto;
width: 500px;
color: #333;
border: 1px solid #666;
background-color: #fff;
border-radius: 5px;
-webkit-box-shadow: 0 0 15px rgba(0,0,0,.5);
-moz-box-shadow: 0 0 15px rgba(0,0,0,.5);
box-shadow: 0 0 15px rgba(0,0,0,.5);
overflow: hidden;
z-index: 9999;
}
/* Close button */
.modal .modal-close:before,
.modal .close:before { display: block; content: "×";}
.modal .modal-close,
.modal .close {
position: absolute;
top: 9px;
right: 14px;
font-weight: bold;
font-size: 26px;
line-height: 1em;
color: #000;
opacity: .3;
filter: alpha(opacity=30);
}
.modal .modal-close:hover,
.modal .close:hover { opacity: .7; filter: alpha(opacity=70); }
/* Header */
.modal .modal-header { background: #fafafa; border-bottom: 1px solid #f7f7f7; padding: 5px 20px; position: relative; }
.modal .modal-header h3 { font-size: 20px; font-weight: bold; margin-right: 20px; }
/* Content */
.modal .modal-content { padding: 20px; }
/* Footer */
.modal .modal-footer { background: #fafafa; border-top: 1px solid #f7f7f7; padding: 15px 20px; }
/* Overlay */
.modal-overlay {
display: none;
position: fixed;
top: 0; left: 0;
width: 100%;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9JREFUeNpiYmBgaAAIMAAAjwCD5Hc2/AAAAABJRU5ErkJggg==);;
background: rgba(0,0,0,.5);
z-index: 9998;
overflow: auto;
}

View file

@ -77,8 +77,7 @@
.nav.nav-tabs .dropdown-toggle:hover:after { border-top-color: #058; }
/* Tabs content */
.tabs-content { }
.tabs-content .tab-pane { display: none; }
.tab-pane { display: none; }
/* Userbar

View file

@ -0,0 +1,128 @@
/*
* Modal
*
* Author: Denis Shakhov
* Version: 1.0
*
*/
(function ($) {
$.fn.modal = function (options) {
$.modal.options = $.extend($.modal.defaults, options);
$.modal.windowWidth = $(window).width();
$.modal.windowHeight = $(window).height();
$.modal.overlay = $('<div class="' + $.modal.options.overlayClass + '" />').height($(window).height()).appendTo('body');
/* IE7 */
if ($('html').hasClass('ie7')) {
$('body').attr('scroll', 'no');
$('html').css('overflow', 'auto');
}
$.modal.overlay.click(function () {
$.modal.hide($('.modal:visible'));
});
$(window).resize(function () {
$.modal.windowWidth = $(window).width();
$.modal.windowHeight = $(window).height();
$.modal.overlay.height($.modal.windowHeight);
});
// Init modals
$('.modal').each(function () {
var modal = $(this);
modal.appendTo($.modal.overlay);
modal.click(function (e) {
e.stopPropagation();
});
modal.find('[data-toggle=modal-close]').click(function () {
$.modal.hide(modal);
});
});
// Init toggles
this.each(function () {
var
toggle = $(this),
center = toggle.data('modal-center') || true,
modal = $('#' + toggle.data('modal-target'));
toggle.click(function () {
$.modal.show(modal, null, center);
return false;
});
});
};
$.fn.modalShow = function (options) {
var
defaults = {
content: '',
center: true,
onShow: false
},
options = $.extend(defaults, options);
$.modal.show($(this), options.content, options.center);
if (options.onShow) options.onShow();
};
$.fn.modalHide = function () {
$.modal.hide($(this));
};
// Fallback
$.fn.jqmShow = $.fn.modalShow;
$.fn.jqmHide = $.fn.modalHide;
$.modal = {
defaults: {
overlayClass: 'modal-overlay',
closeClass: 'modal-close'
},
options: null,
overlay: null,
windowWidth: null,
windowHeight: null,
scrollTop: null,
show: function (modal, content, center) {
center = center == undefined ? true : center;
this.scrollTop = $(window).scrollTop();
$('.modal:visible').hide();
console.log(this.scrollTop);
$('html').css({'overflow': 'hidden'});
if (content) modal.find('.modal-content').html(content);
modal.show();
// Prevent content from shifting
$('body').css({'margin-right': $(window).width() - this.windowWidth});
$(window).scrollTop(this.scrollTop);
// Show overlay
this.overlay.fadeIn(300);
// Center
if (center && this.windowHeight > modal.outerHeight()) modal.css({'margin-top': (this.windowHeight - modal.height()) / 2});
},
hide: function (modal) {
this.overlay.fadeOut(300, function () {
if ($('html').hasClass('ie7')) {
$('html').css('overflow', 'auto');
} else {
$('html').css('overflow', 'visible');
}
$('body').css({'margin-right': 0});
modal.hide();
$(window).scrollTop($.modal.scrollTop);
});
}
};
})(jQuery);

View file

@ -154,16 +154,7 @@ ls.photoset =( function ($) {
this.showForm = function()
{
var $select = $('#photoset-start-upload');
if ($select.length) {
var pos = $select.offset();
w = $select.outerWidth();
h = $select.outerHeight();
t = pos.top + h - 30 + 'px';
l = pos.left - 15 + 'px';
$('#photoset-upload-form').css({'top':t,'left':l});
}
$('#photoset-upload-form').show();
$('#photoset-upload-form').jqmShow();
}
this.showMainPhoto = function(id) {

View file

@ -8,31 +8,35 @@
(function($) {
$.fn.tab = function (options) {
var tabsSelector = '[data-toggle=tabs]';
this.each(function () {
var
$this = $(this),
$tabFirst = $this.closest(tabsSelector).find('li').eq(0);
$tabFirst = $this.closest($.tab.tabsSelector).find('li').eq(0);
if (!$tabFirst.hasClass('active')) activateTab($tabFirst);
if (!$tabFirst.hasClass('active')) $.tab.activate($tabFirst);
// Click
$this.click(function () {
activateTab($this);
$.tab.activate($this);
return false;
});
});
};
// Activate tab
function activateTab (tab) {
$.fn.tabActivate = function () {
$.tab.activate($(this));
};
$.tab = {
tabsSelector: '[data-toggle=tabs]',
activate: function (tab) {
var
$pane = $('#' + tab.data('tab-target')),
dropdown = tab.closest('ul').parent('li');
tab.addClass('active').closest(tabsSelector).find('li').not(tab).removeClass('active');
tab.addClass('active').closest(this.tabsSelector).find('li').not(tab).removeClass('active');
if (dropdown.length > 0) dropdown.addClass('active');
$pane.show().parent('.tabs-content').find('.tab-pane').not($pane).hide();
$pane.show().parent('[data-toggle=tab-content]').find('[data-toggle=tab-pane]').not($pane).hide();
}
};
})(jQuery);

View file

@ -7,7 +7,7 @@
<div class="modal" id="userfield_form">
<header class="modal-header">
<h3>{$aLang.user_field_admin_title_add}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
<form class="modal-content">

View file

@ -11,10 +11,10 @@
{if $oUserCurrent and $oUserCurrent->isAdministrator()}
<div id="blog_delete_form" class="modal">
<div id="modal-blog-delete" class="modal">
<header class="modal-header">
<h3>{$aLang.blog_admin_delete_title}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
@ -64,7 +64,7 @@
<li>
<a href="{router page='blog'}edit/{$oBlog->getId()}/" title="{$aLang.blog_edit}" class="edit">{$aLang.blog_edit}</a></li>
{if $oUserCurrent->isAdministrator()}
<li><a href="#" title="{$aLang.blog_delete}" id="blog_delete_show" class="delete">{$aLang.blog_delete}</a>
<li><a href="#" title="{$aLang.blog_delete}" data-toggle="modal" data-modal-target="modal-blog-delete" class="delete">{$aLang.blog_delete}</a>
{else}
<a href="{router page='blog'}delete/{$oBlog->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" title="{$aLang.blog_delete}" onclick="return confirm('{$aLang.blog_admin_delete_confirm}');" >{$aLang.blog_delete}</a>
{/if}

View file

@ -23,7 +23,7 @@
<form id="photoset-upload-form" method="POST" enctype="multipart/form-data" onsubmit="return false;" class="modal modal-image-upload">
<header class="modal-header">
<h3>{$aLang.uploadimg}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
<div id="topic-photo-upload-input" class="topic-photo-upload-input modal-content">
@ -113,7 +113,7 @@
{/if}
</ul>
<a href="javascript:ls.photoset.showForm()" id="photoset-start-upload">{$aLang.topic_photoset_upload_choose}</a>
<a href="#" class="link-dotted" data-toggle="modal" data-modal-target="photoset-upload-form">{$aLang.topic_photoset_upload_choose}</a>
</div>

View file

@ -12,7 +12,7 @@
<div id="add_friend_form" class="modal">
<header class="modal-header">
<h3>{$aLang.profile_add_friend}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
<form onsubmit="return ls.user.addFriend(this,{$oUserProfile->getId()},'add');" class="modal-content">
@ -22,7 +22,7 @@
<button type="submit" class="button button-primary">{$aLang.user_friend_add_submit}</button>
</form>
</div>
<li id="add_friend_item"><a href="#" title="{$aLang.user_friend_add}" id="add_friend_show">{$aLang.user_friend_add}</a></li>
<li id="add_friend_item"><a href="#" title="{$aLang.user_friend_add}" data-toggle="modal" data-modal-target="add_friend_form">{$aLang.user_friend_add}</a></li>
{else}
<li id="add_friend_item"><a href="#" title="{$aLang.user_friend_add}" onclick="return ls.user.addFriend(this,{$oUserProfile->getId()},'link');">{$aLang.user_friend_add}</a></li>
{/if}

View file

@ -1,52 +1,11 @@
/* --------------------------------------------
ÌÎÄÀËÜÍÛÅ ÎÊÍÀ
-------------------------------------------- */
.modal {
display: none;
position: fixed;
top: 25%;
left: 50%;
width: 300px;
margin-left: -150px;
color: #333;
border: 1px solid #666;
background-color: #fff;
border-radius: 5px;
-webkit-box-shadow: 0 0 15px rgba(0,0,0,.5); box-shadow: 0 0 15px rgba(0,0,0,.5);
overflow: hidden;
}
.modal .close {
position: absolute;
top: 14px;
right: 14px;
width: 14px;
height: 14px;
background: url(../images/icons.png) -312px 0 no-repeat;
opacity: .3;
filter: alpha(opacity=30);
}
.modal .close:hover { opacity: 1; filter: alpha(opacity=100); }
.modal .modal-header { background: #fafafa; border-bottom: 1px solid #f7f7f7; padding: 5px 20px; }
.modal .modal-header h3 { font-size: 20px; font-weight: bold; margin-right: 20px; }
.modal .modal-content { padding: 20px; }
.jqmOverlay { background-color: #000; }
* html .modal { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); }
/*
* Modal
*/
/* Ôîðìà âõîäà */
.modal.modal-login { width: 450px; margin-left: -225px; top: 50px; }
.modal.modal-login .nav { margin-bottom: 30px; }
/* Äîáàâëåíèå òîïèêà */
.modal.modal-write { width: 740px; margin-left: -370px; top: 50px; }
/* Write
-------------------------------------------------- */
.modal.modal-write { width: 740px; }
.modal.modal-write .modal-content { padding: 20px 10px 0; *padding: 20px 10px 15px; }
.modal.modal-write .write-list { *overflow: hidden; *zoom: 1; }
.modal.modal-write .write-list li { width: 100px; margin: 0 10px 20px; text-align: center; overflow: hidden; display: inline-table; *float: left; }
@ -59,10 +18,3 @@
.modal.modal-write .write-list li.write-item-type-photoset .write-item-image { background-position: -300px 0; }
.modal.modal-write .write-list li.write-item-type-blog .write-item-image { background-position: -400px 0; }
.modal.modal-write .write-list li.write-item-type-draft .write-item-image { background-position: -500px 0; }
/* Upload Image */
.modal-image-upload { width: 500px; margin-left: -250px; }

View file

@ -13,7 +13,7 @@
{if !$sImgToLoad}
{assign var="sImgToLoad" value="topic_text"}
{/if}
{include file='window_load_img.tpl' sToLoad=$sImgToLoad}
{include file='modals/modal_load_img.tpl' sToLoad=$sImgToLoad}
{if !$sSettingsTinymce}
{assign var="sSettingsMarkitup" value="ls.settings.getMarkitup()"}

View file

@ -114,10 +114,10 @@
{if $oUserCurrent}
{include file='window_write.tpl'}
{include file='window_favourite_form_tags.tpl'}
{include file='modals/modal_write.tpl'}
{include file='modals/modal_favourite_form_tags.tpl'}
{else}
{include file='window_login.tpl'}
{include file='modals/modal_login.tpl'}
{/if}

View file

@ -14,7 +14,7 @@
{$oUserCurrent->getLogin()}
</a>
</li>
<li><a href="{router page='topic'}add/" class="write" id="modal_write_show">{$aLang.block_create}</a></li>
<li><a href="{router page='topic'}add/" data-toggle="modal" data-modal-target="modal-write">{$aLang.block_create}</a></li>
<li><a href="{$oUserCurrent->getUserWebPath()}favourites/topics/">{$aLang.user_menu_profile_favourites}</a></li>
<li><a href="{router page='talk'}" {if $iUserCurrentCountTalkNew}class="new-messages"{/if} id="new_messages" title="{if $iUserCurrentCountTalkNew}{$aLang.user_privat_messages_new}{/if}">{$aLang.user_privat_messages}{if $iUserCurrentCountTalkNew} ({$iUserCurrentCountTalkNew}){/if}</a></li>
<li><a href="{router page='settings'}profile/">{$aLang.user_settings}</a></li>
@ -22,8 +22,8 @@
<li><a href="{router page='login'}exit/?security_ls_key={$LIVESTREET_SECURITY_KEY}">{$aLang.exit}</a></li>
{else}
{hook run='userbar_item'}
<li><a href="{router page='login'}" class="js-login-form-show">{$aLang.user_login_submit}</a></li>
<li><a href="{router page='registration'}" class="js-registration-form-show">{$aLang.registration_submit}</a></li>
<li><a href="{router page='login'}" onclick="jQuery('#modal-login').modalShow({ onShow: $('[data-tab-target=tab-pane-login]').tabActivate(), center: false }); return false;">{$aLang.user_login_submit}</a></li>
<li><a href="#" onclick="jQuery('#modal-login').modalShow({ onShow: $('[data-tab-target=tab-pane-registration]').tabActivate(), center: false }); return false;">{$aLang.registration_submit}</a></li>
{/if}
</ul>
</nav>

View file

@ -24,18 +24,9 @@ jQuery(document).ready(function($){
// Dropdowns
$('[data-toggle=dropdown]').dropdown();
// Всплывающие окна
$('#window_login_form').jqm();
$('#blog_delete_form').jqm({trigger: '#blog_delete_show', toTop: true});
$('#add_friend_form').jqm({trigger: '#add_friend_show', toTop: true});
$('#window_upload_img').jqm();
$('#userfield_form').jqm();
$('#favourite-form-tags').jqm();
$('#modal_write').jqm({trigger: '#modal_write_show'});
$('#foto-resize').jqm({modal: true, toTop: true});
$('#avatar-resize').jqm({modal: true, toTop: true});
$('#userfield_form').jqm({toTop: true});
$('#photoset-upload-form').jqm({trigger: '#photoset-start-upload'});
// Modal
$('[data-toggle=modal]').modal();
$('.js-registration-form-show').click(function(){
if (ls.blocks.switchTab('registration','popup-login')) {

View file

@ -2,7 +2,7 @@
<div id="favourite-form-tags" class="modal">
<header class="modal-header">
<h3>{$aLang.add_favourite_tags}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
@ -12,7 +12,7 @@
<p><input type="text" name="tags" value="" id="favourite-form-tags-tags" class="autocomplete-tags-sep input-text input-width-full"></p>
<button type="submit" name="" class="button button-primary" />{$aLang.favourite_form_tags_button_save}</button>
<button type="submit" name="" class="button jqmClose" />{$aLang.favourite_form_tags_button_cancel}</button>
<button type="submit" name="" class="button" data-toggle="modal-close" />{$aLang.favourite_form_tags_button_cancel}</button>
</form>
</div>
{/if}

View file

@ -1,7 +1,7 @@
<div class="modal modal-image-upload" id="window_upload_img">
<header class="modal-header">
<h3>{$aLang.uploadimg}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
<div class="modal-content">
@ -32,7 +32,7 @@
{hook run="uploadimg_additional"}
<button type="submit" class="button button-primary" onclick="ls.ajaxUploadImg('block_upload_img_content_pc','{$sToLoad}');">{$aLang.uploadimg_submit}</button>
<button type="submit" class="button jqmClose">{$aLang.uploadimg_cancel}</button>
<button type="submit" class="button " data-toggle="modal-close">{$aLang.uploadimg_cancel}</button>
</form>
@ -56,10 +56,8 @@
{hook run="uploadimg_link_additional"}
<button type="submit" class="button button-primary" onclick="ls.topic.insertImageToEditor(jQuery('#img_url').val(),jQuery('#form-image-url-align').val(),jQuery('#form-image-url-title').val());">{$aLang.uploadimg_link_submit_paste}</button>
{$aLang.or}
<button type="submit" class="button button-primary" onclick="ls.ajaxUploadImg('block_upload_img_content_link','{$sToLoad}');">{$aLang.uploadimg_link_submit_load}</button>
<button type="submit" class="button jqmClose">{$aLang.uploadimg_cancel}</button>
<button type="submit" class="button" data-toggle="modal-close">{$aLang.uploadimg_cancel}</button>
</form>
</div>
</div>

View file

@ -0,0 +1,146 @@
{if !$oUserCurrent}
<div class="modal modal-login" id="modal-login">
<header class="modal-header">
<h3>{$aLang.user_authorization}</h3>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
<script type="text/javascript">
jQuery(function($){
$('#popup-login-form').bind('submit',function(){
ls.user.login('popup-login-form');
return false;
});
$('#popup-login-form-submit').attr('disabled',false);
});
</script>
<div class="modal-content">
<ul class="nav nav-pills" data-toggle="tabs">
<li data-toggle="tab" data-tab-target="tab-pane-login"><a href="#">{$aLang.user_login_submit}</a></li>
{if !$oConfig->GetValue('general.reg.invite')}
<li data-toggle="tab" data-tab-target="tab-pane-registration"><a href="#">{$aLang.registration}</a></li>
{else}
<li><a href="{router page='registration'}">{$aLang.registration}</a></li>
{/if}
<li data-toggle="tab" data-tab-target="tab-pane-reminder"><a href="#">{$aLang.password_reminder}</a></li>
</ul>
<div data-toggle="tab-content">
<div class="tab-pane" id="tab-pane-login" data-toggle="tab-pane">
{hook run='login_popup_begin'}
<form action="{router page='login'}" method="post" id="popup-login-form">
{hook run='form_login_popup_begin'}
<p><label for="popup-login">{$aLang.user_login}:</label>
<input type="text" name="login" id="popup-login" class="input-text input-width-300"></p>
<p><label for="popup-password">{$aLang.user_password}:</label>
<input type="password" name="password" id="popup-password" class="input-text input-width-300">
<small class="validate-error-hide validate-error-login"></small></p>
<p><label><input type="checkbox" name="remember" class="input-checkbox" checked> {$aLang.user_login_remember}</label></p>
{hook run='form_login_popup_end'}
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<button type="submit" name="submit_login" class="button button-primary" id="popup-login-form-submit" disabled="disabled">{$aLang.user_login_submit}</button>
</form>
{hook run='login_popup_end'}
</div>
{if !$oConfig->GetValue('general.reg.invite')}
<div class="tab-pane" id="tab-pane-registration" data-toggle="tab-pane">
<script type="text/javascript">
jQuery(document).ready(function($){
$('#popup-registration-form').find('input.js-ajax-validate').blur(function(e){
var aParams={ };
if ($(e.target).attr('name')=='password_confirm') {
aParams['password']=$('#popup-registration-user-password').val();
}
if ($(e.target).attr('name')=='password') {
aParams['password']=$('#popup-registration-user-password').val();
if ($('#popup-registration-user-password-confirm').val()) {
ls.user.validateRegistrationField('password_confirm',$('#popup-registration-user-password-confirm').val(),$('#popup-registration-form'),{ 'password': $(e.target).val() });
}
}
ls.user.validateRegistrationField($(e.target).attr('name'),$(e.target).val(),$('#popup-registration-form'),aParams);
});
$('#popup-registration-form').bind('submit',function(){
ls.user.registration('popup-registration-form');
return false;
});
$('#popup-registration-form-submit').attr('disabled',false);
});
</script>
{hook run='registration_begin' isPopup=true}
<form action="{router page='registration'}" method="post" id="popup-registration-form">
{hook run='form_registration_begin' isPopup=true}
<p><label for="popup-registration-login">{$aLang.registration_login}</label>
<input type="text" name="login" id="popup-registration-login" value="{$_aRequest.login}" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-login" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_login_notice}"></i>
<small class="validate-error-hide validate-error-field-login"></small></p>
<p><label for="popup-registration-mail">{$aLang.registration_mail}</label>
<input type="text" name="mail" id="popup-registration-mail" value="{$_aRequest.mail}" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-mail" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_mail_notice}"></i>
<small class="validate-error-hide validate-error-field-mail"></small></p>
<p><label for="popup-registration-user-password">{$aLang.registration_password}</label>
<input type="password" name="password" id="popup-registration-user-password" value="" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-password" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_password_notice}"></i>
<small class="validate-error-hide validate-error-field-password"></small></p>
<p><label for="popup-registration-user-password-confirm">{$aLang.registration_password_retry}</label>
<input type="password" value="" id="popup-registration-user-password-confirm" name="password_confirm" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-password_confirm" style="display: none"></i>
<small class="validate-error-hide validate-error-field-password_confirm"></small></p>
{hookb run="popup_registration_captcha"}
<p><label for="popup-registration-captcha">{$aLang.registration_captcha}</label>
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}"
onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();"
class="captcha-image" />
<input type="text" name="captcha" id="popup-registration-captcha" value="" maxlength="3" class="input-text input-width-100 js-ajax-validate" />
<small class="validate-error-hide validate-error-field-captcha"></small></p>
{/hookb}
{hook run='form_registration_end' isPopup=true}
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<button type="submit" name="submit_register" class="button button-primary" id="popup-registration-form-submit" disabled="disabled">{$aLang.registration_submit}</button>
</form>
{hook run='registration_end' isPopup=true}
</div>
{/if}
<div class="tab-pane" id="tab-pane-reminder" data-toggle="tab-pane">
<script type="text/javascript">
jQuery(document).ready(function($){
$('#popup-reminder-form').bind('submit',function(){
ls.user.reminder('popup-reminder-form');
return false;
});
$('#popup-reminder-form-submit').attr('disabled',false);
});
</script>
<form action="{router page='login'}reminder/" method="POST" id="popup-reminder-form">
<p><label for="popup-reminder-mail">{$aLang.password_reminder_email}</label>
<input type="text" name="mail" id="popup-reminder-mail" class="input-text input-width-300" />
<small class="validate-error-hide validate-error-reminder"></small></p>
<button type="submit" name="submit_reminder" class="button button-primary" id="popup-reminder-form-submit" disabled="disabled">{$aLang.password_reminder_submit}</button>
</form>
</div>
</div>
</div>
</div>
{/if}

View file

@ -0,0 +1,38 @@
<div class="modal modal-write" id="modal-write">
<header class="modal-header">
<h3>{$aLang.block_create}</h3>
<a href="#" class="modal-close" data-toggle="modal-close"></a>
</header>
{strip}
<div class="modal-content">
<ul class="write-list">
<li class="write-item-type-topic">
<a href="{router page='topic'}add" class="write-item-image"></a>
<a href="{router page='topic'}add" class="write-item-link">{$aLang.block_create_topic_topic}</a>
</li>
<li class="write-item-type-poll">
<a href="{router page='question'}add" class="write-item-image"></a>
<a href="{router page='question'}add" class="write-item-link">{$aLang.block_create_topic_question}</a>
</li>
<li class="write-item-type-link">
<a href="{router page='link'}add" class="write-item-image"></a>
<a href="{router page='link'}add" class="write-item-link">{$aLang.block_create_topic_link}</a>
</li>
<li class="write-item-type-photoset">
<a href="{router page='photoset'}add" class="write-item-image"></a>
<a href="{router page='photoset'}add" class="write-item-link">{$aLang.block_create_topic_photoset}</a>
</li>
<li class="write-item-type-blog">
<a href="{router page='blog'}add" class="write-item-image"></a>
<a href="{router page='blog'}add" class="write-item-link">{$aLang.block_create_blog}</a>
</li>
<li class="write-item-type-draft">
<a href="{router page='topic'}saved/" class="write-item-image"></a>
<a href="{router page='topic'}saved/" class="write-item-link">{$aLang.topic_menu_saved} {if $iUserCurrentCountTopicDraft}({$iUserCurrentCountTopicDraft}){/if}</a>
</li>
{hook run='write_item' isPopup=true}
</ul>
</div>
{/strip}
</div>

View file

@ -21,9 +21,51 @@ $config['view']['grid']['fixed_width'] = 1000;
$config['head']['default']['js'] = Config::Get('head.default.js');
$config['head']['default']['js'][] = '___path.root.server___/templates/framework/js/dropdown.js';
$config['head']['default']['js'][] = '___path.root.server___/templates/framework/js/tab.js';
$config['head']['default']['js'] = array(
"___path.root.engine_lib___/external/html5shiv.js" => array('browser'=>'lt IE 9'),
"___path.root.engine_lib___/external/jquery/jquery.js",
"___path.root.engine_lib___/external/jquery/jquery-ui.js",
"___path.root.engine_lib___/external/jquery/jquery.notifier.js",
"___path.root.engine_lib___/external/jquery/jquery.scrollto.js",
"___path.root.engine_lib___/external/jquery/jquery.rich-array.min.js",
"___path.root.engine_lib___/external/jquery/markitup/jquery.markitup.js",
"___path.root.engine_lib___/external/jquery/jquery.form.js",
"___path.root.engine_lib___/external/jquery/jquery.jqplugin.js",
"___path.root.engine_lib___/external/jquery/jquery.cookie.js",
"___path.root.engine_lib___/external/jquery/jquery.serializejson.js",
"___path.root.engine_lib___/external/jquery/jquery.file.js",
"___path.root.engine_lib___/external/jquery/jcrop/jquery.Jcrop.js",
"___path.root.engine_lib___/external/jquery/poshytip/jquery.poshytip.js",
"___path.root.engine_lib___/external/jquery/jquery.placeholder.min.js",
"___path.root.engine_lib___/external/jquery/jquery.charcount.js",
"___path.root.engine_lib___/external/prettify/prettify.js",
"___path.root.server___/templates/framework/js/main.js",
"___path.root.server___/templates/framework/js/favourite.js",
"___path.root.server___/templates/framework/js/blocks.js",
"___path.root.server___/templates/framework/js/talk.js",
"___path.root.server___/templates/framework/js/vote.js",
"___path.root.server___/templates/framework/js/poll.js",
"___path.root.server___/templates/framework/js/subscribe.js",
"___path.root.server___/templates/framework/js/infobox.js",
"___path.root.server___/templates/framework/js/geo.js",
"___path.root.server___/templates/framework/js/wall.js",
"___path.root.server___/templates/framework/js/usernote.js",
"___path.root.server___/templates/framework/js/comments.js",
"___path.root.server___/templates/framework/js/blog.js",
"___path.root.server___/templates/framework/js/user.js",
"___path.root.server___/templates/framework/js/userfeed.js",
"___path.root.server___/templates/framework/js/userfield.js",
"___path.root.server___/templates/framework/js/stream.js",
"___path.root.server___/templates/framework/js/photoset.js",
"___path.root.server___/templates/framework/js/toolbar.js",
"___path.root.server___/templates/framework/js/settings.js",
"___path.root.server___/templates/framework/js/topic.js",
"___path.root.server___/templates/framework/js/hook.js",
'___path.root.server___/templates/framework/js/dropdown.js',
'___path.root.server___/templates/framework/js/tab.js',
'___path.root.server___/templates/framework/js/modal.js',
"http://yandex.st/share/share.js" => array('merge'=>false),
);
$config['head']['default']['js'][] = '___path.static.skin___/js/template.js';
$config['head']['default']['css'] = array(
@ -35,6 +77,7 @@ $config['head']['default']['css'] = array(
"___path.root.server___/templates/framework/css/buttons.css",
"___path.root.server___/templates/framework/css/forms.css",
"___path.root.server___/templates/framework/css/navs.css",
"___path.root.server___/templates/framework/css/modals.css",
// Template styles
"___path.static.skin___/css/base.css",
@ -50,8 +93,8 @@ $config['head']['default']['css'] = array(
"___path.static.skin___/css/topic.css",
"___path.static.skin___/css/comments.css",
"___path.static.skin___/css/blocks.css",
"___path.static.skin___/css/modals.css",
"___path.static.skin___/css/blog.css",
"___path.static.skin___/css/modals.css",
"___path.static.skin___/css/profile.css",
"___path.static.skin___/css/wall.css",
"___path.static.skin___/css/infobox.css",

View file

@ -1,145 +0,0 @@
{if !$oUserCurrent}
<div class="modal modal-login" id="window_login_form">
<header class="modal-header">
<h3>{$aLang.user_authorization}</h3>
<a href="#" class="close jqmClose"></a>
</header>
<script type="text/javascript">
jQuery(function($){
$('#popup-login-form').bind('submit',function(){
ls.user.login('popup-login-form');
return false;
});
$('#popup-login-form-submit').attr('disabled',false);
});
</script>
<div class="modal-content">
<ul class="nav nav-pills nav-pills-tabs">
<li class="active js-block-popup-login-item" data-type="login"><a href="#">{$aLang.user_login_submit}</a></li>
{if !$oConfig->GetValue('general.reg.invite')}
<li class="js-block-popup-login-item" data-type="registration"><a href="#">{$aLang.registration}</a></li>
{else}
<li><a href="{router page='registration'}">{$aLang.registration}</a></li>
{/if}
<li class="js-block-popup-login-item" data-type="reminder"><a href="#">{$aLang.password_reminder}</a></li>
</ul>
<div class="tab-content js-block-popup-login-content" data-type="login">
{hook run='login_popup_begin'}
<form action="{router page='login'}" method="post" id="popup-login-form">
{hook run='form_login_popup_begin'}
<p><label for="popup-login">{$aLang.user_login}:</label>
<input type="text" name="login" id="popup-login" class="input-text input-width-300"></p>
<p><label for="popup-password">{$aLang.user_password}:</label>
<input type="password" name="password" id="popup-password" class="input-text input-width-300">
<small class="validate-error-hide validate-error-login"></small></p>
<p><label><input type="checkbox" name="remember" class="input-checkbox" checked> {$aLang.user_login_remember}</label></p>
{hook run='form_login_popup_end'}
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<button type="submit" name="submit_login" class="button button-primary" id="popup-login-form-submit" disabled="disabled">{$aLang.user_login_submit}</button>
</form>
{hook run='login_popup_end'}
</div>
{if !$oConfig->GetValue('general.reg.invite')}
<div data-type="registration" class="tab-content js-block-popup-login-content" style="display:none;">
<script type="text/javascript">
jQuery(document).ready(function($){
$('#popup-registration-form').find('input.js-ajax-validate').blur(function(e){
var aParams={ };
if ($(e.target).attr('name')=='password_confirm') {
aParams['password']=$('#popup-registration-user-password').val();
}
if ($(e.target).attr('name')=='password') {
aParams['password']=$('#popup-registration-user-password').val();
if ($('#popup-registration-user-password-confirm').val()) {
ls.user.validateRegistrationField('password_confirm',$('#popup-registration-user-password-confirm').val(),$('#popup-registration-form'),{ 'password': $(e.target).val() });
}
}
ls.user.validateRegistrationField($(e.target).attr('name'),$(e.target).val(),$('#popup-registration-form'),aParams);
});
$('#popup-registration-form').bind('submit',function(){
ls.user.registration('popup-registration-form');
return false;
});
$('#popup-registration-form-submit').attr('disabled',false);
});
</script>
{hook run='registration_begin' isPopup=true}
<form action="{router page='registration'}" method="post" id="popup-registration-form">
{hook run='form_registration_begin' isPopup=true}
<p><label for="popup-registration-login">{$aLang.registration_login}</label>
<input type="text" name="login" id="popup-registration-login" value="{$_aRequest.login}" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-login" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_login_notice}"></i>
<small class="validate-error-hide validate-error-field-login"></small></p>
<p><label for="popup-registration-mail">{$aLang.registration_mail}</label>
<input type="text" name="mail" id="popup-registration-mail" value="{$_aRequest.mail}" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-mail" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_mail_notice}"></i>
<small class="validate-error-hide validate-error-field-mail"></small></p>
<p><label for="popup-registration-user-password">{$aLang.registration_password}</label>
<input type="password" name="password" id="popup-registration-user-password" value="" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-password" style="display: none"></i>
<i class="icon-question-sign js-tip-help" title="{$aLang.registration_password_notice}"></i>
<small class="validate-error-hide validate-error-field-password"></small></p>
<p><label for="popup-registration-user-password-confirm">{$aLang.registration_password_retry}</label>
<input type="password" value="" id="popup-registration-user-password-confirm" name="password_confirm" class="input-text input-width-300 js-ajax-validate" />
<i class="icon-ok-green validate-ok-field-password_confirm" style="display: none"></i>
<small class="validate-error-hide validate-error-field-password_confirm"></small></p>
{hookb run="popup_registration_captcha"}
<p><label for="popup-registration-captcha">{$aLang.registration_captcha}</label>
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}"
onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();"
class="captcha-image" />
<input type="text" name="captcha" id="popup-registration-captcha" value="" maxlength="3" class="input-text input-width-100 js-ajax-validate" />
<small class="validate-error-hide validate-error-field-captcha"></small></p>
{/hookb}
{hook run='form_registration_end' isPopup=true}
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<button type="submit" name="submit_register" class="button button-primary" id="popup-registration-form-submit" disabled="disabled">{$aLang.registration_submit}</button>
</form>
{hook run='registration_end' isPopup=true}
</div>
{/if}
<div data-type="reminder" class="tab-content js-block-popup-login-content" style="display:none;">
<script type="text/javascript">
jQuery(document).ready(function($){
$('#popup-reminder-form').bind('submit',function(){
ls.user.reminder('popup-reminder-form');
return false;
});
$('#popup-reminder-form-submit').attr('disabled',false);
});
</script>
<form action="{router page='login'}reminder/" method="POST" id="popup-reminder-form">
<p><label for="popup-reminder-mail">{$aLang.password_reminder_email}</label>
<input type="text" name="mail" id="popup-reminder-mail" class="input-text input-width-300" />
<small class="validate-error-hide validate-error-reminder"></small></p>
<button type="submit" name="submit_reminder" class="button button-primary" id="popup-reminder-form-submit" disabled="disabled">{$aLang.password_reminder_submit}</button>
</form>
</div>
</div>
</div>
{/if}

View file

@ -1,7 +1,7 @@
<div class="modal modal-write" id="modal_write">
<div class="modal modal-write" id="modal-write">
<header class="modal-header">
<h3>{$aLang.block_create}</h3>
<a href="#" class="close jqmClose"></a>
<a href="#" class="close " data-toggle="modal-close"></a>
</header>
{strip}
@ -36,4 +36,3 @@
</div>
{/strip}
</div>