/**
  * Parse the sorting part of listing configuration.
  *
  * @param ContainerInterface     $container The container where the data shall be stored.
  *
  * @param ListingConfigInterface $listing   The listing configuration definition to populate.
  *
  * @param array                  $listDca   The DCA part containing the information to use.
  *
  * @return void
  */
 protected function parseListLabel(ContainerInterface $container, ListingConfigInterface $listing, array $listDca)
 {
     $labelDca = isset($listDca['label']) ? $listDca['label'] : array();
     $formatter = new DefaultModelFormatterConfig();
     $configured = false;
     if (isset($labelDca['fields'])) {
         $formatter->setPropertyNames($labelDca['fields']);
         $configured = true;
     }
     if (isset($labelDca['format'])) {
         $formatter->setFormat($labelDca['format']);
         $configured = true;
     }
     if (isset($labelDca['maxCharacters'])) {
         $formatter->setMaxLength($labelDca['maxCharacters']);
         $configured = true;
     }
     if ($configured) {
         $listing->setLabelFormatter($container->getBasicDefinition()->getDataProvider(), $formatter);
     }
     if (isset($labelDca['showColumns'])) {
         $listing->setShowColumns($labelDca['showColumns']);
     }
 }
 /**
  * Evaluate the contao 2 sorting flag into grouping length.
  *
  * @param ListingConfigInterface|PropertyInterface $config The property to evaluate the flag for.
  *
  * @param int                                      $flag   The flag to be evaluated.
  *
  * @return void
  */
 protected function evalFlagGroupingLength($config, $flag)
 {
     if ($flag == 1 || $flag == 2) {
         $config->setGroupingLength(1);
     } elseif ($flag == 3 || $flag == 4) {
         $config->setGroupingLength(2);
     }
 }
 /**
  * Parse the sorting part of listing configuration.
  *
  * @param ListingConfigInterface $listing The listing configuration to be populated.
  *
  * @return void
  */
 protected function parseListLabel(ListingConfigInterface $listing)
 {
     if (($formats = $this->getFromDca('dca_config/child_list')) === null) {
         return;
     }
     foreach ($formats as $providerName => $format) {
         $formatter = new DefaultModelFormatterConfig();
         $configured = false;
         if (isset($format['fields'])) {
             $formatter->setPropertyNames($format['fields']);
             $configured = true;
         }
         if (isset($format['format'])) {
             $formatter->setFormat($format['format']);
             $configured = true;
         }
         if (isset($format['maxCharacters'])) {
             $formatter->setMaxLength($format['maxCharacters']);
             $configured = true;
         }
         if ($configured) {
             $listing->setLabelFormatter($providerName, $formatter);
         }
     }
 }
Exemple #4
0
 /**
  * Initialize the sorting from the panel. Fallback to default sorting if nothing given.
  *
  * @param PanelContainerInterface $panel         The current panel.
  *
  * @param ConfigInterface         $dataConfig    The current config.
  *
  * @param ListingConfigInterface  $listingConfig The listing config.
  *
  * @return void
  */
 public static function initializeSorting($panel, $dataConfig, $listingConfig)
 {
     // Store default sorting start initializing the panel with an empty sorting.
     $sorting = $dataConfig->getSorting();
     $dataConfig->setSorting(array());
     $panel->initialize($dataConfig);
     // Restore default sorting if panel did not set any.
     if ($sorting && !$dataConfig->getSorting()) {
         $dataConfig->setSorting($sorting);
     }
     // Initialize sorting if not present yet.
     if (!$dataConfig->getSorting() && $listingConfig->getGroupAndSortingDefinition()->hasDefault()) {
         $newSorting = array();
         foreach ($listingConfig->getGroupAndSortingDefinition()->getDefault() as $information) {
             /** @var GroupAndSortingInformationInterface $information */
             $newSorting[$information->getProperty()] = strtoupper($information->getSortingMode());
         }
         $dataConfig->setSorting($newSorting);
     }
 }
Exemple #5
0
 /**
  * Parse the sorting part of listing configuration.
  *
  * @param IMetaModelDataDefinition $container The data container.
  *
  * @param ListingConfigInterface   $listing   The listing config.
  *
  * @return void
  */
 protected function parseListLabel(IMetaModelDataDefinition $container, ListingConfigInterface $listing)
 {
     $providerName = $container->getBasicDefinition()->getDataProvider();
     if (!$listing->hasLabelFormatter($providerName)) {
         $formatter = new DefaultModelFormatterConfig();
         $listing->setLabelFormatter($container->getBasicDefinition()->getDataProvider(), $formatter);
     } else {
         $formatter = $listing->getLabelFormatter($providerName);
     }
     $formatter->setPropertyNames(array_merge($formatter->getPropertyNames(), $container->getPropertiesDefinition()->getPropertyNames()));
     if (!$formatter->getFormat()) {
         $formatter->setFormat(str_repeat('%s ', count($formatter->getPropertyNames())));
     }
 }