You are here

private function EvaluationImplementation::upgradeCheckViewsData in Drupal 8 upgrade evaluation 7

Same name and namespace in other branches
  1. 6 includes/EvaluationImplementation.php \Upgrade_check\EvaluationImplementation::upgradeCheckViewsData()

Fetching views data.

File

includes/EvaluationImplementation.php, line 542

Class

EvaluationImplementation

Namespace

Upgrade_check

Code

private function upgradeCheckViewsData() {
  $viewsdata = array();
  $data_array = array(
    'filters',
    'sorts',
    'fields',
    'displays',
    'relationships',
    'arguments',
  );
  if (module_exists('views')) {
    $param = array(
      't' => 'views_view',
      'a' => 'v',
      'f' => array(
        'vid',
        'name',
        'description',
      ),
    );
    $query = $this
      ->generateSql($param, TRUE);
    foreach ($query as $key => $view) {
      $param = array(
        't' => 'views_display',
        'a' => 'v',
        'f' => array(
          'id',
          'display_title',
          'display_options',
          'display_plugin',
        ),
        'c' => array(
          array(
            'f' => 'vid',
            'v' => $view->vid,
          ),
        ),
      );
      $display_count = $this
        ->generateSql($param);
      $viewsdata[$key]['view'] = $this
        ->generateCryptName($view->name);
      $viewsdata[$key]['description'] = $this
        ->generateCryptName($view->description);
      $viewsdata[$key]['count_displays'] = count($display_count);
      foreach ($display_count as $key_d => $value) {
        $viewsdata[$key]['displays'][$key_d]['style_plugin'] = '';
        if (!empty($value) && !empty($value->display_options)) {
          $data = unserialize($value->display_options);
          $viewsdata[$key]['displays'][$key_d]['exposed_block'] = FALSE;
          $viewsdata[$key]['displays'][$key_d]['cache'] = FALSE;
          if (!empty($value->display_plugin)) {
            $viewsdata[$key]['displays'][$key_d]['display_plugin'] = $value->display_plugin;
          }
          if (!empty($data)) {
            foreach ($data as $name => $val) {
              if (!empty($val) && in_array($name, $data_array, TRUE)) {
                $count_val = $name === 'displays' ? count(array_diff($val, array(
                  0,
                ))) : count($val);
                $viewsdata[$key]['displays'][$key_d][$name] = $count_val;
              }
              elseif ($name === 'style_plugin' && !empty($val)) {
                $viewsdata[$key]['displays'][$key_d][$name] = $val;
              }
              elseif ($name === 'title' && !empty($val)) {
                $viewsdata[$key]['displays'][$key_d][$name] = $this
                  ->generateCryptName($val);
              }
              elseif ($name === 'cache' && !empty($val['type']) && $val['type'] !== 'none' || $name === 'exposed_block' && !empty($val)) {
                $viewsdata[$key]['displays'][$key_d][$name] = TRUE;
              }
            }
          }
        }
      }
    }
  }
  return $viewsdata;
}