Экшен удаления компонента.

InstantCMS 2.X

Нужен совет по созданию экшина удаления компонента.

#1 30 января 2017 в 14:47

Здравствуйте сообщество!

Помогите разобраться с автоматическим удалением компонента.

Как удалять записи в БД и файлы загруженные пользователем — понятно и это не сложно.
Не понятно как реализовать удаление файлов компонента если это вообще возможно?
Пытался сделать так

  1. $uninstall_dirs = array(
  2. '0' => $this->root . 'templates/default/feedbackl',
  3. '1' => $this->system_path . 'languages/ru/controllers/feedbackl',
  4. '2' => $this->system_path . 'controllers/feedbackl'
  5. );
  6.  
  7. @unlink($this->system_path . 'languages/ru/letters/feedback_new.txt');
  8. @unlink($this->system_path . 'languages/ru/letters/feedbackl_notif.txt');
  9.  
  10. foreach ($uninstall_dirs as $uninstall_dir) {
  11.  
  12. $this->removeDirectory($uninstall_dir);
  13. }
  1. function removeDirectory($dir) {
  2.  
  3. if ($folders = glob($dir . "/*")) {
  4.  
  5. foreach ($folders as $folder) {
  6.  
  7. @is_dir($folder) ? removeDirectory($folder) : @unlink($folder);
  8. }
  9. }
  10. rmdir($dir);
  11. }
Но delete_component.php сам себя разве удалит, думаю нет, и явно файлы с разрешением 644 и папки с 755 то же не удаляться.
docs.instantcms.ru/dev/packages — читал, от туда и начал.
Хотелось бы увидеть мнение разработчиков instantCMS.
#2 30 января 2017 в 16:15

Пытался сделать так

Win_wiruzz
А зачем мучиться? Надо так, чтобы наверняка не пропустить файлы удаляемого компонента:
  1. @unlink($this->system_path . 'system');
  2. @unlink($this->system_path . 'templates');@unlink($this->system_path . 'upload');
Файлы ваш компонент не удалит, иначе желающих для сего творчества было бы много. Единственное, что вы можете сделать полезного, это после чистки БД в ноль, отправить сообщение админу со списком файлов и папок подлежащих удалению.
(Или координаты ящика, куда отправить100500 баллов для восстановления БД. laugh)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.