Нашел 2 проблемы, почему не встают обновления (у меня 2.2.1):
1. Первая проблема кроется непосредственно в FTP сервере, точнее, в ответе сервера на запрос php.ftp_nlist
По неизвестной причине некоторые сервера отдают только список файлов; когда другие сервера отдают список файлы+каталоги.
InstantCMS проверяет пути по наличию каталогов system и template по указанному пути. Если ftp_nlist (=«сервер») возвращает только файлы, то CMS не будет найдена.
Тестирую сайт на домашнем ПК, проблема воспроизводится при использовании сервера Xlight FTP Server.
На сервере Quick'n Easy FTP Server Lite проблем нет.
Оба сервера бесплатные и portable.
Как решать эту проблему с хостером — пока не знаю. Скорее всего менять алгоритм проверки установленной InstantCMS.
2. В случае указания пути к каталогу с установленной InstantCMS в нижнем поле (Путь папки сайта) отличному от "/", InstantCMS также не будет найден. Причина кроется в файле system/controllers/admin/actions/install_ftp.php, а именно: при проверке наличия каталогов дублируется переменная пути, что приводит к невозможности проверки наличия каталогов (проверяемые значения /www/system/, а в переменной $list /system/)
Нужно в 106-ой строке заменить
Код PHP:
if (!in_array($account['path']. $dir, $list)){
на
Код PHP:
if (!in_array($dir, $list)){
Либо указывать полный путь в адресе сервера.
Ниже часть кода из файла для понимания места возникновения проблемы:
Код PHP:
$list = ftp_nlist($connection, $account['path']);
............
foreach($check_dirs as $dir){
if (!in_array($account['path']. $dir, $list)){
cmsUser::addSessionMessage(sprintf(LANG_CP_FTP_BAD_ROOT, $ftp_path), 'error');
return false;
}