GroupMedia.php in Group Media 8.2
File
src/Plugin/GroupContentEnabler/GroupMedia.php
View source
<?php
namespace Drupal\groupmedia\Plugin\GroupContentEnabler;
use Drupal\group\Entity\GroupInterface;
use Drupal\group\Plugin\GroupContentEnablerBase;
use Drupal\media\Entity\MediaType;
use Drupal\Core\Url;
use Drupal\Core\Form\FormStateInterface;
class GroupMedia extends GroupContentEnablerBase {
protected function getMediaType() {
return MediaType::load($this
->getEntityBundle());
}
public function getGroupOperations(GroupInterface $group) {
$account = \Drupal::currentUser();
$plugin_id = $this
->getPluginId();
$type = $this
->getEntityBundle();
$operations = [];
if ($group
->hasPermission("create {$plugin_id} entity", $account)) {
$route_params = [
'group' => $group
->id(),
'plugin_id' => $plugin_id,
];
$operations["groupmedia-create-{$type}"] = [
'title' => $this
->t('Create @type', [
'@type' => $this
->getMediaType()
->label(),
]),
'url' => new Url('entity.group_content.create_form', $route_params),
'weight' => 30,
];
}
return $operations;
}
public function defaultConfiguration() {
$config = parent::defaultConfiguration();
$config['entity_cardinality'] = 1;
return $config;
}
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
$info = $this
->t("This field has been disabled by the plugin to guarantee the functionality that's expected of it.");
$form['entity_cardinality']['#disabled'] = TRUE;
$form['entity_cardinality']['#description'] .= '<br /><em>' . $info . '</em>';
return $form;
}
public function calculateDependencies() {
$dependencies = parent::calculateDependencies();
$dependencies['config'][] = 'media.type.' . $this
->getEntityBundle();
return $dependencies;
}
}