/** * Duplicate an item */ public function action_duplicate() { $class_name = $this->model; $message = \Lang::get('admin.messages.item_duplicate_success', array('resource' => $class_name::singular())); $success = true; try { $duplicate = \CMF::duplicateItem($class_name, $this->id); } catch (\Exception $e) { $message = $e->getMessage(); $success = false; } $output = array('success' => $success, 'message' => $message); if (!empty($duplicate)) { $output['id'] = $duplicate->id; $output['label'] = $duplicate->display(); } return $output; }
/** * Given an ID, duplicates the form to edit an item. */ public function action_duplicate($table_name, $id = null) { // Find class name and metadata $class_name = \Admin::getClassForTable($table_name); if ($class_name === false) { return $this->show404(null, "type"); } // Set message etc $message = \Lang::get('admin.messages.item_duplicate_success', array('resource' => $class_name::singular())); $success = true; try { $duplicate = \CMF::duplicateItem($class_name, $id); } catch (\Exception $e) { $message = $e->getMessage(); $success = false; } // Send user back \Session::set_flash('main_alert', array('attributes' => array('class' => $success ? 'alert-success' : 'alert-danger'), 'msg' => $message)); $next = \Input::param('next', \Input::referrer("/admin/{$table_name}")); \Response::redirect($next); }