本文整理汇总了PHP中okapi\Okapi::gettext_domain_restore方法的典型用法代码示例。如果您正苦于以下问题:PHP Okapi::gettext_domain_restore方法的具体用法?PHP Okapi::gettext_domain_restore怎么用?PHP Okapi::gettext_domain_restore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类okapi\Okapi
的用法示例。
在下文中一共展示了Okapi::gettext_domain_restore方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: call
public static function call()
{
$langpref = isset($_GET['langpref']) ? $_GET['langpref'] : Settings::get('SITELANG');
$langprefs = explode("|", $langpref);
# Determine which user is logged in to OC.
require_once $GLOBALS['rootpath'] . "okapi/lib/oc_session.php";
$OC_user_id = OCSession::get_user_id();
if ($OC_user_id == null) {
$after_login = "okapi/apps/" . ($langpref != Settings::get('SITELANG') ? "?langpref=" . $langpref : "");
$login_url = Settings::get('SITE_URL') . "login.php?target=" . urlencode($after_login);
return new OkapiRedirectResponse($login_url);
}
# Get the list of authorized apps.
$rs = Db::query("\n select c.`key`, c.name, c.url\n from\n okapi_consumers c,\n okapi_authorizations a\n where\n a.user_id = '" . mysql_real_escape_string($OC_user_id) . "'\n and c.`key` = a.consumer_key\n order by c.name\n ");
$vars = array();
$vars['okapi_base_url'] = Settings::get('SITE_URL') . "okapi/";
$vars['site_url'] = Settings::get('SITE_URL');
$vars['site_name'] = Okapi::get_normalized_site_name();
$vars['site_logo'] = Settings::get('SITE_LOGO');
$vars['apps'] = array();
while ($row = mysql_fetch_assoc($rs)) {
$vars['apps'][] = $row;
}
mysql_free_result($rs);
$response = new OkapiHttpResponse();
$response->content_type = "text/html; charset=utf-8";
ob_start();
Okapi::gettext_domain_init($langprefs);
include 'index.tpl.php';
$response->body = ob_get_clean();
Okapi::gettext_domain_restore();
return $response;
}
示例2: call
/**
* Execute the method and return the result.
*
* OKAPI methods return OkapiHttpResponses, but some MAY also return
* PHP objects (see OkapiRequest::construct_inside_request for details).
*
* If $request must be consistent with given method's options (must
* include Consumer and Token, if they are required).
*/
public static function call($service_name, OkapiRequest $request)
{
Okapi::init_internals();
if (!self::exists($service_name)) {
throw new Exception("Method does not exist: '{$service_name}'");
}
$options = self::options($service_name);
if ($options['min_auth_level'] >= 2 && $request->consumer == null) {
throw new Exception("Method '{$service_name}' called with mismatched OkapiRequest: " . "\$request->consumer MAY NOT be empty for Level 2 and Level 3 methods. Provide " . "a dummy Consumer if you have to.");
}
if ($options['min_auth_level'] >= 3 && $request->token == null) {
throw new Exception("Method '{$service_name}' called with mismatched OkapiRequest: " . "\$request->token MAY NOT be empty for Level 3 methods.");
}
$time_started = microtime(true);
Okapi::gettext_domain_init();
try {
require_once $GLOBALS['rootpath'] . "okapi/{$service_name}.php";
$response = call_user_func(array('\\okapi\\' . str_replace('/', '\\', $service_name) . '\\WebService', 'call'), $request);
Okapi::gettext_domain_restore();
} catch (Exception $e) {
Okapi::gettext_domain_restore();
throw $e;
}
$runtime = microtime(true) - $time_started;
# Log the request to the stats table. Only valid requests (these which didn't end up
# with an exception) are logged.
self::save_stats($service_name, $request, $runtime);
return $response;
}
示例3: call
public static function call()
{
$token_key = isset($_GET['oauth_token']) ? $_GET['oauth_token'] : '';
$verifier = isset($_GET['oauth_verifier']) ? $_GET['oauth_verifier'] : '';
$langpref = isset($_GET['langpref']) ? $_GET['langpref'] : Settings::get('SITELANG');
$langprefs = explode("|", $langpref);
$token = Db::select_row("\n select\n c.`key` as consumer_key,\n c.name as consumer_name,\n c.url as consumer_url,\n t.verifier\n from\n okapi_consumers c,\n okapi_tokens t\n where\n t.`key` = '" . mysql_real_escape_string($token_key) . "'\n and t.consumer_key = c.`key`\n ");
if (!$token) {
# Probably Request Token has expired or it was already used. We'll
# just redirect to the Opencaching main page.
return new OkapiRedirectResponse(Settings::get('SITE_URL'));
}
$vars = array('okapi_base_url' => Settings::get('SITE_URL') . "okapi/", 'token' => $token, 'verifier' => $verifier, 'site_name' => Okapi::get_normalized_site_name(), 'site_url' => Settings::get('SITE_URL'), 'site_logo' => Settings::get('SITE_LOGO'));
$response = new OkapiHttpResponse();
$response->content_type = "text/html; charset=utf-8";
ob_start();
Okapi::gettext_domain_init($langprefs);
include 'authorized.tpl.php';
$response->body = ob_get_clean();
Okapi::gettext_domain_restore();
return $response;
}
示例4: call
public static function call()
{
$token_key = isset($_GET['oauth_token']) ? $_GET['oauth_token'] : '';
$langpref = isset($_GET['langpref']) ? $_GET['langpref'] : Settings::get('SITELANG');
$langprefs = explode("|", $langpref);
$locales = array();
foreach (Locales::$languages as $lang => $attrs) {
$locales[$attrs['locale']] = $attrs;
}
# Current implementation of the "interactivity" parameter is: If developer
# wants to "confirm_user", then just log out the current user before we
# continue.
$force_relogin = isset($_GET['interactivity']) && $_GET['interactivity'] == 'confirm_user';
$token = Db::select_row("\n select\n t.`key` as `key`,\n c.`key` as consumer_key,\n c.name as consumer_name,\n c.url as consumer_url,\n t.callback,\n t.verifier\n from\n okapi_consumers c,\n okapi_tokens t\n where\n t.`key` = '" . Db::escape_string($token_key) . "'\n and t.consumer_key = c.`key`\n and t.user_id is null\n ");
$callback_concat_char = strpos($token['callback'], '?') === false ? "?" : "&";
if (!$token) {
# Probably Request Token has expired. This will be usually viewed
# by the user, who knows nothing on tokens and OAuth. Let's be nice then!
$vars = array('okapi_base_url' => Settings::get('SITE_URL') . "okapi/", 'token' => $token, 'token_expired' => true, 'site_name' => Okapi::get_normalized_site_name(), 'site_url' => Settings::get('SITE_URL'), 'site_logo' => Settings::get('SITE_LOGO'), 'locales' => $locales);
$response = new OkapiHttpResponse();
$response->content_type = "text/html; charset=utf-8";
ob_start();
$vars['locale_displayed'] = Okapi::gettext_domain_init($langprefs);
include 'authorize.tpl.php';
$response->body = ob_get_clean();
Okapi::gettext_domain_restore();
return $response;
}
# Determine which user is logged in to OC.
require_once $GLOBALS['rootpath'] . "okapi/lib/oc_session.php";
$OC_user_id = OCSession::get_user_id();
# Ensure a user is logged in (or force re-login).
if ($force_relogin || $OC_user_id == null) {
# TODO: confirm_user should first ask the user if he's "the proper one",
# and then offer to sign in as a different user.
$login_page = 'login.php?';
if ($OC_user_id !== null) {
if (Settings::get('OC_BRANCH') == 'oc.de') {
# OCDE login.php?action=logout&target=... will NOT logout and
# then redirect to the target, but it will log out, prompt for
# login and then redirect to the target after logging in -
# that's exactly the relogin that we want.
$login_page .= 'action=logout&';
} else {
# OCPL uses REAL MAGIC for session handling. I don't get ANY of it.
# The logout.php DOES NOT support the "target" parameter, so we
# can't just call it. The only thing that comes to mind is...
# Try to destroy EVERYTHING. (This still won't necessarilly work,
# because OC may store cookies in separate paths, but hopefully
# they won't).
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach ($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time() - 1000);
setcookie($name, '', time() - 1000, '/');
foreach (self::getPossibleCookieDomains() as $domain) {
setcookie($name, '', time() - 1000, '/', $domain);
}
}
}
# We should be logged out now. Let's login again.
}
}
$after_login = "okapi/apps/authorize?oauth_token={$token_key}" . ($langpref != Settings::get('SITELANG') ? "&langpref=" . $langpref : "");
$login_url = Settings::get('SITE_URL') . $login_page . "target=" . urlencode($after_login) . "&langpref=" . $langpref;
return new OkapiRedirectResponse($login_url);
}
# Check if this user has already authorized this Consumer. If he did,
# then we will automatically authorize all subsequent Request Tokens
# from this Consumer.
$authorized = Db::select_value("\n select 1\n from okapi_authorizations\n where\n user_id = '" . Db::escape_string($OC_user_id) . "'\n and consumer_key = '" . Db::escape_string($token['consumer_key']) . "'\n ", 0);
if (!$authorized) {
if (isset($_POST['authorization_result'])) {
# Not yet authorized, but user have just submitted the authorization form.
# WRTODO: CSRF protection
if ($_POST['authorization_result'] == 'granted') {
Db::execute("\n insert ignore into okapi_authorizations (consumer_key, user_id)\n values (\n '" . Db::escape_string($token['consumer_key']) . "',\n '" . Db::escape_string($OC_user_id) . "'\n );\n ");
$authorized = true;
} else {
# User denied access. Nothing sensible to do now. Will try to report
# back to the Consumer application with an error.
if ($token['callback']) {
return new OkapiRedirectResponse($token['callback'] . $callback_concat_char . "error=access_denied" . "&oauth_token=" . $token['key']);
} else {
# Consumer did not provide a callback URL (oauth_callback=oob).
# We'll have to redirect to the Opencaching main page then...
return new OkapiRedirectResponse(Settings::get('SITE_URL') . "index.php");
}
}
} else {
# Not yet authorized. Display an authorization request.
$vars = array('okapi_base_url' => Settings::get('SITE_URL') . "okapi/", 'token' => $token, 'site_name' => Okapi::get_normalized_site_name(), 'site_url' => Settings::get('SITE_URL'), 'site_logo' => Settings::get('SITE_LOGO'), 'locales' => $locales);
$response = new OkapiHttpResponse();
$response->content_type = "text/html; charset=utf-8";
ob_start();
$vars['locale_displayed'] = Okapi::gettext_domain_init($langprefs);
include 'authorize.tpl.php';
$response->body = ob_get_clean();
//.........这里部分代码省略.........
示例5: create_gpx
//.........这里部分代码省略.........
$location_change_prefix = '# ';
}
# lets find requested coords
foreach ($vars['caches'] as &$cache_ref) {
foreach ($cache_ref['alt_wpts'] as $alt_wpt_key => $alt_wpt) {
if ('alt_wpt:' . $alt_wpt['type'] == $location_source) {
# Switch locations between primary wpt and alternate wpt.
# Also alter the cache name and make sure to append a proper
# notice.
$original_location = $cache_ref['location'];
$cache_ref['location'] = $alt_wpt['location'];
$cache_ref['name_2'] = $location_change_prefix . $cache_ref['name'];
if ($location_source == "alt_wpt:user-coords") {
# In case of "user-coords", replace the default warning with a custom-tailored one.
$cache_ref['warning_prefix'] = _("<b>Geocache coordinates have been changed.</b> They have been replaced with " . "your own custom coordinates which you have provided for this geocache.");
} else {
# Default warning
$cache_ref['warning_prefix'] = _("<b>Geocache coordinates have been changed.</b> Currently they " . "point to one of the alternate waypoints originally described as:") . " " . $alt_wpt['description'];
}
# remove current alt waypoint
unset($cache_ref['alt_wpts'][$alt_wpt_key]);
# add original location as alternate
if ($vars['alt_wpts']) {
$cache_ref['alt_wpts'][] = array('name' => $cache_ref['code'] . '-DEFAULT-COORDS', 'location' => $original_location, 'type' => 'default-coords', 'type_name' => _("Original geocache location"), 'sym' => 'Block, Blue', 'description' => sprintf(_("Original (owner-supplied) location of the %s geocache"), $cache_ref['code']));
}
break;
}
}
}
}
# Do we need a GGZ index?
if ($flags & self::FLAG_CREATE_GGZ_IDX) {
# GGZ index consist of entries - one per each waypoint in the GPX file.
# We will keep a list of all such entries here.
$ggz_entries = array();
foreach ($vars['caches'] as &$cache_ref) {
# Every $cache_ref will also be holding a reference to its entry.
# Note, that more attributes are added while processing gpsfile.tpl.php!
if (!isset($cache_ref['ggz_entry'])) {
$cache_ref['ggz_entry'] = array();
}
$ggz_entry =& $cache_ref['ggz_entry'];
$ggz_entries[] =& $ggz_entry;
$ggz_entry['code'] = $cache_ref['code'];
$ggz_entry['name'] = isset($cache_ref['name_2']) ? $cache_ref['name_2'] : $cache_ref['name'];
$ggz_entry['type'] = $vars['cache_GPX_types'][$cache_ref['type']];
list($lat, $lon) = explode("|", $cache_ref['location']);
$ggz_entry['lat'] = $lat;
$ggz_entry['lon'] = $lon;
$ggz_entry['ratings'] = array();
$ratings_ref =& $ggz_entry['ratings'];
if (isset($cache_ref['rating'])) {
$ratings_ref['awesomeness'] = $cache_ref['rating'];
}
$ratings_ref['difficulty'] = $cache_ref['difficulty'];
if (!isset($cache_ref['size'])) {
$ratings_ref['size'] = 0;
// Virtual, Event
} else {
if ($cache_ref['oxsize'] !== null) {
// is this ox size one-to-one?
$ratings_ref['size'] = $cache_ref['oxsize'];
}
}
$ratings_ref['terrain'] = $cache_ref['terrain'];
if ($vars['mark_found'] && $cache_ref['is_found']) {
$ggz_entry['found'] = true;
}
# Additional waypoints. Currently, we're not 100% sure if their entries should
# be included in the GGZ file (the format is undocumented).
if (isset($cache_ref['alt_wpts'])) {
$idx = 1;
foreach ($cache_ref['alt_wpts'] as &$alt_wpt_ref) {
if (!isset($alt_wpt_ref['ggz_entry'])) {
$alt_wpt_ref['ggz_entry'] = array();
}
$ggz_entry =& $alt_wpt_ref['ggz_entry'];
$ggz_entries[] =& $ggz_entry;
$ggz_entry['code'] = $cache_ref['code'] . '-' . $idx;
$ggz_entry['name'] = $alt_wpt_ref['type_name'];
$ggz_entry['type'] = $alt_wpt_ref['sym'];
list($lat, $lon) = explode("|", $alt_wpt_ref['location']);
$ggz_entry['lat'] = $lat;
$ggz_entry['lon'] = $lon;
$idx++;
}
}
}
}
ob_start();
Okapi::gettext_domain_init(explode("|", $langpref));
# Consumer gets properly localized GPX file.
include 'gpxfile.tpl.php';
Okapi::gettext_domain_restore();
$result = array('gpx' => ob_get_clean());
if ($flags & self::FLAG_CREATE_GGZ_IDX) {
$result['ggz_entries'] = $ggz_entries;
}
return $result;
}
示例6: get_cache_attribution_note
/**
* Return attribution note for the given geocache.
*
* The $lang parameter identifies the language of the cache description
* to which the attribution note will be appended to (one cache may
* have descriptions in multiple languages!).
*
* The $langpref parameter is *an array* of language preferences
* extracted from the langpref parameter passed to the method by the
* OKAPI Consumer.
*
* Both values ($lang and $langpref) will be taken into account when
* generating the attribution note, but $lang will have a higher
* priority than $langpref (we don't want to mix the languages in the
* descriptions if we don't have to).
*
* $owner is in object describing the user, it has the same format as
* defined in "geocache" method specs (see the "owner" field).
*
* The $type is either "full" or "static". Full attributions may contain
* dates and are not suitable for the replicate module. Static attributions
* don't change that frequently.
*/
public static function get_cache_attribution_note($cache_id, $lang, array $langpref, $owner, $type)
{
$site_url = Settings::get('SITE_URL');
$site_name = Okapi::get_normalized_site_name();
$cache_url = $site_url . "viewcache.php?cacheid={$cache_id}";
Okapi::gettext_domain_init(array_merge(array($lang), $langpref));
if (Settings::get('OC_BRANCH') == 'oc.pl') {
# This does not vary on $type (yet).
$note = sprintf(_("This <a href='%s'>geocache</a> description comes from the <a href='%s'>%s</a> site."), $cache_url, $site_url, $site_name);
} else {
# OC.de wants the tld in lowercase here
$site_name = ucfirst(strtolower($site_name));
if ($type == 'full') {
$note = sprintf(_("© <a href='%s'>%s</a>, <a href='%s'>%s</a>, " . "<a href='http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en'>CC-BY-NC-ND</a>, " . "as of %s; all log entries © their authors"), $owner['profile_url'], $owner['username'], $cache_url, $site_name, strftime('%x'));
} elseif ($type == 'static') {
$note = sprintf(_("© <a href='%s'>%s</a>, <a href='%s'>%s</a>, " . "<a href='http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en'>CC-BY-NC-ND</a>; " . "all log entries © their authors"), $owner['profile_url'], $owner['username'], $cache_url, $site_name);
}
}
Okapi::gettext_domain_restore();
return $note;
}
示例7: call
public static function call(OkapiRequest $request)
{
# This is the "real" entry point. A wrapper for the _call method.
$langpref = $request->get_parameter('langpref');
if (!$langpref) {
$langpref = "en";
}
# Error messages thrown via CannotPublishException exceptions should be localized.
# They will be delivered for end user to display in his language.
Okapi::gettext_domain_init(explode("|", $langpref));
try {
# If appropriate, $success_message might be changed inside the _call.
self::$success_message = _("Your cache log entry was posted successfully.");
$log_uuid = self::_call($request);
$result = array('success' => true, 'message' => self::$success_message, 'log_uuid' => $log_uuid);
Okapi::gettext_domain_restore();
} catch (CannotPublishException $e) {
Okapi::gettext_domain_restore();
$result = array('success' => false, 'message' => $e->getMessage(), 'log_uuid' => null);
}
return Okapi::formatted_response($request, $result);
}
示例8: foreach
# was installed).
$allow_cronjobs = $uri != "update";
Okapi::init_internals($allow_cronjobs);
# Checking for allowed patterns...
try {
foreach (OkapiUrls::$mapping as $pattern => $namespace) {
$matches = null;
if (preg_match("#{$pattern}#", $uri, $matches)) {
# Pattern matched! Moving on to the proper View...
array_shift($matches);
require_once $GLOBALS['rootpath'] . "okapi/views/{$namespace}.php";
$response = call_user_func_array(array('\\okapi\\views\\' . str_replace('/', '\\', $namespace) . '\\View', 'call'), $matches);
if ($response) {
$response->display();
}
return;
}
}
} catch (Http404 $e) {
/* pass */
}
# None of the patterns matched OR method threw the Http404 exception.
require_once $GLOBALS['rootpath'] . "okapi/views/http404.php";
$response = \okapi\views\http404\View::call();
$response->display();
}
}
Okapi::gettext_domain_init();
OkapiScriptEntryPointController::dispatch_request($_SERVER['REQUEST_URI']);
Okapi::gettext_domain_restore();
示例9: call
public static function call(OkapiRequest $request)
{
# This is the "real" entry point. A wrapper for the _call method.
$langpref = $request->get_parameter('langpref');
if (!$langpref) {
$langpref = "en";
}
Okapi::gettext_domain_init(explode("|", $langpref));
try {
$position = self::_call($request);
$result = array('success' => true, 'message' => _("Your log image has been updated."), 'position' => $position);
Okapi::gettext_domain_restore();
} catch (CannotPublishException $e) {
Okapi::gettext_domain_restore();
$result = array('success' => false, 'message' => $e->getMessage(), 'position' => null);
}
return Okapi::formatted_response($request, $result);
}