2014-07-19 2 views
0

고객이 해당 양식을 사용하여 로그인 할 수 있도록 사용자 정의 Ajax 로그인 양식을 생성했습니다. AJAX POST를 컨트롤러에 보내고 컨트롤러가 로그인 한 사용자로 설정합니다. 컨트롤러 코드입니다.로그인 설정 환영 메시지 고객 용

<?php 
class Test_Check_IndexController extends Mage_Core_Controller_Front_Action 
{ 

public function validatecustomerAction(){ 

      $session = Mage::getSingleton('customer/session', array('name' => 'frontend')); 
      if ($session->isLoggedIn()) { 

       return; 
      } 

      $result = array('success' => false); 

      if ($this->getRequest()->isPost()) 
      { 
       $login_name = $this->getRequest()->getPost('username'); 
       $login_pass = $this->getRequest()->getPost('password'); 


       if (empty($login_name) || empty($login_pass)) { 
        $result['error'] = $session->addError($this->__('Login and password are required.')); 
       } 
       else 
       { 
        try 
        { 


         $session->login($login_name, $login_pass); 
         $result['success'] = true; 
         $session->setCustomerAsLoggedIn($session->getCustomer()); 
         $result['redirect'] = Mage::getUrl('*/*/index'); 



         } 

        catch(Exception $e){ 

         $result['success'] = false; 
         return 0; 


        } 


       } 
     } 


      $this->_redirect(''); 

     } 

} 

이제 로그인 링크 대신 로그 아웃 링크로 로그인 한 고객에게 환영 메시지를 설정하고 싶습니다. 어떻게해야합니까?

답변

0

카란, 나는 그 후

<?php 
class Test_Check_IndexController extends Mage_Core_Controller_Front_Action 
{ 


    public function validatecustomerAction(){ 
     $result=array(); 
     $session = Mage::getSingleton('customer/session', array('name' => 'frontend')); 
     if($session->isLoggedIn()){ 
      $result['isloggedin']=true; 
     } 
     $session=$session; 
     if($this->getRequest()->isPost()){ 
      $login_name = $this->getRequest()->getPost('username'); 
      $login_pass = $this->getRequest()->getPost('password'); 
      if(!empty($login_name) && !empty($login_pass)){ 
       try{ 

        $session->login($login_name, $login_pass); 
        $result['success']=true; 
        $result['message']= Mage::helper('customer')->__('Login successfull'); 

        if ($session->getCustomer()->getIsJustConfirmed()) { 
         $myMess=$this->_ajaxwelcomeCustomer($session->getCustomer(), true); 
         $result['success']=false; 
         $result['message']=$myMess; 
        } 

       }catch(Mage_Core_Exception $e){ 
        switch ($e->getCode()) { 
         case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED: 
          $value = Mage::helper('customer')->getEmailConfirmationUrl($login_name); 
          $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value); 
          $result['success']=false; 
          $result['message']=$message; 

          break; 
         case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD: 
          $message = $e->getMessage(); 
          $result['success']=false; 
          $result['message']=$message; 
          break; 
         default: 
          $message = $e->getMessage(); 
          $result['success']=false; 
          $result['message']=$message; 
        } 

       }catch(Exception $e){ 
        $result['success']=false; 
        $result['message']= 
        Mage::logException($e); 
       } 



      }else{ 
       $result['success']=false; 
       $result['message']=$this->__('Login and password are required.'); 
      } 
     } 
     $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result)); 

    } 
    protected function _ajaxwelcomeCustomer(Mage_Customer_Model_Customer $customer, $isJustConfirmed = false) 
    { $MessageOwn= ''; 
     $MessageOwn= $this->__('Thank you for registering with %s.', Mage::app()->getStore()->getFrontendName()); 

     $customer->sendNewAccountEmail(
      $isJustConfirmed ? 'confirmed' : 'registered', 
      '', 
      Mage::app()->getStore()->getId() 
     ); 

     return $MessageOwn; 
    } 


} 

.... 당신의 코드를 수정해야 당신이 얻을 사용하여 데이터

jQuery.ajax({ 
url : youruel, 
dataType : 'json', 
type : 'post', 
data : 'data', 
success : function(response) { 

/*response.success will give flag logged or not 
and response.message give notification that means welcome flag */ 

} 

});

관련 문제