You are here

class Batch in Organic groups 8

Performs a batch deletion of orphans.

Plugin annotation


@OgDeleteOrphans(
 id = "batch",
 label = @Translation("Batch", context = "OgDeleteOrphans"),
 description = @Translation("The deletion is done in a batch operation. Good for large websites with a lot of content."),
)

Hierarchy

Expanded class hierarchy of Batch

File

src/Plugin/OgDeleteOrphans/Batch.php, line 19

Namespace

Drupal\og\Plugin\OgDeleteOrphans
View source
class Batch extends OgDeleteOrphansBase {

  /**
   * {@inheritdoc}
   */
  public function process() {
    $queue = $this
      ->getQueue();
    $item = $queue
      ->claimItem(0);
    $data = $item->data;
    $this
      ->deleteOrphan($data['type'], $data['id']);
    $queue
      ->deleteItem($item);
  }

  /**
   * {@inheritdoc}
   */
  public function configurationForm(array $form, FormStateInterface $form_state) {
    $count = $this
      ->getQueue()
      ->numberOfItems();
    return [
      '#type' => 'fieldset',
      '#title' => $this
        ->t('Batch options'),
      'info' => [
        '#markup' => '<p>' . $this
          ->t('There are :count orphans waiting to be deleted.', [
          ':count' => $count,
        ]) . '</p>',
      ],
      'submit' => [
        '#type' => 'submit',
        '#value' => $this
          ->t('Start batch deletion'),
        '#submit' => [
          '\\Drupal\\og\\Plugin\\OgDeleteOrphans\\Batch::batchSubmit',
        ],
        '#disabled' => !(bool) $count,
      ],
    ];
  }

  /**
   * Submit handler for ::configurationForm().
   */
  public static function batchSubmit($form, FormStateInterface $form_state) {
    $batch = [];
    $steps = \Drupal::queue('og_orphaned_group_content')
      ->numberOfItems();
    for ($i = 0; $i < $steps; $i++) {
      $batch['operations'][] = [
        '\\Drupal\\og\\Plugin\\OgDeleteOrphans\\Batch::step',
        [],
      ];
    }
    batch_set($batch);
  }

  /**
   * Batch step definition callback to process one queue item.
   */
  public static function step($context) {
    if (!empty($context['interrupted'])) {
      return;
    }
    \Drupal::getContainer()
      ->get('plugin.manager.og.delete_orphans')
      ->createInstance('batch', [])
      ->process();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Batch::batchSubmit public static function Submit handler for ::configurationForm().
Batch::configurationForm public function Returns the configuration form elements specific to this plugin. Overrides OgDeleteOrphansBase::configurationForm
Batch::process public function Starts the deletion process. Overrides OgDeleteOrphansInterface::process
Batch::step public static function Batch step definition callback to process one queue item.
OgDeleteOrphansBase::$entityTypeManager protected property The entity type manager.
OgDeleteOrphansBase::$groupAudienceHelper protected property The OG group audience helper.
OgDeleteOrphansBase::$membershipManager protected property The OG membership manager.
OgDeleteOrphansBase::$queueFactory protected property The queue factory.
OgDeleteOrphansBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
OgDeleteOrphansBase::deleteOrphan protected function Deletes an orphaned group content entity if it is fully orphaned.
OgDeleteOrphansBase::getQueue protected function Returns the queue of orphans to delete. 1
OgDeleteOrphansBase::query protected function Queries the registered group entity for orphaned members to delete.
OgDeleteOrphansBase::register public function Registers a soon to be deleted group entity, for processing. Overrides OgDeleteOrphansInterface::register 1
OgDeleteOrphansBase::__construct public function Constructs an OgDeleteOrphansBase object. Overrides PluginBase::__construct
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.