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')));
 }