Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up
  • entries
    6
  • comments
    30
  • views
    2,949

программное обновление модификаторов


kJlukOo

483 views

при работе с опенкартом всегда возникает необходимость обновлять модифы, после ряда совершенных правок.

делается это для того, чтобы получить актуальный контент

давным давно я решил этот вопрос программно, что избавило меня от кучи головной боли в виде открытия вкладки и нажатия кнопки обновления модифов раз за разом

я решил этот вопрос программно следующим образом. пришло время делиться

 

1. авторизация по ссылке

 быстрая авторизация в админке по ссылке.

 

перед использованием модификатора обязательно изменить эти значения на свои

 

$secret_key = 'secret_key64587967';
$secret_val = 'eret345dfgc342';

 

 

ссылку в админку для обновления модификаторов выглядит следующим образом

https://site.com/admin/index.php?route=extension/modification/refresh

добавим к этой ссылке нашу секретную пару

https://site.com/admin/index.php?route=extension/modification/refresh&secret_key64587967=eret345dfgc342

в вашем случае ссылка должна отличаться

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>fast admin auth fix</name>
  <code>fast admin auth fix</code>
  <version>1.3</version>
  <author>kJluk</author>
  <link>cleanphp.ru</link>
  <file path="admin/controller/common/login.php">
    <operation>
      <search><![CDATA[public function index() {]]></search>
      <add position="after"><![CDATA[
		//обязательно измените эти значения!
        $secret_key = 'secret_key64587967';
        $secret_val = 'eret345dfgc342';
       
        
        if(isset($this->request->get[$secret_key]) && $this->request->get[$secret_key]==$secret_val)
		{   
           $this->session->data['user_id'] = 1;
           $token = token(32);
           $this->session->data['token'] = $token;
           
           $url=HTTPS_SERVER.'index.php?';
           $params = array('token' => $token);
           
           if(!empty($this->request->get['route']))
                $params['route']=$this->request->get['route'];
           
           $this->response->redirect($url.http_build_query($params));
		}   
      ]]></add>
    </operation>
  </file>
</modification>

 

 

2. Запрос к обновлению модифов используя авторизацию по ссылке

эта функция, которые прекрасно скушает 302 редирект, после успешной авторизации

путь к куки должен быть ваш. куки должен лежать в какой-то закрытой папке

ее необходимо разместить в system/library/helper.php. возможно это правильно сделать модификатором, но мне лень

 

 

function curlWihteRedir($url)
{
  //путь к куки должен быть ваш
  $path_to_cookie = '/path_to_cookie/cookies.rip';

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url );
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
  curl_setopt($ch, CURLOPT_COOKIEJAR, $path_to_cookie);
  curl_setopt($ch, CURLOPT_COOKIEFILE, $path_to_cookie);
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  $response = curl_exec($ch );
  curl_close($ch);
  return $response;
}

 

3. Использование

вызываем функцию с ссылкой, которую получили в 1п для быстрой авторизации.

обычно вызывать функцию нужно в начале метода контроллера

curlWihteRedir(HTTPS_SERVER."index.php?route=extension/modification/refresh&secret_key64587967=eret345dfgc342");

 

  • +1 1

2 Comments


Recommended Comments

1 час назад, Shureg сказал:

Так и не понял, зачем это надо :-)

чтобы в момент разработки не дергать обновления модифов вручную

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.