Как программно добавить все узлы статьи типа контента в одну группу в drupal 8? - PullRequest
0 голосов
/ 07 февраля 2019

Я ищу решение для добавления всех узлов статьи типа контента в группу с id группы = 25, есть ли способ добавить их один раз через код PHP, я слышал о функции addcontent в группах, но яне знаете, как его использовать, пожалуйста, помогите мне

Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])

Как использовать вышеуказанную функцию?

Есть ли способ сделать один шаг процесса?

Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])

Мне нужно чтобы все типы контента статей группировались с gid = 25

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

позвольте мне попытаться объяснить больше

use Drupal \ node \ Entity \ Node;используйте Drupal \ group \ Entity \ Group;

/**
* Implements hook_ENTITY_TYPE_insert().
*/
function yourmodulename_node_insert(Node $node) {
  if ($node->bundle() == 'article') {
    $pluginId = 'group_node:article';
    // Here create some logic to load/chose the group id's you want to 
    // add the content to
    // ... 
    foreach ($group_ids as $gid) {
      $group = Group::load($gid);
      $group->addContent($node, $pluginId);
    }
  }
}

Надеюсь, это будет более понятным, потому что foreach означает, что вы можете добавлять в несколько групп, поэтому здесь вы можете попробовать свою собственную логику того, к какой группе вы хотите добавитьдобавить, надеюсь, это будет иметь смысл.

0 голосов
/ 07 февраля 2019

Может быть, это поможет

$ group-> addContent ($ entity, 'group_node: article');

plugin_id на самом деле является типом узла

, пожалуйста, попробуйте.

...