Loading config/schema/linkit.schema.yml +21 −6 Original line number Diff line number Diff line Loading @@ -13,16 +13,31 @@ linkit.linkit_profile.*: attributes: type: sequence sequence: type: linkit.attribute matchers: type: sequence sequence: type: linkit.matcher linkit.attribute: type: mapping mapping: id: type: string data: type: linkit.attribute.[%parent.id] weight: type: integer matchers: type: sequence sequence: type: linkit.matcher linkit.attribute.*: type: mapping label: 'Attribute settings' linkit.attribute.target: type: linkit.attribute mapping: widget_type: type: string linkit.matcher: type: mapping Loading linkit.routing.yml +9 −1 Original line number Diff line number Diff line Loading @@ -47,13 +47,21 @@ linkit.attribute.add: _permission: 'administer linkit profiles' linkit.attribute.delete: path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/delete/{plugin_id}' path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/delete/{plugin_instance_id}' defaults: _form: '\Drupal\linkit\Form\Attribute\DeleteForm' _title: 'Delete an attribute' requirements: _permission: 'administer linkit profiles' linkit.attribute.edit: path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/{plugin_instance_id}' defaults: _form: '\Drupal\linkit\Form\Attribute\EditForm' _title: 'Edit an attribute' requirements: _permission: 'administer linkit profiles' linkit.matchers: path: '/admin/config/content/linkit/manage/{linkit_profile}/matchers' defaults: Loading src/AttributeBase.php +11 −9 Original line number Diff line number Diff line Loading @@ -39,19 +39,23 @@ abstract class AttributeBase extends PluginBase implements AttributeInterface { * {@inheritdoc} */ public function getConfiguration() { return array( return [ 'id' => $this->getPluginId(), 'weight' => $this->weight, ); 'data' => $this->configuration, ]; } /** * {@inheritdoc} */ public function setConfiguration(array $configuration) { if (isset($configuration['weight'])) { $this->weight = (int) $configuration['weight']; } $configuration += [ 'weight' => '0', 'data' => [], ]; $this->configuration = $configuration['data'] + $this->defaultConfiguration(); $this->weight = $configuration['weight']; return $this; } Loading @@ -59,16 +63,14 @@ abstract class AttributeBase extends PluginBase implements AttributeInterface { * {@inheritdoc} */ public function defaultConfiguration() { return array( 'weight' => $this->pluginDefinition['weight'] ?: 0, ); return []; } /** * {@inheritdoc} */ public function calculateDependencies() { return array(); return []; } /** Loading src/ConfigurableAttributeBase.php 0 → 100644 +31 −0 Original line number Diff line number Diff line <?php /** * @file * Contains \Drupal\linkit\ConfigurableAttributeBase. */ namespace Drupal\linkit; use Drupal\Core\Form\FormStateInterface; /** * Provides a base class for configurable attributes. * * @see plugin_api */ abstract class ConfigurableAttributeBase extends AttributeBase implements ConfigurableAttributeInterface { /** * {@inheritdoc} */ public function validateConfigurationForm(array &$form, FormStateInterface $form_state) { } /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { } } src/ConfigurableAttributeInterface.php 0 → 100644 +23 −0 Original line number Diff line number Diff line <?php /** * @file * Contains \Drupal\linkit\ConfigurableAttributeInterface. */ namespace Drupal\linkit; use Drupal\Core\Plugin\PluginFormInterface; /** * Defines the interface for configurable attributes. * * @see \Drupal\linkit\Annotation\Attribute * @see \Drupal\linkit\ConfigurableAttributeBase * @see \Drupal\linkit\AttributeInterface * @see \Drupal\linkit\AttributeBase * @see \Drupal\linkit\AttributeManager * @see plugin_api */ interface ConfigurableAttributeInterface extends AttributeInterface, PluginFormInterface { } Loading
config/schema/linkit.schema.yml +21 −6 Original line number Diff line number Diff line Loading @@ -13,16 +13,31 @@ linkit.linkit_profile.*: attributes: type: sequence sequence: type: linkit.attribute matchers: type: sequence sequence: type: linkit.matcher linkit.attribute: type: mapping mapping: id: type: string data: type: linkit.attribute.[%parent.id] weight: type: integer matchers: type: sequence sequence: type: linkit.matcher linkit.attribute.*: type: mapping label: 'Attribute settings' linkit.attribute.target: type: linkit.attribute mapping: widget_type: type: string linkit.matcher: type: mapping Loading
linkit.routing.yml +9 −1 Original line number Diff line number Diff line Loading @@ -47,13 +47,21 @@ linkit.attribute.add: _permission: 'administer linkit profiles' linkit.attribute.delete: path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/delete/{plugin_id}' path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/delete/{plugin_instance_id}' defaults: _form: '\Drupal\linkit\Form\Attribute\DeleteForm' _title: 'Delete an attribute' requirements: _permission: 'administer linkit profiles' linkit.attribute.edit: path: '/admin/config/content/linkit/manage/{linkit_profile}/attributes/{plugin_instance_id}' defaults: _form: '\Drupal\linkit\Form\Attribute\EditForm' _title: 'Edit an attribute' requirements: _permission: 'administer linkit profiles' linkit.matchers: path: '/admin/config/content/linkit/manage/{linkit_profile}/matchers' defaults: Loading
src/AttributeBase.php +11 −9 Original line number Diff line number Diff line Loading @@ -39,19 +39,23 @@ abstract class AttributeBase extends PluginBase implements AttributeInterface { * {@inheritdoc} */ public function getConfiguration() { return array( return [ 'id' => $this->getPluginId(), 'weight' => $this->weight, ); 'data' => $this->configuration, ]; } /** * {@inheritdoc} */ public function setConfiguration(array $configuration) { if (isset($configuration['weight'])) { $this->weight = (int) $configuration['weight']; } $configuration += [ 'weight' => '0', 'data' => [], ]; $this->configuration = $configuration['data'] + $this->defaultConfiguration(); $this->weight = $configuration['weight']; return $this; } Loading @@ -59,16 +63,14 @@ abstract class AttributeBase extends PluginBase implements AttributeInterface { * {@inheritdoc} */ public function defaultConfiguration() { return array( 'weight' => $this->pluginDefinition['weight'] ?: 0, ); return []; } /** * {@inheritdoc} */ public function calculateDependencies() { return array(); return []; } /** Loading
src/ConfigurableAttributeBase.php 0 → 100644 +31 −0 Original line number Diff line number Diff line <?php /** * @file * Contains \Drupal\linkit\ConfigurableAttributeBase. */ namespace Drupal\linkit; use Drupal\Core\Form\FormStateInterface; /** * Provides a base class for configurable attributes. * * @see plugin_api */ abstract class ConfigurableAttributeBase extends AttributeBase implements ConfigurableAttributeInterface { /** * {@inheritdoc} */ public function validateConfigurationForm(array &$form, FormStateInterface $form_state) { } /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { } }
src/ConfigurableAttributeInterface.php 0 → 100644 +23 −0 Original line number Diff line number Diff line <?php /** * @file * Contains \Drupal\linkit\ConfigurableAttributeInterface. */ namespace Drupal\linkit; use Drupal\Core\Plugin\PluginFormInterface; /** * Defines the interface for configurable attributes. * * @see \Drupal\linkit\Annotation\Attribute * @see \Drupal\linkit\ConfigurableAttributeBase * @see \Drupal\linkit\AttributeInterface * @see \Drupal\linkit\AttributeBase * @see \Drupal\linkit\AttributeManager * @see plugin_api */ interface ConfigurableAttributeInterface extends AttributeInterface, PluginFormInterface { }