cloudwords-8.x-1.x-dev/src/Controller/CloudwordsController.php

src/Controller/CloudwordsController.php
<?php

namespace Drupal\cloudwords\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Render\Renderer;
use Symfony\Component\HttpFoundation\Response;

/**
 * Class CloudwordsController.
 *
 * @package Drupal\cloudwords\Controller
 */
class CloudwordsController extends ControllerBase {

  protected $renderer;
  public function __construct(Renderer $renderer) {
    $this->renderer = $renderer;
  }

  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('renderer')
    );
  }
  /**
   * Overviewpage.
   *
   * @return string
   *   Return Hello string.
   */
  public function overviewPage() {
    $view = views_embed_view('cloudwords_translatable', 'block_1');
    return [
      '#markup' => $this->renderer->render($view),
      '#attached' => [
        'library' =>  [
          'cloudwords/cloudwords.create_project',
        ],
        'drupalSettings' => [
          'cloudwords' => [
            'token' => \Drupal::csrfToken()->get('cloudwords'),
            'ajaxUrl' => 'admin/cloudwords/ajax'
          ]
        ],
      ],
    ];
  }

  /**
   * Overviewpage.
   *
   * @return string
   *   Return Hello string.
   */
  public function projectsActivePage() {
    // @todo paginate open projects
    $view = views_embed_view('cloudwords_projects', 'block_1');
    return [
      '#markup' => $this->renderer->render($view),
      '#attached' => [
        'library' =>  [
          'cloudwords/cloudwords.create_project',
        ],
        'drupalSettings' => [
          'cloudwords' => [
            'token' => \Drupal::csrfToken()->get('cloudwords'),
            'ajaxUrl' => 'admin/cloudwords/ajax'
          ]
        ],
      ],
    ];

    //return $form;
  }

  /**
   * Overviewpage.
   *
   * @return string
   *   Return Hello string.
   */
  public function projectsClosedPage() {
    $view = views_embed_view('cloudwords_projects', 'block_2');
    return [
      '#markup' => $this->renderer->render($view),
      '#attached' => [
        'library' =>  [
          'cloudwords/cloudwords.create_project',
        ],
        'drupalSettings' => [
          'cloudwords' => [
            'token' => \Drupal::csrfToken()->get('cloudwords'),
            'ajaxUrl' => 'admin/cloudwords/ajax'
          ]
        ],
      ],
    ];
  }
  /**
   * ajax response.
   *
   * @return string
   */
  public function ajax() {
    $id = \Drupal::request()->request->get('id');
    $action = \Drupal::request()->request->get('action');
    $uid = \Drupal::currentUser()->id();
    if ($action == 'remove') {
      cloudwords_project_user_remove($uid, [$id]);
    } else {
      cloudwords_project_user_add($uid, [$id]);
    }

    $count = cloudwords_project_user_count($uid);
    $text = \Drupal::translation()->formatPlural($count, '1 asset in project', '@count assets in project.', ['@count' => $count]);

    $response = new Response();
    $response->setContent(json_encode(['id' => $id, 'text'=>$text]));
    $response->headers->set('Content-Type', 'application/json');
    return $response;
  }

}

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

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