/**
  * @test
  */
 public function convertTypoScriptArrayToPlainArrayRemovesTrailingDotsWithChangedOrderInTheTypoScriptArray()
 {
     $typoScriptSettings = array('10.' => array('value' => 'Hello World!', 'foo.' => array('bar' => 5)), '10' => 'TEXT');
     $expectedSettings = array('10' => array('value' => 'Hello World!', 'foo' => array('bar' => 5), '_typoScriptNodeValue' => 'TEXT'));
     $processedSettings = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($typoScriptSettings);
     $this->assertEquals($expectedSettings, $processedSettings);
 }
Esempio n. 2
0
 /**
  * Send a simple mail to a user, headers like "From" are set automatically
  * 
  * @param string $to
  * @param string $subject
  * @param string $message
  * @return boolean
  */
 public static function send($to, $subject, $message)
 {
     $setup = Tx_Ajaxlogin_Utility_TypoScript::getSetup();
     $setup = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($setup);
     if (empty($setup['settings']['notificationMail']['from'])) {
         throw new Exception('[Ajaxlogin]: No sender was set in the plugin TS setup', 876421);
     }
     $headers = array('From: ' . $setup['settings']['notificationMail']['from']);
     return array($headers, $to, $subject, $message);
     return t3lib_div::plainMailEncoded($to, $subject, $message, implode(LF, $headers));
 }
 /**
  * Returns the TypoScript configuration found in module.tx_yourextension_yourmodule
  * merged with the global configuration of your extension from module.tx_yourextension
  *
  * @param string $extensionName
  * @param string $pluginName in BE mode this is actually the module signature. But we're using it just like the plugin name in FE
  * @return array
  */
 protected function getPluginConfiguration($extensionName, $pluginName)
 {
     $setup = $this->getTypoScriptSetup();
     $pluginConfiguration = array();
     if (is_array($setup['module.']['tx_' . strtolower($extensionName) . '.'])) {
         $pluginConfiguration = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($setup['module.']['tx_' . strtolower($extensionName) . '.']);
     }
     $pluginSignature = strtolower($extensionName . '_' . $pluginName);
     if (is_array($setup['module.']['tx_' . $pluginSignature . '.'])) {
         $pluginConfiguration = t3lib_div::array_merge_recursive_overrule($pluginConfiguration, Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($setup['module.']['tx_' . $pluginSignature . '.']));
     }
     return $pluginConfiguration;
 }
 public function isValid($value)
 {
     $setup = Tx_Ajaxlogin_Utility_TypoScript::getSetup();
     $setup = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($setup);
     $object = trim($this->options['object']);
     $property = trim($this->options['property']);
     $pattern = trim($setup['settings']['validation'][$object][$property]['pattern']);
     $message = trim($setup['settings']['validation'][$object][$property]['message']);
     if (!preg_match($pattern, $value)) {
         $this->addError($message, 1307626687);
         return false;
     }
     return true;
 }
 /**
  * Removes all trailing dots recursively from TS settings array
  *
  * Extbase converts the "classical" TypoScript (with trailing dot) to a format without trailing dot,
  * to be more future-proof and not to have any conflicts with Fluid object accessor syntax.
  *
  * @param array $typoScriptArray The TypoScript array (e.g. array('foo' => 'TEXT', 'foo.' => array('bar' => 'baz')))
  * @return array e.g. array('foo' => array('_typoScriptNodeValue' => 'TEXT', 'bar' => 'baz'))
  * @api
  */
 public function convertTypoScriptArrayToPlainArray(array $typoScriptArray)
 {
     if (version_compare(TYPO3_version, '6.2', '>=')) {
         $typoScriptService = $this->objectManager->get('\\TYPO3\\CMS\\Extbase\\Service\\TypoScriptService');
         return $typoScriptService->convertTypoScriptArrayToPlainArray($typoScriptArray);
     }
     return Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($typoScriptArray);
 }
 /**
  * @see http://forge.typo3.org/issues/14093
  */
 public function testCleanSettingsFieldsForFiltersCheckFlexformOverridesDefault()
 {
     $config = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray(array('foo' => '1,2,3', 'foo.' => array('value' => '42', 'negate' => '1')));
     $ret = $this->repository->cleanSettings(array('filter' => $config));
     $this->assertSame(array(1, 2, 3), $ret['filter']['foo']['value'], 'values where correctly overriden');
     $this->assertArrayNotHasKey('_typoScriptNodeValue', $ret['filter']['foo'], '_typoScriptNodeValue was unset');
 }
 /**
  * Overrides configuration settings from the plugin typoscript (plugin.tx_myext_pi1.)
  *
  * @param array the framework configuration
  * @return array the framework configuration with overridden data from typoscript
  */
 protected function overrideConfigurationFromPlugin(array $frameworkConfiguration)
 {
     $setup = $this->loadTypoScriptSetup();
     $pluginConfiguration = $setup['plugin.']['tx_' . strtolower($frameworkConfiguration['extensionName'] . '_' . $frameworkConfiguration['pluginName']) . '.'];
     if (is_array($pluginConfiguration)) {
         $pluginConfiguration = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($pluginConfiguration);
         $frameworkConfiguration = $this->mergeConfigurationIntoFrameworkConfiguration($frameworkConfiguration, $pluginConfiguration, 'settings');
         $frameworkConfiguration = $this->mergeConfigurationIntoFrameworkConfiguration($frameworkConfiguration, $pluginConfiguration, 'persistence');
         $frameworkConfiguration = $this->mergeConfigurationIntoFrameworkConfiguration($frameworkConfiguration, $pluginConfiguration, 'view');
     }
     return $frameworkConfiguration;
 }
 /**
  * Returns the TypoScript configuration found in config.tx_extbase
  *
  * @return array
  */
 protected function getExtbaseConfiguration()
 {
     $setup = $this->getTypoScriptSetup();
     $extbaseConfiguration = array();
     if (isset($setup['config.']['tx_extbase.'])) {
         $extbaseConfiguration = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($setup['config.']['tx_extbase.']);
     }
     return $extbaseConfiguration;
 }
 /**
  * Loads the Extbase Framework configuration.
  *
  * The Extbase framework configuration HAS TO be retrieved using this method, as they are come from different places than the normal settings.
  * Framework configuration is, in contrast to normal settings, needed for the Extbase framework to operate correctly.
  *
  * @param array $pluginConfiguration The current incoming extbase configuration
  * @return array the Extbase framework configuration
  */
 public function getFrameworkConfiguration($pluginConfiguration)
 {
     $frameworkConfiguration = array();
     $frameworkConfiguration['persistence']['storagePid'] = self::DEFAULT_BACKEND_STORAGE_PID;
     $setup = $this->loadTypoScriptSetup();
     $extbaseConfiguration = $setup['config.']['tx_extbase.'];
     if (is_array($extbaseConfiguration)) {
         $extbaseConfiguration = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($extbaseConfiguration);
         $frameworkConfiguration = t3lib_div::array_merge_recursive_overrule($frameworkConfiguration, $extbaseConfiguration);
     }
     if (isset($pluginConfiguration['settings'])) {
         $pluginConfiguration = $this->resolveTyposcriptReference($pluginConfiguration, 'settings');
     }
     if (!is_array($pluginConfiguration['settings.'])) {
         $pluginConfiguration['settings.'] = array();
     }
     // We expect that the settings are arrays on various places
     if (isset($pluginConfiguration['persistence'])) {
         $pluginConfiguration = $this->resolveTyposcriptReference($pluginConfiguration, 'persistence');
     }
     if (isset($pluginConfiguration['view'])) {
         $pluginConfiguration = $this->resolveTyposcriptReference($pluginConfiguration, 'view');
     }
     if (isset($pluginConfiguration['_LOCAL_LANG'])) {
         $pluginConfiguration = $this->resolveTyposcriptReference($pluginConfiguration, '_LOCAL_LANG');
     }
     $frameworkConfiguration = t3lib_div::array_merge_recursive_overrule($frameworkConfiguration, Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($pluginConfiguration));
     $frameworkConfiguration = $this->getContextSpecificFrameworkConfiguration($frameworkConfiguration);
     return $frameworkConfiguration;
 }
Esempio n. 10
0
 /**
  * @test
  * @dataProvider convertTypoScriptArrayToPlainArrayTestdata
  */
 public function convertTypoScriptArrayToPlainArrayRemovesTrailingDotsWithChangedOrderInTheTypoScriptArray($typoScriptSettings, $expectedSettings)
 {
     $processedSettings = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($typoScriptSettings);
     $this->assertEquals($expectedSettings, $processedSettings);
 }