/**
  * Import the Resource into Articles
  *
  * @param modResource $resource
  * @return boolean
  */
 public function importResource(modResource $resource)
 {
     $resource->set('searchable', true);
     $resource->set('richtext', true);
     $resource->set('isfolder', false);
     $resource->set('cacheable', true);
     $resource->set('class_key', 'Article');
     $resource->set('parent', $this->container->get('id'));
     $settings = $this->container->getProperties('articles');
     $resource->setProperties($settings, 'articles');
     if (!empty($this->config['modx-change-template'])) {
         $resource->set('template', $settings['articleTemplate']);
     }
     $this->setResourceUri($resource);
     if (!empty($this->config['modx-commentsThreadNameFormat'])) {
         $this->importComments($resource);
     }
     $saved = true;
     if (!$this->debug) {
         $saved = $resource->save();
         if ($saved) {
             $resource->setTVValue('articlestags', $resource->get('tags'));
         }
     }
     return $saved;
 }
예제 #2
0
 /**
  * Used to set values on the resource record sent to the template for derivative classes
  *
  * @return void
  */
 public function prepareResource()
 {
     $settings = $this->resource->getProperties('articles');
     if (empty($settings)) {
         $settings = array();
     }
     $defaultContainerTemplate = $this->modx->getOption('articles.default_container_template', $settings, false);
     if (empty($defaultContainerTemplate)) {
         /** @var modTemplate $template */
         $template = $this->modx->getObject('modTemplate', array('templatename' => 'sample.ArticlesContainerTemplate'));
         if ($template) {
             $defaultContainerTemplate = $template->get('id');
         }
     }
     $this->resourceArray['template'] = $defaultContainerTemplate;
     $defaultArticleTemplate = $this->modx->getOption('articles.default_article_template', $settings, false);
     if (empty($defaultArticleTemplate)) {
         /** @var modTemplate $template */
         $template = $this->modx->getObject('modTemplate', array('templatename' => 'sample.ArticleTemplate'));
         if ($template) {
             $defaultArticleTemplate = $template->get('id');
         }
     }
     $this->resourceArray['setting_articleTemplate'] = $defaultArticleTemplate;
     foreach ($settings as $k => $v) {
         $this->resourceArray['setting_' . $k] = $v;
     }
 }
예제 #3
0
 /**
  * Used to set values on the resource record sent to the template for derivative classes
  *
  * @return void
  */
 public function prepareResource()
 {
     $settings = $this->resource->getProperties('articles');
     if (is_array($settings) && !empty($settings)) {
         foreach ($settings as $k => $v) {
             $this->resourceArray['setting_' . $k] = $v;
         }
     }
 }
 /**
  * Override modResourceUpdateProcessor::beforeSave to provide custom functionality, saving settings for the container
  * to a custom field in the DB
  * {@inheritDoc}
  * @return boolean
  */
 public function beforeSave()
 {
     $properties = $this->getProperties();
     $settings = $this->object->getProperties('articles');
     $notificationServices = array();
     foreach ($properties as $k => $v) {
         if (substr($k, 0, 8) == 'setting_') {
             $key = substr($k, 8);
             if ($v === 'false') {
                 $v = 0;
             }
             if ($v === 'true') {
                 $v = 1;
             }
             switch ($key) {
                 case 'notifyTwitter':
                     if ($v) {
                         $notificationServices[] = 'twitter';
                     }
                     break;
                 case 'notifyTwitterConsumerKey':
                     if (!empty($v)) {
                         $v = $this->object->encrypt($v);
                     }
                     break;
                 case 'notifyTwitterConsumerKeySecret':
                     if (!empty($v)) {
                         $v = $this->object->encrypt($v);
                     }
                     break;
                 case 'notifyFacebook':
                     if ($v) {
                         $notificationServices[] = 'facebook';
                     }
                     break;
             }
             $settings[$key] = $v;
         }
     }
     $settings['notificationServices'] = implode(',', $notificationServices);
     $this->object->setProperties($settings, 'articles');
     return parent::beforeSave();
 }