/**
  * Retrieve all database table names.
  *
  * @param GetPropertyOptionsEvent $event The event.
  *
  * @return void
  */
 public static function getCountriesByContinent(GetPropertyOptionsEvent $event)
 {
     if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_attribute' || $event->getPropertyName() !== 'geoprotection') {
         return;
     }
     // Get the current values.
     $arrValues = $event->getOptions();
     // Call the helper to get all data.
     $arrValues = Helper::getCountriesByContinent($arrValues);
     // Set the new options.
     $event->setOptions($arrValues);
 }
예제 #2
0
 /**
  * Retrieve the property options.
  *
  * @param GetPropertyOptionsEvent $event The event.
  *
  * @return void
  */
 public function getPropertyOptions(GetPropertyOptionsEvent $event)
 {
     if ($event->getOptions() !== null) {
         return;
     }
     $model = $event->getModel();
     if (!$model instanceof Model) {
         return;
     }
     $attribute = $model->getItem()->getAttribute($event->getPropertyName());
     if (!$attribute instanceof AbstractSelect) {
         return;
     }
     try {
         $options = $attribute->getFilterOptions(null, false);
     } catch (\Exception $exception) {
         $options = array('Error: ' . $exception->getMessage());
     }
     $event->setOptions($options);
 }
 /**
  * @param CreateOptionsEvent|GetPropertyOptionsEvent $event
  * @param                                            $name
  * @param EventDispatcher                            $eventDispatcher
  * @SuppressWarnings(PHPMD.Superglobals)
  * @SuppressWarnings(PHPMD.ShortVariables)
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function createContentTypeOptions(GetPropertyOptionsEvent $event, $name, EventDispatcher $eventDispatcher)
 {
     if ($event->getModel()->getProviderName() !== 'orm_avisota_layout' || $event->getPropertyName() !== 'allowedCellContents') {
         return;
     }
     $layout = $event->getModel()->getEntity();
     if ($layout->getType() !== 'mailChimp') {
         return;
     }
     $allTypes = $event->getOptions();
     $options = array();
     list($group, $mailChimpTemplate) = explode(':', $layout->getMailchimpTemplate());
     if (isset($GLOBALS['AVISOTA_MAILCHIMP_TEMPLATE'][$group][$mailChimpTemplate])) {
         $config = $GLOBALS['AVISOTA_MAILCHIMP_TEMPLATE'][$group][$mailChimpTemplate];
         foreach ($config['cells'] as $cellName => $cellConfig) {
             if (!isset($cellConfig['content'])) {
                 if (!isset($options[$cellName])) {
                     $options[$cellName] = array();
                 }
                 foreach ($allTypes as $elements) {
                     foreach ($elements as $elementType => $elementLabel) {
                         $options[$cellName][$cellName . ':' . $elementType] = $elementLabel;
                     }
                 }
             }
         }
     }
     $event->setOptions($options);
 }
 /**
  * @param CreateOptionsEvent|GetPropertyOptionsEvent $event
  * @param                                            $name
  * @param EventDispatcher                            $eventDispatcher
  * @SuppressWarnings(PHPMD.Superglobals)
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function createContentTypeOptions(GetPropertyOptionsEvent $event, $name, EventDispatcher $eventDispatcher)
 {
     $environment = $event->getEnvironment();
     $dataDefinition = $environment->getDataDefinition();
     if ($dataDefinition->getName() !== 'orm_avisota_layout' || $event->getPropertyName() !== 'allowedCellContents') {
         return;
     }
     $translator = $environment->getTranslator();
     $options = $event->getOptions();
     if (!is_array($options)) {
         $options = (array) $options;
     }
     foreach ($GLOBALS['TL_MCE'] as $elementGroup => $elements) {
         $elementGroupLabel = $translator->translate($elementGroup, 'MCE');
         foreach ($elements as $elementType) {
             $elementLabel = $translator->translate($elementType . '.0', 'MCE');
             $options[$elementGroupLabel][$elementType] = sprintf('%s', $elementLabel);
         }
     }
     $event->setOptions($options);
 }