Page MenuHomeIn-Portal Phabricator

modern-store
No OneTemporary

File Metadata

Created
Mon, Jul 7, 9:37 AM

modern-store

Index: branches/1.0.x/checkout.tpl
===================================================================
--- branches/1.0.x/checkout.tpl (nonexistent)
+++ branches/1.0.x/checkout.tpl (revision 14805)
@@ -0,0 +1,246 @@
+<!--##
+<NAME>One Step Checkout</NAME>
+<DESC></DESC>
+<SECTION>Pages||Checkout</SECTION>
+##-->
+
+<inp2:m_DefineElement name="page_title">One Step Checkout</inp2:m_DefineElement>
+
+<!--## MAIN CONTENT ##-->
+<inp2:m_DefineElement name="content">
+
+ <ul class="steps">
+ <li class="step1"><a href="<inp2:m_Link template='cart'/>"><i></i>Shopping Cart</a></li>
+ <li class="step2 active"><a href="#"><i></i>One-step Checkout</a></li>
+ <li class="step3"><span><i></i>Receipt</span></li>
+ </ul>
+ <div class="clear"></div>
+
+ <div class="cart-detail">
+ <h1>One-Step Checkout</h1>
+ <form method="post" action="<inp2:m_FormAction/>" id="checkout-form" class="form checkout-form">
+
+ <script type="text/javascript">
+ FormManager.resetFields('ord');
+ </script>
+
+ <inp2:ord_ShowDefaultAddress type="billing"/>
+ <inp2:ord_ShowDefaultAddress type="shipping"/>
+
+ <div class="halfcol">
+ <fieldset class="firstline">
+
+ <inp2:m_ifnot check="m_LoggedIn">
+ <div class="login-alt">
+ Continue as Guest or
+ <div class="login">
+ <a href="" id="login-alt">Log In</a>
+ </div>
+ </div>
+ </inp2:m_ifnot>
+
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingEmail" title="lu_fld_YourEmail"/>
+ </fieldset>
+ <fieldset>
+ <div class="fieldset">
+ Billing Address
+ </div>
+
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingTo" title="lu_fld_FullName"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingCompany" title="lu_fld_Company"/>
+ <inp2:m_RenderElement name="inp_edit_address" prefix="ord" field="BillingAddress1" field2="BillingAddress2" title="lu_fld_Address"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingCity" title="lu_fld_City"/>
+ <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="BillingCountry" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
+
+ <!-- TODO: preload states by country -->
+ <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="BillingState" title="lu_fld_State" has_empty="1" row_class="alt1"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingZip" title="lu_fld_Zip" row_class="alt2"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingPhone" title="lu_fld_Phone"/>
+ </fieldset>
+
+ <fieldset class="creditcard">
+ <div class="fieldset">
+ Payment Information
+ </div>
+ <div class="creditcards">
+ <span><img src="<inp2:m_TemplatesBase/>img/creditcards.jpg" width="245" height="39" alt="" /></span>
+ <span class="paypal"><img src="<inp2:m_TemplatesBase/>img/paypal.jpg" width="98" height="45" alt="" /></span>
+ </div>
+
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentAccount" title="lu_fld_CreditCardNumber"/>
+
+ <inp2:m_RenderElement design="form_row" prefix="ord" field="PaymentCCExpDate" title="lu_fld_ExpirationDate" row_class="alt1 expdate">
+ <select class="field" name="<inp2:ord_InputName field='PaymentCCExpMonth'/>">
+ <inp2:ord_PredefinedOptions field="PaymentCCExpMonth" render_as="inp_option_item" selected="selected"/>
+ </select> /
+ <select class="field" name="<inp2:ord_InputName field='PaymentCCExpYear'/>">
+ <option value=''></option>
+ <inp2:ord_PrintYearOptions field="PaymentCCExpYear" render_as="inp_option_item" selected="selected"/>
+ </select>
+ </inp2:m_RenderElement>
+
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentCVV2" title="lu_fld_SecurityCode" row_class="alt2"/>
+ </fieldset>
+ </div>
+
+ <div class="halfcol halfcol-last">
+ <inp2:m_ifnot check="m_LoggedIn">
+ <div class="badge-optional"></div>
+
+ <fieldset class="firstline" id="create-account-password">
+ <p>
+ <label><input type="checkbox" id="create_account" name="create_account" value="1"<inp2:m_if check="m_Get" name="create_account"> checked</inp2:m_if>/> Create account for easy purchases and order tracking</label>
+ </p>
+
+ <inp2:m_RenderElement name="inp_edit_password" prefix="ord" field="UserPassword" title="lu_fld_Password" verify_title="lu_fld_VerifyPassword"/>
+ </fieldset>
+ </inp2:m_ifnot>
+
+ <fieldset>
+ <div class="fieldset">
+ <label>
+ <input type="checkbox" id="same_as_billing" name="same_as_billing" value="1"<inp2:m_if check="m_Get" name="same_as_billing"> checked</inp2:m_if>/> Ship To Address is the same as Billing
+ </label>
+ </div>
+
+ <div id="shipping-address"<inp2:m_if check="m_Get" name="same_as_billing"> style="display: none;"</inp2:m_if>>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingTo" title="lu_fld_FullName"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingCompany" title="lu_fld_Company"/>
+ <inp2:m_RenderElement name="inp_edit_address" prefix="ord" field="ShippingAddress1" field2="ShippingAddress2" title="lu_fld_Address"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingCity" title="lu_fld_City"/>
+ <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="ShippingCountry" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
+
+ <!-- TODO: preload states by country -->
+ <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="ShippingState" title="lu_fld_State" has_empty="1" row_class="alt1"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingZip" title="lu_fld_Zip" row_class="alt2"/>
+ </div>
+
+ <p>
+ <label for="ship">How would you like the items shipped? <span class="star">*</span></label>
+ <select id="ship" class="field">
+ <option value="" selected="selected">FedEx Ground (Next Day) $14.00</option>
+ <option value="">USA</option>
+ <option value="">Russia</option>
+ </select>
+ </p>
+
+ <div class="safe-shop" id="shipping-address-placeholder"<inp2:m_ifnot check="m_Get" name="same_as_billing"> style="display: none;"</inp2:m_ifnot>>
+ <p class="title">100% Safe & Secure Shopping</p>
+ <ul class="list">
+ <li>All Transactions are Encrypted</li>
+ <li>Your Information is Protected</li>
+ <li>No Hidden Charges</li>
+ <li>Satisfaction Guaranteed</li>
+ </ul>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class="fieldset">
+ Your Order Summary (18 Items)
+ <a href="#" class="link">View Order Details</a>
+ </div>
+ <dl class="total">
+ <dt>Subtotal</dt>
+ <dd>$1,759.99</dd>
+ <dt class="discount">Discount:</dt>
+ <dd class="price2">- $10.00</dd>
+ <dt>Shipping</dt>
+ <dd class="price3">$100.00</dd>
+ <dt>Tax</dt>
+ <dd class="price3">$100.00</dd>
+ <dt>Order Total</dt>
+ <dd class="price4">$1,959.99</dd>
+ </dl>
+ <div class="clear"></div>
+ <div class="terms">
+ <label><input type="checkbox" id="terms" name="terms" value="yes" checked="true" />&nbsp;I Agree to Terms and Conditions</label>
+ </div>
+ <p class="buttons">
+ <a href="#" class="place-button"><span>Place Order</span></a>
+ </p>
+ </fieldset>
+ </div>
+ <div class="clear"></div>
+
+ <input type="hidden" name="check_billing_address" id="check_billing_address" value="true"/>
+ <input type="hidden" name="check_shipping_address" id="check_shipping_address" value="true"/>
+ <input type="hidden" name="check_credit_card" id="check_credit_card" value="true"/>
+ </form>
+ </div>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function () {
+ $('#same_as_billing').click(
+ function ($e) {
+ var $checked = $(this).is(':checked');
+
+ $('#shipping-address').toggle(!$checked);
+ $('#shipping-address-placeholder').toggle($checked);
+ }
+ );
+
+ $('#create_account').click(
+ function ($e) {
+ $('.password-block').toggle( $(this).is(':checked') );
+ }
+ );
+
+ FormManager.registerForm(
+ {
+ prefix: 'ord',
+ save_event: 'OnCombinedPlaceOrder',
+ id: '<inp2:ord_Field name="OrderId"/>',
+ form_id: 'checkout-form'
+ }
+ );
+
+ $('.place-button').click(
+ function ($e) {
+ FormManager.submitForm('ord');
+
+ return false;
+ }
+ );
+
+ $('#checkout-form').submit(
+ function ($e) {
+ FormManager.submitForm('ord');
+
+ return false;
+ }
+ );
+
+ $('#login-alt').click(
+ function ($e) {
+ var $login_link = $('#login');
+
+ if ( !$login_link.parents('.login:first').hasClass('plashka-sel') ) {
+ $login_link.click();
+ }
+
+ return false;
+ }
+ );
+
+ $('body').bind(
+ 'OnAfterLogin',
+ function ($e, $params) {
+ $('.login-alt').remove();
+ $('#create-account-password, .badge-optional').remove();
+
+ FormManager.setFieldStatus('ord', 'BillingEmail');
+ FormManager.getField('ord', 'BillingEmail').value = $params['user_email'];
+ }
+ )
+ }
+ );
+
+ $('.password-block').toggle( $('#create_account').is(':checked') );
+ </script>
+</inp2:m_DefineElement>
+<!--## /MAIN CONTENT ##-->
+
+<!--## DESIGN TEMPLATE ##-->
+<inp2:m_include template="designs/default_design.des" pass_params="1"/>
+<!--## /DESIGN TEMPLATE ##-->
\ No newline at end of file
Property changes on: branches/1.0.x/checkout.tpl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Index: branches/1.0.x/inc/cart.css
===================================================================
--- branches/1.0.x/inc/cart.css (revision 14804)
+++ branches/1.0.x/inc/cart.css (revision 14805)
@@ -1,453 +1,453 @@
@charset "UTF-8";
/* Cart Blocks
*******************************************************************************/
.steps {
margin: 0 auto;
width: 535px;
}
.steps li {
background: url(@templates_base@/img/icon-step.png) no-repeat 100% 40%;
color: #bdbdbd;
float: left;
font-size: 9pt;
font-weight: bold;
padding: 0 85px 0 38px;
text-transform: uppercase;
}
.steps li:first-child {
padding-left: 0;
}
.steps li:last-child {
background: none;
padding-right: 0;
}
.steps li i {
display: block;
height: 36px;
margin: 0 auto 5px;
width: 40px;
}
.steps li.step1 i { background: url(@templates_base@/img/cart-steps.png) no-repeat 0 0; }
.steps li.step2 i { background: url(@templates_base@/img/cart-steps.png) no-repeat 0 -36px; }
.steps li.step3 i { background: url(@templates_base@/img/cart-steps.png) no-repeat 0 -72px; }
.steps li a {
color: #bdbdbd;
text-decoration: none;
}
.steps li.step1.active i { background: url(@templates_base@/img/cart-steps.png) no-repeat -40px 0; }
.steps li.step2.active i { background: url(@templates_base@/img/cart-steps.png) no-repeat -40px -36px; }
.steps li.step3.active i { background: url(@templates_base@/img/cart-steps.png) no-repeat -40px -72px; }
.steps li.active a { color: #878787; }
.cart-detail {
background-color: #fff;
border: 1px solid #d0d0d0;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin-top: 10px;
padding: 15px 30px 50px 30px;
width: 100%;
}
.cart-detail h1 {
color: #525252;
font: 1.538em Verdana,Arial,Tahoma,Sans-Serif;
padding: 0 0 20px 0;
}
.cart-detail .halfcol {
border-right: 1px dotted #aeaeae;
float: left;
margin: 0 14px 0 0;
padding: 0 14px 0 0;
width: 465px;
}
.cart-detail .halfcol-last {
border-right: none;
margin: 0;
padding: 0;
position: relative;
}
.cart-detail .halfcol-last .badge-optional {
background: url(@templates_base@/img/badge-optional.png) no-repeat 0 0;
height: 40px;
position: absolute;
top: -44px; left: -20px;
width: 102px;
}
.cart-detail .fieldset {
background: url(@templates_base@/img/bg-form-fieldset.jpg) repeat-x 0 0;
color: #000;
font-weight: bold;
height: 26px;
line-height: 26px;
padding: 0 0 10px 50px;
position: relative;
}
.cart-detail.receipt .fieldset { padding-left: 16px; }
.cart-detail .fieldset .link {
font-weight: normal;
position: absolute;
right: 15px;
}
fieldset { padding: 0 0 15px; }
.firstline { min-height: 140px; padding: 20px 0 0; position: relative; }
.firstline .login-alt {
color: #66c133;
font-size: 1.154em;
font-weight: bold;
padding: 5px 0 20px 50px;
}
.firstline .login-alt .plashka {
right: 194px;
}
.firstline .login-alt .plashka-sel {
margin: -6px 0 0 5px;
}
.checkout-form label {
display: block;
font-weight: bold;
padding-bottom: 3px;
}
.checkout-form p {
clear: both !important;
float: left;
padding: 5px 0 5px 50px;
}
.checkout-form p.alt1 {
clear: none !important;
padding: 5px 10px 5px 50px;
width: 170px;
}
.checkout-form p.alt2 {
clear: none !important;
padding: 5px 0;
width: 120px;
}
.checkout-form .field { width: 300px; }
.checkout-form select.field { width: 311px; }
.field.statusSuccess {
background: url(@templates_base@/img/bg-field-success.jpg) repeat-x 0 0;
border: 1px solid #80d04d;
}
.field.statusError {
background: url(@templates_base@/img/bg-field-error.jpg) repeat-x 0 0;
border: 1px solid #d80000;
}
.checkout-form p.alt1 .field,
.checkout-form p.alt2 .field,
.checkout-form p.pasfield1 .field,
.checkout-form p.pasfield2 .field {
width: 100%;
}
.checkout-form .creditcard .field { width: 250px; }
.checkout-form .creditcard p.alt1.expdate .field { width: 78px; }
.checkout-form .creditcard p.alt2 .field { width: 70px; }
.creditcards { padding: 0 0 0 50px; }
.creditcards span {
display: inline-block;
height: 45px;
}
-.creditcards span:first-child {
- border-right: 1px solid #d3d3d3;
- margin-right: 10px;
- padding-right: 15px;
+.creditcards span.paypal {
+ border-left: 1px solid #d3d3d3;
+ margin-left: 10px;
+ padding-left: 15px;
}
.password-block {
border: 1px solid #e3e3e3;
float: right;
padding: 12px 20px;
width: 390px;
}
.password-block p {
clear: none !important;
padding: 0 30px 0 0;
}
.password-block p.pasfield1 {
width: 150px;
}
.colorbar {
display: inline-block;
height: 8px;
width: 29px;
}
.password-strength { display: none; font-weight: bold; }
.password-strength .meterDefault { color: #aaa; }
.password-strength .meterFail { color: #daa; }
.password-strength .meterWarn { color: #fd6; }
.password-strength .meterGood { color: #ada; }
.password-strength .meterExcel { color: #66c133; }
.password-strength .colorbar.meterDefault { background-color: #ddd; }
.password-strength .colorbar.meterFail { background-color: #fdd; }
.password-strength .colorbar.meterWarn { background-color: #feb; }
.password-strength .colorbar.meterGood { background-color: #dfd; }
.password-strength .colorbar.meterExcel { background-color: #66c133; }
.checkout-form .safe-shop {
background: url(@templates_base@/img/safe-shop.jpg) no-repeat 0 40px;
min-height: 160px;
margin: 115px 0 115px 50px;
}
.checkout-form .safe-shop .title {
color: #389901;
font: bold 1.462em Verdana,Arial,Tahoma,Sans-Serif;
padding-left: 18px;
}
.checkout-form .safe-shop ul.list {
float: left;
padding: 10px 0 0 130px;
}
.checkout-form .safe-shop ul.list li {
background: url(@templates_base@/img/icon-galka.png) no-repeat 0 50%;
color: #313030;
font-weight: bold;
padding: 6px 0 6px 25px;
}
dl.total { padding: 20px 0 0; width: 240px; }
dl.total dt,
dl.total dd {
float: left;
font-weight: bold;
padding: 0 0 10px;
text-align: right;
width: 120px;
}
dl.total dt.discount { color: #bf0000; }
dl.total dd { font-size: 1.385em; }
dl.total dd span { font-size: 15px; }
dl.total dd.price1 { color: #333; font-size: 1.538em; }
dl.total dd.price2 { color: #bf0000; }
dl.total dd.price3 { font-weight: normal; }
dl.total dd.price4 { color: #3f911f; font-size: 1.538em; }
.product-discount .item-price span, .product-discount .item-discount span,
.shop-cart-row .price-cell span, .shop-cart-row .extended-price-cell span {
font-size: 12px;
}
.cart-detail .terms {
text-align: right;
width: 240px;
}
.place-button,
.place-grey-button,
.checkout-button,
.checkout-grey-button {
background: url(@templates_base@/img/order-left.jpg) no-repeat 0 0;
color: #faffed;
display: inline-block;
font-size: 1.385em;
font-weight: bold;
text-shadow: #000 0px 1px 1px;
text-decoration: none;
}
.place-button span,
.place-grey-button span,
.checkout-button span,
.checkout-grey-button span {
background: url(@templates_base@/img/order-right.jpg) no-repeat 100% 0;
display: inline-block;
height: 37px;
line-height: 37px;
padding: 0 50px 0 30px;
}
.place-button:hover,
.place-grey-button:hover,
.checkout-button:hover,
.checkout-grey-button:hover { color: #faffed; }
.checkout-button span {
background: url(@templates_base@/img/checkout-right.jpg) no-repeat 100% 0;
padding: 0 30px 0 20px;
}
.place-grey-button {
background: url(@templates_base@/img/checkout-grey-left.jpg) no-repeat 0 0;
}
.place-grey-button span {
background: url(@templates_base@/img/order-grey-right.jpg) no-repeat 100% 0;
}
.checkout-grey-button {
background: url(@templates_base@/img/checkout-grey-left.jpg) no-repeat 0 0;
margin-top: 20px;
}
.checkout-grey-button span {
background: url(@templates_base@/img/checkout-grey-right.jpg) no-repeat 100% 0;
padding: 0 30px 0 20px;
}
.continue-button {
background: url(@templates_base@/img/bg-button-continue-right.jpg) no-repeat 100% 0;
color: #3c3c3c;
display: inline-block;
font-weight: bold;
margin-right: 20px;
text-decoration: none;
}
.continue-button span {
background: url(@templates_base@/img/bg-button-continue-left.jpg) no-repeat 0 0;
display: inline-block;
height: 26px;
line-height: 26px;
padding: 0 20px 0 25px;
}
.continue-button:hover {
color: #3c3c3c;
}
.cart-detail.receipt .success-order {
background: url(@templates_base@/img/success.png) no-repeat 30px 30px;
border-bottom: 1px solid #d0d0d0;
margin-bottom: 25px;
padding: 0 0 25px 130px;
}
.cart-detail.receipt .success-order .links {
float: right;
padding: 0;
}
.cart-detail.receipt .success-order .links a.link-print {
background: url(@templates_base@/img/icon-print.jpg) no-repeat 0 0;
display: inline-block;
font-weight: bold;
height: 32px;
line-height: 32px;
padding: 0 20px 0 40px;
}
.cart-detail.receipt .success-order .links a.link-download {
background: url(@templates_base@/img/icon-download.jpg) no-repeat 0 0;
display: inline-block;
font-weight: bold;
height: 32px;
line-height: 32px;
padding: 0 0 0 40px;
}
.cart-detail.receipt .success-order .green {
color: #009f00;
font: 1.538em Tahoma,Verdana,Arial,Sans-Serif;
}
.cart-detail.receipt .success-order p {
padding: 5px 0;
}
.cart-detail.receipt p { padding-left: 16px; }
.cart-detail.receipt dl.info {
padding-left: 16px;
}
.cart-detail.receipt dl.info dt {
clear: both !important;
float: left;
font-weight: bold;
padding: 5px 15px 5px 0;
width: 90px;
}
.cart-detail.receipt dl.info dd {
float: left;
padding: 5px 15px 5px 0;
}
.cart-detail.receipt .items {
border-bottom: 1px solid #d1d1d1;
margin-top: 30px;
width: 100%;
}
.cart-detail.shoppingcart .items {
margin-top: 0;
}
.cart-detail.receipt .items thead {
background: url(@templates_base@/img/bg-form-fieldset.jpg) repeat-x 0 0;
border: 1px solid #adadad;
}
.cart-detail.receipt .items th {
color: #000;
font-weight: bold;
padding: 5px 10px;
}
.cart-detail.receipt .items td {
border-top: 1px solid #d1d1d1;
color: #000;
padding: 10px;
text-align: center;
vertical-align: middle;
}
.cart-detail.receipt .items tr:first-child td {
border-top: none;
}
.cart-detail.receipt .items td.options-td {
background-color: #f7f7f7;
border-top: none;
color: #686767;
text-align: left;
}
.cart-detail.receipt .items td.options-td .sel-options { float: left; padding: 0 20px 0 0; }
.cart-detail.receipt .items .item-img { width: 70px; }
.cart-detail.receipt .items .item-total { font-weight: bold; }
.cart-detail.receipt .items .item-title {
color: #333;
font-weight: bold;
text-align: left;
}
.cart-detail.receipt .items .item-quantity { position: relative; }
.cart-detail.receipt .items .item-quantity .field { text-align: center; width: 30px; }
.formStatus {
position: absolute;
top: 37px;
left: 15px;
display: block;
z-index: 5000;
cursor: pointer;
}
.formStatus .formContent {
width: 100%;
position:relative;
z-index:5001;
color: #fff;
white-space: nowrap;
font-family: Arial;
font-size: 12px;
box-shadow: 0 0 3px #444;
-moz-box-shadow: 0 0 3px #444;
-webkit-box-shadow: 0 0 3px #444;
padding: 4px 10px 4px 10px;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
}
.formStatus .formArrow {
height: 11px;
margin: -34px 0 0 22px;
position: relative;
width: 21px;
z-index: 5006;
}
.formStatus.formSuccess .formContent { background: #398d1d url(@templates_base@/img/validate/con-success.png) repeat-x 0 0; }
.formStatus.formSuccess .formArrow { background: url(@templates_base@/img/validate/con-success-arrow.png) no-repeat 0 0; }
.formStatus.formError .formContent { background: #990000 url(@templates_base@/img/validate/con-error.png) repeat-x 0 0; }
.formStatus.formError .formArrow { background: url(@templates_base@/img/validate/con-error-arrow.png) no-repeat 0 0; }
.cart-detail.receipt dl.total { float: right; padding-right: 30px; }
.cart-detail.receipt .discount-block {
float: left;
padding: 20px 0 0;
width: 300px;
}
.cart-detail.receipt .discount-block p { padding: 5px 0; }
.cart-detail.receipt .discount-block .field { width: 170px; }
.cart-detail.receipt .discount-block .num-discount { position: relative; }
.cart-detail.receipt .discount-block .formStatus { left: -15px; }
.cart-detail.shoppingcart h1 { float: left; }
.cart-detail.shoppingcart .buttons-right { float: right; text-align: right; }
.cart-detail.shoppingcart .buttons-right dl.total { float: none; padding-right: 0; }
Index: branches/1.0.x/inc/profile.css
===================================================================
--- branches/1.0.x/inc/profile.css (revision 14804)
+++ branches/1.0.x/inc/profile.css (revision 14805)
@@ -1,133 +1,133 @@
@charset "UTF-8";
/* Profile Blocks
*******************************************************************************/
.profile {
background-color: #fff;
border: 1px solid #d0d0d0;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding: 20px 30px;
width: auto;
}
.profile.registerpage {
border: none;
padding: 0 30px;
width: 680px;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.profile-title {
border-bottom: 1px solid #d0d0d0;
margin-bottom: 15px;
padding-bottom: 15px;
}
.profile, .review h1 {
color: #525252;
float: left;
font: 1.538em Verdana,Arial,Tahoma,Sans-Serif;
}
.profile p.req {
color: #3e85d2;
float: right;
font-size: 1em;
font-weight: bold;
padding-top: 10px;
}
.profile .halfcol {
float: left;
padding: 0 15px 0 0;
width: 315px;
}
.profile .halfcol-last {
padding: 0;
position: relative;
}
.profile-form label {
display: block;
font-weight: bold;
padding-bottom: 3px;
}
.profile-form.left label {
display: inline;
padding-bottom: 0px;
float: left;
padding-top: 3px;
width: 90px;
}
.field-content label {
display: inline;
font-weight: normal;
padding: 0;
}
.red {
color: #cd0000;
font-weight: normal;
padding: 0 0 0 5px;
}
.profile-form p {
clear: both !important;
float: left;
padding: 5px 0;
}
.profile-form .field { width: 270px; }
.profile-form .alt2 .field { width: 150px; }
.field.statusSuccess {
background: url(@templates_base@/img/bg-field-success.jpg) repeat-x 0 0;
border: 1px solid #80d04d !important;
}
.field.statusError, .error .field {
background: url(@templates_base@/img/bg-field-error.jpg) repeat-x 0 0;
border: 1px solid #d80000 !important;
}
.review .profile-form .field { float: left; width: 380px; }
.review .profile-form p.buttons { padding: 0 0 0 90px; width: 380px; }
.review .profile-form p.buttons em { float: right; text-align: right; width: 170px; }
.terms {
text-align: center;
width: 100%;
}
.password-block {
- display: none;
+ /*display: none;*/
float: left;
padding: 5px 0;
position: relative;
width: 100%;
}
.registerpage .password-block { display: block; }
.password-block p {
clear: none !important;
padding: 0 15px 0 0;
}
.password-block p.pasfield2 { padding: 0; }
.password-block .field { width: 121px; }
#change-password { color: #267bd1; }
.colorbar {
display: inline-block;
height: 8px;
width: 29px;
}
.password-strength { display: none; font-weight: bold; }
.password-strength .meterDefault { color: #aaa; }
.password-strength .meterFail { color: #daa; }
.password-strength .meterWarn { color: #fd6; }
.password-strength .meterGood { color: #ada; }
.password-strength .meterExcel { color: #66c133; }
.password-strength .colorbar.meterDefault { background-color: #ddd; }
.password-strength .colorbar.meterFail { background-color: #fdd; }
.password-strength .colorbar.meterWarn { background-color: #feb; }
.password-strength .colorbar.meterGood { background-color: #dfd; }
.password-strength .colorbar.meterExcel { background-color: #66c133; }
Index: branches/1.0.x/inc/js/jquery.scripts.js
===================================================================
--- branches/1.0.x/inc/js/jquery.scripts.js (revision 14804)
+++ branches/1.0.x/inc/js/jquery.scripts.js (revision 14805)
@@ -1,190 +1,188 @@
/* === General usage functions === */
function jq($selector) {
return $selector.replace(/(\[|\]|\.)/g, '\\$1');
}
function in_array(needle, haystack)
{
return array_search(needle, haystack) != -1;
}
function array_search(needle, haystack)
{
for (var i=0; i<haystack.length; i++)
{
if (haystack[i] == needle) return i;
}
return -1;
}
Array.prototype.diff = function(a) {
return this.filter(
function (i) {
return a.indexOf(i) == -1;
}
);
};
function update_checkbox_options($cb_mask, $hidden_id, $form_id)
{
var $tmp = '',
$kf = document.getElementById($form_id !== undefined ? $form_id : $form_name);
for (var i = 0; i < $kf.elements.length; i++) {
if ( $kf.elements[i].id.match($cb_mask) ) {
if ($kf.elements[i].checked) {
$tmp += '|'+$kf.elements[i].value;
}
}
}
if ($tmp.length > 0) {
$tmp += '|';
}
document.getElementById($hidden_id).value = $tmp.replace(/,$/, '');
}
/* === DBlocks class === */
function DBlocks() {
var $me = this;
- this.selectors = ['#lang', '#currency', '#login', '#login-alt', '#profile'];
+ this.selectors = ['#lang', '#currency', '#login', /*'#login-alt',*/ '#profile'];
$(document).ready(
function () {
$me.init();
}
);
}
DBlocks.prototype.init = function () {
var $manager = this;
- $( this.selectors.join(', ') ).click(
+ $( this.selectors.join(', ') ).unbind('click').click(
function($e, $now) {
var $me = $(this),
$parent = $me.parent();
if ( $parent.is('.plashka-sel') ) {
$parent.removeClass('plashka-sel');
if ( $now === undefined || $now === false ) {
$('#' + $me.attr('id') + '-sel').fadeOut();
}
else {
$('#' + $me.attr('id') + '-sel').hide();
}
}
else {
$manager.hideOthers($me);
$parent.addClass('plashka-sel');
$('#' + $me.attr('id') + '-sel').fadeIn();
}
return false;
}
);
$('.icon-close').click(
function() {
- $('#login,#login-alt').parent().removeClass('plashka-sel');
- $('#login-sel, #login-alt-sel').fadeOut();
+ $('#login').parent().removeClass('plashka-sel'); // ,#login-alt
+ $('#login-sel').fadeOut(); // , #login-alt-sel
return false;
}
);
}
DBlocks.prototype.hideOthers = function ($current) {
$( this.selectors.join(', ') ).not($current).each(
function () {
var $me = $(this),
$parent = $me.parent();
if ( $parent.is('.plashka-sel') ) {
$me.trigger('click', [true]);
}
}
);
}
/* === RatingManager class === */
function RatingManager ($url) {
this.Url = $url;
}
RatingManager.prototype.makeVote = function ($vote, $prefix, $id, $size) {
var $url = this.Url.replace('#PREFIX#', $prefix).replace('#VOTE#', $vote).replace('#ID#', $id).replace('#SIZE#', $size);
$.get(
$url,
function ($response) {
if ($response.substring(0, 5) == '@err:') {
alert( $response.substring(5) );
return ;
}
document.getElementById('page_rating_' + $id).innerHTML = $response;
}
)
}
$(document).ready(function()
{
$('#change-password').click(
function($e) {
$('#password-show').hide();
$('#password-block').fadeIn();
return false;
}
);
$('.addtocart, .button-addtocart').click(
function () {
var $me = $(this),
$qty = $me.attr('qty_id') !== undefined ? parseInt($('#' + $me.attr('qty_id')).val()) : 1;
if ( $me.hasClass('addedtocart') ) {
// disabled button
return false;
}
if ( isNaN($qty) ) {
$qty = 1;
}
var $bubble = $('.basketStatus'),
$timer_id = $bubble.data('hide_timer');
clearTimeout($timer_id);
$.get(
$me.attr('href') + '&qty=' + $qty,
function ($bubble_content) {
$('.basketContent', $bubble).html( $bubble_content.replace(/#QTY#/g, $qty) );
$bubble
.stop(true, true)
.fadeIn(
'slow',
function () {
var $timer = setTimeout(function(){ $bubble.fadeOut('slow'); }, 2000);
$bubble.data('hide_timer', $timer);
}
);
if ( $me.hasClass('addtocart') ) {
$me.removeClass('addtocart').addClass('addedtocart').html('Added to Cart');
}
}
);
return false;
}
);
-});
-
-new DBlocks();
\ No newline at end of file
+});
\ No newline at end of file
Index: branches/1.0.x/inc/js/form_manager.js
===================================================================
--- branches/1.0.x/inc/js/form_manager.js (revision 14804)
+++ branches/1.0.x/inc/js/form_manager.js (revision 14805)
@@ -1,509 +1,515 @@
function FormManager() { }
FormManager.init = function ($settings) {
$.ajaxSetup( {cache: false} );
this.url = '';
this.fieldMask = '#PREFIX#[#ID#][#FIELD_NAME#]';
this.noErrorsHTML = ''
this.checkTimeout = 1000;
this.pendingChecks = {};
this.fields = {};
this.fieldTypes = {};
this.forms = {};
this.fieldWatermarks = {};
this.xhrRequests = [];
$.extend(this, $settings);
}
FormManager.resetFields = function ($prefix) {
this.fields[$prefix] = [];
}
FormManager.registerField = function ($prefix, $field, $watermark, $field_type) {
// fields are registered before form -> store them in separate array
if (!this.fields[$prefix]) {
this.fields[$prefix] = [];
}
if ($watermark === undefined) {
$watermark = '';
}
this.fieldWatermarks[$prefix + '_' + $field] = $watermark;
this.fields[$prefix].push($field);
if ($field_type !== undefined) {
this.fieldTypes[$prefix + '_' + $field] = $field_type;
}
}
FormManager.getFieldMask = function ($prefix) {
return this.fieldMask.replace('#PREFIX#', $prefix).replace('#ID#', this.form_param($prefix, 'id'));
}
FormManager.getField = function ($prefix, $field, $prepend, $append) {
if ($prepend === undefined) {
$prepend = '';
}
if ($append === undefined) {
$append = '';
}
var $control_id = this.getFieldMask($prefix).replace('#FIELD_NAME#', $field);
return document.getElementById($prepend + $control_id + $append);
}
FormManager.getBlurFields = function ($prefix, $field) {
var $field_mask = this.getFieldMask($prefix);
switch ( this.fieldTypes[$prefix + '_' + $field] ) {
case 'swf_upload':
return this.getField($prefix, $field, undefined, '[tmp_names]');
break;
case 'date':
$field += '_date';
break;
case 'radio':
return $("input[name='" + jq($field_mask.replace('#FIELD_NAME#', $field)) + "']");
break;
case 'checkbox':
return get_control($field_mask, $field, undefined, '_cb');
break;
case 'checkboxes':
return $("input[id^='" + jq($field_mask.replace('#FIELD_NAME#', $field)) + "_']");
break;
}
return this.getField($prefix, $field);
}
FormManager.registerForm = function ($settings) {
var $defaults = {
url: false, // url for form submission
prefix: '', // unit prefix, used in the form
enabled: true, // form submit enabled
enabledTimer: null, // timer that performs form-resubmit countdown
save_event: '', // event to use for form data processing
id: 0, // id of item being add/edited on a form
form_id: '', // form id to work with
before_close: '', // before window close callback
validation_failure: '', // on validate failure callback
immediate_validation: true // perfom validation on blur
}
this.forms[$settings.prefix] = {};
$.extend(this.forms[$settings.prefix], $defaults, $settings);
// when form is registred, then all it's fields should also be registred
if ( !this.form_param($settings.prefix, 'immediate_validation') ) {
return ;
}
var $me = this;
$( this.fields[$settings.prefix] ).each(
function () {
$( $me.getBlurFields($settings.prefix, this) ).blur(
function ($e) {
$me.checkField(this);
}
);
}
);
$('input[title], select[title], textarea[title]', '#' + this.forms[$settings.prefix].form_id).qtip(
{
style: {
classes: 'ui-tooltip-light ui-tooltip-shadow'
},
position: {
my: 'left center',
at: 'right center'
},
show: {
event: 'focus'
}
}
);
$('img.help-icon', '#' + this.forms[$settings.prefix].form_id ).qtip(
{
style: {
classes: 'ui-tooltip-light ui-tooltip-shadow'
},
position: {
my: 'bottom left',
at: 'top center'
}
}
);
}
FormManager.getURL = function ($prefix, $template, $event, $params) {
var $url = this.form_param($prefix, 'url');
if (!$url) {
$url = this.url;
}
if ($template === undefined) {
$template = '';
}
$url = $url.replace('#TEMPLATE#', $template);
if ($event !== undefined) {
$url += ($url.indexOf('?') == -1 ? '?' : '&') + 'events[' + $prefix + ']=' + $event;
}
if ( typeof($params) == 'object' ) {
for (key in $params) {
$url += ($url.indexOf('?') == -1 ? '?' : '&') + key + '=' + $params[key];
}
}
return $url;
}
FormManager.processResponse = function ($prefix, $data, $add_params) {
// enable form back
// alert('enabling for for [' + $prefix + '] in processResponse');
if ( $add_params !== undefined ) {
$add_params.response = $data;
}
else {
$add_params = {response: $data};
}
this.clearErrors($prefix);
if ($data.status == 'OK') {
var $next_template = this.getNextTemplate($prefix, $data);
if ( $next_template || $data.do_refresh ) {
var $before_close = this.getFormParamOverride($prefix, 'before_close', $add_params);
if ( $.isFunction($before_close) ) {
$before_close.call(this, $data, $add_params);
}
if ( $next_template ) {
// load another template instead of current form
$('#TB_ajaxContent').html('').load( this.getURL($prefix, $next_template, undefined, $data.params) );
}
else if ( $data.do_refresh ) {
// refresh whole page
window.location.href = window.location.href;
}
}
else {
// close form without refreshing the page
this.closeForm($prefix, $data, $add_params);
}
}
else {
// set new errors
for ($field in $data.field_errors) {
this.setFieldStatus($prefix, $field, $data.field_errors[$field]);
}
var $validation_failure = this.form_param($prefix, 'validation_failure');
if ( $.isFunction($validation_failure) ) {
$validation_failure.call(this, $data, $add_params);
}
}
this.enableForm($prefix, true);
// var $me = this;
// setTimeout(function () { $me.enableForm($prefix, true); }, 1000);
}
/**
* Clear errors from all from fields
*
* @param $prefix
*/
FormManager.clearErrors = function ($prefix) {
var $fields = this.fields[$prefix];
if (typeof($fields) == 'undefined') {
$fields = [];
}
for (var $i = 0; $i < $fields.length; $i++) {
this.setFieldStatus($prefix, $fields[$i]);
}
}
FormManager.getNextTemplate = function ($prefix, $responce) {
if ( $responce.next_template && $responce.next_template != '' ) {
return $responce.next_template;
}
else if ( this.form_param($prefix, 'next_template') ) {
return this.form_param($prefix, 'next_template');
}
return false;
}
+FormManager.getCell = function ($prefix, $field_name, $cell_type) {
+ $field_name = $field_name.replace(/_(date|time)$/, '');
+
+ return this.getField($prefix, $field_name, undefined, '_' + $cell_type + '_cell');
+}
+
FormManager.setFieldStatus = function ($prefix, $field_name, $error_msg) {
- var field_cell = this.getField($prefix, $field_name, undefined, '_field_cell');
- var status_cell = this.getField($prefix, $field_name, undefined, '_status_cell');
+ var field_cell = this.getCell($prefix, $field_name, 'field');
+ var status_cell = this.getCell($prefix, $field_name, 'status');
if (!field_cell) {
alert('Error field "' + $field_name + '" missing.');
return ;
}
if ($error_msg === undefined || !$error_msg) {
// show OK
$(field_cell).parents('p:first').removeClass('error'); //.addClass('ok');
$(status_cell)/*.removeClass('field-error')*/.html(this.noErrorsHTML);
var $fields = this.fields[$prefix];
for (var $i = 0; $i < $fields.length; $i++) {
if ( this.fieldHasError($prefix, $fields[$i]) ) {
return ;
}
}
}
else {
// show error message
$(field_cell).parents('p:first')/*.removeClass('ok')*/.addClass('error');
$(status_cell)/*.addClass('field-error')*/.html($error_msg);
}
}
FormManager.fieldHasError = function ($prefix, $field) {
var status_cell = this.getField($prefix, $field, undefined, '_status_cell');
return $.trim( $(status_cell).html() ) != $.trim( this.noErrorsHTML );
}
FormManager.checkField = function ($input, $delayed) {
if ( !$input.id.match(/^(.*?)\[.*?\]\[(.*?)\].*?$/) ) {
return ;
}
var $prefix = RegExp.$1;
var $field = RegExp.$2.replace(/(_date|_time)$/, '');
if ( this.pendingChecks[$field] ) {
clearTimeout( this.pendingChecks[$field] );
delete this.pendingChecks[$field];
}
var $me = this;
this.pendingChecks[$field] = setTimeout(
function () {
$me.validateField($prefix, $field, $input)
},
($delayed === true ? this.checkTimeout : 0)
);
}
FormManager.validateField = function ($prefix, $field, $input) {
var $me = this;
var form = document.getElementById( this.form_param($prefix, 'form_id') );
var $request = $.post(
this.getURL($prefix, undefined, 'OnValidateField') + '&field=' + encodeURIComponent($field) + '&' + $input.name + '=' + encodeURIComponent($input.value),
$(form).serialize(),
function ($data) {
$data = eval('(' + $data + ')');
$me.setFieldStatus($prefix, $field, $data.status == 'OK' ? undefined : $data.status);
- $("input[type='submit']").attr('disabled', !$.isArray($data.other_errors) );
+ $("input[type='submit']", form).attr('disabled', !$.isArray($data.other_errors) );
}
);
this.xhrRequests.push($request);
};
FormManager.form_param = function ($prefix, $param, $value) {
if ($value === undefined) {
return this.forms[$prefix][$param];
}
this.forms[$prefix][$param] = $value;
}
FormManager.getFormParamOverride = function ($prefix, $param, $overrides) {
if ( $overrides[$param] !== undefined ) {
return $overrides[$param];
}
return this.form_param($prefix, $param);
}
/* === related to form opening/closing/submitting === */
FormManager.openForm = function ($prefix, $template, $width, $height, $source_form, $params) {
var $url = this.getURL($prefix, $template, undefined, $params);
$url += ($url.indexOf('?') == -1 ? '?' : '&') + 'width=' + $width + '&height=' + $height + '&modal=true';
var $tb_settings = {url: $url};
if ($source_form !== undefined) {
$tb_settings.postParams = $($source_form).serialize();
}
TB.show($tb_settings);
}
FormManager.validateAll = function ($prefix, $status) {
var $fields = this.fields[$prefix];
for (var $i = 0; $i < $fields.length; $i++) {
this.setFieldStatus($prefix, $fields[$i], $status);
}
}
FormManager.closeForm = function ($prefix, $data, $add_params) {
if ( $data === undefined ) {
$data = {};
}
if ( $add_params === undefined ) {
$add_params = {};
}
var $before_close = this.getFormParamOverride($prefix, 'before_close', $add_params);
this.cancelXHRRequests();
this.validateAll($prefix);
if ( $.isFunction($before_close) ) {
var $result = $before_close.call(this, $data, $add_params);
if ($result === false) {
return;
}
}
TB.remove();
}
FormManager._getFormFields = function ($prefix) {
var $fields = this.fields[$prefix];
if (typeof($fields) == 'undefined') {
$fields = [];
}
// remove watermakrs from input fields
for (var $i = 0; $i < $fields.length; $i++) {
var $control = this.getField($prefix, $fields[$i]);
var $watermark = this.fieldWatermarks[ $prefix + '_' + $fields[$i] ];
if ($control && $watermark !== undefined && $control.value == $watermark) {
$control.value = '';
}
}
var form = document.getElementById( this.form_param($prefix, 'form_id') );
var $form_fields = $(form).serialize();
// restore watermarks in input fields
for (var $i = 0; $i < $fields.length; $i++) {
var $control = this.getField($prefix, $fields[$i]);
var $watermark = this.fieldWatermarks[$prefix + '_' + $fields[$i]];
if ($control && $watermark !== undefined && !$control.value) {
$control.value = $watermark;
}
}
return $form_fields;
}
FormManager.enableForm = function ($prefix, $enabled) {
if ($enabled === undefined) {
$enabled = true;
}
if ($enabled) {
clearTimeout( this.form_param($prefix, 'enabledTimer') );
this.form_param($prefix, 'enabledTimer', null);
}
else {
var $me = this;
// set timer for 10 seconds to enable form back (just in case if ajax responce fails)
var $timer = setTimeout(
function () {
// alert('enabling for for [' + $prefix + '] in setTimeout');
$me.enableForm($prefix, true);
}
, 10000
);
this.form_param($prefix, 'enabledTimer', $timer);
}
this.form_param($prefix, 'enabled', $enabled);
}
FormManager.cancelXHRRequests = function () {
while ( this.xhrRequests.length > 0 ) {
this.xhrRequests.shift().abort();
}
}
FormManager.submitForm = function ($prefix, $add_params) {
if ( !this.form_param($prefix, 'enabled') ) {
return ;
}
// disable form
this.enableForm($prefix, false);
var $me = this;
this.cancelXHRRequests();
$.post(
this.getURL( $prefix, '', this.form_param($prefix, 'save_event') ),
this._getFormFields($prefix),
function ($data) {
var $redirect = TB.parseRedirect($data);
if ( $redirect !== false ) {
window.location.href = $redirect;
return ;
}
$me.processResponse($prefix, eval('(' + $data + ')'), $add_params);
}
)
}
FormManager.beforeClose = function () {
this.cancelXHRRequests();
for (var $prefix in this.forms) {
var $before_close = this.form_param($prefix, 'before_close');
if ( $.isFunction($before_close) ) {
$before_close.call(this, {}, {});
}
}
}
\ No newline at end of file
Index: branches/1.0.x/elements/login.elm.tpl
===================================================================
--- branches/1.0.x/elements/login.elm.tpl (revision 14804)
+++ branches/1.0.x/elements/login.elm.tpl (revision 14805)
@@ -1,85 +1,89 @@
<inp2:m_if check="m_LoggedIn">
<div class="txt logged">Welcome back, <strong><inp2:u_Field name="FirstName"/></strong>!</div>
<div class="profile-menu">
<div class="link">
<a href="" id="profile">My Account</a>
</div>
<div id="profile-sel" class="plashka">
<ul>
<li><a href="#" class="active">My Profile</a></li>
<li><a href="#" class="">Track Orders</a></li>
<li><a href="#" class="">Order History</a></li>
<li><a href="#" class="">Return Policy</a></li>
<li><a href="#" class="">Affiliates</a></li>
<li><a href="#" class="">Contact Us</a></li>
</ul>
</div>
</div>
<div class="logout logged">
<a href="<inp2:u_LogoutLink/>">Log Out</a>
</div>
<inp2:m_else/>
<div class="txt">
Welcome! Please <a href="<inp2:m_Link template='elements/ajax/register' width='850' height='630'/>" class="thickbox">Register</a> for an account or
<div class="login">
<a href="" id="login">Log In</a>
</div>
<div id="login-sel" class="plashka">
<a href="" class="icon-close"><img src="<inp2:m_TemplatesBase />img/icon-close.gif" width="6" height="6" alt="Close" /></a>
<script type="text/javascript">
FormManager.resetFields('u.login-sidebox');
</script>
<inp2:u.login-sidebox_FormName name="login"/>
<form method="post" action="#" id="login-form" class="form login-form">
<fieldset>
<inp2:m_RenderElement name="error_msg_container" prefix="u.login-sidebox" field="UserLogin" style="padding: 0px; display: block;"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.login-sidebox" field="UserLogin" title="lu_fld_EmailOrUsername" error_position="none"/>
<inp2:m_RenderElement name="inp_edit_password_single" prefix="u.login-sidebox" field="UserPassword" title="lu_fld_Password" error_position="none"/>
<p>
<label>
<input type="checkbox" name="<inp2:u.login-sidebox_InputName name='UserRememberLogin'/>" id="<inp2:u.login-sidebox_InputName name='UserRememberLogin'/>" value="1" /> <u>Remember me on this computer</u>
</label>
</p>
<p class="buttons">
<input type="submit" value="Sign in" class="green-button"/>&nbsp;&nbsp;&nbsp;
<a href="#" style="font-weight: normal;">Forgot password?</a>
</p>
</fieldset>
<input type="hidden" name="forms[u.login-sidebox]" value="<inp2:u.login-sidebox_FormName/>"/>
</form>
<script type="text/javascript">
$(document).ready(
function () {
FormManager.registerForm(
{
prefix: 'u.login-sidebox',
save_event: 'OnLoginAjax',
id: '<inp2:u.login-sidebox_Field name="PortalUserId"/>',
form_id: 'login-form',
- immediate_validation: false
+ immediate_validation: false,
+ before_close: function ($data, $add_params) {
+ $('#header').load('<inp2:m_Link render_template="elements/header.elm" pass="all" no_amp="1" js_escape="1"/>');
+ $('body').trigger('OnAfterLogin', [$data]);
+ }
}
);
$('#login-form').submit(
function ($e) {
FormManager.submitForm('u.login-sidebox');
return false;
}
);
}
);
</script>
</div>
</div>
</inp2:m_if>
\ No newline at end of file
Index: branches/1.0.x/elements/ajax/register.tpl
===================================================================
--- branches/1.0.x/elements/ajax/register.tpl (revision 14804)
+++ branches/1.0.x/elements/ajax/register.tpl (revision 14805)
@@ -1,81 +1,82 @@
<!--<link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/profile.css'/>" charset="<inp2:lang.current_Field name='Charset'/>"/>-->
<script type="text/javascript">
FormManager.resetFields('u.register');
</script>
<inp2:m_Include template="elements/forms.elm" strip_nl="2"/>
<inp2:u.register_FormName name="registration"/>
<div class="profile registerpage">
<div class="profile-title">
<h1>Registration</h1>
<p class="req">Required fields are marked by <span class="star">*</span></p>
<div class="clear"></div>
</div>
<form method="post" action="<inp2:m_FormAction/>" id="register_form" class="form profile-form">
<div class="halfcol">
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="FirstName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="LastName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Company"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Email"/>
<inp2:m_RenderElement name="inp_edit_radio" prefix="u.register" field="SubscribeToMailing"/>
<inp2:m_RenderElement name="inp_edit_password" prefix="u.register" field="Password"/>
</div>
<div class="halfcol halfcol-last">
<inp2:m_RenderElement name="inp_edit_address" prefix="u.register" field="Street" field2="Street2" title="lu_fld_Address"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="City"/>
<inp2:m_RenderElement name="inp_edit_options" prefix="u.register" field="Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="u.register" field="State" has_empty="1"/>
<!-- TODO: preload states by country -->
-
+ <inp2:m_RenderElement name="inp_edit_options" prefix="u.register" field="State" has_empty="1"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Zip" row_class="alt2"/>
+
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Phone"/>
</div>
<div class="clear"></div>
<div class="terms">
<label><input type="checkbox" id="terms" name="terms" value="yes" checked="true" />&nbsp;I Agree to Terms and Conditions</label>
</div>
<inp2:m_RenderElement design="inp_edit_buttons">
<input type="submit" value="Register" class="green-button" disabled/>&nbsp;&nbsp;&nbsp;
<input type="reset" value="Cancel" class="grey-button" />
</inp2:m_RenderElement>
<input type="hidden" name="forms[u.register]" value="<inp2:u.register_FormName/>"/>
</form>
</div>
<script type="text/javascript">
$(document).ready(
function () {
FormManager.registerForm(
{
prefix: 'u.register',
save_event: 'OnRegisterAjax',
id: '<inp2:u.register_Field name="PortalUserId"/>',
form_id: 'register_form'
}
);
$('#register_form').submit(
function ($e) {
FormManager.submitForm('u.register');
return false;
}
);
$('input[type=reset]', '#register_form').click(
function ($e) {
FormManager.closeForm('u.register');
return false;
}
);
}
);
</script>
Index: branches/1.0.x/elements/forms.elm.tpl
===================================================================
--- branches/1.0.x/elements/forms.elm.tpl (revision 14804)
+++ branches/1.0.x/elements/forms.elm.tpl (revision 14805)
@@ -1,412 +1,412 @@
<inp2:m_Set tab_index="1"/>
<inp2:m_DefineElement name="subsection">
<tr class="subsection">
<td colspan="2">
<h2><inp2:m_Phrase label="$title"/></h2>
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_buttons" style="">
<p class="buttons" style="<inp2:m_Param name='style'/>">
<inp2:m_Param name="content"/>
</p>
<div class="clear"></div>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="form_row_full" is_last="0">
<tr class="field-row<inp2:m_if check='m_Param' name='is_last'>-last</inp2:m_if>">
<td colspan="2">
<inp2:m_Param name="content"/>
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_field_separator" no_editing="1" is_last="0">
<inp2:m_if check="m_ParamEquals" name="is_last" value="0">
<!--<hr/>-->
</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="form_row" row_class='' prefix="" field="" error_field_suffix="" title="lu_fld_{$field}" hint_label="" is_last="0" field_type="" error_position="top" show_length="1">
<inp2:m_inc param="tab_index" by="1"/>
<p class="<inp2:m_Param name='row_class'/><inp2:m_if check='{$prefix}_HasError' field='{$field}{$error_field_suffix}'> error</inp2:m_if>">
<label class="field-title" for="<inp2:{$prefix}_InputName field='{$field}{$error_field_suffix}'/>">
<inp2:m_Phrase label="$title"/><inp2:m_if check="{$prefix}_IsRequired" field="{$field}{$error_field_suffix}"> <span class="star">*</span></inp2:m_if>
<inp2:m_if check="m_Param" name="error_position" equals_to="top">
<inp2:m_RenderElement name="error_msg_container" pass_params="1"/>
</inp2:m_if>
</label>
<span class="field-content" id="<inp2:{$prefix}_InputName field='$field'/>_field_cell">
<inp2:m_Param name="content" pass_params="1"/>
</span>
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
&nbsp;&nbsp;<a href="#"><img src="<inp2:m_TemplatesBase/>img/icon-help.png" width="16" height="16" class="help-icon" title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>" alt=""/></a>
</inp2:m_if>
<script type="text/javascript">
FormManager.registerField('<inp2:m_Param name="prefix"/>', '<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="formatter" equals_to="kMultiLanguage">l<inp2:m_Get name="m_lang"/>_</inp2:m_if><inp2:m_Param name="field"/>', undefined, '<inp2:m_Param name="field_type"/>');
</script>
</p>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="error_msg_container" style="" error_field_suffix="">
<em class="red" id="<inp2:{$prefix}_InputName field='$field'/>_status_cell" style="<inp2:m_Param name='style'/>">
<inp2:{$prefix}_Error field="{$field}{$error_field_suffix}"/>
</em>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_label" as_label="" title="lu_fld_{$field}" currency="" show_length="0" field_type="label" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:{$prefix}_Field field="$field" as_label="$as_label" currency="$currency"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_box" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_rating" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_address" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/><br/>
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field2'/>"
id="<inp2:{$prefix}_InputName field='$field2'/>"
value="<inp2:{$prefix}_Field field='$field2'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field2" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field2' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_password_single" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
-<inp2:m_DefineElement name="inp_edit_password" title="lu_fld_{$field}" style="" field_type="text" no_editing="1">
+<inp2:m_DefineElement name="inp_edit_password" title="lu_fld_{$field}" verify_title="lu_fld_Verify{$field}" style="" field_type="text" no_editing="1">
<inp2:m_ifnot check="m_Get" name="password_js_included">
<script src="<inp2:m_Compress files='inc/js/passwordStrengthMeter.js'/>" type="text/javascript"></script>
<inp2:m_Set password_js_included="1"/>
</inp2:m_ifnot>
<div id="password-block" class="password-block">
<inp2:m_RenderElement design="form_row" row_class="pasfield1" error_position="none" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:$prefix_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field name='{$field}_plain'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
- <inp2:m_RenderElement design="form_row" row_class="pasfield2" field="Verify{$field}" title="lu_fld_Verify{$field}" error_position="none" pass_params="1">
+ <inp2:m_RenderElement design="form_row" row_class="pasfield2" field="Verify{$field}" title="$verify_title" error_position="none" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:$prefix_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field name='{$field}_plain'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
<div class="clear"></div>
<div class="password-strength" id="<inp2:{$prefix}_InputName field='$field'/>_strength">Enter your password</div>
<inp2:m_RenderElement name="error_msg_container" style="padding: 0px; display: block;" pass_params="1"/>
<inp2:m_RenderElement name="error_msg_container" field="Verify{$field}" style="padding: 0px; display: block;" pass_params="1"/>
<script type="text/javascript">
new PasswordStrengthMeter(
{
inputSelector: '#' + jq('<inp2:{$prefix}_InputName field="$field"/>'),
phrases: {
'short': '<inp2:m_Phrase name="lu_PasswordStrengthShort" js_escape="1"/>',
'bad': '<inp2:m_Phrase name="lu_PasswordStrengthBad" js_escape="1"/>',
'good': '<inp2:m_Phrase name="lu_PasswordStrengthGood" js_escape="1"/>',
'strong': '<inp2:m_Phrase name="lu_PasswordStrengthStrong" js_escape="1"/>'
}
}
);
</script>
</div>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_upload" title="lu_fld_{$field}" style="" field_type="upload" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="file"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
<inp2:m_if check="{$prefix}_FieldEquals" name="$field" value="" inverse="inverse">
(<inp2:{$prefix}_Field field="$field"/>)
</inp2:m_if>
<input type="hidden" name="<inp2:{$prefix}_InputName field="$field"/>[upload]" value="<inp2:{$prefix}_Field field="$field"/>" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_hidden" db="">
<input type="hidden" name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>" value="<inp2:{$prefix}_Field field="$field" db="$db"/>" />
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_date" title="lu_fld_{$field}" style="" no_editing="1" field_type="date" error_field_suffix="_date">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field="{$field}_date"/>"
id="<inp2:{$prefix}_InputName field="{$field}_date"/>"
value="<inp2:{$prefix}_Field field="{$field}_date" format="_regional_InputDateFormat"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:{$prefix}_Format field="{$field}_date" input_format="1" edit_size="edit_size"/>"
style="<inp2:m_param name="style"/>"
datepickerIcon="<inp2:m_TemplatesBase module="In-Portal"/>img/calendar_icon.gif"
/>
<input type="hidden" name="<inp2:{$prefix}_InputName field="{$field}_time"/>" id="<inp2:{$prefix}_InputName field="{$field}_time" input_format="1"/>" value="" />
<script type="text/javascript">
$( '#' + jq('<inp2:{$prefix}_InputName field="{$field}_date"/>') ).datepicker(
{
inline: true,
dateFormat: get_jq_date_format('<inp2:$prefix_Format name="{$field}_date" input_format="1"/>'),
showOn: 'button',
buttonImage: '<inp2:m_TemplatesBase/>img/calendar_btn.gif',
buttonImageOnly: true,
onSelect: function(dateText, inst) {
if ( dateText != '' ) {
$(this).focus();
}
}
}
);
</script>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_time" title="lu_fld_{$field}" style="" no_editing="1" field_type="time" error_field_suffix="_time">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field='{$field}_time'/>"
id="<inp2:{$prefix}_InputName field='{$field}_time'/>"
value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>"
tabindex="<inp2:m_get param='tab_index'/>"
size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>"
style="<inp2:m_param name='style'/>">
<input type="hidden" name="<inp2:{$prefix}_InputName field="{$field}_date"/>" id="<inp2:{$prefix}_InputName field="{$field}_date" input_format="1"/>" value="" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_date_time" title="lu_fld_{$field}" style="" field_type="date_time" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field="{$field}_date"/>"
id="<inp2:{$prefix}_InputName field="{$field}_date"/>"
value="<inp2:{$prefix}_Field field="{$field}_date"
format="_regional_InputDateFormat"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:{$prefix}_Format field="{$field}_date" input_format="1" edit_size="edit_size"/>"
style="<inp2:m_param name="style"/>"
datepickerIcon="<inp2:m_ProjectBase/>core/admin_templates/img/calendar_icon.gif"
/>
<script type="text/javascript">
initCalendar("<inp2:{$prefix}_InputName field="{$field}_date"/>", "<inp2:{$prefix}_Format field="{$field}_date" input_format="1"/>");
</script>
&nbsp;
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field='{$field}_time'/>"
id="<inp2:{$prefix}_InputName field='{$field}_time'/>"
value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>"
tabindex="<inp2:m_get param='tab_index'/>"
size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_textarea" title="lu_fld_{$field}" style="width: 100%;" cols="" rows="" format="" error_position="top" field_type="textarea" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<textarea
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
tabindex="<inp2:m_get param="tab_index"/>"
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
cols="<inp2:m_param name='cols'/>"
rows="<inp2:m_param name='rows'/>"
style="<inp2:m_param name='style'/>"
><inp2:{$prefix}_Field field="$field" format="$format"/></textarea>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_option_item">
<option value="<inp2:m_param name="key"/>"<inp2:m_param name="selected"/>><inp2:m_param name="option"/></option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_option_phrase">
<option value="<inp2:m_param name="key"/>"<inp2:m_param name="selected"/>><inp2:m_phrase label="$option"/></option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_options" title="lu_fld_{$field}" style="" has_empty="0" empty_value="" empty_label="" field_type="select" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<select class="field" tabindex="<inp2:m_get param="tab_index"/>" name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>" style="<inp2:m_param name="style"/>">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_phrase" selected="selected" has_empty="$has_empty" empty_value="$empty_value" empty_label="$empty_label"/>
<inp2:m_else/>
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="$has_empty" empty_value="$empty_value" empty_label="$empty_label"/>
</inp2:m_if>
</select>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_radio_item" style="" onclick="" has_br="0">
<input type="radio" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_param name="style"/>" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>">&nbsp;<inp2:m_param name="option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_radio_phrase" style="" onclick="" has_br="0">
<input type="radio" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_param name="style"/>" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>">&nbsp;<inp2:m_phrase label="$option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_radio" title="lu_fld_{$field}" style="" pass_tabindex="" onclick="" onchange="" field_type="radio" has_br="0" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_radio_phrase" selected="checked" has_br="$has_br"/>
<inp2:m_else />
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_radio_item" selected="checked" has_br="$has_br"/>
</inp2:m_if>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_captcha" style="" field="Captcha" title="lu_fld_Captcha" no_editing="1" field_type="captcha" is_last="0">
<inp2:m_RenderElement design="form_row" pass_params="1">
<img src="<inp2:m_Link template="platform/inc/captcha_image.elm" var="{$prefix}_captcha_code" w="150" h="30"/>" alt="<inp2:m_Phrase name="$title" no_editing="1"/>"/><br />
<br />
<input type="text" class="input-text" name="<inp2:{$prefix}_InputName field="Captcha"/>" id="<inp2:{$prefix}_InputName field="Captcha"/>" value="<inp2:{$prefix}_Field field="Captcha"/>" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_Param name="style"/>"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_checkbox" title="lu_fld_{$field}" style="" field_type="checkbox" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input type="hidden" id="<inp2:{$prefix}_InputName field="$field"/>" name="<inp2:{$prefix}_InputName field="$field"/>" value="<inp2:{$prefix}_Field field="$field" db="db"/>" />
<input tabindex="<inp2:m_get param="tab_index"/>" type="checkbox" id="_cb_<inp2:{$prefix}_InputName field="$field"/>" name="_cb_<inp2:{$prefix}_InputName field="$field"/>" <inp2:{$prefix}_Field field="$field" checked="checked" db="db"/> style="<inp2:m_param name="style"/>" onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field="$field"/>'));">
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_checkbox_item">
&nbsp;<input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_param name="option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_checkbox_phrase">
&nbsp;<input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_phrase label="$option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_checkboxes" title="lu_fld_{$field}" no_empty="" pass_tabindex="" field_type="checkboxes" show_length="0" has_br="0">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_phrase" selected="checked" has_br="$has_br"/>
<inp2:m_else/>
<inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_item" selected="checked" has_br="$has_br"/>
</inp2:m_if>
<inp2:m_RenderElement prefix="$prefix" name="inp_edit_hidden" field="$field" db="db"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
\ No newline at end of file
Index: branches/1.0.x/elements/header.elm.tpl
===================================================================
--- branches/1.0.x/elements/header.elm.tpl (revision 14804)
+++ branches/1.0.x/elements/header.elm.tpl (revision 14805)
@@ -1,73 +1,86 @@
-<div id="header">
+<inp2:m_if check="m_Get" name="ajax" equals_to="yes">
+ <inp2:m_NoDebug/>
+ <inp2:m_Set skip_last_template="1"/>
+<inp2:m_else/>
+ <div id="header">
+</inp2:m_if>
+
<div class="logo">
- <a href="<inp2:m_Link template="index" m_cat_id="0" />"><img src="<inp2:m_TemplatesBase/>img/logo.jpg" width="238" height="79" alt="<inp2:m_GetConfig name="Site_Name"/>" /></a>
+ <a href="<inp2:m_Link template='index' m_cat_id='0' />"><img src="<inp2:m_TemplatesBase/>img/logo.jpg" width="238" height="79" alt="<inp2:m_GetConfig name='Site_Name'/>" /></a>
<inp2:st_ContentBlock num="100" page="index"/>
</div>
<div class="infoblock">
<div class="welcome">
<div class="lang">
<div <inp2:m_if check="lang.current_Field" name="IconURL">class="with-icon" style="background-image: url(<inp2:m_TemplatesBase/>img/lang/<inp2:lang.current_Field name='IconURL'/>);"<inp2:m_else/>class="without-icon"</inp2:m_if>>
- <a href="#" id="lang"><inp2:lang.current_Field name='LocalName'/></a>
+ <a href="<inp2:lang.current_LanguageLink/>"" id="lang"><inp2:lang.current_Field name='LocalName'/></a>
</div>
<div id="lang-sel" class="plashka">
<ul>
<inp2:m_DefineElement name="lang_elem" no_editing="1">
<li>
<inp2:m_if check="Field" name="IconURL">
<a href="<inp2:LanguageLink/>" style="background-image: url(<inp2:m_TemplatesBase/>img/lang/<inp2:Field name='IconURL'/>);" class="with-icon<inp2:m_if check='SelectedLanguage'> active</inp2:m_if>">
<inp2:Field name="LocalName"/>
</a>
<inp2:m_else/>
<a href="<inp2:LanguageLink/>" class="without-icon<inp2:m_if check='SelectedLanguage'> active</inp2:m_if>">
<inp2:Field name="LocalName"/>
</a>
</inp2:m_if>
</li>
</inp2:m_DefineElement>
<inp2:lang_ListLanguages render_as="lang_elem" no_table="1"/>
</ul>
</div>
</div>
<div class="currency">
<div class="cur">
<a href="<inp2:curr.current_CurrencyLink/>" id="currency"><inp2:curr.current_Field name="ISO"/></a>
</div>
<div id="currency-sel" class="plashka">
<ul>
<inp2:m_DefineElement name="currency_elem">
<li>
<a href="<inp2:CurrencyLink/>"<inp2:m_if check='SelectedCurrency'> class="active"</inp2:m_if>>
<inp2:Field name="ISO"/>
</a>
</li>
</inp2:m_DefineElement>
<inp2:curr_ListCurrencies render_as="currency_elem" no_table="1"/>
</ul>
</div>
</div>
<inp2:m_include template="elements/login.elm"/>
</div>
<div class="cart">
<span class="phone">1-855-WWW-PROS</span>
<span class="items"><inp2:ord_ItemsInCart/> Items: <inp2:ord_Field name="TotalAmount" currency="selected" decimal_tag="i"/></span>
<span class="delim">|</span>
<a href="<inp2:m_Link template='cart' m_cat_id='0' m_cat_page='1'/>">Checkout</a>
</div>
<!-- Show recently added Product by loading content with Ajax -->
<div class="basketStatus" style="display: none;">
<div class="basketArrow"></div>
<div class="basketContent"></div>
</div>
<!-- end -->
</div>
<div class="clear"></div>
-</div>
+
+<inp2:m_ifnot check="m_Get" name="ajax" equals_to="yes">
+ </div>
+</inp2:m_ifnot>
+
+<script type="text/javascript">
+ new DBlocks();
+</script>
\ No newline at end of file

Event Timeline