You are here

public function UloginWidget::getInfo in uLogin (advanced version) 8

Returns the element properties for this element.

Return value

array An array of element properties. See \Drupal\Core\Render\ElementInfoManagerInterface::getInfo() for documentation of the standard properties of all elements, and the return value format.

Overrides ElementInterface::getInfo

File

src/Element/UloginWidget.php, line 19

Class

UloginWidget
Provides Ulogin widget.

Namespace

Drupal\ulogin\Element

Code

public function getInfo() {
  $enabled_providers = [
    'vkontakte',
    'odnoklassniki',
    'mailru',
    'facebook',
    'twitter',
    'google',
    'yandex',
    'livejournal',
    'openid',
  ];
  $enabled_providers = array_filter(\Drupal::config('ulogin.settings')
    ->get('providers_enabled') ?: array_combine($enabled_providers, $enabled_providers));
  $main_providers = [
    'vkontakte',
    'odnoklassniki',
    'mailru',
    'facebook',
  ];
  $main_providers = array_filter(\Drupal::config('ulogin.settings')
    ->get('providers_main') ?: array_combine($main_providers, $main_providers));
  $required_fields = [
    'first_name',
    'last_name',
    'email',
    'nickname',
    'bdate',
    'sex',
    'photo',
    'photo_big',
    'country',
    'city',
  ];
  $required_fields = array_filter(\Drupal::config('ulogin.settings')
    ->get('fields_required') ?: array_combine($required_fields, $required_fields));
  $optional_fields = array_filter(\Drupal::config('ulogin.settings')
    ->get('fields_optional') ?: array_combine([
    'phone',
  ], [
    'phone',
  ]));
  $class = get_class($this);
  return [
    '#input' => FALSE,
    '#pre_render' => [
      [
        $class,
        'preRenderUloginWidget',
      ],
    ],
    '#theme' => 'ulogin_widget',
    '#theme_wrappers' => [
      'form_element',
    ],
    '#ulogin_id' => 'ulogin',
    '#ulogin_widget_id' => \Drupal::config('ulogin.settings')
      ->get('widget_id') ?: '',
    '#title' => \Drupal::config('ulogin.settings')
      ->get('widget_title') ?: '',
    '#weight' => \Drupal::config('ulogin.settings')
      ->get('widget_weight') ?: -100,
    '#ulogin_display' => \Drupal::config('ulogin.settings')
      ->get('display') ?: 'panel',
    '#ulogin_fields_required' => implode(',', $required_fields),
    '#ulogin_fields_optional' => implode(',', $optional_fields),
    '#ulogin_providers' => implode(',', array_intersect_assoc($main_providers, $enabled_providers)),
    '#ulogin_hidden' => implode(',', array_diff_assoc($enabled_providers, $main_providers)),
    '#ulogin_destination' => \Drupal::config('ulogin.settings')
      ->get('destination') ?: '',
    '#ulogin_redirect' => \Drupal::config('ulogin.settings')
      ->get('redirect') ?: 0,
    '#ulogin_icons_path' => \Drupal::config('ulogin.settings')
      ->get('icons_path') ?: '',
    '#ulogin_icons' => [],
    '#attached' => [
      'library' => [
        'ulogin/async',
      ],
    ],
  ];
}