kb-8.x-1.x-dev/src/Plugin/views/area/KbCategoryAddButtonArea.php
src/Plugin/views/area/KbCategoryAddButtonArea.php
<?php /** * Created by PhpStorm. * User: laboratory.mike */ namespace Drupal\kb\Plugin\views\area; use Drupal\views\Plugin\views\area\AreaPluginBase; use Drupal\Core\Url; use Drupal\Core\Link; use Drupal\Component\Utility\Html; /** * Defines a views area plugin. * * @ingroup views_area_handlers * * @ViewsArea("kb_category_add_button_area") */ class KbCategoryAddButtonArea extends AreaPluginBase { /** * {@inheritdoc} */ public function render($empty = FALSE) { if (isset($this->view->args[0])) { $arg = strval(intval(Html::escape($this->view->args[0]))); $dest = \Drupal::service('path.current')->getPath(); $params = ['group' => $arg]; $params['plugin_id'] = 'group_node:kb_category'; $params['destination'] = $dest; $url = new Url('entity.group_content.create_form', $params); $link = Link::fromTextAndUrl(t('Add KB Category'), $url); $link = $link->toRenderable(); $link['#attributes'] = array('class' => array('btn', 'btn-success')); return array( '#markup' => render($link), ); } else { return array( '#markup' => '', ); } } }