views_rss_yandex-2.0.0/src/Plugin/views/style/RssFieldsYandex.php

src/Plugin/views/style/RssFieldsYandex.php
<?php

namespace Drupal\views_rss_yandex\Plugin\views\style;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\views\Attribute\ViewsStyle;
use Drupal\views_rss\Plugin\views\style\RssFields;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Default style plugin to render an RSS feed from fields.
 *
 * @ingroup views_style_plugins
 */
#[ViewsStyle(
  id: "rss_fields_yandex",
  title: new TranslatableMarkup("Yandex RSS Feed - Fields"),
  help: new TranslatableMarkup("Generates an RSS feed from fields in a view."),
  theme: "views_view_rss",
  display_types: ["feed"],
)]
class RssFieldsYandex extends RssFields {

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new self(
      $configuration,
      $plugin_id,
      $plugin_definition,
      $container->get('module_handler'),
      $container->get('config.factory'),
    );
  }

  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['feed_settings']['contains']['yandex_turbo'] = ['default' => 0];
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $form['feed_settings']['yandex_turbo'] = [
      '#type' => 'checkbox',
      '#title' => $this->t('Enable yandex turbo for this feed'),
      '#default_value' => !empty($this->options['feed_settings']['yandex_turbo']),
      '#weight' => 0,
    ];
  }

}

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

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