Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

бага в localcopy.ocmod.xml


nikifalex
 Share

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 11
Link to comment
Share on other sites

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

extension_uninstaller.ocmod.xml

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

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

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

 

extension_uninstaller.ocmod.xml

  • +1 3
Link to comment
Share on other sites

  • 1 year later...

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

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

Link to comment
Share on other sites

  • 1 month later...

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

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>

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

Link to comment
Share on other sites

12 минут назад, Wild сказал:

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

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

Link to comment
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
);

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...

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

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
Link to comment
Share on other sites


Установил в модификаторах написано :

|Extension Uninstaller by iSenseLabs

|Quickfix by iSenseLabs

 

но установка расширении все равно Internal Server Error

Edited by Egor2014
Link to comment
Share on other sites


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
 Share

×
×
  • 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.