Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
address
Commits
0db5d0de
Commit
0db5d0de
authored
May 18, 2017
by
bojanz
Browse files
Issue
#2872570
followup: Fix the default value handling.
parent
cded69f9
Changes
4
Hide whitespace changes
Inline
Side-by-side
config/schema/address.schema.yml
View file @
0db5d0de
...
...
@@ -91,8 +91,7 @@ field.value.address_country:
label
:
'
Country
code'
field.value.address_zone
:
type
:
address_zone
label
:
'
Default
value'
type
:
ignore
field.field_settings.address
:
type
:
mapping
...
...
src/Element/Zone.php
View file @
0db5d0de
...
...
@@ -113,7 +113,6 @@ class Zone extends FormElement {
$element_state
[
'territories'
]
=
$element_state
[
'territories'
]
?:
[
NULL
];
self
::
setElementState
(
$element
[
'#parents'
],
$form_state
,
$element_state
);
}
$element
[
'#required'
]
=
TRUE
;
$element
=
[
'#tree'
=>
TRUE
,
...
...
src/Plugin/Field/FieldType/ZoneItem.php
View file @
0db5d0de
...
...
@@ -16,6 +16,7 @@ use Drupal\Core\TypedData\DataDefinition;
* label = @Translation("Zone"),
* description = @Translation("An entity field containing a zone"),
* category = @Translation("Address"),
* list_class = "\Drupal\address\Plugin\Field\FieldType\ZoneItemList",
* default_widget = "address_zone_default",
* cardinality = 1,
* )
...
...
src/Plugin/Field/FieldType/ZoneItemList.php
0 → 100644
View file @
0db5d0de
<?php
namespace
Drupal\address\Plugin\Field\FieldType
;
use
Drupal\Core\Field\FieldItemList
;
use
Drupal\Core\Form\FormStateInterface
;
/**
* Represents a list of zone item field values.
*
* Works around core not serializing/unserializing default values.
*/
class
ZoneItemList
extends
FieldItemList
{
/**
* {@inheritdoc}
*/
public
function
applyDefaultValue
(
$notify
=
TRUE
)
{
if
(
$default_value
=
$this
->
getFieldDefinition
()
->
getDefaultValue
(
$this
->
getEntity
()))
{
foreach
(
$default_value
as
$index
=>
$value
)
{
$default_value
[
$index
]
=
unserialize
(
$value
);
}
$this
->
setValue
(
$default_value
,
$notify
);
}
else
{
parent
::
applyDefaultValue
(
$notify
);
}
return
$this
;
}
/**
* {@inheritdoc}
*/
public
function
defaultValuesFormSubmit
(
array
$element
,
array
&
$form
,
FormStateInterface
$form_state
)
{
$default_value
=
parent
::
defaultValuesFormSubmit
(
$element
,
$form
,
$form_state
);
if
(
$default_value
)
{
foreach
(
$default_value
as
$index
=>
$value
)
{
$default_value
[
$index
]
=
serialize
(
$value
);
}
}
return
$default_value
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment