You are here

SocialPrivateMessageThreadMemberWidget.php in Open Social 8

Same filename and directory in other branches
  1. 8.9 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  2. 8.2 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  3. 8.3 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  4. 8.4 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  5. 8.5 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  6. 8.6 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  7. 8.7 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  8. 8.8 modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  9. 10.3.x modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  10. 10.0.x modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  11. 10.1.x modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
  12. 10.2.x modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php

File

modules/social_features/social_private_message/src/Plugin/Field/FieldWidget/SocialPrivateMessageThreadMemberWidget.php
View source
<?php

namespace Drupal\social_private_message\Plugin\Field\FieldWidget;

use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\Plugin\Field\FieldWidget\OptionsSelectWidget;
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\Entity\User;

/**
 * A widget to select member for private message.
 *
 * @FieldWidget(
 *   id = "social_private_message_thread_member_widget",
 *   label = @Translation("Social private message members select list"),
 *   field_types = {
 *     "entity_reference",
 *     "list_integer",
 *     "list_float",
 *     "list_string"
 *   },
 *   multiple_values = TRUE
 * )
 */
class SocialPrivateMessageThreadMemberWidget extends OptionsSelectWidget {

  /**
   * {@inheritdoc}
   */
  public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
    $element = parent::formElement($items, $delta, $element, $form, $form_state);
    if (\Drupal::currentUser()
      ->hasPermission('access user profiles')) {
      $recipient_id = \Drupal::service('request_stack')
        ->getCurrentRequest()
        ->get('recipient');
      if ($recipient_id) {
        $recipient = User::load($recipient_id);
        if ($recipient) {
          $element['#default_value'] = [
            $recipient_id,
          ];
        }
      }
    }
    return $element;
  }

}

Classes

Namesort descending Description
SocialPrivateMessageThreadMemberWidget A widget to select member for private message.