kb-8.x-1.x-dev/src/Controller/KBController.php
src/Controller/KBController.php
<?php /** * Created by PhpStorm. * User: laboratory.mike * Date: 12/9/17 * Time: 10:25 AM */ namespace Drupal\kb\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\views\Views; use Drupal\group\Entity\GroupInterface; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Drupal\Core\Access\AccessResult; /** * Provides the route controller for kb. */ class KBController extends ControllerBase { /** * Creates the settings page * * @param \Drupal\group\Entity\GroupInterface $group * The group to build the settings page * @return $text; * The page text to return */ public function kb_management(GroupInterface $group) { $markup .= '<h3>' . t('KB Categories') . '</h3>'; $markup .= '<p>' . t('Add and remove categories for organizing content.') . '</p>'; $markup .= '<h3>' . t('KB Content') . '</h3>'; $markup .= '<p>' . t('Manage all content for this KB Group.') . '</p>'; return ['#markup' => $markup]; } /** * @inheritdoc */ public function kb_categories(GroupInterface $group) { // Todo: add access control $access = TRUE; if($access) { $content = NULL; $args = [$group->id()]; $view = Views::getView('kb_categories'); if (is_object($view)) { $view->setArguments($args); $view->setDisplay('embed_1'); $view->preExecute(); $view->execute(); $content = $view->buildRenderable('embed_1', $args); //dpm($content); return $content; //return ['#markup' => 'testing']; } else { return ['#markup' => 'View error - please confirm that the kb_categories view with embed_1 display mode is available']; } } else { throw new AccessDeniedHttpException(); return AccessResult::forbidden(); } } /** * @inheritdoc */ public function kb_content(GroupInterface $group) { // Todo: add access control $access = TRUE; if($access) { $content = NULL; $args = [$group->id()]; $view = Views::getView('manage_kb_content'); if (is_object($view)) { $view->setArguments($args); $view->setDisplay('embed_1'); $view->preExecute(); $view->execute(); $content = $view->buildRenderable('embed_1', $args); //dpm($content); return $content; //return ['#markup' => 'testing']; } else { return ['#markup' => 'View error - please confirm that the kb_categories view with embed_1 display mode is available']; } } else { throw new AccessDeniedHttpException(); return AccessResult::forbidden(); } } }