mustache_templates-8.x-1.0-beta4/modules/mustache_test/src/Controller/MustacheTestMagicController.php

modules/mustache_test/src/Controller/MustacheTestMagicController.php
<?php

namespace Drupal\mustache_test\Controller;

use Drupal\mustache\Helpers\MustacheRenderTemplate;
use Drupal\mustache\Render\Markup;
use Drupal\mustache_test\TestLinks;

/**
 * A controller for testing magic variable plugins.
 */
class MustacheTestMagicController {

  /**
   * Returns a plain page for testing magic sync.
   *
   * @return array
   *   A build array for rendering the Mustache template.
   */
  public function pageSync() {
    $build = MustacheRenderTemplate::build('test_magic_sync');
    $build->usingDataFromUrl('/mustache-test/cacheable-json');

    $render = [
      $build->toRenderArray(),
      ['#markup' => TestLinks::get()],
    ];
    return $render;
  }

  /**
   * Returns a plain page for testing inline magic sync using Tokens.
   *
   * @return array
   *   A build array for rendering the Mustache template.
   */
  public function pageSyncInlineTokens() {
    $build = MustacheRenderTemplate::build('my_magic_inline_tokens', "{{#sync.now.1.always.summable}}<div>Site name: {{#if.site.name.defined}}{{site.name}}{{/if.site.name.defined}}</div><div>Random hash: {{random.hash.md5}}</div>{{/sync.now.1.always.summable}}");
    $build->withTokens();

    $render = [
      $build->toRenderArray(),
      ['#markup' => TestLinks::get()],
    ];
    return $render;
  }

  /**
   * Testing inline magic sync using Tokens with limited increments.
   *
   * @return array
   *   A build array for rendering the Mustache template.
   */
  public function pageSyncInlineTokensLimited() {
    $build = MustacheRenderTemplate::build('my_magic_inline_tokens_limited', "{{#sync.now.1.10.span}}Site name: {{site.name}}<br />Random hash: {{random.hash.sha1}}{{/sync.now.1.10.span}}");
    $build->withTokens();

    $render = [
      $build->toRenderArray(),
      ['#markup' => TestLinks::get()],
    ];
    return $render;
  }

  /**
   * Returns a plain page for testing inline magic sync using Tokens.
   *
   * @return array
   *   A build array for rendering the Mustache template.
   */
  public function pageSyncInlineTokensInteractive() {
    $build = MustacheRenderTemplate::build('my_magic_inline_tokens_interactive', "{{#sync.trigger.click-me.click}}<div>Site name: {{site.name}}</div><div>Random hash: {{random.hash.crc32b}}</div>{{/sync.trigger.click-me.click}}");
    $build->withTokens();

    $render = [
      $build->toRenderArray(),
      [
        '#type' => 'markup',
        '#markup' => Markup::create('<button type="button" class="click-me">Click here to refresh!</button>'),
      ],
      ['#markup' => TestLinks::get()],
    ];
    return $render;
  }

  /**
   * Returns a plain page for testing inline magic sync using Tokens.
   *
   * @return array
   *   A build array for rendering the Mustache template.
   */
  public function pageSyncIntoSomewhereElse() {
    $build = MustacheRenderTemplate::build('magic_into_somewhere_else', "
    {{#sync.2.10.always.into.head>title}}SYNCED: {{site.name}}{{/sync.2.10.always.into.head>title}}
    {{#sync.now.url./mustache-test/json.into.another-target}}
      Replaced using ID <b>{{id}}</b>.
    {{/sync.now.url./mustache-test/json.into.another-target}}
    ");
    $build->withTokens();

    $render = [
      $build->toRenderArray(),
      [
        '#type' => 'markup',
        '#markup' => Markup::create('<div class="another-target">Please replace me...</div>'),
      ],
      ['#markup' => TestLinks::get()],
    ];
    return $render;
  }

  /**
   * Returns a plain page for testing magic filters.
   *
   * @return array
   *   A build array for rendering the Mustache template(s).
   */
  public function pageFilters() {
    $render_array = [];

    $render_array[] = MustacheRenderTemplate::build('filter_template_1', 'filter.trim: {{#filter.trim}}          Hello!       {{/filter.trim}}')
    ->withClientSynchronization()
    ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_2', 'filter.striptags: {{#filter.striptags}}<h1><strong>Hello</strong> <span>there!</span></h1>{{/filter.striptags}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_3', "filter.nl2br: {{#filter.nl2br}}Hello\nthere!{{/filter.nl2br}}")
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_4', 'filter.spaceless: {{#filter.spaceless}}<p> <b>Hello there! </b></p>{{/filter.spaceless}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_5', 'filter.upper: {{#filter.upper}}Hello!{{/filter.upper}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_6', 'filter.lower: {{#filter.lower}}Hello!{{/filter.lower}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_7', 'filter.capitalize: {{#filter.capitalize}}hello!{{/filter.capitalize}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_8', 'filter.truncate (no change): {{#filter.truncate}}aaaaa bbbbbbb ccccccccc dddddddd eeee fffffffff ggggg{{/filter.truncate}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_9', 'filter.truncate.30: {{#filter.truncate.30}}aaaaa bbbbbbb ccccccccc dddddddd eeee fffffffff ggggg{{/filter.truncate.30}}')
      ->withClientSynchronization()
      ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];

    $render_array[] = MustacheRenderTemplate::build('filter_template_10', 'filter.path: {{#filter.path}}Hello There/GoodBye{{/filter.path}}')
      ->withClientSynchronization()
      ->toRenderArray();

      $render_array[] = ['#markup' => Markup::create('<hr/>')];

      $render_array[] = MustacheRenderTemplate::build('filter_template_11', 'filter.plus: 1 + 10 = {{#filter.plus.10}}1{{/filter.plus.10}}')
        ->withClientSynchronization()
        ->toRenderArray();

      $render_array[] = ['#markup' => Markup::create('<hr/>')];

      $render_array[] = MustacheRenderTemplate::build('filter_template_12', 'filter.minus: 1 - 1 = {{#filter.minus.1}}1{{/filter.minus.1}}')
        ->withClientSynchronization()
        ->toRenderArray();

    $render_array[] = ['#markup' => Markup::create('<hr/>')];
    $render_array[] = ['#markup' => TestLinks::get()];

    return $render_array;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc