devdocs-8.x-1.x-dev/src/Controller/DocsOutput.php
src/Controller/DocsOutput.php
<?php /** * @file * Contains \Drupal\devdocs\Controller\DocsOutput. */ namespace Drupal\devdocs\Controller; use Drupal\devdocs\StreamWrapper\DocsStream; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Url; use Drupal\Core\StreamWrapper\StreamWrapperManager; use Drupal\Core\StreamWrapper\StreamWrapperInterface; use Drupal\Core\File\FileSystem; use Symfony\Component\HttpFoundation\RedirectResponse; use Drupal\Core\StreamWrapper\StreamWrapperManagerInterface; /** * Controller routines for page example routes. */ class DocsOutput extends ControllerBase { /** * Constructs a page with descriptive content. * * Our router maps this method to the path 'examples/page_example'. */ public function docs() { if (!\Drupal::config('devdocs.settings')->get('path')) return $this->redirect('devdocs.settings.form'); $output = ''; $uri = 'docs://index.html'; $url = file_create_url($uri); if (file_exists($uri)) { $url_new = Url::fromUri($url); $link_options = array( 'attributes' => array( 'target' => array( '_blank' ), ), ); $url_new->setOptions($link_options); $link = \Drupal::l(t('Open in new window'), $url_new); $output .= $link; $output .= '<iframe src="' . $url . '" width="100%" height="600px">' . $url . '</iframe>'; } else { drupal_set_message(t('There is no index.html file in Documentation directory, recreating sample site documentation.')); // devdocs_recreate(); // reload page return $this->redirect('devdocs.settings.form'); } $build = array( '#markup' => $output, '#allowed_tags' => ['iframe', 'a'], ); return $build; } }