• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP spip_connect函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP spip_file_get_contents函数代码示例发布时间:2022-05-23
下一篇:
PHP spider_featured_themes函数代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap