2014-02-13 78 views
0

朋友我有一個奇怪的問題,不知道出了什麼問題。opencart中的javascript登錄彈出框

我的公司要求我在opencart中顯示opopup與登錄選項,即用戶不能瀏覽產品,除非他/她註冊或登錄。

我用下面的腳本來做到這一點

發行 它的工作原理後彈出顯示空白罰款一次或兩次。

代碼

<script type="text/javascript"> 

$(document).ready(function(){ 
$("#logpop").append('<div id="loginbox" class="loginbox"></div>');var a=$("#welcome a").first().html(); 
$("#welcome a").first().html('<span class="login"></span>');$("#welcome a .login").html(a);-1!=$("#welcome a[href]").first().attr("href").indexOf("register")?($("#loginbox").load("index.php?route=account/login .right form"), $("#loginbox").css("right","50px")): 
($("#loginbox").load("index.php?route=account/account #content"),$("#loginbox").css("right","40px")); 
$("#welcome > a .login").live("hover",function(){$("#welcome").addClass("active");$("#loginbox .breadcrumb").remove();$("#loginbox h1").remove();}); 
}); 

$(document).ready(function(){ 
-1==$(location).attr("href").indexOf("account/logout")&&$.cookie("url",$(location).attr("href"));$("#welcome a").first().removeAttr("href");$("#logpop").first().css("display","none");$("#login_dimming").first().css("display","none"); 
}); 
</script> 

朋友可以請你幫我解決這個問題

回答

1

而是通過JS這樣做我會建議實施預作用將檢查用戶是否登錄的如果不是,它將重定向到登錄/註冊屏幕。

如何實現預作用:看看index.php其中對於維護模式預作用登記:

// Maintenance Mode 
$controller->addPreAction(new Action('common/maintenance')); 

您可以添加一個新問題:

// Logged-in user required 
$controller->addPreAction(new Action('common/login')); 

然後當然看進入catalog/controller/common/maintenance.php看看它是如何完成的。您可以實現類似的東西在你的新catalog/controller/common/login.php

<?php 
class ControllerCommonLogin extends Controller { 
    public function index() { 
     if (!$this->customer->isLogged()) { 
      return $this->forward('account/login'); 
     } 
    } 
} 

這是檢查用戶是否登錄,纔可以開始購物的更容易,更MVC和更好的方式。

+0

我認爲問題是如果網址是sitename.com,登錄頁面的內容不會加載。 但它加載並正常工作,如果URL是www.sitename.com –

+0

然而我建議使用上面顯示的MVC方法來做到這一點。如果我關閉了JS,那麼即使沒有登錄,我也能克服彈出窗口並查看產品。想想看。 – shadyyx

+0

公司想要一個彈出窗口,以便您的解決方案不會工作:( –