Browse Source

Coder.

pull/881/head
Rosie Le Faive 3 years ago
parent
commit
4266ab147a
  1. 33
      src/Plugin/Condition/NodeIsIslandoraObject.php
  2. 6
      src/Plugin/views/filter/NodeIsIslandora.php

33
src/Plugin/Condition/NodeIsIslandoraObject.php

@ -20,6 +20,31 @@ use Drupal\Islandora\IslandoraUtils;
*/
class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFactoryPluginInterface {
/**
* Islandora Utils.
*
* @var \Drupal\islandora\IslandoraUtils
*/
protected $utils;
/**
* Constructs a Node is Islandora Condition plugin.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\islandora\IslandoraUtils $islandora_utils
* Islandora utilities.
* @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_type_bundle_info
* The entity type bundle service.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, IslandoraUtils $islandora_utils) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->utils = $islandora_utils;
}
/**
* {@inheritdoc}
@ -28,7 +53,8 @@ class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFact
return new static(
$configuration,
$plugin_id,
$plugin_definition
$plugin_definition,
$container->get('islandora.utils')
);
}
@ -40,9 +66,8 @@ class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFact
if (!$node) {
return FALSE;
}
// Islandora objects are determined by Islandora Utils.
$utils = \Drupal::service('islandora.utils');
if ($utils->isIslandoraType('node',$node->bundle())) {
// Determine if node is Islandora.
if ($this->utils->isIslandoraType('node', $node->bundle())) {
return TRUE;
}
}

6
src/Plugin/views/filter/NodeIsIslandora.php

@ -91,13 +91,14 @@ class NodeIsIslandora extends FilterPluginBase implements ContainerFactoryPlugin
$types = [];
foreach ($this->entityTypeBundleInfo->getBundleInfo('node') as $bundle_id => $bundle) {
if ($this->utils->isIslandoraType('node', $bundle_id)) {
$types[] = $bundle['label'] . ' (' . $bundle_id . ')' ;
$types[] = "{$bundle['label']} ($bundle_id)";
}
}
$types_list = implode(', ', $types);
$form['info'] = [
'#type' => 'item',
'#title' => 'Information',
'#description' => t("Configured Islandora bundles: ") . implode(', ', $types),
'#description' => t("Configured Islandora bundles: {$types_list} "),
];
$form['negated'] = [
'#type' => 'checkbox',
@ -139,6 +140,5 @@ class NodeIsIslandora extends FilterPluginBase implements ContainerFactoryPlugin
$node_table_alias = $this->query->addTable('node', $this->relationship, $join);
$this->query->addWhere($this->options['group'], "$node_table_alias.type", $types, $condition);
}
}

Loading…
Cancel
Save