Merge remote-tracking branch 'refs/remotes/chillu/formfield-constructors'

Conflicts:
	forms/CountryDropdownField.php
This commit is contained in:
Sam Minnee 2012-01-10 16:41:02 +13:00
commit 7c6050b407
13 changed files with 40 additions and 43 deletions

View File

@ -84,6 +84,14 @@ as well as the HTML form element itself.
<input type="checkbox" class="checkbox extraClass".../>
</div>
### FormField constructor argument changes ###
In order to enforce a consistent parameter order in core [api:FormField] subclasses,
its no longer possible to set the following optional attributes via constructor arguments:
`$form`, `$maxLength`, `$rightTitle`, `$rows`/`$cols` (for `TextareaField` and `HtmlEditorField`)
and `$folderName` (for `FileField` and `SimpleImageField`).
Please use the appropriate setters on the form field instance instead.
### Restructured files and folders ###
In order to make the `sapphire` framework useable without the `cms` module,
@ -143,4 +151,4 @@ Alternatively, you can enforce database usage by setting `SapphireTest->usesData
* `Archive`, `TarballArchive`: If you make use of these, copy the classes from 2.4 into your project.
* `XML`: Use PHP's built-in SimpleXML instead
* `DataObjectLog`: There is no replacement for this.
* `GeoIP`: Moved to separate ["geoip" module](https://github.com/silverstripe-labs/silverstripe-geoip)
* `GeoIP`: Moved to separate ["geoip" module](https://github.com/silverstripe-labs/silverstripe-geoip)

View File

@ -87,7 +87,7 @@ class DateField extends TextField {
*/
protected $valueObj = null;
function __construct($name, $title = null, $value = null, $form = null, $rightTitle = null) {
function __construct($name, $title = null, $value = null) {
if(!$this->locale) {
$this->locale = i18n::get_locale();
}

View File

@ -101,15 +101,13 @@ class FileField extends FormField {
* @param string $name The internal field name, passed to forms.
* @param string $title The field label.
* @param int $value The value of the field.
* @param Form $form Reference to the container form
* @param string $rightTitle Used in SmallFieldHolder() to force a right-aligned label
* @param string $folderName Folder to upload files to
*/
function __construct($name, $title = null, $value = null, $form = null, $rightTitle = null, $folderName = null) {
if(isset($folderName)) $this->folderName = $folderName;
function __construct($name, $title = null, $value = null) {
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRightTitle() and setFolderName() instead of constructor arguments');
$this->upload = new Upload();
parent::__construct($name, $title, $value, $form, $rightTitle);
parent::__construct($name, $title, $value);
}
public function Field($properties = array()) {

View File

@ -100,10 +100,8 @@ class FormField extends RequestHandler {
* @param name The internal field name, passed to forms.
* @param title The field label.
* @param value The value of the field.
* @param form Reference to the container form
* @param maxLength The Maximum length of the attribute
*/
function __construct($name, $title = null, $value = null, $form = null, $rightTitle = null) {
function __construct($name, $title = null, $value = null) {
$this->name = $name;
$this->title = ($title === null) ? $name : $title;

View File

@ -14,7 +14,7 @@ class HeaderField extends DatalessField {
*/
protected $headingLevel = 2;
function __construct($name, $title = null, $headingLevel = 2, $form = null) {
function __construct($name, $title = null, $headingLevel = 2) {
// legacy handling for old parameters: $title, $heading, ...
// instead of new handling: $name, $title, $heading, ...
$args = func_get_args();
@ -29,7 +29,7 @@ class HeaderField extends DatalessField {
if($headingLevel) $this->headingLevel = $headingLevel;
parent::__construct($name, $title, null, $form);
parent::__construct($name, $title);
}
public function getHeadingLevel() {

View File

@ -43,8 +43,10 @@ class HtmlEditorField extends TextareaField {
/**
* @see TextareaField::__construct()
*/
public function __construct($name, $title = null, $rows = 30, $cols = 20, $value = '', $form = null) {
parent::__construct($name, $title, $rows, $cols, $value, $form);
public function __construct($name, $title = null, $value = '') {
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRows() and setCols() instead of constructor arguments');
parent::__construct($name, $title, $value);
self::include_js();
}

View File

@ -16,7 +16,7 @@ class LabelField extends DatalessField {
* @param string $title
* @param Form $form
*/
function __construct($name, $title, $form = null) {
function __construct($name, $title) {
// legacy handling for old parameters: $title, $heading, ...
// instead of new handling: $name, $title, $heading, ...
$args = func_get_args();
@ -26,7 +26,7 @@ class LabelField extends DatalessField {
$form = (isset($args[3])) ? $args[3] : null;
}
parent::__construct($name, $title, $form);
parent::__construct($name, $title);
}
}

View File

@ -51,10 +51,10 @@ class ListboxField extends DropdownField {
* @param int $size Optional size of the select element
* @param form The parent form
*/
function __construct($name, $title = '', $source = array(), $value = '', $size = null, $multiple = false, $form = null) {
function __construct($name, $title = '', $source = array(), $value = '', $size = null, $multiple = false) {
if($size) $this->size = $size;
if($multiple) $this->multiple = $multiple;
parent::__construct($name, $title, $source, $value, $form);
parent::__construct($name, $title, $source, $value);
}
/**

View File

@ -32,12 +32,12 @@ class MoneyField extends FormField {
*/
protected $fieldCurrency = null;
function __construct($name, $title = null, $value = "", $form = null) {
function __construct($name, $title = null, $value = "") {
// naming with underscores to prevent values from actually being saved somewhere
$this->fieldAmount = new NumericField("{$name}[Amount]", _t('MoneyField.FIELDLABELAMOUNT', 'Amount'));
$this->fieldCurrency = $this->FieldCurrency($name);
parent::__construct($name, $title, $value, $form);
parent::__construct($name, $title, $value);
}
/**

View File

@ -6,20 +6,13 @@
*/
class PasswordField extends TextField {
/**
* maxlength of the password field
*
* @var int
*/
protected $maxLength;
/**
* Returns an input field, class="text" and type="text" with an optional
* maxlength
*/
function __construct($name, $title = null, $value = "", $maxLength = null) {
$this->maxLength = $maxLength;
function __construct($name, $title = null, $value = "") {
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setMaxLength() instead of constructor arguments');
parent::__construct($name, $title, $value);
}

View File

@ -17,14 +17,13 @@ class PhoneNumberField extends FormField {
protected $countryCode;
protected $ext;
public function __construct( $name, $title = null, $value = '', $extension = null,
$areaCode = null, $countryCode = null, $form = null ) {
public function __construct( $name, $title = null, $value = '', $extension = null, $areaCode = null, $countryCode = null) {
$this->areaCode = $areaCode;
$this->ext = $extension;
$this->countryCode = $countryCode;
parent::__construct( $name, $title, $value, $form );
parent::__construct($name, $title, $value);
}
public function Field() {

View File

@ -65,8 +65,10 @@
class SimpleImageField extends FileField {
function __construct($name, $title = null, $value = null, $form = null, $rightTitle = null, $folderName = null) {
parent::__construct($name, $title, $value, $form, $rightTitle, $folderName);
function __construct($name, $title = null, $value = null) {
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRightTitle() and setFolderName() instead of constructor arguments');
parent::__construct($name, $title, $value);
$this->getValidator()->setAllowedExtensions(array('jpg','gif','png'));
}

View File

@ -31,15 +31,12 @@ class TextareaField extends FormField {
*
* @param $name Field name
* @param $title Field title
* @param $rows The number of rows
* @param $cols The number of columns
* @param $value The current value
* @param $form The parent form. Auto-set when the field is placed in a form.
*/
function __construct($name, $title = null, $rows = 5, $cols = 20, $value = "", $form = null) {
$this->rows = $rows;
$this->cols = $cols;
parent::__construct($name, $title, $value, $form);
function __construct($name, $title = null, $value = '') {
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRows() and setCols() instead of constructor arguments');
parent::__construct($name, $title, $value);
}
function getAttributes() {