Example #1
0
 public function process()
 {
     $canDuplicate = $this->beforeDuplicate();
     if ($canDuplicate !== true) {
         return $this->failure($canDuplicate);
     }
     $oldValues = $this->oldTemplate->toArray();
     /** @var CollectionTemplateColumn[] $oldColumns */
     $oldColumns = $this->oldTemplate->Columns;
     $oldValues['name'] = $this->getProperty('name');
     $oldValues['description'] = $this->getProperty('description');
     $oldValues['global_template'] = false;
     /** @var CollectionTemplate $newTemplate */
     $newTemplate = $this->modx->newObject($this->classKey);
     $newTemplate->fromArray($oldValues);
     $newColumns = array();
     foreach ($oldColumns as $column) {
         $columnArray = $column->toArray();
         unset($columnArray['template']);
         /** @var CollectionTemplateColumn $newColumn */
         $newColumn = $this->modx->newObject('CollectionTemplateColumn');
         $newColumn->fromArray($columnArray);
         $newColumns[] = $newColumn;
     }
     $newTemplate->addMany($newColumns, 'Columns');
     $newTemplate->save();
     return $this->success('', array('id' => $newTemplate->get('id')));
 }
Example #2
0
 public function afterSave()
 {
     $global = $this->getProperty('global_template');
     if ($global == true) {
         $this->modx->updateCollection('CollectionTemplate', array('global_template' => false), array('id:!=' => $this->object->id));
     }
     $templates = $this->getProperty('templates');
     $templates = array_filter($templates);
     $this->object->setTemplates($templates);
     return parent::afterSave();
 }