Example #1
0
            $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 (IntuitionUtil::nonEmptyStr($returnTo)) {
        if (IntuitionUtil::nonEmptyStr($returnToQuery)) {
            $returnToQuery = '?' . urldecode($returnToQuery);
        } else {
            $returnToQuery = '';
        }
        $I18N->redirectTo("//{$_SERVER['SERVER_NAME']}{$returnTo}{$returnToQuery}", 302);
    }
}
$I18N->doRedirect();
/**
 * Main content output
 * -------------------------------------------------
 */
$Tool->setLayout('header', array('captionHtml' => $I18N->msg('fullname')));
$Tool->addOut('<div class="container">');
$Tool->addOut(_g('welcome'), 'h2');
Example #2
0
 /**
  * Add or overwrites a message in the blob.
  *
  * This function is public so tools can use it while testing their tools
  * and don't need a message to exist in translatewiki.net yet, but don't want to see [msgkey]
  * either. See also addMsgs() for registering multiple messages.
  *
  * @param string $key
  * @param string $message
  * @param string $domain [optional] Defaults to current domain
  * @param string $lang [optional] Defaults to current language
  */
 public function setMsg($key, $message, $domain = null, $lang = null)
 {
     $domain = IntuitionUtil::nonEmptyStr($domain) ? $this->normalizeDomain($domain) : $this->getDomain();
     $lang = IntuitionUtil::nonEmptyStr($lang) ? $this->normalizeLang($lang) : $this->getLang();
     $this->messageBlob[$domain][$lang][$key] = $message;
 }
Example #3
0
 /**
  * @dataProvider provideNonEmptyStr
  */
 public function testNonEmptyStr($bool, $input)
 {
     $this->assertSame(IntuitionUtil::nonEmptyStr($input), $bool);
 }
Example #4
0
/* Config */
require_once 'demoBase.php';
/* Demonstration */
// 1) Init
$I18N = new Intuition('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(IntuitionUtil::nonEmptyStr('one'));
// nonEmptyStrs
echo '<br/>nonEmptyStrs: ';
var_dump(IntuitionUtil::nonEmptyStrs('one', '', 'three'));
var_dump(IntuitionUtil::nonEmptyStrs('one', 'three'));
// GetAcceptableLanguages
$acceptLang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '';
echo "<br/>getAcceptableLanguages: (default: \$_SERVER['HTTP_ACCEPT_LANGUAGE']: " . htmlspecialchars($acceptLang) . "):<br/>";
var_dump(IntuitionUtil::getAcceptableLanguages($acceptLang));
$acceptLang = 'nl-be,nl;q=0.7,en-us,en;q=0.3';
echo "<br/>getAcceptableLanguages: ( '{$acceptLang}' ):<br/>";
var_dump(IntuitionUtil::getAcceptableLanguages($acceptLang));
/* View source */
closeDemo(__FILE__);
Example #5
0
 /**
  * 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 (!IntuitionUtil::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 (!in_array($domain, $this->registeredTextdomains)) {
         return false;
     }
     // File exists ?
     $path = $this->localBaseDir . '/language/messages/' . ucfirst($domain) . '.i18n.php';
     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;
 }