class ActivityOverviewBlock in Open Social 8.6
Same name and namespace in other branches
- 8.9 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.2 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.3 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.4 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.5 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.7 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 8.8 modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 10.3.x modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 10.0.x modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 10.1.x modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
- 10.2.x modules/social_features/social_landing_page/src/Plugin/Block/ActivityOverviewBlock.php \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock
Provides a 'ActivityOverviewBlock' block.
Plugin annotation
@Block(
 id = "activity_overview_block",
 admin_label = @Translation("Activity overview"),
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait- class \Drupal\Core\Block\BlockBase implements BlockPluginInterface, PluginWithFormsInterface, PreviewFallbackInterface uses BlockPluginTrait, ContextAwarePluginAssignmentTrait- class \Drupal\social_landing_page\Plugin\Block\ActivityOverviewBlock implements ContainerFactoryPluginInterface
 
 
- class \Drupal\Core\Block\BlockBase implements BlockPluginInterface, PluginWithFormsInterface, PreviewFallbackInterface uses BlockPluginTrait, ContextAwarePluginAssignmentTrait
 
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
 
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
Expanded class hierarchy of ActivityOverviewBlock
File
- modules/social_features/ social_landing_page/ src/ Plugin/ Block/ ActivityOverviewBlock.php, line 18 
Namespace
Drupal\social_landing_page\Plugin\BlockView source
class ActivityOverviewBlock extends BlockBase implements ContainerFactoryPluginInterface {
  /**
   * Connection definition.
   *
   * @var \Drupal\Core\Database\Connection
   */
  protected $connection;
  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, Connection $connection) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->connection = $connection;
  }
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container
      ->get('database'));
  }
  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      [
        '#type' => 'container',
        '#attributes' => [
          'class' => [
            'activity-overview',
          ],
        ],
        'event_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'event-info',
            ],
          ],
          'event' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-event"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getEventsCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('events'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
        'topic_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'topic-info',
            ],
          ],
          'topic' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-topic"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getTopicsCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('topics'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
        'group_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'group-info',
            ],
          ],
          'group' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-group"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getGroupsCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('groups'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
        'user_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'user-info',
            ],
          ],
          'group' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-account_circle"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getUsersCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('users'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
        'post_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'post-info',
            ],
          ],
          'post' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-edit"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getPostsCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('posts'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
        'comment_info' => [
          '#type' => 'container',
          '#attributes' => [
            'class' => [
              'comment-info',
            ],
          ],
          'comment' => [
            'icon' => [
              '#markup' => '<svg class="teaser__content-type-icon"><use xlink:href="#icon-comment"></use></svg>',
              '#allowed_tags' => [
                'use',
                'svg',
              ],
            ],
            'content' => [
              '#type' => 'container',
              '#attributes' => [
                'class' => [
                  'info-wrapper',
                ],
              ],
              'value' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->getCommentsCount(),
                '#attributes' => [
                  'class' => [
                    'value',
                  ],
                ],
              ],
              'name' => [
                '#type' => 'html_tag',
                '#tag' => 'span',
                '#value' => $this
                  ->t('comments'),
                '#attributes' => [
                  'class' => [
                    'name',
                  ],
                ],
              ],
            ],
          ],
        ],
      ],
      '#cache' => [
        'contexts' => [
          'user',
        ],
      ],
      '#attached' => [
        'library' => [
          'social_landing_page/activity_overview',
        ],
      ],
    ];
  }
  /**
   * Get total count of events.
   */
  protected function getEventsCount() {
    $query = $this->connection
      ->select('node_field_data', 'n');
    $query
      ->addExpression('COUNT(*)');
    $query
      ->condition('n.type', 'event');
    $query
      ->condition('n.status', 1);
    return $query
      ->execute()
      ->fetchField();
  }
  /**
   * Get total count of topics.
   */
  protected function getTopicsCount() {
    $query = $this->connection
      ->select('node_field_data', 'n');
    $query
      ->addExpression('COUNT(*)');
    $query
      ->condition('n.type', 'topic');
    $query
      ->condition('n.status', 1);
    return $query
      ->execute()
      ->fetchField();
  }
  /**
   * Get total count of groups.
   */
  protected function getGroupsCount() {
    // There is no unpublished option for groups.
    $query = $this->connection
      ->select('groups', 'g');
    $query
      ->addExpression('COUNT(*)');
    return $query
      ->execute()
      ->fetchField();
  }
  /**
   * Get total count of users.
   */
  protected function getUsersCount() {
    // Skip blocked users and user 1.
    $query = $this->connection
      ->select('users_field_data', 'u');
    $query
      ->addExpression('COUNT(*)');
    $query
      ->condition('u.status', 1);
    $query
      ->condition('u.uid', 1, '<>');
    return $query
      ->execute()
      ->fetchField();
  }
  /**
   * Get total count of posts.
   */
  protected function getPostsCount() {
    $query = $this->connection
      ->select('post_field_data', 'p');
    $query
      ->addExpression('COUNT(*)');
    $query
      ->condition('p.status', 1);
    return $query
      ->execute()
      ->fetchField();
  }
  /**
   * Get total count of comments.
   */
  protected function getCommentsCount() {
    // Count both comment and post_comment type.
    $query = $this->connection
      ->select('comment_field_data', 'c');
    $query
      ->addExpression('COUNT(*)');
    $query
      ->condition('c.status', 1);
    return $query
      ->execute()
      ->fetchField();
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| ActivityOverviewBlock:: | protected | property | Connection definition. | |
| ActivityOverviewBlock:: | public | function | Builds and returns the renderable array for this block plugin. Overrides BlockPluginInterface:: | |
| ActivityOverviewBlock:: | public static | function | Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | |
| ActivityOverviewBlock:: | protected | function | Get total count of comments. | |
| ActivityOverviewBlock:: | protected | function | Get total count of events. | |
| ActivityOverviewBlock:: | protected | function | Get total count of groups. | |
| ActivityOverviewBlock:: | protected | function | Get total count of posts. | |
| ActivityOverviewBlock:: | protected | function | Get total count of topics. | |
| ActivityOverviewBlock:: | protected | function | Get total count of users. | |
| ActivityOverviewBlock:: | public | function | Overrides BlockPluginTrait:: | |
| BlockPluginInterface:: | constant | Indicates the block label (title) should be displayed to end users. | ||
| BlockPluginTrait:: | protected | property | The transliteration service. | |
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | protected | function | Returns generic default configuration for block plugins. | |
| BlockPluginTrait:: | protected | function | Indicates whether the block should be shown. | 16 | 
| BlockPluginTrait:: | public | function | 16 | |
| BlockPluginTrait:: | public | function | 13 | |
| BlockPluginTrait:: | public | function | 3 | |
| BlockPluginTrait:: | public | function | Creates a generic configuration form for all block types. Individual block plugins can add elements to this form by overriding BlockBase::blockForm(). Most block plugins should not override this method unless they need to alter the generic form elements. | 2 | 
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | 19 | |
| BlockPluginTrait:: | public | function | 1 | |
| BlockPluginTrait:: | public | function | 1 | |
| BlockPluginTrait:: | public | function | 3 | |
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | Sets the transliteration service. | |
| BlockPluginTrait:: | public | function | Most block plugins should not override this method. To add submission handling for a specific block type, override BlockBase::blockSubmit(). | |
| BlockPluginTrait:: | protected | function | Wraps the transliteration service. | |
| BlockPluginTrait:: | public | function | Most block plugins should not override this method. To add validation for a specific block type, override BlockBase::blockValidate(). | 1 | 
| ContextAwarePluginAssignmentTrait:: | protected | function | Builds a form element for assigning a context to a given slot. | |
| ContextAwarePluginAssignmentTrait:: | protected | function | Wraps the context handler. | |
| ContextAwarePluginBase:: | protected | property | The data objects representing the context of this plugin. | |
| ContextAwarePluginBase:: | private | property | Data objects representing the contexts passed in the plugin configuration. | |
| ContextAwarePluginBase:: | protected | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | The cache contexts associated with this object. Overrides CacheableDependencyInterface:: | 9 | 
| ContextAwarePluginBase:: | public | function | The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: | 7 | 
| ContextAwarePluginBase:: | public | function | The cache tags associated with this object. Overrides CacheableDependencyInterface:: | 4 | 
| ContextAwarePluginBase:: | public | function | This code is identical to the Component in order to pick up a different
Context class. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Gets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Gets the defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Gets the value for a defined context. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Gets the values for all defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Set a context on this plugin. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Sets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Sets the value for a defined context. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Validates the set values for the defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Implements magic __get() method. | |
| DependencySerializationTrait:: | protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| DependencySerializationTrait:: | protected | property | An array of service IDs keyed by property name used for serialization. | |
| DependencySerializationTrait:: | public | function | 1 | |
| DependencySerializationTrait:: | public | function | 2 | |
| MessengerTrait:: | protected | property | The messenger. | 29 | 
| MessengerTrait:: | public | function | Gets the messenger. | 29 | 
| MessengerTrait:: | public | function | Sets the messenger. | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 3 | 
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| PluginWithFormsTrait:: | public | function | ||
| PluginWithFormsTrait:: | public | function | ||
| StringTranslationTrait:: | protected | property | The string translation service. | 1 | 
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| StringTranslationTrait:: | protected | function | Translates a string to the current language or to a given language. | |
| TypedDataTrait:: | protected | property | The typed data manager used for creating the data types. | |
| TypedDataTrait:: | public | function | Gets the typed data manager. | 2 | 
| TypedDataTrait:: | public | function | Sets the typed data manager. | 2 | 
