You are here

protected function ApiSettingsForm::moduleActivationConnectFbAccount in Facebook Instant Articles 3.x

Same name and namespace in other branches
  1. 8.2 src/Form/ApiSettingsForm.php \Drupal\fb_instant_articles\Form\ApiSettingsForm::moduleActivationConnectFbAccount()

Generates state of FB account connection for Module Activation section.

Parameters

array $form: FAPI array.

string $app_id: Facebook application id.

string $app_secret: Facebook application secret.

Return value

array FAPI array.

1 call to ApiSettingsForm::moduleActivationConnectFbAccount()
ApiSettingsForm::moduleActivationBuildForm in src/Form/ApiSettingsForm.php
Generate the module activation section of the settings form.

File

src/Form/ApiSettingsForm.php, line 236

Class

ApiSettingsForm
Facebook Instant Articles API form.

Namespace

Drupal\fb_instant_articles\Form

Code

protected function moduleActivationConnectFbAccount(array $form, $app_id, $app_secret) {
  $fb = new Facebook([
    'app_id' => $app_id,
    'app_secret' => $app_secret,
    'default_graph_version' => 'v2.5',
  ]);
  $permissions = [
    'pages_show_list',
    'pages_manage_instant_articles',
  ];
  $helper = $fb
    ->getRedirectLoginHelper();
  $redirect_uri = Url::fromRoute('fb_instant_articles.login_callback', [], [
    'absolute' => TRUE,
  ])
    ->toString();
  $login_url = $helper
    ->getLoginUrl($redirect_uri, $permissions);
  $form['module_activation'] = [
    '#type' => 'details',
    '#title' => $this
      ->t('Module activation'),
    '#open' => TRUE,
  ];
  $form['module_activation']['app_settings'] = [
    '#markup' => '
        <p>' . $this
      ->t('Your Facebook App ID is <strong>@app_id</strong>. <a href="?edit=fb_app_settings">Update Facebook app id</a>.', [
      '@app_id' => $app_id,
    ]) . '</p>
        <p>' . $this
      ->t('Login to Facebook and then select the Facebook Page where you will publish Instant Articles.') . '</p>
      ',
  ];
  $form['module_activation']['login_button'] = [
    '#markup' => '<p>' . $this
      ->t('<a class="button button--secondary" href="@login_url">Login with Facebook</a>', [
      '@login_url' => $login_url,
    ]) . '</p>',
  ];
  return $form;
}