программное обновление модификаторов
при работе с опенкартом всегда возникает необходимость обновлять модифы, после ряда совершенных правок.
делается это для того, чтобы получить актуальный контент
давным давно я решил этот вопрос программно, что избавило меня от кучи головной боли в виде открытия вкладки и нажатия кнопки обновления модифов раз за разом
я решил этот вопрос программно следующим образом. пришло время делиться
1. авторизация по ссылке
быстрая авторизация в админке по ссылке.
перед использованием модификатора обязательно изменить эти значения на свои
$secret_key = 'secret_key64587967'; $secret_val = 'eret345dfgc342';
ссылку в админку для обновления модификаторов выглядит следующим образом
https://site.com/admin/index.php?route=extension/modification/refresh
добавим к этой ссылке нашу секретную пару
в вашем случае ссылка должна отличаться
<?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
2 коментаря
Recommended Comments
Створіть аккаунт або увійдіть для коментування
Ви повинні бути користувачем, щоб залишити коментар
Створити обліковий запис
Зареєструйтеся для отримання облікового запису. Це просто!
Зареєструвати аккаунтВхід
Уже зареєстровані? Увійдіть тут.
Вхід зараз