2016-09-19 4 views
1

현재 https://domain.com으로 가면 전체 첫 페이지를 볼 수 있으며 일부 항목을 클릭 할 때만 로그인 페이지로 이동합니다. https://domain.com을 입력 한 직후 로그인 페이지로 이동하여 등록되지 않은 사용자가 첫 페이지의 제품 및 가격을 볼 수 없도록하고 싶습니다. 내 위의 요구 사항에 대한vqmod를 사용하여 opencart에서만 로그인 한 사용자의 액세스를 제한하는 방법은 무엇입니까?

<modification> 

    <file name="catalog/controller/common/header.php"> 
     <operation> 
      <search position="after"><![CDATA[ 
      function index() 
      ]]></search> 
      <add trim="true"><![CDATA[ 
      //Q: Force Customer Login 
      $match = false; 
      if (!empty($this->request->get['route'])) { 

       $skip = array(
        'payment', 
        'feed', 
        'forgotten', 
        'login', 
        'register', 


       ); 

       foreach ($skip as $s) { 
        if (strpos($this->request->get['route'], $s) !== false) { 
         $match = true; 
         break; 
        } 
       } 
      } 

      $dest_route = 'account/login'; 
      if (!$match) { 
       if (!$this->customer->isLogged() && ($_SERVER['QUERY_STRING'] != "" && $_SERVER['QUERY_STRING'] != 'route=' . $dest_route)) { 
        $this->response->redirect($this->url->link($dest_route, '', 'SSL')); 
       } 
      } 
      ]]></add> 
     </operation> 
    </file> 

</modification> 

:

현재와 force_customer_login.xml 라는 이름의 XML 파일로 vQmod를 사용는 것 같습니다. 모든 수정 작업을 수행해야합니다. 나는 opencart와 vQmod에 대해 매우 새롭다. 미리 감사드립니다.

답변

0
//@route get the the current page 

    $route = $this->request->get['route']; 

//check if customer is logged in else redirect to login 

if (!$this->customer->isLogged() && $route !='account/login' && $route !='account/forgotten' && $route !='account/register') { 
    $this->response->redirect($this->url->link('account/login', '', true)); 
}