You are here

class RecentCalendarPublicationsBlock in Content Planner 8

Provides a block with recent calendar publications for Content Planner Dashboard.

Plugin annotation


@DashboardBlock(
  id = "recent_calendar_content_block",
  name = @Translation("Recent Calendar Publications Widget")
)

Hierarchy

Expanded class hierarchy of RecentCalendarPublicationsBlock

File

modules/content_calendar/src/Plugin/DashboardBlock/RecentCalendarPublicationsBlock.php, line 18

Namespace

Drupal\content_calendar\Plugin\DashboardBlock
View source
class RecentCalendarPublicationsBlock extends DashboardBlockBase {

  /**
   *
   */
  public function build() {
    $config = $this
      ->getConfiguration();
    $contentService = new ContentService();

    // Last publications.
    $last_publications_limit_config = $this
      ->getCustomConfigByKey($config, 'last_publications_limit', 3);
    $last_nodes = $contentService
      ->getRecentContent($last_publications_limit_config);

    // Next publications.
    $next_publications_limit_config = $this
      ->getCustomConfigByKey($config, 'next_publications_limit', 3);
    $next_nodes = $contentService
      ->getFollowingContent($next_publications_limit_config);
    return [
      '#theme' => 'recent_calendar_content',
      '#last_nodes' => $last_nodes,
      '#next_nodes' => $next_nodes,
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getConfigSpecificFormFields(FormStateInterface &$form_state, Request &$request, array $block_configuration) {
    $form = [];

    // Last publications limit.
    $last_publications_limit_default_value = $this
      ->getCustomConfigByKey($block_configuration, 'last_publications_limit', 3);
    $form['last_publications_limit'] = [
      '#type' => 'number',
      '#title' => t('Limit number of recently published nodes'),
      '#required' => FALSE,
      '#default_value' => $last_publications_limit_default_value,
    ];

    // Next publications limit.
    $next_publications_limit_default_value = $this
      ->getCustomConfigByKey($block_configuration, 'next_publications_limit', 3);
    $form['next_publications_limit'] = [
      '#type' => 'number',
      '#title' => t('Limit number of nodes to be published'),
      '#required' => FALSE,
      '#default_value' => $next_publications_limit_default_value,
    ];
    return $form;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigFormBaseTrait::config protected function Retrieves a configuration object.
DashboardBlockBase::$entityTypeManager protected property The route match.
DashboardBlockBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 2
DashboardBlockBase::getBasicConfigStructure public static function Get basic configuration structure for the block configuration.
DashboardBlockBase::getConfiguration public function Get Configuration passed in by Plugin Manager. Overrides DashboardBlockInterface::getConfiguration
DashboardBlockBase::getCustomConfigByKey protected function Get custom config.
DashboardBlockBase::getEditableConfigNames protected function Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait::getEditableConfigNames
DashboardBlockBase::getName public function Return the name of the block. Overrides DashboardBlockInterface::getName
DashboardBlockBase::isConfigurable public function Determines if the plugin is configurable. Overrides PluginBase::isConfigurable
DashboardBlockBase::submitSettingsForm public function Submit form handler. Overrides DashboardBlockInterface::submitSettingsForm
DashboardBlockBase::validateForm public function Validates teh plugin config form. Overrides DashboardBlockInterface::validateForm
DashboardBlockBase::__construct public function Constructs a new UserLoginBlock instance. Overrides PluginBase::__construct 2
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
RecentCalendarPublicationsBlock::build public function Build the block and return a renderable array. Overrides DashboardBlockBase::build
RecentCalendarPublicationsBlock::getConfigSpecificFormFields public function Add additonal form elements specific to the Plugin. Overrides DashboardBlockBase::getConfigSpecificFormFields