Для того, чтобы избавится от экрана ввода каких-то данных при установке расширений открываем файл:
Меняем его содержимое на это:
<?php class actionAdminInstallFtp extends cmsAction { public function run() { // если есть файлы для копирования if ($contents = $this->getPackageContentsDir()) { // копирование файлов и каталогов $this->recursive_copy($contents, PATH); } // переадресация на завершение $this->redirectToAction('install/finish'); } private function getPackageContentsDir() { $config = cmsConfig::getInstance(); $path = $config->upload_path . $this->installer_upload_path . DIRECTORY_SEPARATOR . 'package'; return false; } return $path; } /** * Рекурсивное копирование * @param string $src * @param string $dst */ private function recursive_copy($src, $dst) { if (($file != '.') && ($file != '..')) { $this->recursive_copy($src . DIRECTORY_SEPARATOR . $file, $dst . DIRECTORY_SEPARATOR . $file); } else { } } } } }
И всё.
Прикреплённый файл:
Реклама #
My-InstantCMS.Ru 1 год назад #
Не знаю как с безопасностью, но очень полезное решение, так как FTP загрузчик движка не работает в 50% хостингах.
Себе на локальку обязательно поставлю 👍
Fuze 1 год назад #
В идеале нужно сделать чуть иначе. Проверять на возможность записи все целевые директории и файлы (если дополнение заменяет их, например пакет обновления). Если всё что нужно доступно для записи, то выполнять копирование без ftp, иначе давать как и сейчас диалог копирования по ftp.
IamB 1 год назад #
Очень правильная идея, за это +.
Но реализация мой глаз не порадовала: Зачем это стыдливое запикивание @ mkdir()? К тому же совершенно ясно, что если не будет создана хотя бы одна необходимая директория, «никто никуда не поедет». Написал бы так
С copy() ситуация аналогичная. Если уж вы взялись именовать методы в CamelCase, то и продолжайте. recursive_copy() выглядит инородно и разрушает единообразие.
Сергей Сергеевич 1 год назад #
Как понимать это хамство?
Samber 1 год назад #
Всем привет 🤝 Как называется HTML редактор 📝 в котором я пишу? Хочу установить такой у себя на сайте
Make 1 год назад #