modextensionpackage.class.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /*
  3. * This file is part of MODX Revolution.
  4. *
  5. * Copyright (c) MODX, LLC. All Rights Reserved.
  6. *
  7. * For complete copyright and license information, see the COPYRIGHT and LICENSE
  8. * files found in the top-level directory of this distribution.
  9. */
  10. /**
  11. * @package modx
  12. * @subpackage mysql
  13. */
  14. class modExtensionPackage extends xPDOSimpleObject {
  15. public function save($cacheFlag= null) {
  16. if (!$this->getOption(xPDO::OPT_SETUP)) {
  17. $isNew = $this->isNew();
  18. if ($isNew) {
  19. $this->set('created_at',strftime('%Y-%m-%d %H:%M:%S'));
  20. } else {
  21. $this->set('updated_at',strftime('%Y-%m-%d %H:%M:%S'));
  22. }
  23. }
  24. $saved = parent::save($cacheFlag);
  25. if ($saved && !$this->getOption(xPDO::OPT_SETUP)) {
  26. $this->xpdo->call('modExtensionPackage','clearCache',array(&$this->xpdo));
  27. }
  28. return $saved;
  29. }
  30. public function remove(array $ancestors = array()) {
  31. $removed = parent::remove($ancestors);
  32. if ($removed && !$this->getOption(xPDO::OPT_SETUP)) {
  33. $this->xpdo->call('modExtensionPackage','clearCache',array(&$this->xpdo));
  34. }
  35. return $removed;
  36. }
  37. /**
  38. * @static
  39. * @param xPDO|modX $modx
  40. * @return array|mixed
  41. */
  42. public static function loadCache(xPDO &$modx) {
  43. if (!$modx->getCacheManager()) {
  44. return array();
  45. }
  46. $cacheKey= 'extension-packages';
  47. $cache = $modx->cacheManager->get($cacheKey, array(
  48. xPDO::OPT_CACHE_KEY => $modx->getOption('cache_extension_packages_key', null, 'namespaces'),
  49. xPDO::OPT_CACHE_HANDLER => $modx->getOption('cache_extension_packages_handler', null,$modx->getOption(xPDO::OPT_CACHE_HANDLER)),
  50. xPDO::OPT_CACHE_FORMAT => (integer) $modx->getOption('cache_extension_packages_format', null, $modx->getOption(xPDO::OPT_CACHE_FORMAT, null, xPDOCacheManager::CACHE_PHP)),
  51. ));
  52. if (empty($cache)) {
  53. $cache = $modx->cacheManager->generateExtensionPackagesCache($cacheKey);
  54. }
  55. return $cache;
  56. }
  57. public static function clearCache(modX $modx) {
  58. $cacheKey= 'extension-packages';
  59. $cleared = $modx->cacheManager->delete($cacheKey, array(
  60. xPDO::OPT_CACHE_KEY => $modx->getOption('cache_extension_packages_key', null, 'namespaces'),
  61. xPDO::OPT_CACHE_HANDLER => $modx->getOption('cache_extension_packages_handler', null,$modx->getOption(xPDO::OPT_CACHE_HANDLER)),
  62. xPDO::OPT_CACHE_FORMAT => (integer) $modx->getOption('cache_extension_packages_format', null, $modx->getOption(xPDO::OPT_CACHE_FORMAT, null, xPDOCacheManager::CACHE_PHP)),
  63. ));
  64. return $cleared;
  65. }
  66. }