You are here

class PushStatusEntity in CMS Content Sync 8

Same name and namespace in other branches
  1. 2.1.x modules/cms_content_sync_views/src/Plugin/Action/PushStatusEntity.php \Drupal\cms_content_sync_views\Plugin\Action\PushStatusEntity
  2. 2.0.x modules/cms_content_sync_views/src/Plugin/Action/PushStatusEntity.php \Drupal\cms_content_sync_views\Plugin\Action\PushStatusEntity

Push entity of status entity.

Plugin annotation


@Action(
  id = "export_status_entity",
  label = @Translation("Force Push"),
  type = "cms_content_sync_entity_status"
)

Hierarchy

Expanded class hierarchy of PushStatusEntity

File

modules/cms_content_sync_views/src/Plugin/Action/PushStatusEntity.php, line 20

Namespace

Drupal\cms_content_sync_views\Plugin\Action
View source
class PushStatusEntity extends ActionBase {

  /**
   * {@inheritdoc}
   */
  public function execute($entity = NULL) {

    /** @var \Drupal\cms_content_sync\Entity\EntityStatus $entity */
    if (!is_null($entity)) {
      $source = $entity
        ->getEntity();
      if (empty($source)) {
        \Drupal::messenger()
          ->addMessage(t('The Entity @type @uuid doesn\'t exist locally, push skipped.', [
          '@type' => $entity
            ->get('entity_type')
            ->getValue()[0]['value'],
          '@uuid' => $entity
            ->get('entity_uuid')
            ->getValue()[0]['value'],
        ]), 'warning');
        return;
      }
      $flow = $entity
        ->getFlow();
      if (empty($flow)) {
        \Drupal::messenger()
          ->addMessage(t('The Flow for @type %label doesn\'t exist anymore, push skipped.', [
          '@type' => $entity
            ->get('entity_type')
            ->getValue()[0]['value'],
          '%label' => $source
            ->label(),
        ]), 'warning');
        return;
      }
      $pool = $entity
        ->getPool();
      if (empty($pool)) {
        \Drupal::messenger()
          ->addMessage(t('The Pool for @type %label doesn\'t exist anymore, push skipped.', [
          '@type' => $entity
            ->get('entity_type')
            ->getValue()[0]['value'],
          '%label' => $source
            ->label(),
        ]), 'warning');
        return;
      }
      if (!$flow
        ->canPushEntity($source, PushIntent::PUSH_ANY, SyncIntent::ACTION_CREATE, $pool)) {
        \Drupal::messenger()
          ->addMessage(t('The Flow @flow for @type %label doesn\'t allow pushing to the pool @pool.', [
          '@flow' => $flow->id,
          '@type' => $entity
            ->get('entity_type')
            ->getValue()[0]['value'],
          '%label' => $source
            ->label(),
          '@pool' => $pool->id,
        ]), 'warning');
        return;
      }
      if ($entity
        ->wasPushedEmbedded()) {
        $parent = $entity
          ->getParentEntity();
        $raw = $entity
          ->getData(EntityStatus::DATA_PARENT_ENTITY);
        \Drupal::messenger()
          ->addMessage(t("The @type %label was pushed embedded into another entity. Please push the parent entity @parent_type %parent_label (@parent_uuid) instead.", [
          '@type' => $entity
            ->get('entity_type')
            ->getValue()[0]['value'],
          '%label' => $source
            ->label(),
          '@parent_type' => $raw['type'],
          '@parent_uuid' => $raw['uuid'],
          '%parent_label' => $parent ? $parent
            ->label() : '',
        ]), 'warning');
        return;
      }
      PushIntent::pushEntityFromUi($source, PushIntent::PUSH_FORCED, SyncIntent::ACTION_CREATE, $flow, $pool);
    }
  }

  /**
   * {@inheritdoc}
   */
  public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
    return TRUE;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ActionBase::executeMultiple public function Executes the plugin for an array of objects. Overrides ActionInterface::executeMultiple 3
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
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.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
PushStatusEntity::access public function Checks object access. Overrides ActionInterface::access
PushStatusEntity::execute public function Executes the plugin. Overrides ExecutableInterface::execute
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.