本文整理汇总了PHP中changer_langue函数的典型用法代码示例。如果您正苦于以下问题:PHP changer_langue函数的具体用法?PHP changer_langue怎么用?PHP changer_langue使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了changer_langue函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_converser_post
function action_converser_post($lang, $ecrire=false)
{
if ($lang) {
include_spip('inc/lang');
if (changer_langue($lang)) {
spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, time() + 365 * 24 * 3600);
if ($ecrire)
spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, time() + 365 * 24 * 3600);
}
}
}
示例2: aide_changer_langue
function aide_changer_langue($var_lang_r, $lang_r)
{
if ($var_lang_r) {
changer_langue($lang = $var_lang_r);
}
if ($lang_r) {
changer_langue($lang = $lang_r);
} else {
$lang = $GLOBALS['spip_lang'];
}
return $lang;
}
示例3: aide_changer_langue
function aide_changer_langue($var_lang_r, $lang_r)
{
if ($var_lang_r) {
changer_langue($lang = $var_lang_r);
}
if ($lang_r) {
# pour le cas ou on a fait appel au menu de changement de langue
# (aide absente dans la langue x)
changer_langue($lang = $lang_r);
} else {
$lang = $GLOBALS['spip_lang'];
}
return $lang;
}
示例4: exec_spiplistes_aide
function exec_spiplistes_aide () {
global $spip_lang;
spiplistes_debug_log('exec_spiplistes_aide()');
$var_lang = _request('var_lang');
if (!changer_langue($var_lang)) {
$var_lang = $spip_lang;
changer_langue($var_lang);
}
$info = spiplistes_plugin_get_infos(spiplistes_get_meta_dir(_SPIPLISTES_PREFIX));
$nom = typo($info['nom']);
$version = typo($info['version']);
$f_lang = _DIR_PLUGIN_SPIPLISTES . 'docs/'._SPIPLISTES_EXEC_PREFIX.'aide_'.$var_lang.'html';
$fichier_aide_spiplistes = is_readable($f_lang)
? $f_lang
: _DIR_PLUGIN_SPIPLISTES . 'docs/'._SPIPLISTES_EXEC_PREFIX.'aide_fr.html'
;
if($content = file_get_contents($fichier_aide_spiplistes)) {
// corrige les liens images
$content = str_replace('../img_docs/', _DIR_PLUGIN_SPIPLISTES.'img_docs/', $content);
// place les vars
$pattern = array(
'/@spiplistes_name@/'
,'/@spiplistes_version@/'
,'/\$LastChangedDate:/'
,'/\$EndLastChangedDate/'
,'/@_aide@/'
);
$replacement = array(
$nom
, $version
, ''
, ''
, _T('spiplistes:_aide')
);
$content = preg_replace($pattern, $replacement, $content);
echo($content);
}
else {
aide_spiplistes_erreur();
}
}
示例5: formulaires_configurer_langue_traiter_dist
function formulaires_configurer_langue_traiter_dist()
{
$res = array('editable' => true);
if ($lang = _request('changer_langue_site')) {
include_spip('inc/lang');
// verif que la langue demandee est licite
if (changer_langue($lang)) {
ecrire_meta('langue_site', $lang);
// le test a defait ca:
utiliser_langue_visiteur();
$res['message_ok'] = _T('config_info_enregistree');
include_spip('inc/rubriques');
calculer_langues_rubriques();
}
// le test a defait ca:
utiliser_langue_visiteur();
}
if (!$res['message_ok']) {
$res['message_erreur'] = _L('erreur');
}
return $res;
}
示例6: lang_select
/**
* Sélectionne la langue donnée en argument et mémorise la courante
*
* Restaure l'ancienne langue si appellée sans argument.
*
* @note
* On pourrait économiser l'empilement en cas de non changemnt
* et lui faire retourner `False` pour prevenir l'appelant
* Le noyau de Spip sait le faire, mais pour assurer la compatibilité
* cette fonction retourne toujours non `False`
*
* @uses changer_langue()
* @param null|string $lang
* - string : Langue à appliquer,
* - null : Pour restituer la dernière langue mémorisée.
* @return string
* - string Langue utilisée.
**/
function lang_select($lang = NULL)
{
static $pile_langues = array();
if (!function_exists('changer_langue')) {
include_spip('inc/lang');
}
if ($lang === NULL) {
$lang = array_pop($pile_langues);
} else {
array_push($pile_langues, $GLOBALS['spip_lang']);
}
if (isset($GLOBALS['spip_lang']) and $lang == $GLOBALS['spip_lang']) {
return $lang;
}
changer_langue($lang);
return $lang;
}
示例7: traiter_formulaires_dynamiques
function traiter_formulaires_dynamiques($get=false){
static $post = array();
static $done = false;
if ($get) return $post;
if ($done) return false;
$done = true;
if (!($form = _request('formulaire_action')
AND $args = _request('formulaire_action_args')))
return false; // le hit peut continuer normalement
include_spip('inc/filtres');
if (($args = decoder_contexte_ajax($args,$form))===false) {
spip_log("signature ajax form incorrecte : $form");
return false; // continuons le hit comme si de rien etait
} else {
include_spip('inc/lang');
// sauvegarder la lang en cours
$old_lang = $GLOBALS['spip_lang'];
// changer la langue avec celle qui a cours dans le formulaire
// on la depile de $args car c'est un argument implicite masque
changer_langue(array_shift($args));
$verifier = charger_fonction("verifier","formulaires/$form/",true);
$post["erreurs_$form"] = pipeline(
'formulaire_verifier',
array(
'args'=>array('form'=>$form,'args'=>$args),
'data'=>$verifier?call_user_func_array($verifier,$args):array())
);
if ((count($post["erreurs_$form"])==0)){
$rev = "";
$retour = "";
if ($traiter = charger_fonction("traiter","formulaires/$form/",true))
$rev = call_user_func_array($traiter,$args);
$rev = pipeline(
'formulaire_traiter',
array(
'args'=>array('form'=>$form,'args'=>$args),
'data'=>$rev)
);
// le retour de traiter peut avoir 3 formats
// - simple message texte
// - tableau a deux entrees ($editable,$message)
// - tableau explicite ('editable'=>$editable,'message_ok'=>$message,'redirect'=>$redirect,'id_xx'=>$id_xx)
// le dernier format est celui conseille car il permet le pipelinage, en particulier
// en y passant l'id de l'objet cree/modifie
// si message_erreur est present, on considere que le traitement a echoue
// cas du message texte simple
if (!is_array($rev)){
$post["message_ok_$form"] = $rev;
}
// cas du tableau deux valeurs simple (ancien format, deconseille)
elseif (count($rev)==2
AND !array_key_exists('message_ok',$rev)
AND !array_key_exists('message_erreur',$rev)
AND !array_key_exists('redirect',$rev)) {
$post["editable_$form"] = reset($rev);
$post["message_ok_$form"] = end($rev);
}
// cas du tableau explicite (conseille)
else {
// verifier si traiter n'a pas echoue avec une erreur :
if (isset($rev['message_erreur'])) {
$post["erreurs_$form"]["message_erreur"] = $rev['message_erreur'];
}
else {
// sinon faire ce qu'il faut :
if (isset($rev['message_ok']))
$post["message_ok_$form"] = $rev['message_ok'];
if (isset($rev['editable']))
$post["editable_$form"] = $rev['editable'];
// si une redirection est demandee, appeler redirigae_formulaire qui choisira
// le bon mode de redirection (302 et on ne revient pas ici, ou javascript et on continue)
if (isset($rev['redirect']) AND $rev['redirect']){
include_spip('inc/headers');
list($masque,$message) = redirige_formulaire($rev['redirect'], '','ajaxform');
$post["message_ok_$form"] .= $message;
$retour .= $masque;
}
}
}
}
// si le formulaire a ete soumis en ajax, on le renvoie direct !
if (_request('var_ajax')){
if (find_in_path('formulaire_.php','balise/',true)) {
include_spip('inc/actions');
include_spip('public/assembler');
array_unshift($args,$form);
$retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn',$args),false);
// on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7
// sans cela le formulaire n'est pas actif apres le hit ajax
$retour = "<br class='bugajaxie' style='display:none;'/>".$retour;
ajax_retour($retour,false);
return true; // on a fini le hit
}
//.........这里部分代码省略.........
示例8: utiliser_langue_visiteur
/**
* Initialise la langue pour un visiteur du site
*
* La langue est choisie dans cet ordre :
* - Dans le cookie 'spip_lang' ou 'spip_lang_ecrire' s'il existe (selon l'espace public ou privé).
* - Sinon dans la session du visiteur.
* - Sinon dans une des langues définie en préférence du navigateur
* - Sinon la langue du site
*
* @return string
* La langue utilisée
**/
function utiliser_langue_visiteur()
{
$l = !test_espace_prive() ? 'spip_lang' : 'spip_lang_ecrire';
if (isset($_COOKIE[$l])) {
if (changer_langue($l = $_COOKIE[$l])) {
return $l;
}
}
if (isset($GLOBALS['visiteur_session']['lang'])) {
if (changer_langue($l = $GLOBALS['visiteur_session']['lang'])) {
return $l;
}
}
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $s) {
if (preg_match('#^([a-z]{2,3})(-[a-z]{2,3})?(;q=[0-9.]+)?$#i', trim($s), $r)) {
if (changer_langue($l = strtolower($r[1]))) {
return $l;
}
}
}
}
return utiliser_langue_site();
}
示例9: cmcic_traite_reponse_transaction
/**
* Traite la réponse de la banque
*
* @param array $config
* configuration du module
* @param array $response
* Données envoyées par la banque
* @return array(int $id_transaction, bool $paiement_ok)
**/
function cmcic_traite_reponse_transaction($config, $response)
{
$mode = $config['presta'];
if (isset($config['mode_test']) and $config['mode_test']) {
$mode .= "_test";
}
$config_id = bank_config_id($config);
#spip_log("call_response : traitement d'une réponse de la banque $mode !", $mode);
// on verifie que notre transaction existe bien
$contenu = $response['texte-libre'];
$contenu = urldecode($contenu);
$contenu = @unserialize($contenu);
if ($contenu === false) {
$res = bank_transaction_invalide(0, array('mode' => $mode, 'erreur' => "contenu non deserialisable", 'log' => var_export($response, true)));
cmcic_notifier_banque_erreur();
return $res;
}
// id & hash
$id_transaction = $contenu['id'];
$transaction_hash = $contenu['hash'];
$lang = $contenu['lang'];
// remettre la langue de l'utilisateur qui a demandé la transaction
// puisque ici c'est le serveur cmcic qui fait le hit
include_spip('inc/lang');
changer_langue($lang);
// cette ligne id/hash doit exister !
if (!($row = sql_fetsel("*", "spip_transactions", array("id_transaction=" . intval($id_transaction), 'transaction_hash=' . sql_quote($contenu['hash']))))) {
$res = bank_transaction_invalide($id_transaction, array('mode' => $mode, 'erreur' => "{$id_transaction} / {$transaction_hash} inconnu", 'log' => var_export($response, true)));
cmcic_notifier_banque_erreur();
return $res;
}
// ici on a tout bon !
#spip_log("call_response : données de la banque correctes. On les traite.", $mode);
switch ($response['code-retour']) {
case "Annulation":
// Payment has been refused
// put your code here (email sending / Database update)
// Attention : an autorization may still be delivered for this payment
$retour = cmcic_gerer_transaction_annulee($config, $id_transaction, $response, $row);
break;
case "payetest":
// Payment has been accepeted on the test server
// put your code here (email sending / Database update)
$retour = cmcic_gerer_transaction_payee($config, $id_transaction, $response, $row, true);
break;
case "paiement":
// Payment has been accepted on the productive server
// put your code here (email sending / Database update)
$retour = cmcic_gerer_transaction_payee($config, $id_transaction, $response, $row);
break;
/*** ONLY FOR MULTIPART PAYMENT ***/
/*** ONLY FOR MULTIPART PAYMENT ***/
case "paiement_pf2":
case "paiement_pf3":
case "paiement_pf4":
// Payment has been accepted on the productive server for the part #N
// return code is like paiement_pf[#N]
// put your code here (email sending / Database update)
// You have the amount of the payment part in $CMCIC_bruteVars['montantech']
break;
case "Annulation_pf2":
case "Annulation_pf3":
case "Annulation_pf4":
// Payment has been refused on the productive server for the part #N
// return code is like Annulation_pf[#N]
// put your code here (email sending / Database update)
// You have the amount of the payment part in $CMCIC_bruteVars['montantech']
break;
}
cmcic_notifier_banque_ok();
return $retour;
}
示例10: traiter_formulaires_dynamiques
function traiter_formulaires_dynamiques($get = false)
{
static $post = array();
static $done = false;
if ($get) {
return $post;
}
if ($done) {
return false;
}
$done = true;
if (!($form = _request('formulaire_action') and $args = _request('formulaire_action_args'))) {
return false;
}
// le hit peut continuer normalement
include_spip('inc/filtres');
if (($args = decoder_contexte_ajax($args, $form)) === false) {
spip_log("signature ajax form incorrecte : {$form}");
return false;
// continuons le hit comme si de rien etait
} else {
include_spip('inc/lang');
// sauvegarder la lang en cours
$old_lang = $GLOBALS['spip_lang'];
// changer la langue avec celle qui a cours dans le formulaire
// on la depile de $args car c'est un argument implicite masque
changer_langue(array_shift($args));
// inclure mes_fonctions et autres filtres avant verifier/traiter
include_spip('public/parametrer');
// ainsi que l'API SQL bien utile dans verifier/traiter
include_spip('base/abstract_sql');
$verifier = charger_fonction("verifier", "formulaires/{$form}/", true);
$post["erreurs_{$form}"] = pipeline('formulaire_verifier', array('args' => array('form' => $form, 'args' => $args), 'data' => $verifier ? call_user_func_array($verifier, $args) : array()));
// accessibilite : si des erreurs mais pas de message general l'ajouter
if (count($post["erreurs_{$form}"]) and !isset($post["erreurs_{$form}"]['message_erreur'])) {
$post["erreurs_{$form}"]['message_erreur'] = singulier_ou_pluriel(count($post["erreurs_{$form}"]), 'avis_1_erreur_saisie', 'avis_nb_erreurs_saisie');
}
// si on ne demandait qu'une verif json
if (_request('formulaire_action_verifier_json')) {
include_spip('inc/json');
include_spip('inc/actions');
ajax_retour(json_encode($post["erreurs_{$form}"]), 'text/plain');
return true;
// on a fini le hit
}
$retour = "";
if (count($post["erreurs_{$form}"]) == 0) {
$rev = "";
if ($traiter = charger_fonction("traiter", "formulaires/{$form}/", true)) {
$rev = call_user_func_array($traiter, $args);
}
$rev = pipeline('formulaire_traiter', array('args' => array('form' => $form, 'args' => $args), 'data' => $rev));
// le retour de traiter est
// un tableau explicite ('editable'=>$editable,'message_ok'=>$message,'redirect'=>$redirect,'id_xx'=>$id_xx)
// il permet le pipelinage, en particulier
// en y passant l'id de l'objet cree/modifie
// si message_erreur est present, on considere que le traitement a echoue
$post["message_ok_{$form}"] = '';
// on peut avoir message_ok et message_erreur
if (isset($rev['message_ok'])) {
$post["message_ok_{$form}"] = $rev['message_ok'];
}
// verifier si traiter n'a pas echoue avec une erreur :
if (isset($rev['message_erreur'])) {
$post["erreurs_{$form}"]["message_erreur"] = $rev['message_erreur'];
// si il y a une erreur on ne redirige pas
} else {
// sinon faire ce qu'il faut :
if (isset($rev['editable'])) {
$post["editable_{$form}"] = $rev['editable'];
}
// si une redirection est demandee, appeler redirigae_formulaire qui choisira
// le bon mode de redirection (302 et on ne revient pas ici, ou javascript et on continue)
if (isset($rev['redirect']) and $rev['redirect']) {
include_spip('inc/headers');
list($masque, $message) = redirige_formulaire($rev['redirect'], '', 'ajaxform');
$post["message_ok_{$form}"] .= $message;
$retour .= $masque;
}
}
}
// si le formulaire a ete soumis en ajax, on le renvoie direct !
if (_request('var_ajax')) {
if (find_in_path('formulaire_.php', 'balise/', true)) {
include_spip('inc/actions');
include_spip('public/assembler');
array_unshift($args, $form);
$retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn', $args), false);
// on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7
// sans cela le formulaire n'est pas actif apres le hit ajax
// la classe ajax-form-is-ok sert a s'assurer que le retour ajax s'est bien passe
$retour = "<br class='bugajaxie ajax-form-is-ok' style='display:none;'/>" . $retour;
ajax_retour($retour, false);
return true;
// on a fini le hit
}
}
// restaurer la lang en cours
changer_langue($old_lang);
}
//.........这里部分代码省略.........
示例11: my_strtotime
function my_strtotime($la_date, $lang = null)
{
// format complet
if (preg_match(',^(\\d+-\\d+-\\d+[T ]\\d+:\\d+(:\\d+)?)(\\.\\d+)?' . '(Z|([-+]\\d{2}):\\d+)?$,', $la_date, $match)) {
$la_date = str_replace("T", " ", $match[1]) . " GMT";
return strtotime($la_date) - intval($match[5]) * 3600;
}
// YYYY
if (preg_match(',^\\d{4}$,', $la_date, $match)) {
return strtotime($match[0] . "-01-01");
}
// YYYY-MM
if (preg_match(',^\\d{4}-\\d{2}$,', $la_date, $match)) {
return strtotime($match[0] . "-01");
}
// YYYY-MM-DD hh:mm:ss
if (preg_match(',^\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\b,', $la_date, $match)) {
return strtotime($match[0]);
}
// utiliser strtotime en dernier ressort
// en nettoyant le jour qui prefixe parfois la date, suivi d'une virgule
// et les UT qui sont en fait des UTC
$la_date_c = preg_replace("/^\\w+,\\s*/ms", "", $la_date);
$la_date_c = preg_replace("/UT\\s*\$/ms", "UTC", $la_date_c);
if ($s = strtotime($la_date) or $s = strtotime($la_date_c)) {
return $s;
}
// essayons de voir si le nom du mois est dans la langue du flux et remplacons le
// par la version anglaise avant de faire strtotime
if ($lang) {
// "fr-fr"
list($lang) = explode("-", $lang);
static $months = null;
if (!isset($months[$lang])) {
$prev_lang = $GLOBALS['spip_lang'];
changer_langue($lang);
foreach (range(1, 12) as $m) {
$s = _T("date_mois_{$m}");
$months[$lang][$s] = date("M", strtotime("2013-{$m}-01"));
$s = _T("date_mois_" . $m . "_abbr");
$months[$lang][$s] = date("M", strtotime("2013-{$m}-01"));
$months[$lang][trim($s, ".")] = date("M", strtotime("2013-{$m}-01"));
}
changer_langue($prev_lang);
}
spip_log($la_date_c, "dbgs");
foreach ($months[$lang] as $loc => $en) {
if (stripos($la_date_c, $loc) !== false) {
$s = str_ireplace($loc, $en, $la_date_c);
if ($s = strtotime($s)) {
return $s;
}
}
}
}
// erreur
spip_log("Impossible de lire le format de date '{$la_date}'");
return false;
}
示例12: include_spip
$GLOBALS['couleur_foncee'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_foncee'];
$GLOBALS['couleur_claire'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_claire'];
// charger l'affichage minimal et initialiser a la langue par defaut
include_spip('inc/minipres');
// si la langue est specifiee par cookie alors ...
if (isset($GLOBALS['_COOKIE']['spip_lang_ecrire'])) {
$spip_lang_ecrire = $GLOBALS['_COOKIE']['spip_lang_ecrire'];
// si pas authentifie, changer juste pour cette execution
if ($var_auth)
changer_langue($GLOBALS['_COOKIE']['spip_lang_ecrire']);
// si authentifie, changer definitivement si ce n'est fait
else { if (($spip_lang_ecrire <> $GLOBALS['auteur_session']['lang'])
AND changer_langue($spip_lang_ecrire)) {
spip_query("UPDATE spip_auteurs SET lang = " . _q($spip_lang_ecrire) . " WHERE id_auteur = " . intval($GLOBALS['auteur_session']['id_auteur']));
$GLOBALS['auteur_session']['lang'] = $var_lang_ecrire;
$session = charger_fonction('session', 'inc');
$session($GLOBALS['auteur_session']);
}
}
}
utiliser_langue_visiteur();
define('_TRANCHES', 10);
//
// Gestion d'une page normale de l'espace prive
//
示例13: appliquer_modifs_config
function appliquer_modifs_config($purger_skel=false) {
if (($i = _request('adresse_site'))!==NULL){
if (!strlen($i)) {$GLOBALS['profondeur_url']=_DIR_RESTREINT?0:1;$i = url_de_base();}
$_POST['adresse_site'] = preg_replace(",/?\s*$,", "", $i);
}
// provoquer l'envoi des nouveautes en supprimant le fichier lock
if (_request('envoi_now')) {
spip_unlink(_DIR_TMP . 'mail.lock');
}
// Purger les squelettes si un changement de meta les affecte
if ($i = _request('post_dates') AND ($i != $GLOBALS['meta']["post_dates"]))
$purger_skel = true;
if ($accepter_forum = _request('forums_publics')
AND ($accepter_forum != $GLOBALS['meta']["forums_publics"])) {
$purger_skel = true;
$accepter_forum = substr($accepter_forum,0,3);
}
// Appliquer les changements de moderation forum
// forums_publics_appliquer : futur, saufnon, tous
if (in_array($appliquer = _request('forums_publics_appliquer'),
array('tous', 'saufnon')
)) {
$sauf = ($appliquer == 'saufnon')
? "accepter_forum != 'non'"
: '';
sql_updateq('spip_articles', array('accepter_forum'=>$accepter_forum), $sauf);
}
if ($accepter_forum == 'abo')
ecrire_meta('accepter_visiteurs', 'oui');
if ($i = _request('langues_auth') AND is_array($i)) {
set_request('langues_multilingue', join($i, ","));
}
// Modification du reglage accepter_inscriptions => vider le cache
// (pour repercuter la modif sur le panneau de login)
if (($i = _request('accepter_inscriptions')
AND $i != $GLOBALS['meta']['accepter_inscriptions'])
OR ($i = _request('accepter_visiteurs')
AND $i != $GLOBALS['meta']['accepter_visiteurs'])) {
include_spip('inc/invalideur');
suivre_invalideur("1"); # tout effacer
}
foreach(liste_metas() as $i => $v) {
if (($x =_request($i))!==NULL)
ecrire_meta($i, $x);
elseif (!isset($GLOBALS['meta'][$i]))
ecrire_meta($i, $v);
}
if ($lang = _request('changer_langue_site')) {
include_spip('inc/lang');
// verif que la langue demandee est licite
if (changer_langue($lang)) {
ecrire_meta('langue_site', $lang);
}
// le test a defait ca:
utiliser_langue_visiteur();
}
if ($purger_skel) {
include_spip('inc/invalideur');
purger_repertoire(_DIR_SKELS);
}
}
示例14: aide_index_frame
function aide_index_frame($var_lang_r, $lang_r, $frame, $aide, $help_server)
{
global $spip_lang;
if ($var_lang_r)
changer_langue($lang = $var_lang_r);
if ($lang_r)
# pour le cas ou on a fait appel au menu de changement de langue
# (aide absente dans la langue x)
changer_langue($lang = $lang_r);
else $lang = $spip_lang;
// L'aide correspondant a la langue demandee est dans un cache
// reposant sur la date du fichier indiquant la version de SPIP
// (approximatif, mais c'est deja qqch)
$path = $spip_lang . "-aide.html";
$md5 = md5(serialize($help_server));
$fichier = _DIR_AIDE . substr($md5,0,16) . "-" . $path;
$lastm = is_readable($fichier) ? filemtime($fichier) : 0;
$lastversion = @filemtime(_DIR_RESTREINT . 'inc_version.php');
if (!($lastm AND ($lastm >= $lastversion))) {
$contenu = help_fichier_contenu($spip_lang, $path, $help_server);
// mettre en cache (tant pis si echec)
sous_repertoire(_DIR_AIDE,'','',true);
if ($contenu) ecrire_fichier ($fichier, $contenu);
$lastm = time();
}
$titre = _T('info_aide_en_ligne');
if (!$frame) {
echo _DOCTYPE_AIDE, html_lang_attributes();
echo help_frame_frame($titre, $aide, $lang);
echo "\n</html>";
} else {
header("Content-Type: text/html; charset=utf-8");
if (!isset($contenu)) {
lire_fichier($fichier, $contenu);
}
if (!$contenu) {
include_spip('inc/minipres');
echo minipres(_T('forum_titre_erreur'),
"<div><a href='" .
$GLOBALS['home_server'] .
"'>" .
$help_server[0] .
"</a> $aide : ".
_T('aide_non_disponible').
"</div><br /><div align='right'>".
menu_langues('var_lang_ecrire').
"</div>");
// Envoie le not-modified-since si possible, sinon envoie tout
} elseif (!help_lastmodified($lastm)) {
echo _DOCTYPE_AIDE, html_lang_attributes();
if ($frame === 'menu') {
$contenu = help_menu_rubrique($aide, $contenu);
echo help_frame_menu($titre, $contenu, $lang);
} else {
if ($aide) {
$contenu = help_section($aide, $contenu);
if (!$contenu) spip_log("aide inconnue $aide dans " . substr($contenu, 0, 150));
}
echo help_frame_body($titre, $aide, $contenu, $lang);
}
echo "\n</html>";
}
}
}
示例15: lang_select
function lang_select ($lang=NULL) {
static $pile_langues = array();
include_spip('inc/lang');
if ($lang === NULL)
$lang = array_pop($pile_langues);
else {
array_push($pile_langues, $GLOBALS['spip_lang']);
}
if ($lang == $GLOBALS['spip_lang'])
return $lang;
changer_langue($lang);
return $lang;
}