/** * Pass one or more arguments which will be checked until one fails * If atleast one argument is not a non-empty string, or if no arguments / NULL passed * it will return false, otherwise true; */ public static function nonEmptyStrs() { $args = func_get_args(); if (!isset($args[0])) { return false; } foreach ($args as $arg) { if (!TsIntuitionUtil::nonEmptyStr($arg)) { return false; } } // If we're still here, all are good return true; }
/** * @dataProvider provideNonEmptyStr */ public function testNonEmptyStr($bool, $input) { $this->assertSame(TsIntuitionUtil::nonEmptyStr($input), $bool); }
/** * Load a textdomain (if not loaded already). * * @param $domain string Name of the textdomain (case-insensitive) * @return False on error, (normalized) domainname if success. */ public function loadTextdomain($domain) { // Generally validate input and protect against path traversal if (!TsIntuitionUtil::nonEmptyStr($domain) || strcspn($domain, ":/\\") !== strlen($domain)) { $this->errTrigger("Invalid textdomain \"{$domain}\"", __METHOD__, E_NOTICE); return false; } // Normalise domain name (case-insensitive) $domain = strtolower($domain); // Don't load if already loaded if (isset($this->loadedTextdomains[$domain])) { return $domain; } // Error out if unregistered if (!isset($this->registeredTextdomains[$domain])) { return false; } // File exists ? $path = $this->localBaseDir . "/language/messages/" . $this->registeredTextdomains[$domain]; if (!file_exists($path)) { $this->errTrigger("Textdomain file not found for \"{$domain}\" at {$path}. Ignoring", __METHOD__, E_NOTICE, __FILE__, __LINE__); return false; } // Load it $load = $this->loadTextdomainFromFile($path, $domain); // Return (normalized) domainname or false return !!$load ? $domain : false; }
$I18N->redirectTo($Tool->generatePermalink(array('msg' => 3)), 302); break; } } /** * Custom return to * ------------------------------------------------- */ // Tools can pass returnto and returntoquery parameters // to redirect visitors back to them after setting, changing // or doing something (eg. clearcookies, renewcookies or prefset) if ($I18N->isRedirecting()) { $returnTo = $kgReq->getVal('returnto'); $returnToQuery = $kgReq->getVal('returntoquery'); if (TsIntuitionUtil::nonEmptyStr($returnTo)) { if (TsIntuitionUtil::nonEmptyStr($returnToQuery)) { $returnToQuery = '?' . urldecode($returnToQuery); } else { $returnToQuery = ''; } $I18N->redirectTo("//{$_SERVER['SERVER_NAME']}{$returnTo}{$returnToQuery}", 302); } } $I18N->doRedirect(); /** * Main content output * ------------------------------------------------- */ $Tool->addOut(_g('welcome'), 'h2'); // Messages ? if (isset($_GET['msg'])) {
<?php /* Config */ require_once 'demoBase.php'; /* Demonstration */ // 1) Init $I18N $I18N = new TsIntuition('general'); // 2) Do it // Simple parentheses echo $I18N->parentheses('hello'); // Variables echo '<br/>' . $I18N->msg('toolversionstamp', array('variables' => array('1.0', $I18N->dateFormatted('2001-01-15')))); // msgExists echo '<br/>msgExists: '; var_dump($I18N->msgExists('welcome')); var_dump($I18N->msgExists('foobar')); // nonEmptyStr echo '<br/>nonEmptyStr: '; var_dump(TsIntuitionUtil::nonEmptyStr('one')); // nonEmptyStrs echo '<br/>nonEmptyStrs: '; var_dump(TsIntuitionUtil::nonEmptyStrs('one', '', 'three')); var_dump(TsIntuitionUtil::nonEmptyStrs('one', 'three')); // GetAcceptableLanguages echo "<br/>getAcceptableLanguages: (default: \$_SERVER['HTTP_ACCEPT_LANGUAGE']: " . htmlspecialchars($_SERVER['HTTP_ACCEPT_LANGUAGE']) . "):<br/>"; var_dump(TsIntuitionUtil::getAcceptableLanguages($_SERVER['HTTP_ACCEPT_LANGUAGE'])); $acceptLang = 'nl-be,nl;q=0.7,en-us,en;q=0.3'; echo "<br/>getAcceptableLanguages: ( '{$acceptLang}' ):<br/>"; var_dump(TsIntuitionUtil::getAcceptableLanguages($acceptLang)); /* View source */ closeDemo(__FILE__);