You are here

function _social_activity_create_activity_homepage_block in Open Social 8.2

Same name and namespace in other branches
  1. 8 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()
  2. 8.3 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()
  3. 8.4 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()
  4. 8.5 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()
  5. 8.6 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()
  6. 8.7 modules/social_features/social_activity/social_activity.install \_social_activity_create_activity_homepage_block()

Create a block for the activity stream homepage.

2 calls to _social_activity_create_activity_homepage_block()
social_activity_install in modules/social_features/social_activity/social_activity.install
Social activity install function.
social_activity_update_8001 in modules/social_features/social_activity/social_activity.install
Place a block for the activity stream homepage.

File

modules/social_features/social_activity/social_activity.install, line 66
The Social activity install.

Code

function _social_activity_create_activity_homepage_block() {

  // Revert view so it has the block display.
  $config_update_service = \Drupal::service('features.config_update');

  // Check if view exists.
  $view = Views::getView('activity_stream');
  if (is_object($view)) {

    // If exists, we revert.
    $config_update_service
      ->revert('view', 'activity_stream');
  }
  else {

    // Otherwise we import.
    $config_update_service
      ->import('view', 'activity_stream');
  }
  $config = \Drupal::configFactory();

  // Do not add a new block if it already exists.
  $block = Block::load('views_block__activity_stream_block_stream_homepage');
  if (!isset($block)) {
    $visibility = [
      'request_path' => [
        'id' => 'request_path',
        'pages' => '/stream',
        'negate' => FALSE,
        'context_mapping' => [],
      ],
    ];
    $settings = [
      'plugin' => 'views_block:activity_stream-block_stream_homepage',
      'region' => 'content',
      'id' => 'views_block__activity_stream_block_stream_homepage',
      'theme' => $config
        ->get('system.theme')
        ->get('default'),
      'label' => '',
      'visibility' => $visibility,
      'weight' => NULL,
    ];
    $values = [];
    foreach ([
      'region',
      'id',
      'theme',
      'plugin',
      'weight',
      'visibility',
    ] as $key) {
      $values[$key] = $settings[$key];

      // Remove extra values that do not belong in the settings array.
      unset($settings[$key]);
    }
    foreach ($values['visibility'] as $id => $visibility) {
      $values['visibility'][$id]['id'] = $id;
    }
    $settings = [
      'id' => 'views_block:activity_stream-block_stream_homepage',
      'label' => '',
      'provider' => 'views',
      'label_display' => '0',
      'views_label' => '',
      'items_per_page' => 'none',
    ];
    $values['settings'] = $settings;
    $block = Block::create($values);
    $block
      ->save();
  }
}