/**
  * @param int $id - PageLayout ID
  */
 public function actionCloneTemplate($id)
 {
     $model = $this->findModel($id);
     $newModel = new ContentTemplate();
     // Clone attributes
     foreach ($model->attributes as $name => $value) {
         if (in_array($name, ['id', 'can_be_deleted'])) {
             continue;
         }
         if ($name == 'name') {
             $value .= ' (Copy)';
         }
         $newModel->{$name} = $value;
     }
     $newModel->save(false);
     // Clone widget positions
     foreach ($model->contentTemplateHasWidgets as $prototypeLayoutWidget) {
         $layoutWidget = new ContentTemplateHasWidget();
         $layoutWidget->content_template_id = $newModel->id;
         $layoutWidget->content_template_widget_id = $prototypeLayoutWidget->content_template_widget_id;
         $layoutWidget->position = $prototypeLayoutWidget->position;
         $layoutWidget->sorter = $prototypeLayoutWidget->sorter;
         $layoutWidget->save(false);
     }
 }