Все дело в том, что при удалении модуля информация о нем остается в БД, а Ship2Pay читает базу без проверки на реальное наличие модуля. Как результат - попытка обращения к несуществующему файлу, фатальная ошибка, страница не отображается...

Исправляется элементарно: в каталоге modules/shiptopay открываем для редактирования файл shiptopay.php и ищем функцию getPayment(). В самом ее конце есть выборка модулей в список вариантов оплаты (вполне возможно различается в разных версиях)
Код:
require_once _PS_MODULE_DIR_.'/'.$paymod['pay_name'].'/'.$paymod['pay_name'].'.php';
$moduleList[] = new $paymod['pay_name'];

Просто заключаем эту часть в блок проверки существования файла:
Код:
if (file_exists(_PS_MODULE_DIR_.'/'.$paymod['pay_name'].'/'.$paymod['pay_name'].'.php'))
{
   require_once _PS_MODULE_DIR_.'/'.$paymod['pay_name'].'/'.$paymod['pay_name'].'.php';
   $moduleList[] = new $paymod['pay_name'];
}

И ВСЕ!!! На Престе 1.4.6.2 работает без косяков, каким бы изощренным способом я не удалял модули... =)

А можно загрузить простую версию уже поправленного плагина. Вложения shiptopay.rar( Размер файла: 6.95KB )
Распаковать в корень сайта с заменой (заменяются только файлы модуля, ядро не затрагивается).


Сообщение отредактировано NBomzh 14-12-2011 01:15 ...