本文整理汇总了PHP中spip_connect函数的典型用法代码示例。如果您正苦于以下问题:PHP spip_connect函数的具体用法?PHP spip_connect怎么用?PHP spip_connect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了spip_connect函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: base_prefixe_tables
/**
* Retrouver le prefixe des tables
* @param string $serveur
* @return string
*/
function base_prefixe_tables($serveur = '')
{
spip_connect($serveur);
$connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
$prefixe = $connexion['prefixe'];
return $prefixe;
}
开发者ID:genma,项目名称:spip_ynh,代码行数:12,代码来源:dump.php
示例2: action_converser_dist
function action_converser_dist()
{
if ($lang = _request('var_lang'))
action_converser_post($lang);
elseif ($lang = _request('var_lang_ecrire')) {
if ( _request('arg') AND spip_connect()) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
$GLOBALS['visiteur_session']['lang'] = $lang;
$session = charger_fonction('session', 'inc');
if ($spip_session = $session($GLOBALS['visiteur_session'])) {
spip_setcookie(
'spip_session',
$spip_session,
time() + 3600 * 24 * 14
);
}
}
action_converser_post($lang, 'spip_lang_ecrire');
}
$redirect = rawurldecode(_request('redirect'));
if (!$redirect) $redirect = _DIR_RESTREINT_ABS;
$redirect = parametre_url($redirect,'lang',$lang,'&');
redirige_par_entete($redirect, true);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:29,代码来源:converser.php
示例3: dump_afficher_tables_sauvegardees
function dump_afficher_tables_sauvegardees($status_file)
{
$status = dump_lire_status($status_file);
$tables = $status['tables_copiees'];
// lister les tables sauvegardees et aller verifier dans le dump
// qu'on a le bon nombre de donnees
dump_serveur($status['connect']);
spip_connect('dump');
foreach ($tables as $t => $n) {
$n = abs(intval($n));
$n_dump = intval(sql_countsel($t, '', '', '', 'dump'));
$res = "{$t} ";
if ($n_dump == 0 and $n == 0) {
$res .= "(" . _T('dump:aucune_donnee') . ")";
} else {
$res .= "({$n_dump}/{$n})";
}
if ($n !== $n_dump) {
$res = "<strong>{$res}</strong>";
}
$tables[$t] = $res;
}
$n = floor(count($tables) / 2);
$corps = "<div style='width:49%;float:left;'><ul class='spip'><li class='spip'>" . join("</li><li class='spip'>", array_slice($tables, 0, $n)) . "</li></ul></div>" . "<div style='width:49%;float:left;'><ul class='spip'><li>" . join("</li><li class='spip'>", array_slice($tables, $n)) . "</li></ul></div>" . "<div class='nettoyeur'></div>";
return $corps;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:26,代码来源:sauvegarder_fonctions.php
示例4: verifier_crash_tables
/**
* Vérifier si une table a crashé
*
* Pour cela, on vérifie si on peut se connecter à la base de données.
*
* @see message_crash_tables()
*
* @return bool|array
* Si pas de table de crashée, on retourne `false`.
* Sinon, retourne un tableau contenant tous les noms
* des tables qui ont crashé.
*/
function verifier_crash_tables()
{
if (spip_connect()) {
include_spip('base/serial');
include_spip('base/auxiliaires');
$crash = array();
foreach (array('tables_principales', 'tables_auxiliaires') as $com) {
foreach ($GLOBALS[$com] as $table => $desc) {
if (!sql_select('*', $table, '', '', '', 1) and !defined('spip_interdire_cache')) {
# cas "LOST CONNECTION"
$crash[] = $table;
}
}
}
#$crash[] = 'test';
if ($crash) {
ecrire_meta('message_crash_tables', serialize($crash));
spip_log('crash des tables', 'err');
spip_log($crash, 'err');
} else {
effacer_meta('message_crash_tables');
}
return $crash;
}
return false;
}
开发者ID:JLuc,项目名称:SPIP,代码行数:38,代码来源:maintenance.php
示例5: exec_admin_repair_dist
function exec_admin_repair_dist()
{
$ok = false;
if (!spip_connect())
$message = _T('titre_probleme_technique');
else {
$version_sql = sql_version();
if (!$version_sql)
$message = _T('avis_erreur_connexion_mysql');
else {
$s = $GLOBALS['connexions'][0]['type'];
if ($s == 'mysql'
AND version_compare($version_sql,'3.23.14','<'))
$message = _T('avis_version_mysql', array('version_mysql' => " MySQL $version_sql"));
else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
}
$action = _T('texte_tenter_reparation');
}
if ($ok) {
$admin = charger_fonction('admin', 'inc');
echo $admin('admin_repair', $action, $message, true);
} else {
include_spip('inc/minipres');
echo minipres(_T('titre_reparation'), "<p>$message</p>");
}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:30,代码来源:admin_repair.php
示例6: base_restaurer_dist
function base_restaurer_dist($titre = '', $reprise = false)
{
$status_file = _DUMP_STATUS_FILE;
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step') + 1), '&');
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array(), 'desc_tables_dest' => array());
if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') and $desc = unserialize($desc)) {
$options['desc_tables_dest'] = $desc;
}
#var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump'));
#die();
$res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
} else {
// mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump');
sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump');
}
echo "</div>\n";
if (!$res) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
if (!$res) {
exit;
}
// quand on sort de $export avec true c'est qu'on a fini
dump_end(_DUMP_STATUS_FILE, 'restaurer');
include_spip('inc/headers');
echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
}
}
开发者ID:genma,项目名称:spip_ynh,代码行数:56,代码来源:restaurer.php
示例7: action_converser_dist
function action_converser_dist()
{
$update_session = false;
if (_request('arg') and spip_connect()) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
$update_session = true;
}
$lang = action_converser_changer_langue($update_session);
$redirect = rawurldecode(_request('redirect'));
if (!$redirect) {
$redirect = _DIR_RESTREINT_ABS;
}
$redirect = parametre_url($redirect, 'lang', $lang, '&');
redirige_par_entete($redirect, true);
}
开发者ID:genma,项目名称:spip_ynh,代码行数:16,代码来源:converser.php
示例8: base_lister_toutes_tables
/**
* Lister toutes les tables d'un serveur
* en excluant eventuellement une liste fournie
*
* @param string $serveur
* @param array $tables
* @param array $exclude
* @param bool $affiche_vrai_prefixe
* @return array
*/
function base_lister_toutes_tables($serveur = '', $tables = array(), $exclude = array(), $affiche_vrai_prefixe = false)
{
spip_connect($serveur);
$connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
$prefixe = $connexion['prefixe'];
$p = '/^' . $prefixe . '/';
$res = $tables;
foreach (sql_alltable(null, $serveur) as $t) {
if (preg_match($p, $t)) {
$t1 = preg_replace($p, 'spip', $t);
if (!in_array($t1, $tables) and !in_array($t1, $exclude)) {
$res[] = $affiche_vrai_prefixe ? $t : $t1;
}
}
}
sort($res);
return $res;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:28,代码来源:dump.php
示例9: auth_ldap_connect
/**
* Connexion a l'annuaire LDAP
* Il faut passer par spip_connect() pour avoir les info
* donc potentiellement indiquer un serveur
* meme si dans les fait cet argument est toujours vide
*
* @param string $serveur
* @return string
*/
function auth_ldap_connect($serveur='') {
include_spip('base/connect_sql');
static $connexions_ldap = array();
if (isset($connexions_ldap[$serveur])) return $connexions_ldap[$serveur];
$connexion = spip_connect($serveur);
if (!is_array($connexion['ldap'])) {
if ($connexion['authentification']['ldap']) {
$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
unset($GLOBALS['ldap_link']);
if (is_readable($f)) include_once($f);
if (isset($GLOBALS['ldap_link']))
$connexion['ldap'] = array('link' => $GLOBALS['ldap_link'],
'base' => $GLOBALS['ldap_base']);
else spip_log("connection LDAP $serveur mal definie dans $f");
if (isset($GLOBALS['ldap_champs']))
$connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
} else spip_log("connection LDAP $serveur inconnue");
}
return $connexions_ldap[$serveur]=$connexion['ldap'];
}
开发者ID:rhertzog,项目名称:lcs,代码行数:29,代码来源:ldap.php
示例10: inc_sauvegarder_dist
function inc_sauvegarder_dist($status_file, $redirect = '')
{
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
$res = false;
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array());
$res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
}
echo "</div>\n";
if (!$res and $redirect) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
return $res;
}
}
开发者ID:genma,项目名称:spip_ynh,代码行数:40,代码来源:sauvegarder.php
示例11: exec_base_repair_dist
/**
* Reparer la base de donnees
*/
function exec_base_repair_dist()
{
$ok = false;
if (!spip_connect()) {
$message = _T('titre_probleme_technique');
} else {
$version_sql = sql_version();
if (!$version_sql) {
$message = _T('avis_erreur_connexion_mysql');
} else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
$action = _T('texte_tenter_reparation');
}
if ($ok) {
$admin = charger_fonction('admin', 'inc');
echo $admin('repair', $action, $message, true);
} else {
include_spip('inc/minipres');
echo minipres(_T('titre_reparation'), "<p>{$message}</p>");
}
}
开发者ID:nursit,项目名称:SPIP,代码行数:26,代码来源:base_repair.php
示例12: action_confirmer_signature_dist
/**
* Confirmer une signature
* Retour a l'ecran du lien de confirmation d'une signature de petition.
* var_confirm contient le hash de la signature.
* Au premier appel on traite et on publie
* Au second appel on retourne le resultat a afficher
*
* @staticvar string $confirm
* @param <type> $var_confirm
* @return string
*/
function action_confirmer_signature_dist($var_confirm = null)
{
static $confirm = null;
// reponse mise en cache dans la session ?
$code_message = 'signature_message_' . strval($var_confirm);
if (isset($GLOBALS['visiteur_session'][$code_message])) {
return $GLOBALS['visiteur_session'][$code_message];
}
// reponse deja calculee depuis public/assembler.php
if (isset($confirm)) {
return $confirm;
}
if (is_null($var_confirm)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$var_confirm = $securiser_action();
}
if (!$var_confirm or $var_confirm == 'publie' or $var_confirm == 'poubelle') {
return '';
}
if (!spip_connect()) {
$confirm = _T('petitions:form_pet_probleme_technique');
return '';
}
include_spip('inc/texte');
include_spip('inc/filtres');
// Suppression d'une signature par un moderateur ?
// Cf. plugin notifications
if (isset($_GET['refus'])) {
// verifier validite de la cle de suppression
// l'id_signature est dans var_confirm
include_spip('inc/securiser_action');
if ($id_signature = intval($var_confirm) and ($_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere') or $_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere_ancien'))) {
include_spip('action/editer_signature');
signature_modifier($id_signature, array("statut" => 'poubelle'));
$confirm = _T('petitions:info_signature_supprimee');
} else {
$confirm = _T('petitions:info_signature_supprimee_erreur');
}
return '';
}
$row = sql_fetsel('*', 'spip_signatures', "statut=" . sql_quote($var_confirm), '', "1");
if (!$row) {
$confirm = _T('petitions:form_pet_aucune_signature');
return '';
}
$id_signature = $row['id_signature'];
$id_petition = $row['id_petition'];
$adresse_email = $row['ad_email'];
$url_site = $row['url_site'];
$row = sql_fetsel('email_unique, site_unique, id_article', 'spip_petitions', "id_petition=" . intval($id_petition));
$email_unique = $row['email_unique'] == "oui";
$site_unique = $row['site_unique'] == "oui";
$id_article = $row['id_article'];
include_spip('action/editer_signature');
signature_modifier($id_signature, array('statut' => 'publie'));
if ($email_unique) {
$r = "id_petition=" . intval($id_petition) . " AND ad_email=" . sql_quote($adresse_email);
if (signature_entrop($r)) {
$confirm = _T('petitions:form_pet_deja_signe');
}
}
if ($site_unique) {
$r = "id_petition=" . intval($id_petition) . " AND url_site=" . sql_quote($url_site);
if (signature_entrop($r)) {
$confirm = _T('petitions:form_pet_site_deja_enregistre');
}
}
include_spip('inc/session');
if (!$confirm) {
$confirm = _T('petitions:form_pet_signature_validee');
// noter dans la session que l'email est valide
// de facon a permettre de signer les prochaines
// petitions sans refaire un tour d'email
session_set('email_confirme', $adresse_email);
// invalider les pages ayant des boucles signatures
include_spip('inc/invalideur');
suivre_invalideur("id='signature/{$id_signature}'");
suivre_invalideur("id='article/{$id_article}'");
}
// Conserver la reponse dans la session du visiteur
if ($confirm) {
session_set($code_message, $confirm);
}
}
开发者ID:genma,项目名称:spip_ynh,代码行数:95,代码来源:confirmer_signature.php
示例13: spip_mysql_query
/**
* Exécute une requête MySQL, munie d'une trace à la demande
*
* @param string $query Requête
* @param string $serveur Nom de la connexion
* @param bool $requeter Exécuter la requête, sinon la retourner
* @return array|resource|string|bool
* - string : Texte de la requête si on ne l'exécute pas
* - ressource|bool : Si requête exécutée
* - array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
*/
function spip_mysql_query($query, $serveur = '', $requeter = true)
{
$connexion =& $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
$prefixe = $connexion['prefixe'];
$link = $connexion['link'];
$db = $connexion['db'];
$query = _mysql_traite_query($query, $db, $prefixe);
// renvoyer la requete inerte si demandee
if (!$requeter) {
return $query;
}
if (isset($_GET['var_profile'])) {
include_spip('public/tracer');
$t = trace_query_start();
} else {
$t = 0;
}
$connexion['last'] = $query;
$connexion['total_requetes']++;
// ajouter un debug utile dans log/mysql-slow.log ?
$debug = '';
if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
if (isset($GLOBALS['debug']['aucasou'])) {
list(, $id, , $infos) = $GLOBALS['debug']['aucasou'];
$debug .= " BOUCLE{$id} @ " . $infos[0] . " | ";
}
$debug .= " " . $_SERVER['REQUEST_URI'] . ' + ' . $GLOBALS['ip'];
$debug = ' /*' . str_replace('*/', '@/', $debug) . ' */';
}
$r = mysqli_query($link, $query . $debug);
//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
if ($e = spip_mysql_errno($serveur)) {
// Log d'un Gone Away
if ($e == 2006) {
//Si Gone Away on relance une connexion vierge
//Fermer la connexion defaillante
mysqli_close($connexion['link']);
unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
//Relancer une connexion vierge
spip_connect($serveur);
$connexion =& $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
$link = $connexion['link'];
//On retente au cas où
$r = mysqli_query($link, $query . $debug);
}
}
if ($e = spip_mysql_errno($serveur)) {
// Log de l'erreur eventuelle
$e .= spip_mysql_error($query, $serveur);
}
// et du fautif
return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
}
开发者ID:phenix-factory,项目名称:SPIP,代码行数:64,代码来源:mysql.php
示例14: actualise_plugins_actifs
function actualise_plugins_actifs($pipe_recherche = false){
if (!spip_connect()) return false;
$plugin_actifs = liste_chemin_plugin_actifs();
$plugin_liste = liste_plugin_files();
$plugin_new = array_intersect($plugin_actifs,$plugin_liste);
$actifs_avant = $GLOBALS['meta']['plugin'];
ecrire_plugin_actifs($plugin_new,$pipe_recherche);
// retourner -1 si la liste des plugins actifs a change
return (strcmp($GLOBALS['meta']['plugin'],$actifs_avant)==0) ? 1 : -1;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:10,代码来源:plugin.php
示例15: formulaires_signature_traiter_dist
function formulaires_signature_traiter_dist($id_article)
{
$reponse = _T('petitions:form_pet_probleme_technique');
include_spip('base/abstract_sql');
if (spip_connect()) {
$controler_signature = charger_fonction('controler_signature', 'inc');
$reponse = $controler_signature($id_article, _request('session_nom'), _request('session_email'), _request('message'), _request('signature_nom_site'), _request('signature_url_site'), _request('url_page'));
}
return array('message_ok' => $reponse);
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:10,代码来源:signature.php
示例16: auth_retrouver_login
/**
* Retrouver le login interne lie a une info login saisie
* la saisie peut correspondre a un login delegue
* qui sera alors converti en login interne apres verification
*
* @param string $login
* @param string $serveur
* @return string/bool
*/
function auth_retrouver_login($login, $serveur = '')
{
if (!spip_connect($serveur)) {
include_spip('inc/minipres');
echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
exit;
}
foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
if ($auteur = auth_administrer('retrouver_login', array($methode, $login, $serveur))) {
return $auteur;
}
}
return false;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:23,代码来源:auth.php
示例17: public_cacher_dist
function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) {
// Second appel, destine a l'enregistrement du cache sur le disque
if (isset($chemin_cache)) return creer_cache($page, $chemin_cache);
// Toute la suite correspond au premier appel
$contexte_implicite = $page['contexte_implicite'];
// Cas ignorant le cache car completement dynamique
if ($_SERVER['REQUEST_METHOD'] == 'POST'
OR (substr($contexte_implicite['cache'],0,8)=='modeles/')
OR (_request('connect'))
// Mode auteur authentifie appelant de ecrire/ : il ne faut rien lire du cache
// et n'y ecrire que la compilation des squelettes (pas les pages produites)
// car les references aux repertoires ne sont pas relatifs a l'espace public
OR test_espace_prive()) {
$use_cache = -1;
$lastmodified = 0;
$chemin_cache = "";
$page = array();
return;
}
// Controler l'existence d'un cache nous correspondant
$chemin_cache = generer_nom_fichier_cache($contexte, $page);
$lastmodified = 0;
// charger le cache s'il existe
if (lire_fichier(_DIR_CACHE . $chemin_cache, $page))
$page = @unserialize($page);
else
$page = array();
// s'il est sessionne, charger celui correspondant a notre session
if (isset($page['invalideurs'])
AND isset($page['invalideurs']['session'])) {
$chemin_cache_session = $chemin_cache . '_' . spip_session();
if (lire_fichier(_DIR_CACHE . $chemin_cache_session, $page_session)
AND $page_session = @unserialize($page_session)
AND $page_session['lastmodified'] >= $page['lastmodified'])
$page = $page_session;
else
$page = array();
}
// HEAD : cas sans jamais de calcul pour raisons de performance
if ($_SERVER['REQUEST_METHOD'] == 'HEAD') {
$use_cache = 0;
$page = array('contexte_implicite'=>$contexte_implicite);
return;
}
// Si un calcul, recalcul [ou preview, mais c'est recalcul] est demande,
// on supprime le cache
if ($GLOBALS['var_mode'] &&
(isset($_COOKIE['spip_session'])
|| isset($_COOKIE['spip_admin'])
|| @file_exists(_ACCESS_FILE_NAME))
) {
$page = array('contexte_implicite'=>$contexte_implicite); // ignorer le cache deja lu
include_spip('inc/invalideur');
retire_caches($chemin_cache); # API invalideur inutile
supprimer_fichier(_DIR_CACHE.$chemin_cache);
if ($chemin_cache_session)
supprimer_fichier(_DIR_CACHE.$chemin_cache_session);
}
// $delais par defaut (pour toutes les pages sans #CACHE{})
if (!isset($GLOBALS['delais'])) {
define('_DUREE_CACHE_DEFAUT', 24*3600);
$GLOBALS['delais'] = _DUREE_CACHE_DEFAUT;
}
// determiner la validite de la page
if ($page) {
$use_cache = cache_valide($page, $page['lastmodified']);
// le contexte implicite n'est pas stocke dans le cache, mais il y a equivalence
// par le nom du cache. On le reinjecte donc ici pour utilisation eventuelle au calcul
$page['contexte_implicite'] = $contexte_implicite;
if (!$use_cache) {
// $page est un cache utilisable
gunzip_page($page);
return;
}
} else {
$page = array('contexte_implicite'=>$contexte_implicite);
$use_cache = cache_valide($page,0); // fichier cache absent : provoque le calcul
}
// Si pas valide mais pas de connexion a la base, le garder quand meme
if (!spip_connect()) {
if (isset($page['texte'])) {
gunzip_page($page);
$use_cache = 0;
}
else {
spip_log("Erreur base de donnees, impossible utiliser $chemin_cache");
include_spip('inc/minipres');
return minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
}
//.........这里部分代码省略.........
开发者ID:rhertzog,项目名称:lcs,代码行数:101,代码来源:cacher.php
示例18: cron
/**
* cron() : execution des taches de fond
* On peut lui passer en 1er (ou 2e arg pour compat)
* le tableau de taches attendu par inc_genie()
* Retourne Vrai si un tache a pu etre effectuee
* pas de verrou ici : les verrous sont geres sur chaque tache
* a chaque execution
*
* http://code.spip.net/@cron
*
* @param array $taches
* taches forcees
* @param array $taches_old
* taches forcees, pour compat avec ancienne syntaxe
* @return bool
*/
function cron($taches = array(), $taches_old = array())
{
// si pas en mode cron force, laisser tomber.
if (!defined('_DIRECT_CRON_FORCE')) {
return false;
}
if (!is_array($taches)) {
$taches = $taches_old;
}
// compat anciens appels
// si taches a inserer en base et base inaccessible, laisser tomber
// sinon on ne verifie pas la connexion tout de suite, car si ca se trouve
// queue_sleep_time_to_next_job() dira qu'il n'y a rien a faire
// et on evite d'ouvrir une connexion pour rien (utilisation de _DIRECT_CRON_FORCE dans mes_options.php)
if ($taches and count($taches) and !spip_connect()) {
return false;
}
spip_log("cron !", 'jq' . _LOG_DEBUG);
if ($genie = charger_fonction('genie', 'inc', true)) {
return $genie($taches);
}
return false;
}
开发者ID:phenix-factory,项目名称:SPIP,代码行数:39,代码来源:utils.php
示例19: spip_connect_sql
function spip_connect_sql($version, $ins = '', $serveur = '', $cont = false)
{
$desc = spip_connect($serveur, $version);
if (function_exists($f = @$desc[$version][$ins])) {
return $f;
}
if ($cont) {
return $desc;
}
if ($ins) {
spip_log("Le serveur '{$serveur}' version {$version} n'a pas '{$ins}'", _LOG_ERREUR);
}
include_spip('inc/minipres');
echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
exit;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:16,代码来源:connect_sql.php
示例20: base_trouver_table_dist
/**
* Retourne la description d'une table SQL
*
* Cela sert notamment au moment de la compilation des boucles, critères et balise.
*
* Les champs et clés de la tables sont retrouvés prioritairement via le
* gestionnaire de base de données. Les descriptions sont complétées,
* pour les tables éditoriales, des informations déclarées ou construites
* par la déclaration des objets éditoriaux.
*
* @example
* $trouver_table = charger_fonction('trouver_table', 'base');
* $desc = $trouver_table('spip_groupes_mots');
*
* Cette fonction intervient à la compilation, mais aussi pour la balise
* contextuelle EXPOSE ou certains critères.
*
* L'ensemble des descriptions de table d'un serveur est stocké dans un
* fichier cache/sql_desc.txt par soucis de performance. Un appel
* avec $nom vide est une demande explicite de vidange de ce cache
*
* @see lister_tables_objets_sql()
*
* @api
* @param string $nom
* Nom de la table
* Vide '' demande de vider le cache des discriptions
* @param string $serveur
* Nom du connecteur
* @param bool $table_spip
* Indique s'il faut transformer le préfixe de table
* @return array|bool
* false si table introuvable
* tableau de description de la table sinon, en particulier :
* - field : tableau des colonnes SQL et leur description (comme dans serial.php ou objets.php)
* - key : tableau des KEY (comme dans serial.php ou objets.php)
* - table et table_sql : nom de la table (avec spip_ en préfixe)
* - id_table : nom SPIP de la table (type de boucle)
* le compilateur produit FROM $r['table'] AS $r['id_table']
* - Toutes les autres informations des objets éditoriaux si la table est l'un d'eux.
*
*
**/
function base_trouver_table_dist($nom, $serveur = '', $table_spip = true)
{
static $nom_cache_desc_sql = array();
if (!spip_connect($serveur) or !preg_match('/^[a-zA-Z0-9._-]*/', $nom)) {
return null;
}
$connexion =& $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
$objets_sql = lister_tables_objets_sql("::md5");
// le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
// ce qui permet une auto invalidation en cas de modif manuelle du fichier
// de connexion, et tout risque d'ambiguite
if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
$nom_cache_desc_sql[$serveur][$objets_sql] = _DIR_CACHE . 'sql_desc_' . ($serveur ? "{$serveur}_" : "") . substr(md5($connexion['db'] . ":" . $connexion['prefixe'] . ":{$objets_sql}"), 0, 8) . '.txt';
// nouveau nom de cache = nouvelle version en memoire
unset($connexion['tables']);
}
// un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
if (!$nom) {
spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
$connexion['tables'] = array();
return null;
}
$nom_sql = $nom;
if (preg_match('/\\.(.*)$/', $nom, $s)) {
$nom_sql = $s[1];
} else {
$nom_sql = $nom;
}
$fdesc = $desc = '';
$connexion =& $GLOBALS['connexions'][$serveur ? $serveur : 0];
// base sous SPIP: gerer les abreviations explicites des noms de table
if ($connexion['spip_connect_version']) {
if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
$nom = $GLOBALS['table_des_tables'][$nom];
$nom_sql = 'spip_' . $nom;
}
}
// si c'est la premiere table qu'on cherche
// et si on est pas explicitement en recalcul
// on essaye de recharger le cache des decriptions de ce serveur
// dans le fichier cache
if (!isset($connexion['tables'][$nom_sql]) and defined('_VAR_MODE') and _VAR_MODE !== 'recalcul' and (!isset($connexion['tables']) or !$connexion['tables'])) {
if (lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], $desc_cache) and $desc_cache = unserialize($desc_cache)) {
$connexion['tables'] = $desc_cache;
}
}
if ($table_spip and !isset($connexion['tables'][$nom_sql])) {
if (isset($GLOBALS['tables_principales'][$nom_sql])) {
$fdesc = $GLOBALS['tables_principales'][$nom_sql];
} elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
$nom_sql = 'spip_' . $nom;
$fdesc =& $GLOBALS['tables_principales'][$nom_sql];
} elseif (isset($GLOBALS['tables_auxiliaires'][$n = $nom]) or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])) {
$nom_sql = $n;
$fdesc =& $GLOBALS['tables_auxiliaires'][$n];
}
# table locale a cote de SPIP, comme non SPIP:
//.........这里部分代码省略.........
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:101,代码来源:trouver_table.php
注:本文中的spip_connect函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论