Paste the URL of a Virtuemart release to check:
Paste the URL of a Virtuemart update to check:
";
echo $downloadForm;
}
if (isset($_POST['download'])){
//$release_src = fopen($_POST['release'],"r");
//$release_dest = fopen($release_scanDir."/vm_release.zip","w");
//$update_src = fopen($_POST['update'],"r");
//$update_dest = fopen($update_scanDir."/vm_update.zip","w");
//stream_copy_to_stream($release_src, $release_dest);
//stream_copy_to_stream($update_src, $update_dest);
//zipExtract($release_scanDir."/vm_release.zip",$release_scanDir);
//zipExtract($update_scanDir."/vm_update.zip",$update_scanDir);
//unlink($release_scanDir."/vm_release.zip");
//unlink($update_scanDir."/vm_update.zip");
//unpackRelease($release_scanDir);
compareRelease($release_scanDir);
echo "The following files have been modified from standard:
";
foreach ($releaseModified as $file){
echo '
| '.$file[0].' |
'.$file[1].' |
'.$file[2].' |
';
}
echo "
";
}
function compareRelease( $outerDir ){
global $basePath,$update_scanDir,$releaseModified;
$dirs = array_diff( scandir( $outerDir ), Array( ".", ".." ) );
$dir_array = Array();
foreach( $dirs as $d ){
if( is_dir($outerDir."/".$d) ){
$dir_array[ $d ] = compareRelease( $outerDir."/".$d );
}else{
$dir_array[ $d ] = $d;
switch($outerDir) {
case stristr($outerDir,"admin_files")==true:
$subdir = explode("/admin_files",$outerDir);
$admin_com_vm_path = $basePath."/administrator/components/com_virtuemart".$subdir[1];
$update_path = $update_scanDir."/administrator/components/com_virtuemart".$subdir[1];
if (filesize($outerDir."/".$d) != @filesize($admin_com_vm_path."/".$d) && file_exists($admin_com_vm_path."/".$d)){
$update = file_exists($update_path."/".$d) ? "Y" : "N";
array_push($releaseModified,array($admin_com_vm_path."/".$d,"Y",$update));
}
break;
case stristr($outerDir,"frontend_files")==true:
$subdir = explode("/frontend_files",$outerDir);
$com_vm_path = $basePath."/components/com_virtuemart".$subdir[1];
$update_path = $update_scanDir."/components/com_virtuemart".$subdir[1];
if (filesize($outerDir."/".$d) != @filesize($com_vm_path."/".$d) && file_exists($com_vm_path."/".$d)){
$update = file_exists($update_path."/".$d) ? "Y" : "N";
array_push($releaseModified,array($com_vm_path."/".$d,"Y",$update));
}
break;
default:
$admin_com_vm_path = $basePath."/administrator/components/com_virtuemart";
$update_path = $update_scanDir."/administrator/components/com_virtuemart";
if (filesize($outerDir."/".$d) != @filesize($admin_com_vm_path."/".$d) && file_exists($admin_com_vm_path."/".$d)){
$update = file_exists($update_path."/".$d) ? "Y" : "N";
array_push($releaseModified,array($admin_com_vm_path."/".$d,"Y",$update));
}
break;
}
}
}
return $dir_array;
}
function unpackRelease( $outerDir ){
$dirs = array_diff( scandir( $outerDir ), Array( ".", ".." ) );
$dir_array = Array();
foreach( $dirs as $d ){
if( is_dir($outerDir."/".$d) ) $dir_array[ $d ] = unpackRelease( $outerDir."/".$d );
else $dir_array[ $d ] = $d;
if(stristr($d,".zip")){
zipExtract($outerDir."/".$d,$outerDir."/".substr($d,0,-4));
unlink($outerDir."/".$d);
}
if(stristr($d,".tar.gz")){
system("cd ".$outerDir."; mkdir ".substr($d,0,-7)."; cd ".substr($d,0,-7)."; tar -xvf ".$outerDir."/".$d);
unlink($outerDir."/".$d);
}
}
return $dir_array;
}
function zipExtract($source,$dest){
$files = new ZipArchive;
if ($files->open($source) === TRUE) {
$files->extractTo($dest);
$files->close();
} else {
echo 'Extract FAIL! Source:'.$source.' Dest: '.$dest.'\r\n';
}
}
?>