/**
  * @param modMediaSource $mediaSource
  *
  * @return bool|string
  */
 public function prepareSource(modMediaSource $mediaSource = null)
 {
     if (!($this->ms2Gallery = $this->xpdo->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/'))) {
         return 'Could not load class ms2Gallery!';
     }
     if ($mediaSource) {
         $this->mediaSource = $mediaSource;
         return true;
     } elseif (is_object($this->mediaSource) && $this->mediaSource instanceof modMediaSource) {
         return true;
     } else {
         /* @var modResource $resource */
         if ($resource = $this->getOne('Resource')) {
             $properties = $resource->getProperties('ms2gallery');
             $source = $properties['media_source'];
             $ctx = $resource->get('context_key');
             $this->mediaSource = $this->ms2Gallery->initializeMediaSource($ctx, $source);
             if (!$this->mediaSource || !$this->mediaSource instanceof modMediaSource) {
                 return 'Could not initialize media source for resource with id = ' . $this->get('resource_id');
             } else {
                 return true;
             }
         } else {
             return 'Could not load file resource with id = ' . $this->get('resource_id');
         }
     }
 }
 /**
  * @return bool|null|string
  */
 public function initialize()
 {
     /* @var modResource $resource */
     $id = $this->getProperty('id', @$_GET['id']);
     if (!($resource = $this->modx->getObject('modResource', $id))) {
         return $this->modx->lexicon('ms2gallery_err_no_resource');
     }
     $ctx = $resource->get('context_key');
     $properties = $resource->getProperties('ms2gallery');
     $source = $properties['media_source'];
     if (!($this->ms2Gallery = $this->modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/'))) {
         return 'Could not load class ms2Gallery!';
     } elseif (!($this->mediaSource = $this->ms2Gallery->initializeMediaSource($ctx, $source))) {
         return $this->modx->lexicon('ms2gallery_err_no_source');
     }
     $this->resource = $resource;
     return true;
 }