Revision 2090
Added by darkviper almost 11 years ago
UpgradeHelper.php | ||
---|---|---|
35 | 35 |
class UpgradeHelper { |
36 | 36 |
|
37 | 37 |
/** |
38 |
* do not delete start directory of deltree |
|
39 |
*/ |
|
40 |
const DEL_ROOT_PRESERVE = 0; |
|
41 |
/** |
|
42 |
* delete start directory of deltree |
|
43 |
*/ |
|
44 |
const DEL_ROOT_DELETE = 1; |
|
45 |
/** |
|
46 |
* clear logs |
|
47 |
*/ |
|
48 |
const LOG_CLEAR = true; |
|
49 |
/** |
|
50 |
* preserve logs |
|
51 |
*/ |
|
52 |
const LOG_PRESERVE = false; |
|
53 |
/** |
|
54 |
* to store the last delTree log |
|
55 |
*/ |
|
56 |
static $aDelTreeLog = array(); |
|
57 |
|
|
58 |
/** |
|
38 | 59 |
* Compare available tables against a list of tables |
39 | 60 |
* @param array list of needed table names without TablePrefix |
40 | 61 |
* @return array list of missing tables |
... | ... | |
265 | 286 |
} |
266 | 287 |
return false; |
267 | 288 |
} |
289 |
/** |
|
290 |
* Delete all contents of basedir, but not the basedir itself |
|
291 |
* @param string $sRootDir the content of which should be deleted |
|
292 |
* @param integer $iMode the mode can be set to self::DEL_ROOT_PRESERVE(default) or self::DEL_ROOT_DELETE |
|
293 |
* @return boolean false if a file or directory can't be deleted |
|
294 |
*/ |
|
295 |
static public function delTree($sRootDir, $iMode = self::DEL_ROOT_PRESERVE) |
|
296 |
{ |
|
297 |
// check if root dir is inside the installation and is writeable |
|
298 |
$oReg = WbAdaptor::getInstance(); |
|
299 |
self::$aDelTreeLog = array(); |
|
300 |
$bResult = true; |
|
301 |
if (!is_writeable($sRootDir)) { |
|
302 |
self::$aDelTreeLog[] = str_replace($oReg->AppPath, '', $sRootDir); |
|
303 |
return false; |
|
304 |
} |
|
305 |
$oIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($sRootDir), RecursiveIteratorIterator::CHILD_FIRST); |
|
306 |
foreach ($oIterator as $oPath) { |
|
307 |
$sPath = rtrim(str_replace('\\', '/', $oPath->__toString()), '/'); |
|
308 |
if ($oPath->isDir() && !preg_match('/\.$/s', $sPath)) { |
|
309 |
// proceed directories |
|
310 |
if (!rmdir($sPath)) { |
|
311 |
$bResult = false; |
|
312 |
self::$aDelTreeLog[] = str_replace($oReg->AppPath, '', $sPath); |
|
313 |
} |
|
314 |
} elseif ($oPath->isFile()) { |
|
315 |
// proceed files |
|
316 |
if (!unlink($sPath)) { |
|
317 |
$bResult = false; |
|
318 |
self::$aDelTreeLog[] = str_replace($oReg->AppPath, '', $sPath); |
|
319 |
} |
|
320 |
} |
|
321 |
} |
|
322 |
if (($iMode & self::DEL_ROOT_DELETE) && $bResult) { |
|
323 |
// delete RootDir if there was no error before |
|
324 |
if (!rmdir($sRootDir)) { |
|
325 |
$bResult = false; |
|
326 |
self::$aDelTreeLog[] = str_replace($oReg->AppPath, '', $sRootDir); |
|
327 |
} |
|
328 |
} |
|
329 |
return $bResult; |
|
330 |
} |
|
331 |
/** |
|
332 |
* returns the log of the last delTree request |
|
333 |
* @param bool $bClearLog TRUE clears the log after request, FALSE preserve the log |
|
334 |
* @return array |
|
335 |
*/ |
|
336 |
static public function getDelTreeLog($bClearLog = self::LOG_CLEAR) |
|
337 |
{ |
|
338 |
$aRetval = self::$aDelTreeLog; |
|
339 |
if($bClearLog) { self::$aDelTreeLog = array(); } |
|
340 |
return $aRetval; |
|
341 |
} |
|
268 | 342 |
|
343 |
|
|
269 | 344 |
} // end of class UpgradeHelper |
270 | 345 |
|
Also available in: Unified diff
- templates/argos_theme
- templates/allcss
- templates/wb_theme
+ templates/WbTheme
! all upgrade/install and all other files needed to change defaults