public function save($data, $form)
 {
     $member = DataObject::get_by_id("Member", $data['ID']);
     if (!$member) {
         return $this->httpError(404);
     }
     $origLocale = $member->Locale;
     if (!$member->canEdit()) {
         $form->sessionMessage(_t('Member.CANTEDIT', 'You don\'t have permission to do that'), 'bad');
         return $this->redirectBack();
     }
     $response = parent::save($data, $form);
     if ($origLocale != $data['Locale']) {
         $response->addHeader('X-Reload', true);
         $response->addHeader('X-ControllerURL', $this->Link());
     }
     return $response;
 }
Пример #2
0
 public function save($urlParams, $form)
 {
     // Don't save the root folder - there's no database record
     if ($_REQUEST['ID'] == 'root') {
         FormResponse::status_message('Saved', 'good');
         return FormResponse::respond();
     }
     $form->dataFieldByName('Name')->Value = $form->dataFieldByName('Title')->Value();
     return parent::save($urlParams, $form);
 }
 /**
  * Save the content source/item.
  */
 public function save($urlParams, $form)
 {
     // Retrieve the record.
     $record = null;
     if (isset($urlParams['ID'])) {
         $record = ExternalContent::getDataObjectFor($urlParams['ID']);
     }
     if (!$record) {
         return parent::save($urlParams, $form);
     }
     if ($record->canEdit()) {
         // lets load the params that have been sent and set those that have an editable mapping
         if ($record->hasMethod('editableFieldMapping')) {
             $editable = $record->editableFieldMapping();
             $form->saveInto($record, array_keys($editable));
             $record->remoteWrite();
         } else {
             $form->saveInto($record);
             $record->write();
         }
         // Set the form response.
         $this->response->addHeader('X-Status', rawurlencode(_t('LeftAndMain.SAVEDUP', 'Saved.')));
     } else {
         $this->response->addHeader('X-Status', rawurlencode(_t('LeftAndMain.SAVEDUP', 'You don\'t have write access.')));
     }
     return $this->getResponseNegotiator()->respond($this->request);
 }