46 new Exception(
'An error occured while loading file '.$ROOT_DIR.
'/packages/core/data/package_list' )
50 $File = str_replace(
"\r" ,
"\n" , $File );
51 $File = str_replace(
"\n\n" ,
"\n" , $File );
52 $PackagesInfo = explode(
"\n" , $File );
54 $PackageList = array();
56 foreach( $PackagesInfo as $pi )
58 $PackageList [] = explode(
'#' , $pi );
59 $tmp = explode(
'#' , $pi );
62 return( $PackageList );
102 if( $RootPackage ==
'' )
104 $PackageNamePrefix =
'';
108 $PackageNamePrefix = $RootPackage.
'::';
111 if( $RootVersion ==
'' )
113 $PackageVersionPrefix =
'';
117 $PackageVersionPrefix = $RootVersion.
'::';
120 return( array( $PackageNamePrefix , $PackageVersionPrefix ) );
122 catch( Exception $e )
167 $PackageNamePrefix , $PackageVersionPrefix )
171 $InfoParts = explode(
'.' , $p[ 0 ] );
172 $RetArray [] = array(
173 'package_name' => $PackageNamePrefix.$InfoParts[ 0 ] ,
174 'package_version' => $PackageVersionPrefix.$InfoParts[ 1 ].
'.'.$InfoParts[ 2 ].
'.'.$InfoParts[ 3 ]
177 if( file_exists( $ROOT_DIR.
'/packages/'.$p[ 1 ].
'/packages/core/data/package_list' ) )
179 $Name = $PackageNamePrefix.$InfoParts[ 0 ];
180 $Version = $PackageVersionPrefix.$InfoParts[ 1 ].
'.'.$InfoParts[ 2 ].
'.'.$InfoParts[ 3 ];
181 $RetArray = array_merge(
188 catch( Exception $e )
230 list( $PackageNamePrefix , $PackageVersionPrefix ) =
_get_name_and_version( $RootPackage , $RootVersion );
234 foreach( $PackageList as $p )
237 $RetArray , $ROOT_DIR , $p , $PackageNamePrefix , $PackageVersionPrefix
243 catch( Exception $e )
287 $InfoParts = explode(
'.' , $p[ 0 ] );
289 $SubPackages = array();
291 if( file_exists( $ROOT_DIR.
'/packages/'.$p[ 1 ].
'/packages/core/data/package_list' ) )
293 $Name = $PackageNamePrefix.$InfoParts[ 0 ];
294 $Version = $PackageVersionPrefix.$InfoParts[ 1 ].
'.'.$InfoParts[ 2 ].
'.'.$InfoParts[ 3 ];
295 $SubPackages =
_get_packages_tree( $ROOT_DIR.
'/packages/'.$p[ 1 ] , $Name , $Version );
298 return( $SubPackages );
300 catch( Exception $e )
348 $SubPackages =
_fetch_subpackages( $ROOT_DIR , $p , $PackageNamePrefix , $PackageVerPrefix );
350 $InfoParts = explode(
'.' , $p[ 0 ] );
352 $RetArray [] = array(
353 'package_signature' => $p[ 0 ] ,
354 'package_name' => $InfoParts[ 0 ] ,
355 'package_version' => $InfoParts[ 1 ].
'.'.$InfoParts[ 2 ].
'.'.$InfoParts[ 3 ] ,
356 'subpackages' => $SubPackages ,
357 'full_package_name' => $PackageNamePrefix.$InfoParts[ 0 ] ,
358 'full_package_version' => $PackageVerPrefix.$InfoParts[ 1 ].
'.'.$InfoParts[ 2 ].
'.'.
363 catch( Exception $e )
405 list( $PackageNamePrefix , $PackageVersionPrefix ) =
_get_name_and_version( $RootPackage , $RootVersion );
409 foreach( $PackageList as $p )
412 $RetArray , $ROOT_DIR , $p , $PackageNamePrefix , $PackageVersionPrefix
420 catch( Exception $e )
456 $Zip =
new ZipArchive;
457 if( $Zip->open( $FileSource ) === false )
459 throw(
new Exception(
'An error occured while opening package '.$FileSource ) );
461 if( $Zip->extractTo( $ROOT_DIR.
'/packages/'.$SubDirPath.
'/' ) === false )
463 throw(
new Exception(
'An error occured while extracting package '.$FileSource ) );
465 @unlink( $FileSource );
468 $ROOT_DIR.
'/packages/core/data/package_list' ,
469 basename( $FileSource ,
'.zip' ).
'#'.$SubDirPath.
"\r\n".$PackageList
473 catch( Exception $e )
509 $FileSource = strtolower( $FileSource );
510 $SubDirPath = md5( date(
'YmdHis' ).$FileSource );
511 mkdir( $ROOT_DIR.
'/packages/'.$SubDirPath );
515 return( $ROOT_DIR.
'/packages/'.$SubDirPath );
517 catch( Exception $e )
559 if( $File ===
false )
562 new Exception(
'An error occured while loading file '.$ROOT_DIR.
'/packages/core/data/package_list' )
566 $File = str_replace(
"\r" ,
"\n" , $File );
567 $File = str_replace(
"\n\n" ,
"\n" , $File );
569 return( explode(
"\n" , $File ) );
571 catch( Exception $e )
602 catch( Exception $e )
630 $Handle = fopen( $Path ,
'w' );
632 if( $Handle ===
false )
634 throw(
new Exception(
'Unable to open package list' ) );
639 catch( Exception $e )
676 $PackageCache = array();
682 foreach( $PackagesInfo as $pi )
684 $PackageNameAndVersion = explode(
'#' , $pi );
685 if( $PackageNameAndVersion[ 0 ] === $PackageName.
'.'.$PackageVersion )
687 _delete_pf( $ROOT_DIR.
'/packages/'.$PackageNameAndVersion[ 1 ] );
692 fwrite( $Handle , $pi , strlen( $pi ) );
697 catch( Exception $e )