You are here

public function OnlyOnePrintDrush::getContentTypesListForPrint in Allow a content type only once (Only One) 8

Return a list of content types for print.

Parameters

object[] $content_types: A multidimensional array of content types objects.

Return value

array An array of content types to print keyed by content type machine name.

Overrides OnlyOnePrintStrategyInterface::getContentTypesListForPrint

File

src/OnlyOnePrintDrush.php, line 27

Class

OnlyOnePrintDrush
Class OnlyOnePrintDrush.

Namespace

Drupal\onlyone

Code

public function getContentTypesListForPrint(array $content_types) {
  $list = [];

  // Iterating over each content type.
  foreach ($content_types as $content_type => $content_type_info) {
    $cant = count($content_type_info);

    // Iterating over each language.
    for ($i = 0; $i < $cant; $i++) {

      // Example for multilingual sites:
      // Article (En: 7 Nodes, Fr: 5 Nodes, Not specified: 2 Nodes).
      // Example for non multilingual sites:
      // Article (3 Nodes).
      $list[$content_type] = $content_type_info[$i]->name . ' (' . implode(', ', array_column($content_type_info, 'total_nodes')) . ')';
      $list[$content_type] .= $content_type_info[$i]->configured ? ' ' . sprintf(self::GREEN_OUTPUT, $this
        ->t('Configured')) : '';
    }
  }
  return $list;
}