Jump to content
nikifalex

бага в localcopy.ocmod.xml

Recommended Posts

Есть очень часто используемая модификация 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 8

Share this post


Link to post
Share on other sites

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

extension_uninstaller.ocmod.xml

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

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

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

 

extension_uninstaller.ocmod.xml

  • +1 2

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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>

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

Share this post


Link to post
Share on other sites
12 минут назад, Wild сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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
);

 

Share this post


Link to post
Share on other sites

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

 

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

А у меня никакая версия не встает. Всегда выдает ошибку "Internal server error" Ubuntu 18.04, Apache 2.4.18, PHP7.0. Куда копать?

Share this post


Link to post
Share on other sites

копать в логи вашего 

Только что, BillyBons сказал:

Apache 2.4.18

 

Share this post


Link to post
Share on other sites

Выдает вот такую ошибку -

PHP Fatal error:  Uncaught Error: Class 'DOMDocument' not found in /var/www/html/admin/controller/extension/installer.php:434\nStack trace:\n#0 /var/www/html/system/engine/action.php(51): ControllerExtensionInstaller->xml()\n#1 /var/www/html/admin/controller/startup/router.php(26): Action->execute(Object(Registry), Array)\n#2 /var/www/html/system/engine/action.php(51): ControllerStartupRouter->index()\n#3 /var/www/html/system/engine/front.php(34): Action->execute(Object(Registry))\n#4 /var/www/html/system/engine/front.php(29): Front->execute(Object(Action))\n#5 /var/www/html/system/framework.php(103): Front->dispatch(Object(Action), Object(Action))\n#6 /var/www/html/system/startup.php(105): require_once('/var/www/html/s...')\n#7 /var/www/html/admin/index.php(19): start('admin')\n#8 {main}\n  thrown in /var/www/html/admin/controller/extension/installer.php on line 434, referer: http://xxx.ru/admin/index.php?route=extension/installer&token=XXXXX

 

Разобрался. Все понял. Не установлено было php-xml

Edited by BillyBons

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.