Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

блог для натуралов

  • записів
    9
  • коментаря
    33
  • переглядів
    8 100

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


kJlukOo

1 006 переглядів

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

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

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

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

 

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 коментаря


Recommended Comments

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

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

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

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.