class WeatherDetailedForecastController in Weather 8
Same name and namespace in other branches
- 2.0.x src/Controller/WeatherDetailedForecastController.php \Drupal\weather\Controller\WeatherDetailedForecastController
 
Returns responses for Weather routes.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\weather\Controller\WeatherDetailedForecastController
 
 
Expanded class hierarchy of WeatherDetailedForecastController
File
- src/
Controller/ WeatherDetailedForecastController.php, line 14  
Namespace
Drupal\weather\ControllerView source
class WeatherDetailedForecastController extends ControllerBase {
  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;
  /**
   * Display Place storage.
   *
   * @var \Drupal\Core\Entity\EntityStorageInterface
   */
  protected $displayPlaceStorage;
  /**
   * Weather Place storage.
   *
   * @var \Drupal\Core\Entity\EntityStorageInterface
   */
  protected $weatherPlaceStorage;
  /**
   * The controller constructor.
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   */
  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
    $this->entityTypeManager = $entity_type_manager;
    $this->displayPlaceStorage = $this->entityTypeManager
      ->getStorage('weather_display_place');
    $this->weatherPlaceStorage = $this->entityTypeManager
      ->getStorage('weather_place');
  }
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('entity_type.manager'));
  }
  /**
   * Builds the response for weather.detailed_forecast route.
   */
  public function detailedForecast(string $country, string $place, string $city, string $destination) {
    $link = $place . '/' . $city;
    $weatherPlace = $this->weatherPlaceStorage
      ->getQuery()
      ->condition('country', $country, 'LIKE')
      ->condition('link', $link, 'LIKE')
      ->execute();
    if ($weatherPlace) {
      $weatherPlace = $this->weatherPlaceStorage
        ->load(reset($weatherPlace));
    }
    // If the last part of the link contains an appended slash
    // and a number, this indicates the display configuration of
    // the system-wide display with the given number.
    $display_type = 'default';
    $display_number = 0;
    // Examine the last element of the link.
    if (preg_match('/^[0-9]+$/', $destination)) {
      // Use the system-wide display with the given number.
      $display_type = 'system-wide';
      $display_number = $destination;
    }
    elseif ($destination == 'u') {
      // Use the user's custom display.
      $display_type = 'user';
      $display_number = $this
        ->currentUser()
        ->id();
    }
    if ($weatherPlace instanceof WeatherPlaceInterface) {
      // Show detailed forecast only if Weather Place
      // was configured for the Display.
      $configured = $this->displayPlaceStorage
        ->getQuery()
        ->condition('geoid', $weatherPlace
        ->id())
        ->condition('display_type', $display_type)
        ->condition('display_number', $display_number)
        ->execute();
      if ($configured) {
        return [
          '#theme' => 'weather_detailed_forecast',
          '#weather_display_place' => $this->displayPlaceStorage
            ->load(reset($configured)),
          '#display_type' => $display_type,
          '#display_number' => $display_number,
        ];
      }
    }
    throw new NotFoundHttpException();
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            ControllerBase:: | 
                  protected | property | The configuration factory. | |
| 
            ControllerBase:: | 
                  protected | property | The current user service. | 1 | 
| 
            ControllerBase:: | 
                  protected | property | The entity form builder. | |
| 
            ControllerBase:: | 
                  protected | property | The entity manager. | |
| 
            ControllerBase:: | 
                  protected | property | The form builder. | 2 | 
| 
            ControllerBase:: | 
                  protected | property | The key-value storage. | 1 | 
| 
            ControllerBase:: | 
                  protected | property | The language manager. | 1 | 
| 
            ControllerBase:: | 
                  protected | property | The module handler. | 2 | 
| 
            ControllerBase:: | 
                  protected | property | The state service. | |
| 
            ControllerBase:: | 
                  protected | function | Returns the requested cache bin. | |
| 
            ControllerBase:: | 
                  protected | function | Retrieves a configuration object. | |
| 
            ControllerBase:: | 
                  private | function | Returns the service container. | |
| 
            ControllerBase:: | 
                  protected | function | Returns the current user. | 1 | 
| 
            ControllerBase:: | 
                  protected | function | Retrieves the entity form builder. | |
| 
            ControllerBase:: | 
                  protected | function | Retrieves the entity manager service. | |
| 
            ControllerBase:: | 
                  protected | function | Retrieves the entity type manager. | |
| 
            ControllerBase:: | 
                  protected | function | Returns the form builder service. | 2 | 
| 
            ControllerBase:: | 
                  protected | function | Returns a key/value storage collection. | 1 | 
| 
            ControllerBase:: | 
                  protected | function | Returns the language manager service. | 1 | 
| 
            ControllerBase:: | 
                  protected | function | Returns the module handler. | 2 | 
| 
            ControllerBase:: | 
                  protected | function | 
            Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: | 
                  |
| 
            ControllerBase:: | 
                  protected | function | Returns the state storage service. | |
| 
            LinkGeneratorTrait:: | 
                  protected | property | The link generator. | 1 | 
| 
            LinkGeneratorTrait:: | 
                  protected | function | Returns the link generator. | |
| 
            LinkGeneratorTrait:: | 
                  protected | function | Renders a link to a route given a route name and its parameters. | |
| 
            LinkGeneratorTrait:: | 
                  public | function | Sets the link generator service. | |
| 
            LoggerChannelTrait:: | 
                  protected | property | The logger channel factory service. | |
| 
            LoggerChannelTrait:: | 
                  protected | function | Gets the logger for a specific channel. | |
| 
            LoggerChannelTrait:: | 
                  public | function | Injects the logger channel factory. | |
| 
            MessengerTrait:: | 
                  protected | property | The messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Gets the messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Sets the messenger. | |
| 
            RedirectDestinationTrait:: | 
                  protected | property | The redirect destination service. | 1 | 
| 
            RedirectDestinationTrait:: | 
                  protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
| 
            RedirectDestinationTrait:: | 
                  protected | function | Returns the redirect destination service. | |
| 
            RedirectDestinationTrait:: | 
                  public | function | Sets the redirect destination service. | |
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. | |
| 
            UrlGeneratorTrait:: | 
                  protected | property | The url generator. | |
| 
            UrlGeneratorTrait:: | 
                  protected | function | Returns the URL generator service. | |
| 
            UrlGeneratorTrait:: | 
                  public | function | Sets the URL generator service. | |
| 
            UrlGeneratorTrait:: | 
                  protected | function | Generates a URL or path for a specific route based on the given parameters. | |
| 
            WeatherDetailedForecastController:: | 
                  protected | property | Display Place storage. | |
| 
            WeatherDetailedForecastController:: | 
                  protected | property | 
            The entity type manager. Overrides ControllerBase:: | 
                  |
| 
            WeatherDetailedForecastController:: | 
                  protected | property | Weather Place storage. | |
| 
            WeatherDetailedForecastController:: | 
                  public static | function | 
            Instantiates a new instance of this class. Overrides ControllerBase:: | 
                  |
| 
            WeatherDetailedForecastController:: | 
                  public | function | Builds the response for weather.detailed_forecast route. | |
| 
            WeatherDetailedForecastController:: | 
                  public | function | The controller constructor. |