Yukarıdaki örnek yeterince yakındır ancak yine de doğru değildir. Fikir, blok örneğinin kendi kimliğinizi (benim durumumda devel_execute_php_1112 (belki 1112 kez çalışmayı denediğim için, gizem olarak kalacaktır)) ve ardından gerçek blok kimliğini (ki ek açıklamadaki özel bloklar için bildirilir) ve tema. Sonra sadece bölgeyi ayarlayın ve gitmek için iyidir. İstenen bölge altında bir blok örneği oluşturuldu.
$blockEntityManager = \Drupal::service('entity.manager')->getStorage('block');
$block = $blockEntityManager->create(
array(
'id'=> 'devel_execute_php_1112',
'plugin' => 'devel_execute_php',
'theme' => 'seven'
)
);
$block->setRegion('content');
$block->save();
edit1: Aslında yukarıdaki yorumu daha sonra kontrol ettim - ve doğru. Sadece kimliğin ortaya çıkması gereken bir şey olduğu açık değildir. Topal yorumum için bir itfa olarak, özel bir blok varlığının bir blok örneğinin nasıl oluşturulacağına dair bir çözüm göndereceğim:
$blockEntityManager = \Drupal::service('entity.manager')->getStorage('block');
$block = $blockEntityManager->create(
array(
'id'=> 'ggggggggsssssss',
'plugin' => 'block_content:79d53b4e-9e60-4f97-befc-101da919bb7a',
'theme' => 'visitb_he_theme'
)
);
$block->setRegion('content');
temelde aynı ama bir eklenti için block_content yazıyorsunuz: uuid_of_custom_block_entity_instance