multiversion-8.x-1.0-beta34/src/Entity/MenuLinkContent.php

src/Entity/MenuLinkContent.php
<?php

namespace Drupal\multiversion\Entity;

use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\menu_link_content\Entity\MenuLinkContent as CoreMenuLinkContent;

class MenuLinkContent extends CoreMenuLinkContent {

  /**
   * {@inheritdoc}
   */
  public function getPluginId() {
    // Make the plugin ID unique adding the entity ID.
    return 'menu_link_content:' . $this->uuid() . ':' . $this->id();
  }

  /**
   * {@inheritdoc}
   */
  public function preSave(EntityStorageInterface $storage) {
    parent::preSave($storage);

    $parent = $this->parent->value;
    if ($parent && strpos($parent, 'menu_link_content') === 0) {
      list($content_type_id, $parent_uuid, $parent_id) = explode(':', $parent);
      if (empty($parent_id) && $content_type_id == 'menu_link_content') {
        $parents = $storage->loadByProperties(['uuid' => $parent_uuid]);
        if (!empty($parents)) {
          $parent = reset($parents);
          $parent_id = $parent->id();
          $this->parent->value = "$content_type_id:$parent_uuid:$parent_id";
        }
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  public function getPluginDefinition() {
    $definition = parent::getPluginDefinition();
    $definition['class'] = 'Drupal\multiversion\Plugin\Menu\MenuLinkContent';
    return $definition;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc