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
309
Merge Requests
309
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
a2f9a607
Commit
a2f9a607
authored
Aug 01, 2013
by
alexpott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#2033383
by tim.plunkett: Provide a default plugin bag.
parent
1d4d6ed2
Changes
56
Hide whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
551 additions
and
574 deletions
+551
-574
core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
...b/Drupal/Component/Plugin/ConfigurablePluginInterface.php
+31
-0
core/lib/Drupal/Component/Plugin/DefaultPluginBag.php
core/lib/Drupal/Component/Plugin/DefaultPluginBag.php
+136
-0
core/lib/Drupal/Component/Plugin/DefaultSinglePluginBag.php
core/lib/Drupal/Component/Plugin/DefaultSinglePluginBag.php
+60
-0
core/lib/Drupal/Core/Action/ActionBag.php
core/lib/Drupal/Core/Action/ActionBag.php
+6
-32
core/lib/Drupal/Core/Action/ConfigurableActionBase.php
core/lib/Drupal/Core/Action/ConfigurableActionBase.php
+11
-3
core/lib/Drupal/Core/Plugin/Discovery/AlterDecorator.php
core/lib/Drupal/Core/Plugin/Discovery/AlterDecorator.php
+3
-3
core/lib/Drupal/Core/Plugin/PluginFormInterface.php
core/lib/Drupal/Core/Plugin/PluginFormInterface.php
+12
-20
core/modules/action/lib/Drupal/action/ActionFormControllerBase.php
...les/action/lib/Drupal/action/ActionFormControllerBase.php
+7
-7
core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php
...s/action/lib/Drupal/action/Form/ActionAdminManageForm.php
+1
-1
core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
...es/action/lib/Drupal/action/Plugin/Action/EmailAction.php
+3
-3
core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php
...les/action/lib/Drupal/action/Plugin/Action/GotoAction.php
+2
-2
core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php
.../action/lib/Drupal/action/Plugin/Action/MessageAction.php
+2
-2
core/modules/block/lib/Drupal/block/BlockBase.php
core/modules/block/lib/Drupal/block/BlockBase.php
+22
-82
core/modules/block/lib/Drupal/block/BlockFormController.php
core/modules/block/lib/Drupal/block/BlockFormController.php
+3
-3
core/modules/block/lib/Drupal/block/BlockPluginBag.php
core/modules/block/lib/Drupal/block/BlockPluginBag.php
+23
-26
core/modules/block/lib/Drupal/block/BlockPluginInterface.php
core/modules/block/lib/Drupal/block/BlockPluginInterface.php
+52
-32
core/modules/block/lib/Drupal/block/BlockRenderController.php
.../modules/block/lib/Drupal/block/BlockRenderController.php
+1
-1
core/modules/block/lib/Drupal/block/Plugin/Core/Entity/Block.php
...dules/block/lib/Drupal/block/Plugin/Core/Entity/Block.php
+2
-2
core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
...les/block/lib/Drupal/block/Plugin/views/display/Block.php
+3
-3
core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php
core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php
+7
-1
core/modules/block/lib/Drupal/block/Tests/BlockInterfaceTest.php
...dules/block/lib/Drupal/block/Tests/BlockInterfaceTest.php
+4
-4
core/modules/block/lib/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php
...b/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php
+1
-1
core/modules/block/lib/Drupal/block/Tests/BlockTest.php
core/modules/block/lib/Drupal/block/Tests/BlockTest.php
+1
-1
core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
...s/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
+2
-2
core/modules/block/tests/lib/Drupal/block/Tests/Plugin/views/display/BlockTest.php
...lib/Drupal/block/Tests/Plugin/views/display/BlockTest.php
+2
-2
core/modules/comment/lib/Drupal/comment/Plugin/Action/UnpublishByKeywordComment.php
...rupal/comment/Plugin/Action/UnpublishByKeywordComment.php
+2
-2
core/modules/comment/lib/Drupal/comment/Tests/CommentBlockTest.php
...les/comment/lib/Drupal/comment/Tests/CommentBlockTest.php
+1
-1
core/modules/filter/config/filter.format.plain_text.yml
core/modules/filter/config/filter.format.plain_text.yml
+3
-0
core/modules/filter/lib/Drupal/filter/FilterBag.php
core/modules/filter/lib/Drupal/filter/FilterBag.php
+17
-84
core/modules/filter/lib/Drupal/filter/FilterPluginManager.php
.../modules/filter/lib/Drupal/filter/FilterPluginManager.php
+2
-9
core/modules/filter/lib/Drupal/filter/Plugin/Core/Entity/FilterFormat.php
...ter/lib/Drupal/filter/Plugin/Core/Entity/FilterFormat.php
+3
-3
core/modules/filter/lib/Drupal/filter/Plugin/FilterBase.php
core/modules/filter/lib/Drupal/filter/Plugin/FilterBase.php
+5
-8
core/modules/filter/lib/Drupal/filter/Plugin/FilterInterface.php
...dules/filter/lib/Drupal/filter/Plugin/FilterInterface.php
+4
-20
core/modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php
...modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php
+10
-7
core/modules/filter/tests/filter_test/config/filter.format.filter_test.yml
...er/tests/filter_test/config/filter.format.filter_test.yml
+3
-0
core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php
core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php
+2
-2
core/modules/image/lib/Drupal/image/ImageEffectBag.php
core/modules/image/lib/Drupal/image/ImageEffectBag.php
+9
-61
core/modules/image/lib/Drupal/image/ImageEffectBase.php
core/modules/image/lib/Drupal/image/ImageEffectBase.php
+3
-3
core/modules/image/lib/Drupal/image/ImageEffectInterface.php
core/modules/image/lib/Drupal/image/ImageEffectInterface.php
+2
-23
core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php
.../image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php
+2
-2
core/modules/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php
...es/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php
+3
-3
core/modules/node/lib/Drupal/node/Plugin/Action/UnpublishByKeywordNode.php
.../lib/Drupal/node/Plugin/Action/UnpublishByKeywordNode.php
+2
-2
core/modules/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php
...es/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php
+1
-1
core/modules/php/config/filter.format.php_code.yml
core/modules/php/config/filter.format.php_code.yml
+1
-0
core/modules/system/lib/Drupal/system/Plugin/Core/Entity/Action.php
...es/system/lib/Drupal/system/Plugin/Core/Entity/Action.php
+3
-3
core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/TestPluginBag.php
...ugin_test/lib/Drupal/plugin_test/Plugin/TestPluginBag.php
+2
-6
core/modules/tour/lib/Drupal/tour/TipsBag.php
core/modules/tour/lib/Drupal/tour/TipsBag.php
+8
-58
core/modules/user/lib/Drupal/user/Plugin/Action/ChangeUserRoleBase.php
...user/lib/Drupal/user/Plugin/Action/ChangeUserRoleBase.php
+2
-2
core/modules/views/lib/Drupal/views/DisplayBag.php
core/modules/views/lib/Drupal/views/DisplayBag.php
+18
-20
core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
...odules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
+2
-2
core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
...b/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+15
-0
core/modules/views/lib/Drupal/views/ViewExecutable.php
core/modules/views/lib/Drupal/views/ViewExecutable.php
+1
-1
core/modules/views_ui/tests/Drupal/views_ui/Tests/ViewListControllerTest.php
...ui/tests/Drupal/views_ui/Tests/ViewListControllerTest.php
+18
-18
core/profiles/standard/config/filter.format.basic_html.yml
core/profiles/standard/config/filter.format.basic_html.yml
+4
-0
core/profiles/standard/config/filter.format.full_html.yml
core/profiles/standard/config/filter.format.full_html.yml
+2
-0
core/profiles/standard/config/filter.format.restricted_html.yml
...rofiles/standard/config/filter.format.restricted_html.yml
+4
-0
No files found.
core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
0 → 100644
View file @
a2f9a607
<?php
/**
* @file
* Contains \Drupal\Component\Plugin\ConfigurablePluginInterface.
*/
namespace
Drupal\Component\Plugin
;
/**
* Provides an interface for a configurable plugin.
*/
interface
ConfigurablePluginInterface
{
/**
* Returns this plugin's configuration.
*
* @return array
* An array of this plugin's configuration.
*/
public
function
getConfiguration
();
/**
* Sets the configuration for this plugin instance.
*
* @param array $configuration
* An associative array containing the plugin's configuration.
*/
public
function
setConfiguration
(
array
$configuration
);
}
core/lib/Drupal/Component/Plugin/DefaultPluginBag.php
0 → 100644
View file @
a2f9a607
<?php
/**
* @file
* Contains \Drupal\Component\Plugin\DefaultPluginBag.
*/
namespace
Drupal\Component\Plugin
;
use
Drupal\Component\Plugin\Exception\PluginException
;
use
Drupal\Component\Utility\MapArray
;
use
Drupal\Component\Utility\String
;
/**
* Provides a default plugin bag for a plugin type.
*
* A plugin bag is used to contain plugins that will be lazily instantiated. The
* configurations of each potential plugin are passed in, and the configuration
* key containing the plugin ID is specified by self::$pluginKey.
*/
class
DefaultPluginBag
extends
PluginBag
{
/**
* The manager used to instantiate the plugins.
*
* @var \Drupal\Component\Plugin\PluginManagerInterface
*/
protected
$manager
;
/**
* The initial configuration for each plugin in the bag.
*
* @var array
* An associative array containing the initial configuration for each plugin
* in the bag, keyed by plugin instance ID.
*/
protected
$configurations
=
array
();
/**
* The key within the plugin configuration that contains the plugin ID.
*
* @var string
*/
protected
$pluginKey
=
'id'
;
/**
* Constructs a new DefaultPluginBag object.
*
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager
* The manager to be used for instantiating plugins.
* @param array $configurations
* (optional) An associative array containing the initial configuration for
* each plugin in the bag, keyed by plugin instance ID.
*/
public
function
__construct
(
PluginManagerInterface
$manager
,
array
$configurations
=
array
())
{
$this
->
manager
=
$manager
;
$this
->
configurations
=
$configurations
;
if
(
!
empty
(
$configurations
))
{
$this
->
instanceIDs
=
MapArray
::
copyValuesToKeys
(
array_keys
(
$configurations
));
}
}
/**
* {@inheritdoc}
*/
protected
function
initializePlugin
(
$instance_id
)
{
$configuration
=
$this
->
configurations
[
$instance_id
];
if
(
!
isset
(
$configuration
[
$this
->
pluginKey
]))
{
throw
new
PluginException
(
String
::
format
(
"Unknown plugin ID '@instance'."
,
array
(
'@instance'
=>
$instance_id
)));
}
$this
->
pluginInstances
[
$instance_id
]
=
$this
->
manager
->
createInstance
(
$configuration
[
$this
->
pluginKey
],
$configuration
);
$this
->
addInstanceID
(
$instance_id
);
}
/**
* Sorts all plugin instances in this bag.
*
* @return self
* Returns the plugin bag.
*/
public
function
sort
()
{
uasort
(
$this
->
instanceIDs
,
array
(
$this
,
'sortHelper'
));
return
$this
;
}
/**
* Provides uasort() callback to sort plugins.
*/
public
function
sortHelper
(
$aID
,
$bID
)
{
$a
=
$this
->
get
(
$aID
);
$b
=
$this
->
get
(
$bID
);
return
strnatcasecmp
(
$a
->
getPluginId
(),
$b
->
getPluginId
());
}
/**
* Returns the current configuration of all plugins in this bag.
*
* @return array
* An associative array keyed by instance ID, whose values are up-to-date
* plugin configurations.
*/
public
function
getConfiguration
()
{
$instances
=
array
();
$this
->
rewind
();
foreach
(
$this
as
$instance_id
=>
$instance
)
{
if
(
$instance
instanceof
ConfigurablePluginInterface
)
{
$instances
[
$instance_id
]
=
$instance
->
getConfiguration
();
}
else
{
$instances
[
$instance_id
]
=
$this
->
configurations
[
$instance_id
];
}
}
return
$instances
;
}
/**
* Updates the configuration for a plugin instance.
*
* If there is no plugin instance yet, a new will be instantiated. Otherwise,
* the existing instance is updated with the new configuration.
*
* @param string $instance_id
* The ID of a plugin to set the configuration for.
* @param array $configuration
* The plugin configuration to set.
*/
public
function
setConfiguration
(
$instance_id
,
array
$configuration
)
{
$this
->
configurations
[
$instance_id
]
=
$configuration
;
$instance
=
$this
->
get
(
$instance_id
);
if
(
$instance
instanceof
ConfigurablePluginInterface
)
{
$instance
->
setConfiguration
(
$configuration
);
}
}
}
core/lib/Drupal/Component/Plugin/DefaultSinglePluginBag.php
0 → 100644
View file @
a2f9a607
<?php
/**
* @file
* Contains \Drupal\Component\Plugin\DefaultSinglePluginBag.
*/
namespace
Drupal\Component\Plugin
;
use
Drupal\Component\Utility\MapArray
;
/**
* Provides a default plugin bag for a plugin type.
*
* A plugin bag usually stores multiple plugins, and is used to lazily
* instantiate them. When only one plugin is needed, it is still best practice
* to encapsulate all of the instantiation logic in a plugin bag. This class can
* be used directly, or subclassed to add further exception handling in
* self::initializePlugin().
*/
class
DefaultSinglePluginBag
extends
PluginBag
{
/**
* The manager used to instantiate the plugins.
*
* @var \Drupal\Component\Plugin\PluginManagerInterface
*/
protected
$manager
;
/**
* An array of configuration to instantiate the plugin with.
*
* @var array
*/
protected
$configuration
;
/**
* Constructs a new DefaultSinglePluginBag object.
*
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager
* The manager to be used for instantiating plugins.
* @param array $instance_ids
* The IDs of the plugin instances with which we are dealing.
* @param array $configuration
* An array of configuration.
*/
public
function
__construct
(
PluginManagerInterface
$manager
,
array
$instance_ids
,
array
$configuration
)
{
$this
->
manager
=
$manager
;
$this
->
instanceIDs
=
MapArray
::
copyValuesToKeys
(
$instance_ids
);
$this
->
configuration
=
$configuration
;
}
/**
* {@inheritdoc}
*/
protected
function
initializePlugin
(
$instance_id
)
{
$this
->
pluginInstances
[
$instance_id
]
=
$this
->
manager
->
createInstance
(
$instance_id
,
$this
->
configuration
);
}
}
core/lib/Drupal/Core/Action/ActionBag.php
View file @
a2f9a607
...
...
@@ -7,46 +7,20 @@
namespace
Drupal\Core\Action
;
use
Drupal\Component\Plugin\PluginBag
;
use
Drupal\Component\Plugin\PluginManagerInterface
;
use
Drupal\Component\Plugin\DefaultSinglePluginBag
;
/**
* Provides a container for lazily loading Action plugins.
*/
class
ActionBag
extends
PluginBag
{
/**
* The manager used to instantiate the plugins.
*
* @var \Drupal\Component\Plugin\PluginManagerInterface
*/
protected
$manager
;
/**
* Constructs a new ActionBag object.
*
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager
* The manager to be used for instantiating plugins.
* @param array $instance_ids
* The ids of the plugin instances with which we are dealing.
* @param array $configuration
* An array of configuration.
*/
public
function
__construct
(
PluginManagerInterface
$manager
,
array
$instance_ids
,
array
$configuration
)
{
$this
->
manager
=
$manager
;
$this
->
instanceIDs
=
drupal_map_assoc
(
$instance_ids
);
$this
->
configuration
=
$configuration
;
}
class
ActionBag
extends
DefaultSinglePluginBag
{
/**
* {@inheritdoc}
*
* @return \Drupal\Core\Action\ActionInterface
*/
protected
function
initializePlugin
(
$instance_id
)
{
if
(
isset
(
$this
->
pluginInstances
[
$instance_id
]))
{
return
;
}
$this
->
pluginInstances
[
$instance_id
]
=
$this
->
manager
->
createInstance
(
$instance_id
,
$this
->
configuration
);
public
function
&
get
(
$instance_id
)
{
return
parent
::
get
(
$instance_id
);
}
}
core/lib/Drupal/Core/Action/ConfigurableActionBase.php
View file @
a2f9a607
...
...
@@ -7,13 +7,14 @@
namespace
Drupal\Core\Action
;
use
Drupal\Co
re\Action\ConfigurableActio
nInterface
;
use
Drupal\Co
mponent\Plugin\ConfigurablePlugi
nInterface
;
use
Drupal\Core\Action\ActionBase
;
use
Drupal\Core\Plugin\PluginFormInterface
;
/**
* Provides a base implementation for a configurable Action plugin.
*/
abstract
class
ConfigurableActionBase
extends
ActionBase
implements
Configurable
Action
Interface
{
abstract
class
ConfigurableActionBase
extends
ActionBase
implements
Configurable
PluginInterface
,
PluginForm
Interface
{
/**
* {@inheritdoc}
...
...
@@ -43,7 +44,14 @@ public function getConfiguration() {
/**
* {@inheritdoc}
*/
public
function
validate
(
array
&
$form
,
array
&
$form_state
)
{
public
function
setConfiguration
(
array
$configuration
)
{
$this
->
configuration
=
$configuration
;
}
/**
* {@inheritdoc}
*/
public
function
validateConfigurationForm
(
array
&
$form
,
array
&
$form_state
)
{
}
}
core/lib/Drupal/Core/Plugin/Discovery/AlterDecorator.php
View file @
a2f9a607
...
...
@@ -23,7 +23,7 @@ class AlterDecorator implements DiscoveryInterface {
/**
* The Discovery object being decorated.
*
* @var Drupal\Component\Plugin\Discovery\DiscoveryInterface
* @var
\
Drupal\Component\Plugin\Discovery\DiscoveryInterface
*/
protected
$decorated
;
...
...
@@ -32,7 +32,7 @@ class AlterDecorator implements DiscoveryInterface {
*
* It uses the DiscoveryInterface object it should decorate.
*
* @param Drupal\Component\Plugin\Discovery\DiscoveryInterface $decorated
* @param
\
Drupal\Component\Plugin\Discovery\DiscoveryInterface $decorated
* The object implementing DiscoveryInterface that is being decorated.
* @param string $hook
* The name of the alter hook that will be used by this discovery instance.
...
...
@@ -56,7 +56,7 @@ public function getDefinition($plugin_id) {
*/
public
function
getDefinitions
()
{
$definitions
=
$this
->
decorated
->
getDefinitions
();
drupal_
alter
(
$this
->
hook
,
$definitions
);
\
Drupal
::
moduleHandler
()
->
alter
(
$this
->
hook
,
$definitions
);
return
$definitions
;
}
...
...
core/lib/Drupal/Core/
Action/ConfigurableAction
Interface.php
→
core/lib/Drupal/Core/
Plugin/PluginForm
Interface.php
View file @
a2f9a607
...
...
@@ -2,28 +2,15 @@
/**
* @file
* Contains \Drupal\Core\
Action\ConfigurableAction
Interface.
* Contains \Drupal\Core\
Plugin\PluginForm
Interface.
*/
namespace
Drupal\Core\Action
;
use
Drupal\Core\Action\ActionInterface
;
namespace
Drupal\Core\Plugin
;
/**
* Provides an interface for an Action plugin.
*
* @see \Drupal\Core\Annotation\Operation
* @see \Drupal\Core\Action\OperationManager
* Provides an interface for a plugin that contains a form.
*/
interface
ConfigurableActionInterface
extends
ActionInterface
{
/**
* Returns this plugin's configuration.
*
* @return array
* An array of this action plugin's configuration.
*/
public
function
getConfiguration
();
interface
PluginFormInterface
{
/**
* Form constructor.
...
...
@@ -36,7 +23,7 @@ public function getConfiguration();
* @return array
* The form structure.
*/
public
function
f
orm
(
array
$form
,
array
&
$form_state
);
public
function
buildConfigurationF
orm
(
array
$form
,
array
&
$form_state
);
/**
* Form validation handler.
...
...
@@ -46,16 +33,21 @@ public function form(array $form, array &$form_state);
* @param array $form_state
* An associative array containing the current state of the form.
*/
public
function
validate
(
array
&
$form
,
array
&
$form_state
);
public
function
validate
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
);
/**
* Form submission handler.
*
* To properly store submitted form values store them in $this->configuration.
* @code
* $this->configuration['some_value'] = $form_state['values']['some_value'];
* @endcode
*
* @param array $form
* An associative array containing the structure of the form.
* @param array $form_state
* An associative array containing the current state of the form.
*/
public
function
submit
(
array
&
$form
,
array
&
$form_state
);
public
function
submit
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
);
}
core/modules/action/lib/Drupal/action/ActionFormControllerBase.php
View file @
a2f9a607
...
...
@@ -10,8 +10,8 @@
use
Drupal\Core\Entity\EntityControllerInterface
;
use
Drupal\Core\Entity\EntityFormController
;
use
Drupal\Core\Extension\ModuleHandlerInterface
;
use
Drupal\Core\Action\ConfigurableActionInterface
;
use
Drupal\Core\Entity\EntityStorageControllerInterface
;
use
Drupal\Core\Plugin\PluginFormInterface
;
use
Symfony\Component\DependencyInjection\ContainerInterface
;
/**
...
...
@@ -97,8 +97,8 @@ public function form(array $form, array &$form_state) {
'#value'
=>
$this
->
entity
->
getType
(),
);
if
(
$this
->
plugin
instanceof
ConfigurableAction
Interface
)
{
$form
+=
$this
->
plugin
->
f
orm
(
$form
,
$form_state
);
if
(
$this
->
plugin
instanceof
PluginForm
Interface
)
{
$form
+=
$this
->
plugin
->
buildConfigurationF
orm
(
$form
,
$form_state
);
}
return
parent
::
form
(
$form
,
$form_state
);
...
...
@@ -133,8 +133,8 @@ protected function actions(array $form, array &$form_state) {
public
function
validate
(
array
$form
,
array
&
$form_state
)
{
parent
::
validate
(
$form
,
$form_state
);
if
(
$this
->
plugin
instanceof
ConfigurableAction
Interface
)
{
$this
->
plugin
->
validate
(
$form
,
$form_state
);
if
(
$this
->
plugin
instanceof
PluginForm
Interface
)
{
$this
->
plugin
->
validate
ConfigurationForm
(
$form
,
$form_state
);
}
}
...
...
@@ -144,8 +144,8 @@ public function validate(array $form, array &$form_state) {
public
function
submit
(
array
$form
,
array
&
$form_state
)
{
parent
::
submit
(
$form
,
$form_state
);
if
(
$this
->
plugin
instanceof
ConfigurableAction
Interface
)
{
$this
->
plugin
->
submit
(
$form
,
$form_state
);
if
(
$this
->
plugin
instanceof
PluginForm
Interface
)
{
$this
->
plugin
->
submit
ConfigurationForm
(
$form
,
$form_state
);
}
return
$this
->
entity
;
}
...
...
core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php
View file @
a2f9a607
...
...
@@ -57,7 +57,7 @@ public function getFormID() {
public
function
buildForm
(
array
$form
,
array
&
$form_state
)
{
$actions
=
array
();
foreach
(
$this
->
manager
->
getDefinitions
()
as
$id
=>
$definition
)
{
if
(
is_subclass_of
(
$definition
[
'class'
],
'\Drupal\Core\
Action\ConfigurableAction
Interface'
))
{
if
(
is_subclass_of
(
$definition
[
'class'
],
'\Drupal\Core\
Plugin\PluginForm
Interface'
))
{
$key
=
Crypt
::
hashBase64
(
$id
);
$actions
[
$key
]
=
$definition
[
'label'
]
.
'...'
;
}
...
...
core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
View file @
a2f9a607
...
...
@@ -116,7 +116,7 @@ protected function getDefaultConfiguration() {
/**
* {@inheritdoc}
*/
public
function
f
orm
(
array
$form
,
array
&
$form_state
)
{
public
function
buildConfigurationF
orm
(
array
$form
,
array
&
$form_state
)
{
$form
[
'recipient'
]
=
array
(
'#type'
=>
'textfield'
,
'#title'
=>
t
(
'Recipient'
),
...
...
@@ -145,7 +145,7 @@ public function form(array $form, array &$form_state) {
/**
* {@inheritdoc}
*/
public
function
validate
(
array
&
$form
,
array
&
$form_state
)
{
public
function
validate
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
)
{
if
(
!
valid_email_address
(
$form_state
[
'values'
][
'recipient'
])
&&
strpos
(
$form_state
[
'values'
][
'recipient'
],
':mail'
)
===
FALSE
)
{
// We want the literal %author placeholder to be emphasized in the error message.
form_set_error
(
'recipient'
,
t
(
'Enter a valid email address or use a token e-mail address such as %author.'
,
array
(
'%author'
=>
'[node:author:mail]'
)));
...
...
@@ -155,7 +155,7 @@ public function validate(array &$form, array &$form_state) {
/**
* {@inheritdoc}
*/
public
function
submit
(
array
&
$form
,
array
&
$form_state
)
{
public
function
submit
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
)
{
$this
->
configuration
[
'recipient'
]
=
$form_state
[
'values'
][
'recipient'
];
$this
->
configuration
[
'subject'
]
=
$form_state
[
'values'
][
'subject'
];
$this
->
configuration
[
'message'
]
=
$form_state
[
'values'
][
'message'
];
...
...
core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php
View file @
a2f9a607
...
...
@@ -96,7 +96,7 @@ protected function getDefaultConfiguration() {
/**
* {@inheritdoc}
*/
public
function
f
orm
(
array
$form
,
array
&
$form_state
)
{
public
function
buildConfigurationF
orm
(
array
$form
,
array
&
$form_state
)
{
$form
[
'url'
]
=
array
(
'#type'
=>
'textfield'
,
'#title'
=>
t
(
'URL'
),
...
...
@@ -110,7 +110,7 @@ public function form(array $form, array &$form_state) {
/**
* {@inheritdoc}
*/
public
function
submit
(
array
&
$form
,
array
&
$form_state
)
{
public
function
submit
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
)
{
$this
->
configuration
[
'url'
]
=
$form_state
[
'values'
][
'url'
];
}
...
...
core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php
View file @
a2f9a607
...
...
@@ -70,7 +70,7 @@ protected function getDefaultConfiguration() {
/**
* {@inheritdoc}
*/
public
function
f
orm
(
array
$form
,
array
&
$form_state
)
{
public
function
buildConfigurationF
orm
(
array
$form
,
array
&
$form_state
)
{
$form
[
'message'
]
=
array
(
'#type'
=>
'textarea'
,
'#title'
=>
t
(
'Message'
),
...
...
@@ -85,7 +85,7 @@ public function form(array $form, array &$form_state) {
/**
* {@inheritdoc}
*/
public
function
submit
(
array
&
$form
,
array
&
$form_state
)
{
public
function
submit
ConfigurationForm
(
array
&
$form
,
array
&
$form_state
)
{
$this
->
configuration
[
'message'
]
=
$form_state
[
'values'
][
'message'
];
unset
(
$this
->
configuration
[
'node'
]);
}
...
...
core/modules/block/lib/Drupal/block/BlockBase.php
View file @
a2f9a607
...
...
@@ -50,50 +50,28 @@ public function settings() {
}
/**
* Returns the configuration data for the block plugin.
*
* @return array
* The plugin configuration array from PluginBase::$configuration.
*
* @todo This doesn't belong here. Move this into a new base class in
* http://drupal.org/node/1764380.
* @todo This does not return a config object, so the name is confusing.
*
* @see \Drupal\Component\Plugin\PluginBase::$configuration
* {@inheritdoc}
*/
public
function
getConfig
()
{
public
function
getConfig
uration
()
{
return
$this
->
configuration
;
}
/**
* Sets a particular value in the block settings.
*
* @param string $key
* The key of PluginBase::$configuration to set.
* @param mixed $value
* The value to set for the provided key.
*
* @todo This doesn't belong here. Move this into a new base class in
* http://drupal.org/node/1764380.
* @todo This does not set a value in config(), so the name is confusing.
*
* @see \Drupal\Component\Plugin\PluginBase::$configuration
* {@inheritdoc}
*/
public
function
setConfiguration
(
array
$configuration
)
{
$this
->
configuration
=
$configuration
;
}
/**
* {@inheritdoc}
*/
public
function
setConfig
(
$key
,
$value
)
{
public
function
setConfig
urationValue
(
$key
,
$value
)
{
$this
->
configuration
[
$key
]
=
$value
;
}
/**
* Indicates whether block-specific criteria allow access to the block.
*
* Blocks with access restrictions that should always be applied,
* regardless of user-configured settings, should implement this method
* with that access control logic.
*
* @return bool
* FALSE to deny access to the block, or TRUE to allow access.
*
* @see hook_block_access()
* {@inheritdoc}
*/
public
function
access
()
{