コード例 #1
0
 public function onConfigBeforeSave(ConfigEvent $event)
 {
     $values = $event->getConfig();
     $passwords = array('mailer_password', 'transifex_password');
     foreach ($passwords as $key) {
         // Check to ensure we don't save a blank password to the config which may remove the user's old password
         if (array_key_exists($key, $values['coreconfig']) && empty($values['coreconfig'][$key])) {
             unset($values['coreconfig'][$key]);
         }
     }
     // Check if the selected locale has been downloaded already, fetch it if not
     $installedLanguages = $this->factory->getParameter('supported_languages');
     if (!array_key_exists($values['coreconfig']['locale'], $installedLanguages)) {
         /** @var \Mautic\CoreBundle\Helper\LanguageHelper $languageHelper */
         $languageHelper = $this->factory->getHelper('language');
         $fetchLanguage = $languageHelper->extractLanguagePackage($values['coreconfig']['locale']);
         // If there is an error, fall back to 'en_US' as it is our system default
         if ($fetchLanguage['error']) {
             $values['coreconfig']['locale'] = 'en_US';
             // TODO - Raise a flash message
             $this->factory->getSession()->getFlashBag()->add('notice', 'mautic.core.could.not.set.language');
         }
     }
     $event->setConfig($values);
 }
コード例 #2
0
 public function onConfigBeforeSave(ConfigEvent $event)
 {
     $values = $event->getConfig();
     // Preserve existing value
     $event->unsetIfEmpty('transifex_password');
     // Check if the selected locale has been downloaded already, fetch it if not
     $installedLanguages = $this->coreParametersHelper->getParameter('supported_languages');
     if (!array_key_exists($values['coreconfig']['locale'], $installedLanguages)) {
         $fetchLanguage = $this->languageHelper->extractLanguagePackage($values['coreconfig']['locale']);
         // If there is an error, fall back to 'en_US' as it is our system default
         if ($fetchLanguage['error']) {
             $values['coreconfig']['locale'] = 'en_US';
             $message = 'mautic.core.could.not.set.language';
             $messageVars = [];
             if (isset($fetchLanguage['message'])) {
                 $message = $fetchLanguage['message'];
             }
             if (isset($fetchLanguage['vars'])) {
                 $messageVars = $fetchLanguage['vars'];
             }
             $event->setError($message, $messageVars);
         }
     }
     $event->setConfig($values);
 }
コード例 #3
0
 public function onConfigBeforeSave(ConfigEvent $event)
 {
     $event->unsetIfEmpty(array('mailer_password'));
     $data = $event->getConfig('emailconfig');
     // Get the original data so that passwords aren't lost
     $monitoredEmail = $this->factory->getParameter('monitored_email');
     if (isset($data['monitored_email'])) {
         foreach ($data['monitored_email'] as $key => $monitor) {
             if (empty($monitor['password']) && !empty($monitoredEmail[$key]['password'])) {
                 $data['monitored_email'][$key]['password'] = $monitoredEmail[$key]['password'];
             }
             if ($key != 'general') {
                 if (empty($monitor['host']) || empty($monitor['address']) || empty($monitor['folder'])) {
                     $data['monitored_email'][$key]['override_settings'] = '';
                     $data['monitored_email'][$key]['address'] = '';
                     $data['monitored_email'][$key]['host'] = '';
                     $data['monitored_email'][$key]['user'] = '';
                     $data['monitored_email'][$key]['password'] = '';
                     $data['monitored_email'][$key]['ssl'] = '1';
                     $data['monitored_email'][$key]['port'] = '993';
                 }
             }
         }
         $event->setConfig($data, 'emailconfig');
     }
 }
コード例 #4
0
 public function onConfigSave(ConfigEvent $event)
 {
     $values = $event->getConfig();
     if (!empty($values['pageconfig']['google_analytics'])) {
         $values['pageconfig']['google_analytics'] = htmlspecialchars($values['pageconfig']['google_analytics']);
         $event->setConfig($values);
     }
 }
コード例 #5
0
ファイル: ConfigSubscriber.php プロジェクト: Yame-/mautic
 /**
  * @param ConfigEvent $event
  */
 public function onConfigSave(ConfigEvent $event)
 {
     /** @var array $values */
     $values = $event->getConfig();
     // Manipulate the values
     if (!empty($values['campaignconfig']['campaign_time_wait_on_event_false'])) {
         $values['campaignconfig']['campaign_time_wait_on_event_false'] = htmlspecialchars($values['campaignconfig']['campaign_time_wait_on_event_false']);
     }
     // Set updated values
     $event->setConfig($values);
 }
コード例 #6
0
ファイル: ConfigSubscriber.php プロジェクト: Yame-/mautic
 /**
  * @param ConfigEvent $event
  */
 public function onConfigSave(ConfigEvent $event)
 {
     /** @var array $values */
     $values = $event->getConfig();
     // Manipulate the values
     if (!empty($values['social_config']['twitter_handle_field'])) {
         $values['social_config']['twitter_handle_field'] = htmlspecialchars($values['social_config']['twitter_handle_field']);
     }
     // Set updated values
     $event->setConfig($values);
 }
コード例 #7
0
 public function onConfigBeforeSave(ConfigEvent $event)
 {
     $values = $event->getConfig();
     // Preserve existing value
     $event->unsetIfEmpty('transifex_password');
     // Check if the selected locale has been downloaded already, fetch it if not
     $installedLanguages = $this->factory->getParameter('supported_languages');
     if (!array_key_exists($values['coreconfig']['locale'], $installedLanguages)) {
         /** @var \Mautic\CoreBundle\Helper\LanguageHelper $languageHelper */
         $languageHelper = $this->factory->getHelper('language');
         $fetchLanguage = $languageHelper->extractLanguagePackage($values['coreconfig']['locale']);
         // If there is an error, fall back to 'en_US' as it is our system default
         if ($fetchLanguage['error']) {
             $values['coreconfig']['locale'] = 'en_US';
             // TODO - Raise a flash message
             $this->factory->getSession()->getFlashBag()->add('notice', 'mautic.core.could.not.set.language');
         }
     }
     $event->setConfig($values);
 }
コード例 #8
0
ファイル: ConfigSubscriber.php プロジェクト: Yame-/mautic
 public function onConfigBeforeSave(ConfigEvent $event)
 {
     $event->unsetIfEmpty(array('mailer_password', 'mailer_api_key'));
     $data = $event->getConfig('emailconfig');
     // Get the original data so that passwords aren't lost
     $monitoredEmail = $this->factory->getParameter('monitored_email');
     if (isset($data['monitored_email'])) {
         foreach ($data['monitored_email'] as $key => $monitor) {
             if (empty($monitor['password']) && !empty($monitoredEmail[$key]['password'])) {
                 $data['monitored_email'][$key]['password'] = $monitoredEmail[$key]['password'];
             }
             if ($key != 'general') {
                 if (empty($monitor['host']) || empty($monitor['address']) || empty($monitor['folder'])) {
                     $data['monitored_email'][$key]['override_settings'] = '';
                     $data['monitored_email'][$key]['address'] = '';
                     $data['monitored_email'][$key]['host'] = '';
                     $data['monitored_email'][$key]['user'] = '';
                     $data['monitored_email'][$key]['password'] = '';
                     $data['monitored_email'][$key]['ssl'] = '1';
                     $data['monitored_email'][$key]['port'] = '993';
                 }
             }
         }
     }
     // Ensure that percent signs are decoded in the unsubscribe/webview settings
     $decode = array('unsubscribe_text', 'webview_text', 'unsubscribe_message', 'resubscribe_message');
     foreach ($decode as $key) {
         if (strpos($data[$key], '%') !== false) {
             $data[$key] = urldecode($data[$key]);
             if (preg_match_all('/([^%]|^)(%{1}[^%]\\S+[^%]%{1})([^%]|$)/i', $data[$key], $matches)) {
                 // Encode any left over to prevent Symfony from crashing
                 foreach ($matches[0] as $matchKey => $match) {
                     $replaceWith = $matches[1][$matchKey] . '%' . $matches[2][$matchKey] . '%' . $matches[3][$matchKey];
                     $data[$key] = str_replace($match, $replaceWith, $data[$key]);
                 }
             }
         }
     }
     $event->setConfig($data, 'emailconfig');
 }
コード例 #9
0
 /**
  * @param ConfigEvent $event
  */
 public function onConfigSave(ConfigEvent $event)
 {
     /** @var array $values */
     $values = $event->getConfig();
     $event->setConfig($values);
 }