Is there any workaround to place blocks in layout based on the nodes taxonomy term?

Comments

That PR wont be in production any time soon. But you could make a quick access condition module, its quite simple. Use as a guide:  https://github.com/backdrop/backdrop/blob/1.x/core/modules/layout/plugins/access/path_layout_access.inc or https://github.com/backdrop-contrib/block_scheduler

Your form function would probably be something like:

    $form['nid'] = array(
      '#type' => 'textfield',
      '#title' => t('Node NID'),
      '#default_value' => isset($this->settings['nid']) ? $this->settings['nid'] : '',
    );
    $form['term'] = array(
      '#type' => 'textfield',
      '#title' => t('Term'),
      '#default_value' => isset($this->settings['term']) ? $this->settings['term'] : '',
    );

And your access function:

  function checkAccess() {
    $entity = $this->contexts[$this->entity_type]->data;
    return isset($entity->{$this->settings['term']});
  }

Some adjustment may be necessary.

 

indigoxela's picture

Is there any workaround to place blocks in layout based on the nodes taxonomy term?

As an easy workaround without any coding Views could be your friend.

We'd need some more info about your use-case though. Could you describe a bit more, please?