mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
26b8f7dffe
Inform-merge: from the changeset: r32477: Merge 2.0-inform from trunk previously r32478: Merge 2.0-inform from trunk previously r32481: merge 2.0infom with lastes chunk r32483: merge 2.0infom with lastes chunk r33526: Final styling of all forms and combined communication form add/alter javascript for height adjustment of First / Second block r33580: styling for combined form communication in myinfom pages r33706: styling of combined form (communication) in Email r33881: made compatible to $extraClass r33885: added defaultVal r33887: fixed typo r34728: modified SmallFieldHolder?() r34729: added "validationError"-class r34914: WIP3866: Factfinder: Hide "self emplyed" block r34964: Change current plan upto TraumaInsurance? r35038: disabled friggin field focus r35230: #1032 Fixed hash-link insertion r35887: conditionally setting parameters in sourceID() - to avoid empty overrides r35892: Saving value in SQL-compatible format (YYYY-MM-DD instead of DD/MM/YYYY), with fallback for non-sql values (just passed through without conversion) r35928: Removed "create a" from PageType?-dropdown, sorting alphabetically, falling back to $singular_name r35990: branched off for membertablefield r35994: fix for membertablefield r36024: added array-condition needed for DMYDateField r36083: fix bug for compositeField -> dropDatalessField r36394: removed debug code r36826: change wrong indent format r36828: WIP 4262: Logging out of My Inform goes to blank page r36858: Fixed error caused in r12472 while merging to Session-class r37132: Merged partial changesets from branches/2.0-nzct, only adding childID to detailform when not in add-mode r40815: add an unsubscribe record when a member subscribe a newslettertype r41113: fix the bug described in http://support.silverstripe.com/info/ticket/31: CRM not showing search results r43226: fixed search (partial merge from trunk) r43268: merged createNewPassword() from trunk, was referencing a non-existinent global function randomString() git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@45473 467b73ca-7a2a-4603-9d3b-597d59a354a9
68 lines
1.9 KiB
PHP
Executable File
68 lines
1.9 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* Set of radio buttons designed to emulate a dropdown.
|
|
* It even uses the same constructor as a dropdown field.
|
|
*/
|
|
class OptionsetField extends DropdownField {
|
|
|
|
/**
|
|
* Creates a new optionset field.
|
|
* @param name The field name
|
|
* @param title The field title
|
|
* @param source An map of the dropdown items
|
|
* @param value The current value
|
|
* @param form The parent form
|
|
*/
|
|
function __construct($name, $title = "", $source = array(), $value = "", $form = null) {
|
|
parent::__construct($name, $title, $source, $value, $form);
|
|
}
|
|
|
|
/**
|
|
* Create a <ul> containing sets of radio buttons and labels. The IDs are set to
|
|
* FieldID_ItemKey, where ItemKey is the key with all non-alphanumerics removed.
|
|
*/
|
|
function Field() {
|
|
$options = '';
|
|
$odd = 0;
|
|
foreach($this->source as $key => $value) {
|
|
$itemID = $this->id() . "_" . ereg_replace('[^a-zA-Z0-9]+','',$key);
|
|
|
|
if($key == $this->value/* || $useValue */) {
|
|
$useValue = false;
|
|
$checked = " checked=\"checked\"";
|
|
} else {
|
|
$checked="";
|
|
}
|
|
|
|
$odd = ($odd + 1) % 2;
|
|
$extraClass = $odd ? "odd" : "even";
|
|
$extraClass .= " val" . str_replace(' ','',$key);
|
|
$this->disabled ? $disabled = " disabled=\"disabled\"" : $disable = "";
|
|
|
|
$options .= "<li class=\"".$extraClass."\"><input id=\"$itemID\" name=\"$this->name\" type=\"radio\" value=\"$key\"$checked $disabled/> <label for=\"$itemID\">$value</label></li>\n";
|
|
}
|
|
$id = $this->id();
|
|
return "<ul id=\"$id\" class=\"optionset {$this->extraClass}\">\n$options</ul>\n";
|
|
}
|
|
|
|
protected $disabled = false;
|
|
function setDisabled($val) {
|
|
$this->disabled = $val;
|
|
}
|
|
|
|
|
|
|
|
function performReadonlyTransformation() {
|
|
// Source and values are DataObject sets.
|
|
$items = $this->source;
|
|
$field = new LookupField($this->name,$this->title ? $this->title : "" ,$items,$this->value);
|
|
$field->setForm($this->form);
|
|
return $field;
|
|
}
|
|
|
|
function ExtraOptions() {
|
|
return new DataObjectSet();
|
|
}
|
|
}
|
|
?>
|