2016-09-19 4 views
1

В настоящее время, когда я перехожу на https://domain.com, я вижу полную страницу и только когда я нажимаю на какой-либо элемент, я направляюсь на страницу входа. Я хотел бы перейти на страницу входа сразу после ввода https://domain.com, чтобы незарегистрированные пользователи не могли видеть продукты и цены на первой странице.Как ограничить доступ к зарегистрированным пользователям только в opencart с помощью vqmod?

В настоящее время и с помощью vQmod с файлом XML с именем force_customer_login.xml выглядит следующим образом:

<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> 

для моего вышеуказанного требования. что все изменения должны сделать. Я очень новичок в 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)); 
}