Перейти к содержанию

Рекомендуемые сообщения

Есть очень часто используемая модификация localcopy.ocmod.xml

так вот в ней есть такой код

 

foreach (glob($next) as $file) {
   if (is_dir($file)) {
      $path[] = $file . '/*';
   }
   $files[] = $file;
}

Они не учли что glob может работать не так как думали

http://php.net/manual/en/function.glob.php

On some systems it is impossible to distinguish between empty match and an error.

 

Т.е. иногда будет пустой массив, а иногда то будет false

 

И если в устанавливаемом дополнении будет пустой каталог внутри, то будет warning и json parser error

 

Исправляется просто добавлением 

if (glob($next)) {

вначале.

 

Исправленная версия ниже. Может кому-то пригодится.

 

localcopy.ocmod.xml

  • +1 7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

абсолютно тоже самое и в 

extension_uninstaller.ocmod.xml

этого же автора.

Плюс там же и еще один момент исправлен.

Файл измененный тут

 

extension_uninstaller.ocmod.xml

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ставьте патч, потом обновляйте кеш модификаторов и пробуйте загрузить какой-нибудь архив ocmod.zip

если не помогло - значит у вас проблемы с самим движком

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В обоих модификациях присутствует код заменяющий одну и ту же строку.

localcopy.ocmod.xml:

<search ><![CDATA['url'  => str_replace('&', '&', $this->url->link('extension/installer/ftp', 'token=' . $this->session->data['token'],]]></search>
<add position="replace"><![CDATA['url'  => str_replace('&', '&', $this->url->link('extension/installer/localcopy', 'token=' . $this->session->data['token'],]]></add>

extension_uninstaller.ocmod.xml:

<search ><![CDATA['url'  => str_replace('&amp;', '&', $this->url->link('extension/installer/ftp', 'token=' . $this->session->data['token'], 'SSL')),]]></search>
<add position="replace"><![CDATA['url'  => str_replace('&amp;', '&', $this->url->link('extension/installer/'. $this->rewrite_step('ftp', 'localremove'), 'token=' . $this->session->data['token'], 'SSL')),]]></add>

Есть подозрение, что установленные оба сразу, они конфликтуют, поскольку в результате строка меняется только одним модификатором и только одно расширение остается рабочим.
Кто-нить сталкивался, есть решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, Wild сказал:

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

посмотрите что в ocmod.log

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего, поскольку там присутствует error="skip".
Просто кто первый поменял строку, того и тапки!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там в URL получается либо localremove, либо localcopy.

Соответственно если вы пользуете второй модификатор, то вызывается не та функция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То бишь либо один, либо другой.
Как их подружить?
Ведь оба нужны и полезны!

Приходится врубать/вырубать вручную, достает эта возня.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да там вроде хороший саппорт, сейчас подскажут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже написал им на opencart.com только что.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, а почему у меня нет такого?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
43 минуты назад, chukcha сказал:

Хм, а почему у меня нет такого?


Хм...

Стоят и активированы оба модуля?
Можно поинтересоваться что у вас в system/modification/admin/controller/extension/installer.php ?
В блоке:

// FTP
$json['step'][] = array(
	'text' => $this->language->get('text_ftp'),
	'url'  => str_replace('&amp;', '&', $this->url->link('extension/installer/'. $this->rewrite_step('ftp', 'localremove'), 'token=' . $this->session->data['token'], 'SSL')),
	'path' => $path
);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я без понятия,
Я как скачал его при появленни, так и остался..

 

смотрю, там версия 2016 года

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы скачали и установили и включили ОБА модуля local fix + uninstall?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вообще анинсталом не пользуюсь, ибо это не нужно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда понятно.
Речь шла об обоих одновременно.
Я тоже пользуюсь анинсталлом не часто, но когда ставишь модуль для проверки и последующим удалением, заколупывает лазанье по папкам и чистка вручную.
По этому и возник вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я все ручакми делаю. Анинстал юзал будучи начинающим.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Баг пофиксили и выложили новые версии модификаторов.
Кому надо, качаем...

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда закройте эту тему. Пусть там и скачивают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.