function CopyAddonDir($fromDir, $toDir)
 {
     $dh = @opendir($fromDir);
     if (!$dh) {
         return false;
     }
     if (!gpFiles::CheckDir($toDir)) {
         message('Copy failed: ' . $fromDir . ' to ' . $toDir . ' (1)');
         return false;
     }
     while (($file = readdir($dh)) !== false) {
         if (strpos($file, '.') === 0) {
             continue;
         }
         $fullFrom = $fromDir . '/' . $file;
         $fullTo = $toDir . '/' . $file;
         //directories
         if (is_dir($fullFrom)) {
             if (!admin_addon_install::CopyAddonDir($fullFrom, $fullTo)) {
                 closedir($dh);
                 return false;
             }
             continue;
         }
         //files
         //If the destination file already exists, it will be overwritten.
         if (!copy($fullFrom, $fullTo)) {
             message('Copy failed: ' . $fullFrom . ' to ' . $fullTo . ' (2)');
             closedir($dh);
             return false;
         }
     }
     closedir($dh);
     return true;
 }
Exemple #2
0
 function ChangeInstallConfirmed(&$addonName)
 {
     global $dataDir, $langmessage;
     $installFolder = $dataDir . '/data/_addoncode/' . $addonName;
     $fromFolder = $dataDir . '/addons/' . $addonName;
     if (!file_exists($installFolder)) {
         message($langmessage['OOPS']);
         return;
     }
     if (!file_exists($fromFolder)) {
         message($langmessage['OOPS']);
         return;
     }
     if (is_link($installFolder)) {
         unlink($installFolder);
         if (!admin_addon_install::CopyAddonDir($fromFolder, $installFolder)) {
             message($langmessage['OOPS']);
             return;
         }
     } else {
         gpFiles::RmAll($installFolder);
         if (!symlink($fromFolder, $installFolder)) {
             message($langmessage['OOPS']);
             return;
         }
     }
     message('Install Type Changed');
 }