function linksent()
 {
     $form = new Form($this, "UnsubscribeLinkSent", new FieldSet(), new FieldSet());
     if (isset($_GET['SendEmail']) && $_GET['SendEmail']) {
         $form->setMessage(sprintf(_t('Unsubscribe.LINKSENTTO', "The unsubscribe link has been sent to %s"), $_GET['SendEmail']), "good");
         return $this->customise(array('Title' => _t('Unsubscribe.LINKSENT', 'Unsubscrib Link Sent'), 'Form' => $form))->renderWith('Page');
     } elseif (isset($_GET['SendError']) && $_GET['SendError']) {
         $form->setMessage(sprintf(_t('Unsubscribe.LINKSENDERR', "Sorry, currently we have internal error, and can't send the unsubscribe link to %s"), $_GET['SendError']), "good");
         return $this->customise(array('Title' => _t('Unsubscribe.LINKNOTSEND', 'Unsubscrib Link Can\'t Be Sent'), 'Form' => $form))->renderWith('Page');
     }
 }
 public function NewEntryForm()
 {
     // Create fields
     $entry = new GuestbookEntry();
     $labels = $entry->fieldLabels();
     $fields = new FieldList(new TextField('Name', $labels['Name']), new EmailField('Email', $labels['Email']), TextField::create('Website', $labels['Website'])->setAttribute('type', 'url'), new TextareaField("Message", $labels['Message']));
     if ($this->EnableEmoticons) {
         $smileyButtons = $this->SmileyButtons("Form_NewEntryForm_Message");
         $smileyField = new LiteralField("Smileys", $smileyButtons);
         $fields->add($smileyField);
     }
     // Create actions
     $actions = new FieldList(new FormAction('postEntry', _t("GuestbookController.POST", 'Post')));
     $validator = new RequiredFields('Name', 'Message');
     $form = new Form($this, 'NewEntryForm', $fields, $actions, $validator);
     $form->setRedirectToFormOnValidationError(true);
     if ($this->UseSpamProtection) {
         if (Form::has_extension('FormSpamProtectionExtension')) {
             $form->enableSpamProtection();
         } else {
             $message = _t('GuestbookController.SPAMPROTECTIONNOTINSTALLED', 'Spam protection has been enabled, but no spam protection module is installed!');
             $form->setMessage($message, 'warning');
         }
     }
     return $form;
 }
 function TypoForm()
 {
     $array = array('green', 'yellow', 'blue', 'pink', 'orange');
     $form = new Form($this, 'TestForm', $fields = FieldList::create(HeaderField::create('HeaderField1', 'HeaderField Level 1', 1), LiteralField::create('LiteralField', '<p>All fields up to EmailField are required and should be marked as such</p>'), TextField::create('TextField1', 'Text Field Example 1'), TextField::create('TextField2', 'Text Field Example 2'), TextField::create('TextField3', 'Text Field Example 3'), TextField::create('TextField4', ''), HeaderField::create('HeaderField2b', 'Field with right title', 2), $textAreaField = new TextareaField('TextareaField', 'Textarea Field'), EmailField::create('EmailField', 'Email address'), HeaderField::create('HeaderField2c', 'HeaderField Level 2', 2), DropdownField::create('DropdownField', 'Dropdown Field', array(0 => '-- please select --', 1 => 'test AAAA', 2 => 'test BBBB')), OptionsetField::create('OptionSF', 'Optionset Field', $array), CheckboxSetField::create('CheckboxSF', 'Checkbox Set Field', $array), CountryDropdownField::create('CountryDropdownField', 'Countries'), CurrencyField::create('CurrencyField', 'Bling bling', '$123.45'), HeaderField::create('HeaderField3', 'Other Fields', 3), NumericField::create('NumericField', 'Numeric Field '), DateField::create('DateField', 'Date Field'), DateField::create('DateTimeField', 'Date and Time Field'), CheckboxField::create('CheckboxField', 'Checkbox Field')), $actions = FieldList::create(FormAction::create('submit', 'Submit Button')), $requiredFields = RequiredFields::create('TextField1', 'TextField2', 'TextField3', 'ErrorField1', 'ErrorField2', 'EmailField', 'TextField3', 'RightTitleField', 'CheckboxField', 'CheckboxSetField'));
     $textAreaField->setColumns(45);
     $form->setMessage('warning message', 'warning');
     return $form;
 }
 /**
  * Return a form with fields to match rendering through controller/template output.
  * @return Form
  */
 public function TestForm()
 {
     $fields = new FieldList(new TextField('SimpleText', 'Simple Text Field'), new NumericField('Number', 'Number Field'), new EmailField('Email', "Email Field"), new DropdownField('Dropdown', 'Normal dropdown', array('1' => 'One option', '2' => 'Two option')), TextField::create('Text', 'Text')->setDescription('This is a description'));
     $actions = new FieldList(new FormAction('doForm', 'Submit'));
     $required = new RequiredFields('SimpleText', 'Email', 'Checkbox', 'Dropdown');
     Session::set("FormInfo.Form_TestForm", array('errors' => array(array('fieldName' => 'FirstName', 'message' => 'Please fill out the required field', 'messageType' => 'bad'), array('fieldName' => 'Email', 'message' => 'Please enter a valid email', 'messageType' => 'validation'))));
     $form = new Form($this, 'TestForm', $fields, $actions, $required);
     $form->setMessage('This is a form wide message. See the alerts component for site wide messages.', 'warning');
     return $form;
 }
 public function NewListingForm()
 {
     $address = '';
     if (isset($_GET["address"])) {
         $address = $_GET["address"];
     }
     $businessName = '';
     if (isset($_GET["name"])) {
         $businessName = $_GET["name"];
     }
     $fields = new FieldSet();
     $fields->push(new TextField($name = "NewListingName", $title = "New Listing Name", $businessName));
     $fields->push(new AddressFinderField($name = "NewListingAddress", $title = "Address / Location for listing", $address));
     $fields->push(new HiddenField($name = "ParentPageID", $this->parentPageID));
     $validator = new RequiredFields("NewListingName", "NewListingAddress");
     $actions = new FieldSet(new FormAction("donewlistingform", "Create Listing"));
     $form = new Form($this->owner, "newlistingform", $fields, $actions, $validator);
     if (isset($_GET["error"]) && $_GET["error"]) {
         $form->setMessage($_GET["error"], "bad");
     }
     return $form;
 }
 /**
  *
  * @param Form $form
  * @return StatusMessage
  */
 public function addToForm(Form $form)
 {
     $form->setMessage($this->getContentForForm(), $this->getTypeForForm());
     return $this;
 }
 public function save($data, Form $form)
 {
     if ($this->record) {
         $className = $this->getItemClassName();
         //check for an existing record
         $record = null;
         if (!empty($_REQUEST['RecordID']) && ($id = $_REQUEST['RecordID'])) {
             $record = DataObject::get_by_id($className, $id);
         }
         //if no existing record, create new record
         if (!$record) {
             $record = new $className();
         }
         $form->saveInto($record);
         try {
             $record->write();
         } catch (Exception $e) {
             $form->setMessage($e->getMessage(), 'bad');
             return ContentModuleUtilities::json_response(array("Status" => 0, "Message" => "{$className} saved successfully", "Content" => $form->forAjaxTemplate()));
         }
         $this->record->{$this->_relationship}()->add($record);
         $form->loadDataFrom($record);
         return ContentModuleUtilities::json_response(array("Status" => 1, "Message" => "{$className} saved successfully", "Content" => $this->ItemEditForm($record->ID)->forAjaxTemplate()->RAW()));
     }
     return ContentModuleUtilities::json_response(array("Status" => 0, "Message" => "Error saving"));
 }
 /**
  * Performs the rename of the folder
  * @param {array} $data Submitted data
  * @param {Form} $form Submitting form
  * @return {string} HTML to be rendered
  */
 public function doRenameFolder($data, Form $form)
 {
     $folder = SnippetFolder::get()->byID(intval($data['ID']));
     if (empty($folder) || $folder === false || $folder->ID == 0) {
         $form->sessionMessage(_t('CodeBank.FOLDER_NOT_FOUND', '_Folder could not be found'), 'bad');
         return $this->redirectBack();
     }
     //Existing Check
     $existingCheck = SnippetFolder::get()->filter('Name:nocase', Convert::raw2sql($data['Name']))->filter('LanguageID', $folder->LanguageID)->filter('ParentID', $folder->ParentID)->filter('ID:not', $folder->ID);
     if ($existingCheck->Count() > 0) {
         $form->sessionMessage(_t('CodeBank.FOLDER_EXISTS', '_A folder already exists with that name'), 'bad');
         return $this->redirectBack();
     }
     //Update Folder
     $form->saveInto($folder);
     $folder->write();
     //Add script to rename the folder in the tree
     Requirements::customScript('window.parent.renameCodeBankTreeNode("folder-' . $folder->ID . '", "' . addslashes($folder->TreeTitle) . '");');
     //Re-render the form
     $form->setMessage(_t('CodeBank.FOLDER_RENAMED', '_Folder Renamed'), 'good');
     return $this->customise(array('Content' => ' ', 'Form' => $form))->renderWith('CMSDialog');
 }
 /**
  * Save  handler
  *
  * @param array $data
  * @param Form $form
  * @return SS_HTTPResponse
  */
 public function save($data, $form)
 {
     $request = $this->getRequest();
     $className = $this->stat('tree_class');
     // Existing or new record?
     $id = $data['ID'];
     if (is_numeric($id) && $id > 0) {
         $record = DataObject::get_by_id($className, $id);
         if ($record && !$record->canEdit()) {
             return Security::permissionFailure($this);
         }
         if (!$record || !$record->ID) {
             $this->httpError(404, "Bad record ID #" . (int) $id);
         }
     } else {
         if (!singleton($this->stat('tree_class'))->canCreate()) {
             return Security::permissionFailure($this);
         }
         $record = $this->getNewItem($id, false);
     }
     // save form data into record
     $form->saveInto($record, true);
     $record->write();
     $this->extend('onAfterSave', $record);
     $this->setCurrentPageID($record->ID);
     $message = _t('LeftAndMain.SAVEDUP', 'Saved.');
     if ($request->getHeader('X-Formschema-Request')) {
         // Ensure that newly created records have all their data loaded back into the form.
         $form->loadDataFrom($record);
         $form->setMessage($message, 'good');
         $data = $this->getSchemaForForm($form);
         $response = new SS_HTTPResponse(Convert::raw2json($data));
         $response->addHeader('Content-Type', 'application/json');
     } else {
         $response = $this->getResponseNegotiator()->respond($request);
     }
     $response->addHeader('X-Status', rawurlencode($message));
     return $response;
 }
 function Form()
 {
     $array = array();
     $array[] = "green";
     $array[] = "yellow";
     $array[] = "blue";
     $array[] = "pink";
     $array[] = "orange";
     $errorField0 = new TextField($name = "ErrorField0", $title = "Text Field Example 1");
     $errorField0->setError("message shown when something is good", "good");
     $errorField1 = new TextField($name = "ErrorField1", $title = "Text Field Example 2");
     $errorField1->setError("message shown when something is bad", "bad");
     $errorField2 = new TextField($name = "ErrorField2", $title = "Text Field Example 3");
     $errorField2->setCustomValidationMessage("message shown when something is bad", "bad");
     $errorField3 = new TextField($name = "ErrorField3", $title = "Text Field Example 4");
     $errorField3->setError("there is an error", "required");
     $errorField4 = new TextField($name = "ErrorField4", $title = "Text Field Example 5");
     $errorField4->setCustomValidationMessage("custom validation error");
     $rightTitle = new TextField($name = "RightTitleField", $title = "Left Title is Default");
     $rightTitle->setRightTitle("right title here");
     $readonlyField = new ReadOnlyField($name = "ReadOnlyField", $title = "ReadOnlyField");
     $readonlyField->setValue("read only value");
     $groupedDropdownField = new GroupedDropdownField($name = "dropdown", $title = "Simple Grouped Dropdown", $source = array("primary" => array("1" => "Green", "2" => "Red", "3" => "Blue", "4" => "Orange"), "secondary" => array("11" => "Light Blue", "12" => "Dark Brown", "13" => "Pinkish Red")));
     $form = new Form($controller = $this, $name = "TestForm", $fields = new FieldList(new HeaderField($name = "HeaderField1", $title = "Default Header Field"), new LiteralField($name = "LiteralField", "<p>NOTE: All fields up to EmailField are required and should be marked as such</p>"), new TextField($name = "TextField1", $title = "Text Field Example 1"), new TextField($name = "TextField2", $title = "Text Field Example 2"), new TextField($name = "TextField3", $title = "Text Field Example 3"), new TextField($name = "TextField4", $title = ""), new HeaderField($name = "HeaderField2a", $title = "Error Messages", 2), new LiteralField($name = "ErrorExplanations", '<p>Below are some error messages, some of them only show up after you have placed your cursor on the field and not completed it (i.e. a reminder to complete the field)</p>'), $errorField0, $errorField1, $errorField2, $errorField3, $errorField4, new HeaderField($name = "HeaderField2b", $title = "Field with right title", 2), $rightTitle, $textAreaField = new TextareaField($name = "TextareaField", $title = "Textarea Field"), new EmailField("EmailField", "Email address"), new HeaderField($name = "HeaderField2c", $title = "HeaderField Level 2", 2), new DropdownField($name = "DropdownField", $title = "Dropdown Field", array(0 => "-- please select --", 1 => "test AAAA", 2 => "test BBBB")), new OptionsetField($name = "OptionsetField", $title = "Optionset Field", $array), new CheckboxSetField($name = "CheckboxSetField", $title = "Checkbox Set Field", $array), new CurrencyField($name = "CurrencyField", $title = "Bling bling"), new HeaderField($name = "HeaderField3", $title = "Other Fields", 3), new NumericField($name = "NumericField", $title = "Numeric Field "), new DateField($name = "DateField", $title = "Date Field"), new DateField($name = "DateTimeField", $title = "Date and Time Field"), new FileField($name = "FileField", $title = "File Field"), new UploadField($name = "UploadField", $title = "Upload File"), new ConfirmedPasswordField($name = "ConfirmPasswordField", $title = "Password"), new CheckboxField($name = "CheckboxField", $title = "Checkbox Field"), $groupedDropdownField, new HeaderField($name = "HeaderField4", $title = "Read-only Field", 3), $readonlyField), $actions = new FieldList(new FormAction("signup", "Sign up")), $requiredFields = new RequiredFields("TextField1", "TextField2", "TextField3", "ErrorField1", "ErrorField2", "EmailField", "TextField3", "RightTitleField", "CheckboxField", "CheckboxSetField"));
     $textAreaField->setColumns(7);
     $form->setMessage("warning message", "warning");
     return $form;
 }
 /**
  * Handle publishing a record, will set errors on form if {@link Product} validation fails.
  * 
  * @see Product::validate()
  * @param Array $data
  * @param Form $form
  * @param SS_HttpRequest $request
  */
 public function publish($data, $form, $request)
 {
     if ($this->currentRecord && !$this->currentRecord->canPublish()) {
         return Security::permissionFailure($this);
     }
     try {
         $form->saveInto($this->currentRecord);
         $this->currentRecord->doPublish();
         $response = new SS_HTTPResponse(Convert::array2json(array('html' => $this->EditForm()->forAjaxTemplate(), 'message' => _t('ModelAdmin.PUBLISHED', 'Published'))), 200);
     } catch (ValidationException $e) {
         $form->setMessage($e->getResult()->message(), 'bad');
         $response = new SS_HTTPResponse(Convert::array2json(array('html' => $form->forAjaxTemplate())), 200);
     }
     if (Director::is_ajax()) {
         return $response;
     } else {
         Director::redirectBack();
     }
 }