diff --git a/src/FieldBlockHelper.php b/src/FieldBlockHelper.php index e556315c6f0ea16657ff56e264bb51876abf7b8f..e563ecd74be524b4f0c18fe564ddb5ff6897937e 100644 --- a/src/FieldBlockHelper.php +++ b/src/FieldBlockHelper.php @@ -2,50 +2,7 @@ namespace Drupal\fieldblock; -use Drupal\Core\Entity\Entity\EntityViewDisplay; -use Drupal\Core\StringTranslation\StringTranslationTrait; class FieldBlockHelper { - use StringTranslationTrait; - - - - - /** - * Builds a list of fields that have been made available as a block. - * - * @return array An array of fieldblocks. - * - * @todo decide if this function should go into the fieldblock deriver class. - */ - public static function fieldBlockGetBlockList() { - $fieldblocks = &drupal_static(__FUNCTION__); - - if (!isset($fieldblocks)) { - $fieldblocks = array(); - - $entity_view_displays = EntityViewDisplay::loadMultiple(); - /** @var \Drupal\Core\Entity\EntityDisplayModeInterface $entity_view_display */ - foreach ($entity_view_displays as $display_id => $entity_view_display) { - $view_display_fieldblocks = $entity_view_display->getThirdPartySettings('fieldblock'); - $entity_type = $entity_view_display->get('targetEntityType'); - $bundle = $entity_view_display->get('bundle'); - $mode = $entity_view_display->get('mode'); - - foreach ($view_display_fieldblocks as $field_name => $field_label) { - $fieldblock_id = $display_id . ':' . $field_name; - $fieldblocks[$fieldblock_id] = t('@field field (from @type: @bundle: @mode)', array( - '@field' => $field_label, - '@type' => $entity_type, - '@bundle' => $bundle, - '@mode' => $mode, - )); - } - } - } - - return $fieldblocks; - } - } diff --git a/src/Plugin/Derivative/FieldBlock.php b/src/Plugin/Derivative/FieldBlock.php index 54b12d31cce5949c10bd36fdbf9f4c93e1ae85de..ca1be84552b14b0914bc88b420d0c39006dc3bbe 100644 --- a/src/Plugin/Derivative/FieldBlock.php +++ b/src/Plugin/Derivative/FieldBlock.php @@ -9,6 +9,8 @@ namespace Drupal\fieldblock\Plugin\Derivative; use Drupal\Component\Plugin\Derivative\DeriverBase; use Drupal\fieldblock\FieldBlockHelper; +use Drupal\Core\Entity\Entity\EntityViewDisplay; +use Drupal\Core\StringTranslation\StringTranslationTrait; /** * Provides block plugin definitions for fieldblock blocks. @@ -16,6 +18,9 @@ use Drupal\fieldblock\FieldBlockHelper; * @see \Drupal\fieldblock\Plugin\Block\FieldBlock */ class FieldBlock extends DeriverBase { + + use StringTranslationTrait; + /** * {@inheritdoc} */ @@ -29,4 +34,40 @@ class FieldBlock extends DeriverBase { return $this->derivatives; } + + /** + * Builds a list of fields that have been made available as a block. + * + * @return array An array of fieldblocks. + */ + public static function fieldBlockGetBlockList() { + $fieldblocks = &drupal_static(__FUNCTION__); + + if (!isset($fieldblocks)) { + $fieldblocks = array(); + + // Get all EntityViewDisplay config entities and iterate over them. + $entity_view_displays = EntityViewDisplay::loadMultiple(); + /** @var \Drupal\Core\Entity\EntityDisplayModeInterface $entity_view_display */ + foreach ($entity_view_displays as $display_id => $entity_view_display) { + $view_display_fieldblocks = $entity_view_display->getThirdPartySettings('fieldblock'); + $entity_type = $entity_view_display->get('targetEntityType'); + $bundle = $entity_view_display->get('bundle'); + $mode = $entity_view_display->get('mode'); + + foreach ($view_display_fieldblocks as $field_name => $field_label) { + $fieldblock_id = $display_id . ':' . $field_name; + $fieldblocks[$fieldblock_id] = t('@field field (from @type: @bundle: @mode)', array( + '@field' => $field_label, + '@type' => $entity_type, + '@bundle' => $bundle, + '@mode' => $mode, + )); + } + } + } + + return $fieldblocks; + } + }