/** * 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); } } }
/** * 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); } }
/** * 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()))); } }