/** * @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); }
/** * 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; }
/** * @test * @dataProvider convertTypoScriptArrayToPlainArrayTestdata */ public function convertTypoScriptArrayToPlainArrayRemovesTrailingDotsWithChangedOrderInTheTypoScriptArray($typoScriptSettings, $expectedSettings) { $processedSettings = Tx_Extbase_Utility_TypoScript::convertTypoScriptArrayToPlainArray($typoScriptSettings); $this->assertEquals($expectedSettings, $processedSettings); }