You are here

public function Edit::buildForm in SimpleAds 8

Same name in this branch
  1. 8 src/Form/Groups/Edit.php \Drupal\simpleads\Form\Groups\Edit::buildForm()
  2. 8 src/Form/Ads/Edit.php \Drupal\simpleads\Form\Ads\Edit::buildForm()
  3. 8 src/Form/Campaigns/Edit.php \Drupal\simpleads\Form\Campaigns\Edit::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides FormInterface::buildForm

File

src/Form/Ads/Edit.php, line 35

Class

Edit
Edit advertisement form.

Namespace

Drupal\simpleads\Form\Ads

Code

public function buildForm(array $form, FormStateInterface $form_state, $type = NULL, $id = NULL) {
  $ads = (new Ads())
    ->setId($id)
    ->setType($type)
    ->load();
  $form['#attached']['library'][] = 'simpleads/admin.assets';
  $form['name'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Advertisement Name'),
    '#required' => TRUE,
    '#description' => $this
      ->t('This adminstrative name and visible to advertisement editors only'),
    '#default_value' => $ads
      ->getAdName(),
  ];
  $form['description'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Description'),
    '#description' => $this
      ->t('The value of this field only visible to advertisement editors'),
    '#default_value' => $ads
      ->getDescription(),
  ];
  $form['url'] = [
    '#type' => 'url',
    '#title' => $this
      ->t('Redirect URL'),
    '#description' => $this
      ->t('Where to redirect when clicked'),
    '#default_value' => !empty($ads
      ->getOptions(TRUE)['url']) && ($url = $ads
      ->getOptions(TRUE)['url']) ? $url : '',
  ];
  $form['url_target'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Open Redirect URL in a new window'),
    '#default_value' => !empty($ads
      ->getOptions(TRUE)['url_target']) && ($url_target = $ads
      ->getOptions(TRUE)['url_target']) ? $url_target : FALSE,
  ];
  $form = $ads
    ->getBuildForm($form, $form_state, $type, $id);
  $form['group_id'] = [
    '#type' => 'select',
    '#options' => (new Groups())
      ->loadAsOptions(),
    '#title' => $this
      ->t('Advertisement Group'),
    '#description' => $this
      ->t('Where to redirect when clicked'),
    '#default_value' => $ads
      ->getGroup()
      ->getId(),
  ];
  $form['campaign_id'] = [
    '#type' => 'select',
    '#options' => (new Campaigns())
      ->loadAsOptions(),
    '#title' => $this
      ->t('Advertisement Campaign'),
    '#description' => $this
      ->t('Where to redirect when clicked'),
    '#default_value' => $ads
      ->getCampaign()
      ->getId(),
  ];
  $form['status'] = [
    '#type' => 'select',
    '#options' => $ads
      ->getStatuses(),
    '#title' => $this
      ->t('Status'),
    '#description' => $this
      ->t('Where to redirect when clicked'),
    '#required' => TRUE,
    '#default_value' => $ads
      ->getStatus(),
  ];
  $form['ad_type'] = [
    '#type' => 'hidden',
    '#value' => $type,
  ];
  $form['id'] = [
    '#type' => 'hidden',
    '#value' => $id,
  ];
  $form['actions'] = [
    '#type' => 'actions',
  ];
  $form['actions']['submit'] = [
    '#type' => 'submit',
    '#value' => $this
      ->t('Update'),
    '#button_type' => 'primary',
  ];
  $form['actions']['cancel'] = [
    '#type' => 'link',
    '#title' => $this
      ->t('Cancel'),
    '#url' => Url::fromRoute('simpleads.ads'),
  ];
  return $form;
}