/** * Function to sort select items by label * * @param array $config: parameter array by t3lib_tceforms::procItems * @param t3lib_tceforms $pObj: parent object of class t3lib_tceforms * @return void * */ public function sortItemsByLabel($config, $pObj) { // Get current language and find proper charset $currentLanguage = tx_cpsdevlib_extmgm::getLanguage('en'); $this->charset = $this->csConvObj->get_locale_charset($currentLanguage); // Try to save current locale $oldLocale = setlocale(LC_ALL, 0); if ($oldLocale) { setlocale(LC_ALL, $this->localeArray[$currentLanguage]); } usort($config['items'], array('tx_cpsdevlib_itemsprocfuncs', 'sortArray')); // Reset locale if ($oldLocale) { setlocale(LC_ALL, $oldLocale); } }
/** * Returns human readable variable information output by print_r function * Depending on TYPO3_CONF_VARS['SYS']['displayErrors'] and checks TYPO3_CONF_VARS['SYS']['devIPmask'] if needed to * * @param mixed $theData: Variable to dump (if allowed) * @param string $codeClass: Class to use for pre-tag with SyntaxHighlighter * @param string $blockTitle: Display a title above block * @param boolean $useSyntaxHighlighter: Add some JavaScript to turn on SyntaxHighlighter * @param array $shAdditionalConfig: Manual configuration of SyntaxHighlighter e.g. to add custom brushes * @param string $additionalWrap: Wrap output if not using SyntaxHighlighter * @return string The dumped variable * */ public static function debugOutput($theData, $codeClass = 'plain', $blockTitle = '', $useSyntaxHighlighter = true, $shAdditionalConfig = array(), $additionalWrap = '<pre>|</pre>') { global $TYPO3_CONF_VARS; $result = ''; // If displayErrors is turned on if (($displayErrors = intval($TYPO3_CONF_VARS['SYS']['displayErrors'])) != '-1') { // Check for development IP mask if configured if ($displayErrors == 2) { if (t3lib_div::cmpIP(t3lib_div::getIndpEnv('REMOTE_ADDR'), $TYPO3_CONF_VARS['SYS']['devIPmask'])) { $displayErrors = 1; } else { $displayErrors = 0; } } if ($displayErrors == 1) { // Turn off caching if output in frontend if (TYPO3_MODE == 'FE') { $GLOBALS['TSFE']->set_no_cache(); } // Start output buffering ob_start(); print_r($theData); // Store output buffer in variable $result = ob_get_contents(); // Clean output buffer ob_end_clean(); // Style output with SyntaxHighlighter if ($useSyntaxHighlighter) { $shBasicConfig = array('baseUrl' => '/' . t3lib_extMgm::siteRelPath('cps_devlib') . 'Resources/', 'scripts' => 'scripts/', 'styles' => 'styles/', 'theme' => 'Default', 'brushes' => array()); $shBasicConfig = array_merge($shBasicConfig, $shAdditionalConfig); // Try to get brush to load if (!count($shBasicConfig['brushes'])) { $codeClass = strtolower($codeClass); switch ($codeClass) { case 'applescript': $shBasicConfig['brushes'] = array('AppleScript'); break; case 'as3': case 'actionscript3': $shBasicConfig['brushes'] = array('AS3'); break; case 'bash': case 'shell': $shBasicConfig['brushes'] = array('Bash'); break; case 'cf': case 'coldfusion': $shBasicConfig['brushes'] = array('ColdFusion'); break; case 'c#': case 'c-sharp': case 'csharp': $shBasicConfig['brushes'] = array('CSharp'); break; case 'c': case 'cpp': $shBasicConfig['brushes'] = array('Cpp'); break; case 'css': $shBasicConfig['brushes'] = array('Css'); break; case 'delphi': case 'pas': case 'pascal': $shBasicConfig['brushes'] = array('Delphi'); break; case 'diff': case 'patch': $shBasicConfig['brushes'] = array('Diff'); break; case 'erl': case 'erlang': $shBasicConfig['brushes'] = array('Erlang'); break; case 'groovy': $shBasicConfig['brushes'] = array('Groovy'); break; case 'js': case 'jscript': case 'javascript': $shBasicConfig['brushes'] = array('JScript'); break; case 'java': $shBasicConfig['brushes'] = array('Java'); break; case 'jfx': case 'javafx': $shBasicConfig['brushes'] = array('JavaFX'); break; case 'perl': case 'pl': $shBasicConfig['brushes'] = array('Perl'); break; case 'php': $shBasicConfig['brushes'] = array('Php'); break; case 'ps': case 'powershell': $shBasicConfig['brushes'] = array('PowerShell'); break; case 'py': case 'python': $shBasicConfig['brushes'] = array('Python'); break; case 'rails': case 'rb': case 'ror': case 'ruby': $shBasicConfig['brushes'] = array('Ruby'); break; case 'sass': case 'scss': $shBasicConfig['brushes'] = array('Sass'); break; case 'scala': $shBasicConfig['brushes'] = array('Scala'); break; case 'sql': $shBasicConfig['brushes'] = array('Sql'); break; case 'ts': case 'typoscript': $shBasicConfig['brushes'] = array('Typoscript'); break; case 'vb': case 'vbnet': $shBasicConfig['brushes'] = array('Vb'); break; case 'xml': case 'xhtml': case 'xslt': case 'html': case 'xhtml': $shBasicConfig['brushes'] = array('Xml'); break; default: $shBasicConfig['brushes'] = array('Plain'); break; } } // Add SyntaxHighlighter core style tx_cpsdevlib_extmgm::addCssFile($shBasicConfig['baseUrl'] . $shBasicConfig['styles'] . 'shCore . css', 'tx_cpsdevlib_debug_shcorecss'); // Add SyntaxHighlighter theme tx_cpsdevlib_extmgm::addCssFile($shBasicConfig['baseUrl'] . $shBasicConfig['styles'] . 'shTheme' . $shBasicConfig['theme'] . '.css', 'tx_cpsdevlib_debug_shtheme' . $shBasicConfig['theme'] . 'css'); // Add SyntaxHighlighter core javascript tx_cpsdevlib_extmgm::addJavascriptFile($shBasicConfig['baseUrl'] . $shBasicConfig['scripts'] . 'shCore.js', 'tx_cpsdevlib_debug_shcorejs'); // Add brushes foreach ($shBasicConfig['brushes'] as $brush) { tx_cpsdevlib_extmgm::addJavascriptFile($shBasicConfig['baseUrl'] . $shBasicConfig['scripts'] . 'shBrush' . $brush . '.js', 'tx_cpsdevlib_debug_shbrush' . strtolower($brush) . 'js'); } // Run SyntaxHighlighter tx_cpsdevlib_extmgm::addJavascriptInline('SyntaxHighlighter.all();', 'tx_cpsdevlib_debug_shrun'); $result = LF . '<pre class="brush: ' . htmlspecialchars($codeClass) . '"' . ($blockTitle ? ' title="' . htmlspecialchars($blockTitle) . '"' : '') . '>' . LF . htmlspecialchars($result) . LF . '</pre>'; } else { // Alternative wrapping method without SyntaxHighlighter if ($additionalWrap) { $result = str_replace('|', LF . $result . LF, $additionalWrap); } } } } return $result; }