예제 #1
0
 $edited_Goal = new Goal();
 // Check that this action request is not a CSRF hacked request:
 $Session->assert_received_crumb('goal');
 // Check permission:
 $current_User->check_perm('stats', 'edit', true);
 // load data from request
 if ($edited_Goal->load_from_Request()) {
     // We could load data from form without errors:
     // Insert in DB:
     $DB->begin();
     $q = $edited_Goal->dbexists();
     if ($q) {
         // We have a duplicate entry:
         param_error('goal_key', sprintf(T_('This goal already exists. Do you want to <a %s>edit the existing goal</a>?'), 'href="?ctrl=goals&amp;action=edit&amp;goal_ID=' . $q . '"'));
     } else {
         $edited_Goal->dbinsert();
         $Messages->add(T_('New goal created.'), 'success');
     }
     $DB->commit();
     if (empty($q)) {
         // What next?
         switch ($action) {
             case 'create_copy':
                 // Redirect so that a reload doesn't write to the DB twice:
                 header_redirect('?ctrl=goals&action=new&goal_ID=' . $edited_Goal->ID, 303);
                 // Will EXIT
                 // We have EXITed already at this point!!
                 break;
             case 'create_new':
                 // Redirect so that a reload doesn't write to the DB twice:
                 header_redirect('?ctrl=goals&action=new', 303);