Is there any workaround to place blocks in layout based on the nodes taxonomy term? Log in or register to post comments
This issue may be related (and it looks like it has a PR that can be tested): https://github.com/backdrop/backdrop-issues/issues/2134 Log in or register to post 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. Log in or register to post comments
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? Log in or register to post comments
Comments
This issue may be related (and it looks like it has a PR that can be tested):
https://github.com/backdrop/backdrop-issues/issues/2134
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.
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?