web-dev-qa-db-ja.com

プログラムでコンテンツにフラグを付けるにはどうすればよいですか?

Flag モジュールはDrupal 8の開発中ですが、正常に動作しています。ただし、プログラムでフラグを追加する方法は見つかりませんでした。 APIドキュメント Drupal 7バージョンについて語っているようです。

プログラムでフラグを追加するにはどうすればよいですか?

7
Flo Develop

Flagサービスを使用して、プログラムでエンティティにフラグを設定または解除する方法を次に示します。

$flag_id = 'bookmark';

$flag_service = \Drupal::service('flag');
$flag = $flag_service->getFlagById($flag_id);

// Flag an entity with a specific flag.
$flag_service->flag($flag, $entity);

// Unflag an entity with a specific flag.
$flag_service->unflag($flag, $entity);
11
oknate

あなたがしなければならない特定のユーザーのフラグ:

$account = \Drupal::currentUser(); // or load a specific user
$flag_service = \Drupal::service('flag');

$flag = $flag_service->getFlagById('bookmark'); // replace by flag machine name

// check if already flagged
$flagging = $flag_service->getFlagging($flag, $media, $account);
if (!$flagging) {
  $flag_service->flag($flag, $media, $account);
}
else {
  $flag_service->unflag($flag, $media, $account);
}
10
romain ni