public function createArchive(array $files, $path = NULL)
 {
     require_once TOOLKIT . '/class.archivezip.php';
     $archive = new ArchiveZip();
     $flag = Administration::instance()->Configuration->get('show-hidden', 'filemanager') == 'yes' ? ArchiveZip::IGNORE_HIDDEN : NULL;
     $root = DOCROOT . $this->getStartLocation();
     foreach ($files as $f) {
         if (is_dir($root . $f)) {
             $archive->addDirectory($root . $f, $root . rtrim($path, '/'), $flag);
         } else {
             $archive->addFromFile($root . $f, basename($f));
         }
     }
     $zip_file = $root . rtrim($path, '/') . '/' . $this->findAvailableArchiveName($root . (count($files) > 1 || is_dir($root . $files[0]) ? rtrim($path, '/') : $f));
     $archive->save($zip_file);
     return @file_exists($zip_file) ? $zip_file : NULL;
 }