Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
drupal
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Custom Issue Tracker
Custom Issue Tracker
Labels
Merge Requests
220
Merge Requests
220
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
project
drupal
Commits
d0d5f6be
Commit
d0d5f6be
authored
Oct 17, 2013
by
webchick
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#2112759
by effulgentsia: Add ContentEntityInterface::hasField().
parent
59b3495a
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
34 additions
and
16 deletions
+34
-16
core/lib/Drupal/Core/Entity/ContentEntityBase.php
core/lib/Drupal/Core/Entity/ContentEntityBase.php
+10
-3
core/lib/Drupal/Core/Entity/ContentEntityInterface.php
core/lib/Drupal/Core/Entity/ContentEntityInterface.php
+11
-0
core/lib/Drupal/Core/Entity/EntityRenderController.php
core/lib/Drupal/Core/Entity/EntityRenderController.php
+1
-1
core/modules/comment/comment.module
core/modules/comment/comment.module
+6
-6
core/modules/comment/lib/Drupal/comment/CommentStorageController.php
...s/comment/lib/Drupal/comment/CommentStorageController.php
+1
-1
core/modules/path/path.module
core/modules/path/path.module
+3
-3
core/modules/system/tests/modules/entity_test/entity_test.module
...dules/system/tests/modules/entity_test/entity_test.module
+1
-1
core/modules/user/user.module
core/modules/user/user.module
+1
-1
No files found.
core/lib/Drupal/Core/Entity/ContentEntityBase.php
View file @
d0d5f6be
...
...
@@ -363,6 +363,13 @@ public function uuid() {
return
$this
->
get
(
'uuid'
)
->
value
;
}
/**
* {@inheritdoc}
*/
public
function
hasField
(
$field_name
)
{
return
(
bool
)
$this
->
getPropertyDefinition
(
$field_name
);
}
/**
* {@inheritdoc}
*/
...
...
@@ -817,7 +824,7 @@ public function __set($name, $value) {
if
(
isset
(
$this
->
fields
[
$name
][
$this
->
activeLangcode
]))
{
$this
->
fields
[
$name
][
$this
->
activeLangcode
]
->
setValue
(
$value
);
}
elseif
(
$this
->
getPropertyDefinition
(
$name
))
{
elseif
(
$this
->
hasField
(
$name
))
{
$this
->
getTranslatedField
(
$name
,
$this
->
activeLangcode
)
->
setValue
(
$value
);
}
// The translations array is unset when cloning the entity object, we just
...
...
@@ -836,7 +843,7 @@ public function __set($name, $value) {
* Implements the magic method for isset().
*/
public
function
__isset
(
$name
)
{
if
(
$this
->
getPropertyDefinition
(
$name
))
{
if
(
$this
->
hasField
(
$name
))
{
return
$this
->
get
(
$name
)
->
getValue
()
!==
NULL
;
}
else
{
...
...
@@ -848,7 +855,7 @@ public function __isset($name) {
* Implements the magic method for unset.
*/
public
function
__unset
(
$name
)
{
if
(
$this
->
getPropertyDefinition
(
$name
))
{
if
(
$this
->
hasField
(
$name
))
{
$this
->
get
(
$name
)
->
setValue
(
NULL
);
}
else
{
...
...
core/lib/Drupal/Core/Entity/ContentEntityInterface.php
View file @
d0d5f6be
...
...
@@ -55,4 +55,15 @@ public function initTranslation($langcode);
*/
public
static
function
baseFieldDefinitions
(
$entity_type
);
/**
* Returns whether the entity has a field with the given name.
*
* @param string $field_name
* The field name.
*
* @return bool
* TRUE if the entity has a field with the given name. FALSE otherwise.
*/
public
function
hasField
(
$field_name
);
}
core/lib/Drupal/Core/Entity/EntityRenderController.php
View file @
d0d5f6be
...
...
@@ -70,7 +70,7 @@ public function buildContent(array $entities, array $displays, $view_mode, $lang
// avoid the cost of calling $entity->getProperties() by iterating the
// intersection as follows.
foreach
(
$displays
[
$entity
->
bundle
()]
->
getComponents
()
as
$name
=>
$options
)
{
if
(
$entity
->
getPropertyDefinition
(
$name
))
{
if
(
$entity
->
hasField
(
$name
))
{
foreach
(
$entity
->
get
(
$name
)
as
$item
)
{
$item
->
_attributes
=
array
();
}
...
...
core/modules/comment/comment.module
View file @
d0d5f6be
...
...
@@ -478,7 +478,7 @@ function comment_entity_view(EntityInterface $entity, EntityDisplay $display, $v
$fields
=
\
Drupal
::
service
(
'comment.manager'
)
->
getFields
(
'node'
);
foreach
(
$fields
as
$field_name
=>
$detail
)
{
// Skip fields that entity does not have.
if
(
!
$entity
->
getPropertyDefinition
(
$field_name
))
{
if
(
!
$entity
->
hasField
(
$field_name
))
{
continue
;
}
$links
=
array
();
...
...
@@ -1022,12 +1022,12 @@ function comment_entity_insert(EntityInterface $entity) {
));
foreach
(
$fields
as
$field_name
=>
$detail
)
{
// Skip fields that entity does not have.
if
(
!
$entity
->
getPropertyDefinition
(
$field_name
))
{
if
(
!
$entity
->
hasField
(
$field_name
))
{
continue
;
}
// There is at least one comment field, the query needs to be executed.
// @todo Use $entity->getAuthorId() after https://drupal.org/node/2078387
if
(
$entity
->
getPropertyDefinition
(
'uid'
))
{
if
(
$entity
->
hasField
(
'uid'
))
{
$last_comment_uid
=
$entity
->
get
(
'uid'
)
->
value
;
}
else
{
...
...
@@ -1105,7 +1105,7 @@ function comment_node_update_index(EntityInterface $node, $langcode) {
if
(
$index_comments
)
{
foreach
(
\
Drupal
::
service
(
'comment.manager'
)
->
getFields
(
'node'
)
as
$field_name
=>
$info
)
{
// Skip fields that entity does not have.
if
(
!
$node
->
getPropertyDefinition
(
$field_name
))
{
if
(
!
$node
->
hasField
(
$field_name
))
{
continue
;
}
$instance
=
\
Drupal
::
service
(
'field.info'
)
->
getInstance
(
'node'
,
$node
->
getType
(),
$field_name
);
...
...
@@ -1142,7 +1142,7 @@ function comment_node_search_result(EntityInterface $node) {
$open
=
FALSE
;
foreach
(
$comment_fields
as
$field_name
=>
$info
)
{
// Skip fields that entity does not have.
if
(
!
$node
->
getPropertyDefinition
(
$field_name
))
{
if
(
!
$node
->
hasField
(
$field_name
))
{
continue
;
}
// Do not make a string if comments are hidden.
...
...
@@ -1570,7 +1570,7 @@ function template_preprocess_comment(&$variables) {
}
else
{
// @todo Use $entity->getAuthorId() after https://drupal.org/node/2078387
if
(
$commented_entity
->
getPropertyDefinition
(
'uid'
)
&&
$comment
->
uid
->
target_id
==
$commented_entity
->
get
(
'uid'
)
->
value
)
{
if
(
$commented_entity
->
hasField
(
'uid'
)
&&
$comment
->
uid
->
target_id
==
$commented_entity
->
get
(
'uid'
)
->
value
)
{
$variables
[
'attributes'
][
'class'
][]
=
'by-'
.
$commented_entity
->
entityType
()
.
'-author'
;
}
}
...
...
core/modules/comment/lib/Drupal/comment/CommentStorageController.php
View file @
d0d5f6be
...
...
@@ -108,7 +108,7 @@ public function updateEntityStatistics(CommentInterface $comment) {
// @todo Use $entity->getAuthorId() after https://drupal.org/node/2078387
// Get the user ID from the entity if it's set, or default to the
// currently logged in user.
'last_comment_uid'
=>
$entity
->
getPropertyDefinition
(
'uid'
)
?
$entity
->
get
(
'uid'
)
->
value
:
\
Drupal
::
currentUser
()
->
id
(),
'last_comment_uid'
=>
$entity
->
hasField
(
'uid'
)
?
$entity
->
get
(
'uid'
)
->
value
:
\
Drupal
::
currentUser
()
->
id
(),
))
->
condition
(
'entity_id'
,
$comment
->
entity_id
->
value
)
->
condition
(
'entity_type'
,
$comment
->
entity_type
->
value
)
...
...
core/modules/path/path.module
View file @
d0d5f6be
...
...
@@ -232,7 +232,7 @@ function path_entity_field_info($entity_type) {
* @todo: Move this to methods on the FieldItem class.
*/
function
path_entity_insert
(
EntityInterface
$entity
)
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
getPropertyDefinition
(
'path'
))
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
hasField
(
'path'
))
{
$entity
->
path
->
alias
=
trim
(
$entity
->
path
->
alias
);
// Only save a non-empty alias.
if
(
!
empty
(
$entity
->
path
->
alias
))
{
...
...
@@ -248,7 +248,7 @@ function path_entity_insert(EntityInterface $entity) {
* Implements hook_entity_update().
*/
function
path_entity_update
(
EntityInterface
$entity
)
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
getPropertyDefinition
(
'path'
))
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
hasField
(
'path'
))
{
$entity
->
path
->
alias
=
trim
(
$entity
->
path
->
alias
);
// Delete old alias if user erased it.
if
(
$entity
->
path
->
pid
&&
!
$entity
->
path
->
alias
)
{
...
...
@@ -269,7 +269,7 @@ function path_entity_update(EntityInterface $entity) {
* Implements hook_entity_predelete().
*/
function
path_entity_predelete
(
EntityInterface
$entity
)
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
getPropertyDefinition
(
'path'
))
{
if
(
$entity
instanceof
ContentEntityInterface
&&
$entity
->
hasField
(
'path'
))
{
// Delete all aliases associated with this term.
$uri
=
$entity
->
uri
();
\
Drupal
::
service
(
'path.crud'
)
->
delete
(
array
(
'source'
=>
$uri
[
'path'
]));
...
...
core/modules/system/tests/modules/entity_test/entity_test.module
View file @
d0d5f6be
...
...
@@ -554,7 +554,7 @@ function entity_test_entity_prepare_view($entity_type, array $entities, array $d
// Add a dummy field item attribute on field_test_text if it exists.
if
(
$entity_type
==
'entity_test_render'
)
{
foreach
(
$entities
as
$entity
)
{
if
(
$entity
->
getPropertyDefinition
(
'field_test_text'
))
{
if
(
$entity
->
hasField
(
'field_test_text'
))
{
foreach
(
$entity
->
get
(
'field_test_text'
)
as
$item
)
{
$item
->
_attributes
+=
array
(
'data-field-item-attr'
=>
'foobar'
);
}
...
...
core/modules/user/user.module
View file @
d0d5f6be
...
...
@@ -537,7 +537,7 @@ function user_validate_current_pass(&$form, &$form_state) {
// This validation only works for required textfields (like mail) or
// form values like password_confirm that have their own validation
// that prevent them from being empty if they are changed.
$current_value
=
$account
->
getPropertyDefinition
(
$key
)
?
$account
->
get
(
$key
)
->
value
:
$account
->
$key
;
$current_value
=
$account
->
hasField
(
$key
)
?
$account
->
get
(
$key
)
->
value
:
$account
->
$key
;
if
((
strlen
(
trim
(
$form_state
[
'values'
][
$key
]))
>
0
)
&&
(
$form_state
[
'values'
][
$key
]
!=
$current_value
))
{
$current_pass_failed
=
empty
(
$form_state
[
'values'
][
'current_pass'
])
||
!
\
Drupal
::
service
(
'password'
)
->
check
(
$form_state
[
'values'
][
'current_pass'
],
$account
);
if
(
$current_pass_failed
)
{
...
...
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