|
eZ Publish
[trunk]
|
00001 <?php 00002 /** 00003 * File containing the eZPackageFunctionCollection class. 00004 * 00005 * @copyright Copyright (C) 1999-2012 eZ Systems AS. All rights reserved. 00006 * @license http://www.gnu.org/licenses/gpl-2.0.txt GNU General Public License v2 00007 * @version //autogentag// 00008 * @package kernel 00009 */ 00010 00011 /*! 00012 \class eZPackageFunctionCollection ezpackagefunctioncollection.php 00013 \brief The class eZPackageFunctionCollection does 00014 00015 */ 00016 00017 class eZPackageFunctionCollection 00018 { 00019 /*! 00020 Constructor 00021 */ 00022 function eZPackageFunctionCollection() 00023 { 00024 } 00025 00026 function fetchList( $filterArray = false, $offset, $limit, $repositoryID ) 00027 { 00028 $filterParams = array(); 00029 $filterList = false; 00030 if ( isset( $filterArray ) and 00031 is_array( $filterArray ) and 00032 count( $filterArray ) > 0 ) 00033 { 00034 $filterList = $filterArray; 00035 if ( count( $filterArray ) > 1 and 00036 !is_array( $filterArray[0] ) ) 00037 { 00038 $filterList = array( $filterArray ); 00039 } 00040 } 00041 if ( $filterList !== false ) 00042 { 00043 foreach ( $filterList as $filter ) 00044 { 00045 if ( is_array( $filter ) and count( $filter ) > 0 ) 00046 { 00047 $filterName = $filter[0]; 00048 switch ( $filterName ) 00049 { 00050 case 'type': 00051 { 00052 $typeValue = $filter[1]; 00053 $typeParam = array( 'type' => $typeValue ); 00054 $filterParams = array_merge( $filterParams, $typeParam ); 00055 } break; 00056 case 'priority': 00057 { 00058 $priorityValue = $filter[1]; 00059 $priorityParam = array( 'priority' => $priorityValue ); 00060 $filterParams = array_merge( $filterParams, $priorityParam ); 00061 } break; 00062 case 'vendor': 00063 { 00064 $vendorValue = $filter[1]; 00065 $vendorParam = array( 'vendor' => $vendorValue ); 00066 $filterParams = array_merge( $filterParams, $vendorParam ); 00067 } break; 00068 case 'extension': 00069 { 00070 $extensionValue = $filter[1]; 00071 $extensionParam = array( 'extension' => $extensionValue ); 00072 $filterParams = array_merge( $filterParams, $extensionParam ); 00073 } break; 00074 default: 00075 { 00076 eZDebug::writeWarning( 'Unknown package filter name: ' . $filterName ); 00077 continue; 00078 } 00079 } 00080 } 00081 } 00082 } 00083 $params = array( 'offset' => $offset, 00084 'limit' => $limit ); 00085 if ( $repositoryID ) 00086 $params['repository_id'] = $repositoryID; 00087 00088 $packageList = eZPackage::fetchPackages( $params, 00089 $filterParams ); 00090 if ( $packageList === null ) 00091 return array( 'error' => array( 'error_type' => 'kernel', 00092 'error_code' => eZError::KERNEL_NOT_FOUND ) ); 00093 return array( 'result' => $packageList ); 00094 } 00095 00096 function fetchPackage( $packageName, $repositoryID ) 00097 { 00098 $package = eZPackage::fetch( $packageName, false, $repositoryID ); 00099 if ( $package === false ) 00100 { 00101 $retValue = array( 'error' => array( 'error_type' => 'kernel', 00102 'error_code' => eZError::KERNEL_NOT_FOUND ) ); 00103 } 00104 else 00105 { 00106 $retValue = array( 'result' => $package ); 00107 } 00108 return $retValue; 00109 } 00110 00111 function fetchDependentPackageList( $packageName, $filterArray = false, $repositoryID ) 00112 { 00113 $filterParams = array(); 00114 $filterList = false; 00115 if ( isset( $filterArray ) and 00116 is_array( $filterArray ) and 00117 count( $filterArray ) > 0 ) 00118 { 00119 $filterList = $filterArray; 00120 if ( count( $filterArray ) > 1 and 00121 !is_array( $filterArray[0] ) ) 00122 { 00123 $filterList = array( $filterArray ); 00124 } 00125 } 00126 if ( $filterList !== false ) 00127 { 00128 foreach ( $filterList as $filter ) 00129 { 00130 if ( is_array( $filter ) and count( $filter ) > 0 ) 00131 { 00132 $filterName = $filter[0]; 00133 switch ( $filterName ) 00134 { 00135 case 'type': 00136 { 00137 $typeValue = $filter[1]; 00138 $typeParam = array( 'type' => $typeValue ); 00139 $filterParams = array_merge( $filterParams, $typeParam ); 00140 } break; 00141 case 'name': 00142 { 00143 $nameValue = $filter[1]; 00144 $nameParam = array( 'name' => $nameValue ); 00145 $filterParams = array_merge( $filterParams, $nameParam ); 00146 } break; 00147 case 'priority': 00148 { 00149 $priorityValue = $filter[1]; 00150 $priorityParam = array( 'priority' => $priorityValue ); 00151 $filterParams = array_merge( $filterParams, $priorityParam ); 00152 } break; 00153 case 'vendor': 00154 { 00155 $vendorValue = $filter[1]; 00156 $vendorParam = array( 'vendor' => $vendorValue ); 00157 $filterParams = array_merge( $filterParams, $vendorParam ); 00158 } break; 00159 case 'extension': 00160 { 00161 $extensionValue = $filter[1]; 00162 $extensionParam = array( 'extension' => $extensionValue ); 00163 $filterParams = array_merge( $filterParams, $extensionParam ); 00164 } break; 00165 default: 00166 { 00167 eZDebug::writeWarning( 'Unknown package filter name: ' . $filterName ); 00168 continue; 00169 } 00170 } 00171 } 00172 } 00173 } 00174 $package = eZPackage::fetch( $packageName, false, $repositoryID ); 00175 $packageList = $package->fetchDependentPackages( $filterParams ); 00176 if ( $packageList === false ) 00177 { 00178 $retValue = array( 'error' => array( 'error_type' => 'kernel', 00179 'error_code' => eZError::KERNEL_NOT_FOUND ) ); 00180 } 00181 else 00182 { 00183 $retValue = array( 'result' => $packageList ); 00184 } 00185 return $retValue; 00186 } 00187 00188 function fetchMaintainerRoleList( $packageType, $checkRoles ) 00189 { 00190 $list = eZPackage::fetchMaintainerRoleList( $packageType, $checkRoles ); 00191 if ( $list === false ) 00192 return array( 'error' => array( 'error_type' => 'kernel', 00193 'error_code' => eZError::KERNEL_NOT_FOUND ) ); 00194 return array( 'result' => $list ); 00195 } 00196 00197 function fetchRepositoryList() 00198 { 00199 $list = eZPackage::packageRepositories(); 00200 if ( $list === false ) 00201 return array( 'error' => array( 'error_type' => 'kernel', 00202 'error_code' => eZError::KERNEL_NOT_FOUND ) ); 00203 return array( 'result' => $list ); 00204 } 00205 00206 function canCreate() 00207 { 00208 return array( 'result' => eZPackage::canUsePolicyFunction( 'create' ) ); 00209 } 00210 00211 function canEdit() 00212 { 00213 return array( 'result' => eZPackage::canUsePolicyFunction( 'edit' ) ); 00214 } 00215 00216 function canImport() 00217 { 00218 return array( 'result' => eZPackage::canUsePolicyFunction( 'import' ) ); 00219 } 00220 00221 function canInstall() 00222 { 00223 return array( 'result' => eZPackage::canUsePolicyFunction( 'install' ) ); 00224 } 00225 00226 function canExport() 00227 { 00228 return array( 'result' => eZPackage::canUsePolicyFunction( 'export' ) ); 00229 } 00230 00231 function canRead() 00232 { 00233 return array( 'result' => eZPackage::canUsePolicyFunction( 'read' ) ); 00234 } 00235 00236 function canList() 00237 { 00238 return array( 'result' => eZPackage::canUsePolicyFunction( 'list' ) ); 00239 } 00240 00241 function canRemove() 00242 { 00243 return array( 'result' => eZPackage::canUsePolicyFunction( 'remove' ) ); 00244 } 00245 } 00246 00247 ?>