예제 #1
0
파일: meta.php 프로젝트: genma/spip_ynh
function lire_metas($table = 'meta')
{
    if ($result = spip_query("SELECT nom,valeur FROM spip_{$table}")) {
        include_spip('base/abstract_sql');
        $GLOBALS[$table] = array();
        while ($row = sql_fetch($result)) {
            $GLOBALS[$table][$row['nom']] = $row['valeur'];
        }
        sql_free($result);
        if (!$GLOBALS[$table]['charset'] or $GLOBALS[$table]['charset'] == '_DEFAULT_CHARSET') {
            ecrire_meta('charset', _DEFAULT_CHARSET, NULL, $table);
        }
        // noter cette table de configuration dans les meta de SPIP
        if ($table !== 'meta') {
            $liste = unserialize($GLOBALS['meta']['tables_config']);
            if (!$liste) {
                $liste = array();
            }
            if (!in_array($table, $liste)) {
                $liste[] = $table;
                ecrire_meta('tables_config', serialize($liste));
            }
        }
    }
    return $GLOBALS[$table];
}
예제 #2
0
파일: check_offer.php 프로젝트: nursit/bank
function wha_check_offer_dist($id_abonnement)
{
    $res = spip_query('SELECT * FROM spip_abonnements WHERE id_abonnement=' . intval($id_abonnement));
    if (!($row = spip_fetch_array($res))) {
        return false;
    }
    if ($row['mode_paiement'] != 'wha' or !($uoid = $row['abonne_uid'])) {
        spip_log("wha_check_offer :Erreur : abonnement {$id_abonnement} n'a pas ete souscrit avec wha (ou pas d'uoid)", 'wha_abo_check');
        return false;
    }
    if (!($confirm = $row['confirm']) or !($confirm = unserialize($confirm))) {
        spip_log("wha_check_offer :Erreur : abonnement {$id_abonnement} n'a pas d'url node enregistree", 'wha_abo_check');
        return false;
    }
    $config = array('MERCHANT_ID' => $confirm['partner'], 'KEY_ID' => $confirm['key'], 'node' => $confirm['node']);
    $url_check = wha_url_check_abo($uoid, 'love', $config);
    include_spip('inc/distant');
    $ack = @recuperer_page($url_check);
    spip_log($t = "wha_check_offer : reponse a {$url_check} : {$ack}", 'wha_abo_check');
    if (!$ack or !($unsign = wha_unsign($ack)) or !($args = wha_extract_args(reset($unsign)))) {
        spip_log($t = "wha_check_offer : pas de reponse valide {$url_check} : {$ack}", 'wha_abo_check');
        return null;
    }
    if (isset($args['c']) and $args['c'] == 'ack') {
        return true;
    }
    if (isset($args['e']) and in_array($args['e'], array(0, 1, 14, 15))) {
        return false;
    }
    return null;
}
예제 #3
0
파일: create.php 프로젝트: rhertzog/lcs
function maj_vieille_base_1917_create() {
  global $tables_principales, $tables_auxiliaires, $tables_images, $tables_sequences, $tables_documents, $tables_mime;

	// ne pas revenir plusieurs fois (si, au contraire, il faut pouvoir
	// le faire car certaines mises a jour le demandent explicitement)
	# static $vu = false;
	# if ($vu) return; else $vu = true;

	foreach($tables_principales as $k => $v)
		spip_create_vieille_table($k, $v['field'], $v['key'], true);

	foreach($tables_auxiliaires as $k => $v)
		spip_create_vieille_table($k, $v['field'], $v['key'], false);

	foreach($tables_images as $k => $v)
		spip_query("INSERT IGNORE INTO spip_types_documents (extension, inclus, titre, id_type) VALUES ('$k', 'image', '" .
			      (is_numeric($v) ?
			       (strtoupper($k) . "', $v") :
			       "$v', 0") .
			      ")");

	foreach($tables_sequences as $k => $v)
		spip_query("INSERT IGNORE INTO spip_types_documents (extension, titre, inclus) VALUES ('$k', '$v', 'embed')");

	foreach($tables_documents as $k => $v)
		spip_query("INSERT IGNORE INTO spip_types_documents (extension, titre, inclus) VALUES ('$k', '$v', 'non')");

	foreach ($tables_mime as $extension => $type_mime)
	  spip_query("UPDATE spip_types_documents
		SET mime_type='$type_mime' WHERE extension='$extension'");
}
예제 #4
0
파일: v016.php 프로젝트: nursit/SPIP
function maj_v016_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.6, $version_installee, $version_cible)) {
        #8/08/07  plus d'indexation dans le core
        #		include_spip('inc/indexation');
        #		purger_index();
        #		creer_liste_indexation();
        maj_version(1.6);
    }
    if (upgrade_vers(1.601, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_forum ADD INDEX id_syndic (id_syndic)");
        maj_version(1.601);
    }
    if (upgrade_vers(1.603, $version_installee, $version_cible)) {
        // supprimer les fichiers deplaces
        spip_unlink('inc_meta_cache.php');
        spip_unlink('inc_meta_cache.php3');
        spip_unlink('data/engines-list.ini');
        maj_version(1.603);
    }
    if (upgrade_vers(1.604, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_auteurs ADD lang VARCHAR(10) DEFAULT '' NOT NULL");
        $u = spip_query("SELECT * FROM spip_auteurs WHERE prefs LIKE '%spip_lang%'");
        while ($row = sql_fetch($u)) {
            $prefs = unserialize($row['prefs']);
            $l = $prefs['spip_lang'];
            unset($prefs['spip_lang']);
            spip_query("UPDATE spip_auteurs SET lang=" . _q($l) . ", prefs='" . addslashes(serialize($prefs)) . "' WHERE id_auteur=" . $row['id_auteur']);
        }
        $u = spip_query("SELECT lang FROM spip_auteurs");
        maj_version(1.604, $u);
    }
}
예제 #5
0
/**
 * Cron de calcul des popularités des articles
 *
 * @uses genie_popularite_constantes()
 *
 * @param int $t
 *     Timestamp de la dernière exécution de cette tâche
 * @return int
 *     Positif si la tâche a été terminée, négatif pour réexécuter cette tâche
 **/
function genie_popularites_dist($t)
{
    // Si c'est le premier appel, ne pas calculer
    $t = $GLOBALS['meta']['date_popularites'];
    ecrire_meta('date_popularites', time());
    if (!$t) {
        return 1;
    }
    $duree = time() - $t;
    list($a, $b) = genie_popularite_constantes($duree);
    // du passe, faisons table (SQL) rase
    sql_update('spip_articles', array('maj' => 'maj', 'popularite' => "popularite * {$a}"), 'popularite>1');
    // enregistrer les metas...
    $row = sql_fetsel('MAX(popularite) AS max, SUM(popularite) AS tot', "spip_articles");
    ecrire_meta("popularite_max", $row['max']);
    ecrire_meta("popularite_total", $row['tot']);
    // Une fois par jour purger les referers du jour ; qui deviennent
    // donc ceux de la veille ; au passage on stocke une date_statistiques
    // dans spip_meta - cela permet au code d'etre "reentrant", ie ce cron
    // peut etre appele par deux bases SPIP ne partageant pas le meme
    // _DIR_TMP, sans tout casser...
    $aujourdhui = date("Y-m-d");
    if (($d = $GLOBALS['meta']['date_statistiques']) != $aujourdhui) {
        spip_log("Popularite: purger referer depuis {$d}");
        ecrire_meta('date_statistiques', $aujourdhui);
        if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) == 0) {
            spip_query("UPDATE spip_referers SET visites_veille=visites_jour, visites_jour=0");
        } else {
            sql_alter("TABLE spip_referers DROP visites_veille,\n\t\t\tCHANGE visites_jour visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0',\n\t\t\tADD visites_jour INT(10) UNSIGNED NOT NULL DEFAULT '0'");
        }
    }
    // et c'est fini pour cette fois-ci
    return 1;
}
예제 #6
0
파일: v011.php 프로젝트: genma/spip_ynh
function maj_v011_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.1, $version_installee, $version_cible)) {
        spip_query("DROP TABLE spip_petition");
        spip_query("DROP TABLE spip_signatures_petition");
        maj_version(1.1);
    }
}
예제 #7
0
파일: v012.php 프로젝트: nursit/SPIP
function maj_v012_dist($version_installee, $version_cible)
{
    // Correction de l'oubli des modifs creations depuis 1.04
    if (upgrade_vers(1.204, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD accepter_forum VARCHAR(3) NOT NULL");
        spip_query("ALTER TABLE spip_forum ADD id_message bigint(21) NOT NULL");
        spip_query("ALTER TABLE spip_forum ADD INDEX id_message (id_message)");
        spip_query("ALTER TABLE spip_auteurs ADD en_ligne datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        spip_query("ALTER TABLE spip_auteurs ADD imessage VARCHAR(3) not null");
        spip_query("ALTER TABLE spip_auteurs ADD messagerie VARCHAR(3) not null");
        maj_version(1.204);
    }
    if (upgrade_vers(1.207, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_rubriques DROP INDEX id_rubrique");
        spip_query("ALTER TABLE spip_rubriques ADD INDEX id_parent (id_parent)");
        spip_query("ALTER TABLE spip_rubriques ADD statut VARCHAR(10) NOT NULL");
        // Declencher le calcul des rubriques publiques
        include_spip('inc/rubriques');
        calculer_rubriques();
        maj_version(1.207);
    }
    if (upgrade_vers(1.208, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_auteurs_messages CHANGE forum vu CHAR(3) NOT NULL");
        spip_query("UPDATE spip_auteurs_messages SET vu='oui'");
        spip_query("UPDATE spip_auteurs_messages SET vu='non' WHERE statut='a'");
        spip_query("ALTER TABLE spip_messages ADD id_auteur bigint(21) NOT NULL");
        spip_query("ALTER TABLE spip_messages ADD INDEX id_auteur (id_auteur)");
        $result = spip_query("SELECT id_auteur, id_message FROM spip_auteurs_messages WHERE statut='de'");
        while ($row = sql_fetch($result)) {
            $id_auteur = $row['id_auteur'];
            $id_message = $row['id_message'];
            spip_query("UPDATE spip_messages SET id_auteur={$id_auteur} WHERE id_message={$id_message}");
        }
        spip_query("ALTER TABLE spip_auteurs_messages DROP statut");
        maj_version(1.208);
    }
    if (upgrade_vers(1.209, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic ADD maj TIMESTAMP");
        spip_query("ALTER TABLE spip_syndic_articles ADD maj TIMESTAMP");
        spip_query("ALTER TABLE spip_messages ADD maj TIMESTAMP");
        maj_version(1.209);
    }
    if (upgrade_vers(1.21, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_messages DROP page");
        stripslashes_base('spip_articles', array('surtitre', 'titre', 'soustitre', 'descriptif', 'chapo', 'texte', 'ps'));
        stripslashes_base('spip_auteurs', array('nom', 'bio', 'nom_site'));
        stripslashes_base('spip_breves', array('titre', 'texte', 'lien_titre'));
        stripslashes_base('spip_forum', array('titre', 'texte', 'auteur', 'nom_site'));
        stripslashes_base('spip_messages', array('titre', 'texte'));
        stripslashes_base('spip_mots', array('type', 'titre', 'descriptif', 'texte'));
        stripslashes_base('spip_petitions', array('texte'));
        stripslashes_base('spip_rubriques', array('titre', 'descriptif', 'texte'));
        stripslashes_base('spip_signatures', array('nom_email', 'nom_site', 'message'));
        stripslashes_base('spip_syndic', array('nom_site', 'descriptif'));
        stripslashes_base('spip_syndic_articles', array('titre', 'lesauteurs'));
        maj_version(1.21);
    }
}
예제 #8
0
function getenfant($leparent,$rubselected){
	static $i = 0, $premier = 1;
	
	$i++;
 	$query="SELECT * FROM spip_rubriques WHERE id_parent='$leparent' ORDER BY titre";
 	$result = spip_query($query);

	while($row=spip_fetch_array($result)){
		$my_rubrique=$row['id_rubrique'];
		$titre=typo($row['titre']);
		$style = "";

		$espace="";
		for ($count=1;$count<$i;$count++){
			$espace.="&nbsp;&nbsp;&nbsp; ";
		}

		switch ($i) {
		case 1:
			$espace= "";
			$style .= "font-weight: bold;";
			break;
		case 2:
			$style .= "color: #202020;";
			break;
		case 3:
			$style .= "color: #404040;";
			break;
		case 4:
			$style .= "color: #606060;";
			break;
		case 5:
			$style .= "color: #808080;";
			break;
		default;
			$style .= "color: #A0A0A0;";
			break;
		}
		if (!(($pospoint = strpos($titre,'.')) === FALSE)) {
			$titre = substr($titre,$pospoint + 2);
		}
		$titre = substr($titre,0, 50); // largeur maxi
		
		//if ($i == 1 && !$premier) {
		$option = "<option value='$my_rubrique' style=\"$style\"";
		
		if ($rubselected == $my_rubrique) {
			$option .= " selected";
		}
		echo "$option>$espace".$titre."</option>\n";
	
		$premier = 0;
		getenfant($my_rubrique,$rubselected);
	}
	$i=$i-1;
}
예제 #9
0
/**
 * Mise à jour 11388 : réparer les referers d'article, qui sont vides depuis r10572
 */
function maj_11388()
{
    $s = sql_select('referer_md5', 'spip_referers_articles', "referer='' OR referer IS NULL");
    while ($t = sql_fetch($s)) {
        $k = sql_fetsel('referer', 'spip_referers', 'referer_md5=' . sql_quote($t['referer_md5']));
        if ($k['referer']) {
            spip_query('UPDATE spip_referers_articles
			SET referer=' . sql_quote($k['referer']) . '
			WHERE referer_md5=' . sql_quote($t['referer_md5']) . " AND (referer='' OR referer IS NULL)");
        }
    }
}
예제 #10
0
function cs_titre_sql($table, $where) {
	$titre = cs_titre_champ($table);
	// Utiliser la bonne requete en fonction de la version de SPIP
	if(function_exists('sql_getfetsel') && function_exists('table_objet_sql')) {
		// SPIP 2.0
		if($r = sql_getfetsel($titre, table_objet_sql($table), $where))
			return $r;
	} else {
		if($r = spip_query("SELECT $titre FROM spip_$table WHERE $where"))
			// s'il existe un champ, on le retourne
			if($row = spip_fetch_array($r)) return $row[$titre];
	}
	// sinon, rien !
	return '';
}
예제 #11
0
function get_liste_administrateurs() {
	include_spip('inc/autoriser');
	include_spip('inc/texte');
	$admins = $webmestres = array();
	$s = spip_query("SELECT * FROM spip_auteurs WHERE statut='0minirezo'");
	$fetch = function_exists('sql_fetch')?'sql_fetch':'spip_fetch_array'; // compatibilite SPIP 1.92
	while ($qui = $fetch($s)) {
		$nom = '<a href="'.generer_url_ecrire('auteur_infos',"id_auteur=$qui[id_auteur]").'">'.typo($qui['nom']."</a> (id_auteur=$qui[id_auteur])");
		if(autoriser('webmestre','','',$qui)) $webmestres[$qui['id_auteur']] = $nom;
		else if(autoriser('configurer','plugins','',$qui)) $admins[$qui['id_auteur']] = $nom;
	}
	return array(
		count($webmestres)?join(', ', $webmestres):_T('couteauprive:variable_vide'), 
		count($admins)?join(', ', $admins):_T('couteauprive:variable_vide'));
}
예제 #12
0
파일: meta.php 프로젝트: rhertzog/lcs
function lire_metas($table='meta') {

	if ($result = spip_query("SELECT nom,valeur FROM spip_$table")) {
		include_spip('base/abstract_sql');
		$GLOBALS[$table] = array();
		while ($row = sql_fetch($result))
			$GLOBALS[$table][$row['nom']] = $row['valeur'];
        sql_free($result);

		if (!$GLOBALS[$table]['charset']
		  OR $GLOBALS[$table]['charset']=='_DEFAULT_CHARSET' // hum, correction d'un bug ayant abime quelques install
		)
			ecrire_meta('charset', _DEFAULT_CHARSET, NULL, $table);
	}
	return $GLOBALS[$table];
}
function affvisit()
{
    $query = 'SELECT SUM(visites) AS total_absolu FROM spip_visites';
    $result = spip_query($query);
    $visites_today = 0;
    if ($row = spip_fetch_array($result)) {
        $total_absolu = $row['total_absolu'];
    }
    $query = 'SELECT visites FROM spip_visites WHERE date=NOW()';
    $result = spip_query($query);
    if ($row = @spip_fetch_array($result)) {
        $visites_today = $row['visites'];
    }
    $total_gen = $total_absolu + $visites_today;
    return $total_gen;
}
예제 #14
0
function _action_auteur($action, $id_auteur, $nom_alea)
{
    if (!$id_auteur) {
        global $connect_id_auteur, $connect_pass;
        $id_auteur = $connect_id_auteur;
        $pass = $connect_pass;
    } else {
        $result = spip_query("SELECT password FROM lcm_author WHERE id_author={$id_auteur}");
        if ($result) {
            if ($row = spip_fetch_array($result)) {
                $pass = $row['password'];
            }
        }
    }
    $alea = read_meta($nom_alea);
    return md5($action . $id_auteur . $pass . $alea);
}
예제 #15
0
파일: v013.php 프로젝트: nursit/SPIP
function maj_v013_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.3, $version_installee, $version_cible)) {
        // Modifier la syndication (pour liste de sites)
        spip_query("ALTER TABLE spip_syndic ADD syndication VARCHAR(3) NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD statut VARCHAR(10) NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        spip_query("UPDATE spip_syndic SET syndication='oui', statut='publie', date=NOW()");
        // Statut pour articles syndication, pour pouvoir desactiver un article
        spip_query("ALTER TABLE spip_syndic_articles ADD statut VARCHAR(10) NOT NULL");
        spip_query("UPDATE spip_syndic_articles SET statut='publie'");
        maj_version(1.3);
    }
    if (upgrade_vers(1.301, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_forum ADD id_syndic bigint(21) DEFAULT '0' NOT NULL");
        maj_version(1.301);
    }
    if (upgrade_vers(1.302, $version_installee, $version_cible)) {
        # spip_query("ALTER TABLE spip_forum_cache DROP PRIMARY KEY");
        # spip_query("ALTER TABLE spip_forum_cache DROP INDEX fichier");
        # spip_query("ALTER TABLE spip_forum_cache ADD PRIMARY KEY (fichier, id_forum, id_article, id_rubrique, id_breve, id_syndic)");
        spip_query("ALTER TABLE spip_forum ADD INDEX id_syndic (id_syndic)");
        maj_version(1.302);
    }
    if (upgrade_vers(1.303, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_rubriques ADD date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD date_syndic datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        spip_query("UPDATE spip_syndic SET date_syndic=date");
        maj_version(1.303);
    }
    if (upgrade_vers(1.306, $version_installee, $version_cible)) {
        spip_query("DROP TABLE spip_index_syndic_articles");
        spip_query("ALTER TABLE spip_syndic ADD date_index datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD INDEX date_index (date_index)");
        maj_version(1.306);
    }
    if (upgrade_vers(1.307, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic_articles ADD descriptif blob NOT NULL");
        maj_version(1.307);
    }
}
예제 #16
0
function liste_webmestres($void)
{
	$webmestres = array();
	include_spip('inc/texte');
	include_spip('inc/plugin');

	// Version SPIP < 2.1 ou alors >= 2.1 mais utilisant toujours le define pour etablir la liste
	if (!function_exists('spip_version_compare') OR 
	spip_version_compare($GLOBALS['spip_version_branche'],"2.1.0-rc","<") OR
	defined('_ID_WEBMESTRES')) {
		$s = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN (". join (',', array_filter(explode(':', _ID_WEBMESTRES), is_numeric)).")");
	}
	// Version SPIP >= 2.1 et utilisation du flag webmestre en base de donnees
	else {
		$s = spip_query("SELECT * FROM spip_auteurs WHERE webmestre='oui'");
	}

	while ($qui = sql_fetch($s)) {
		if (autoriser('webmestre','','',$qui))
			$webmestres[$qui['id_auteur']] = typo($qui['nom']);
	}
	return  join(', ', $webmestres);
}
예제 #17
0
function rec_mc_install($action){
	switch ($action) {
	// La base est deja cree ?
		case 'test':
			// Verifier que le champ id_rec_mc est present...
			include_spip('base/abstract_sql');
//			$desc = spip_abstract_showtable("spip_rmc_rubs_groupes", '', true);
			return (isset($desc['field']['id_groupe']));
			break;
	// Installer la base
		case 'install':
			include_spip('base/create');  // definir la fonction
			include_spip('base/rec_mc_tables'); // definir sa structure
			creer_base();
			break;
	// Supprimer la base
		case 'uninstall':
			spip_query("DROP TABLE spip_rmc_rubs_groupes_conf");
			spip_query("DROP TABLE spip_rmc_rubs_groupes");
			spip_query("DROP TABLE spip_rmc_mots_exclus");
		break;
	}
}
예제 #18
0
/**
 * Mises à jour de SPIP n°010
 *
 * @param float $version_installee Version actuelle
 * @param float $version_cible Version de destination
 **/
function maj_v010_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.01, $version_installee, $version_cible)) {
        spip_query("UPDATE spip_forum SET statut='publie' WHERE statut=''");
        maj_version(1.01);
    }
    if (upgrade_vers(1.02, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_forum ADD id_auteur BIGINT DEFAULT '0' NOT NULL");
        maj_version(1.02);
    }
    if (upgrade_vers(1.03, $version_installee, $version_cible)) {
        spip_query("DROP TABLE spip_maj");
        maj_version(1.03);
    }
    if (upgrade_vers(1.04, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD accepter_forum VARCHAR(3)");
        maj_version(1.04);
    }
    if (upgrade_vers(1.05, $version_installee, $version_cible)) {
        spip_query("DROP TABLE spip_petition");
        spip_query("DROP TABLE spip_signatures_petition");
        maj_version(1.05);
    }
}
예제 #19
0
파일: autoriser.php 프로젝트: rhertzog/lcs
function autoriser_forum_modifier($faire, $type, $id, $qui, $opt) {

	// Le webmestre
	if ($GLOBALS['autorite']['editer_forums'] >= 1
	AND autoriser('webmestre', $type, $id, $qui, $opt))
		return true;

	// Les admins
	if (
		$GLOBALS['autorite']['editer_forums'] >= 2
		AND $qui['statut'] == '0minirezo'
		AND !$qui['restreint']
	)
		return true;

	// L'auteur du message (enregistre')
	// 2 = avec une periode de grace d'une heure
	// 3 = ad vitam
	if ($GLOBALS['autorite']['editer_forums'] >= 3
	AND isset($qui['id_auteur'])) {
		$q = "SELECT id_forum FROM spip_forum WHERE id_forum="._q($id)." AND id_auteur="._q($qui['id_auteur']);
		if ($GLOBALS['autorite']['editer_forums'] == 3)
			$q .= " AND date_heure > DATE_SUB(NOW(), INTERVAL 1 HOUR)";
		$s = spip_query($q);
		if (sql_count($s))
			return true;
	}

	// par defaut
	return autoriser_forum_modifier_dist($faire, $type, $id, $qui, $opt);

}
	if (!function_exists('sql_query')) { function sql_query($query) {
		return spip_query($query) ;
	} }
예제 #21
0
/**
 * Tester si mysql ne veut pas du nom de la base dans les requêtes
 * 
 * @param string $server_db
 * @return string
 *     - chaîne vide si nom de la base utile
 *     - chaîne : code compilé pour le faire désactiver par SPIP sinon
 */
function test_rappel_nom_base_mysql($server_db)
{
    $GLOBALS['mysql_rappel_nom_base'] = true;
    sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
    $ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
    if ($ok) {
        sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
        return '';
    } else {
        $GLOBALS['mysql_rappel_nom_base'] = false;
        return "\$GLOBALS['mysql_rappel_nom_base'] = false; " . "/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
    }
}
예제 #22
0
파일: rec_mc.php 프로젝트: rhertzog/lcs
function exec_rec_mc_dist(){
// elements spip
global 	$connect_statut,
		$connect_toutes_rubriques,
		$connect_id_auteur,
		$couleur_claire, $couleur_foncee;

//#plug(11-07) : fonctions requises...(construction de la liste des rubriques, ...)
	include_spip("inc/rec_mc_inc_fonct");

//#plug(11-07) : Initialisation de l'id rubrique . Mis a -1 pour le premier affichage
	$rub = -1;
//#plug(11-07) : Recupération de l'id rubrique si $_post
	if (isset($_POST['rub'])) 
		$rub = $_POST['rub'];
	elseif (isset($_GET['rub'])) 
		$rub = $_GET['rub'];
		
	$Refresh  = "";		
	if (isset($_POST['refresh'])) {
		$Refresh = $_POST['refresh'];
	}
	elseif (isset($_GET['refresh'])) {
		$Refresh = $_GET['refresh'];
	}

//#plug(11-07) : construction des "blocs"	
include_spip("inc/rec_mc_inc_pres");

$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('rmc:titre_page_admin'), "suivi", "rec_mc");
		echo "<a name='haut_page'></a><br />";
		echo gros_titre(_T('rmc:titre_page_admin'),'',false);


echo debut_gauche('', true);	

	//#plug(11-07) :  TODO : Etat des lieux...
		menu_admin() ;

	creer_colonne_droite();

	//#plug(11-07) :  vers popup aide 
	bloc_ico_aide_ligne();

	//#plug(11-07) :  signature
	echo "<br />";
	echo debut_boite_info(true);
		echo _T('rmc:signature');
	echo fin_boite_info(true);
	echo "<br />";

echo debut_droite('', true);

	echo debut_cadre_relief( _DIR_IMG_REC_MC."rec_mc-24.png");

		echo gros_titre(_T('rmc:titre_config'),'',false);

		echo _T('rmc:info_config');
		echo "<br />";

		//#plug(11-07) :  verif de l'existence d'au moins une rubrique
		$r=mysql_query("SELECT * FROM spip_rubriques");
		$nb_r=mysql_num_rows($r);		
		//#plug(11-07) : verif de l'existence d'au moins un groupe de mots
		$g=mysql_query("SELECT * FROM spip_groupes_mots");
		$nb_g=mysql_num_rows($g);		
		if($nb_r==0){
		echo	debut_boite_erreur(_T('rmc:erreur_rubrique')) ;

		}else if($nb_g==0){
		echo	debut_boite_erreur(_T('rmc:erreur_groupes_mots')) ;

		}else{
			//#plug(11-07) : Selectionner une rubrique
			echo debut_cadre_trait_couleur('',true, '', _T('rmc:rubriques'));
			echo _T('rmc:text_select_rubrique')." <br /><br />";

			echo "<form action=\" ".$PHP_SELF." \" method=\"POST\">";
			//#plug(11-07) :  Commentaire Dom : ma ligne qui merde !!!! ne merde plus!!!!!!!!!!!!!!
			echo "<select style=\"width:100%;\" name=\"rub\" onchange=\"window.location=('".generer_url_ecrire("rec_mc","rub='+this.options[this.selectedIndex].value").")\">";	
			if ($rub == -1) echo "<option value=\"-1\" selected><b>"._T('rmc:select_rubrique')."</b>";
			else echo "<option value=\"-1\"><b>"._T('rmc:select_rubrique')."</b>";

	
			if ($rub == 0) echo "<option value=\"0\" selected style=\"font-weight:bold\">"._T('rmc:select_ttes_rubriques');
			else echo "<option value=\"0\" style=\"font-weight:bold\">"._T('rmc:select_ttes_rubriques');
	
			$query = "SELECT id_parent FROM spip_rubriques order by titre";
			$result=spip_query($query);

			while($row=spip_fetch_array($result)){
				$parent_parent=$row['id_parent'];
			}
		getenfant(0,$rub);
		echo "</select><BR>\n";
		echo "</form>";
		echo fin_cadre_trait_couleur(true);
		}


		$idgroupeprec = 0;
		
		if ($rub != -1) {

		echo debut_cadre_trait_couleur ('', true, '', _T('rmc:groupes_mots'));

//#plug(11-07) :  formulaire - envoi du traitement vers action/rec_mc_ajoutgroupes
			echo '<form action="'.generer_url_action('rec_mc_ajoutgroupes').'" method="post">';
			echo "<input type='hidden' name='redirect' value='".generer_url_ecrire("rec_mc", "rub=".$rub)."' />\n";
			echo "<input type='hidden' name='hash' value='".calculer_action_auteur("ajoutgroupes-rien")."' />\n";
			echo "<input type='hidden' name='id_auteur' value='".$connect_id_auteur."' />\n";
			echo "<input type='hidden' name='rub' value='$rub'>";
	
		
			if ($rub > -1) {
				$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre AS titremot, spip_mots.id_mot as id_mot, spip_rmc_rubs_groupes.id_rubrique AS idrub FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								INNER JOIN spip_rmc_rubs_groupes ON spip_rmc_rubs_groupes.id_groupe = spip_groupes_mots.id_groupe 
								WHERE id_rubrique = $rub GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
			}
		
			$result = spip_query($sql);

		
			$aff_groupes_select="";
			$listidgrp = "";
			$compt = 0;
			$nbr = 0;
			if ($result) {
				while ($row = mysql_fetch_assoc($result)) {
					extract($row);
				
					if ($idgroupeprec != $id_groupe) {
							$aff_groupes_select.=" <br /><div style=\"background-color:#ccc; border:1px solid ".$couleur_foncee."; font-size:1.2em; font-weight:bold\"><input type=checkbox name=\"idgrp[]\" value=\"$id_groupe\" checked />$titre</div>";
							$nbr = ++$nbr;
						if ($compt == 0) {
							$listidgrp .= "$id_groupe";
							$compt = 1;
							$nb_groupes = ++$ng;
						}
						else $listidgrp .= ",$id_groupe";
					}
					$s="SELECT id_mot_exclu FROM spip_rmc_mots_exclus WHERE id_mot_exclu=$id_mot AND id_rubrique=$rub";
					$r=spip_query($s);
					$rw=spip_fetch_array($r);
					if($rw['id_mot_exclu']==$id_mot){
					$aff_groupes_select.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em;height:18px;\"  ><span style='float:right;color:red;font-weight:bold;'>"._T('rmc:mot_exclu')."<input type=checkbox name='motsexclus[]' value='$id_mot' style='margin:0 2px;padding:0;' checked='checked' /></span> $titremot</div>";
					}else{
					$aff_groupes_select.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em;height:18px;\"  ><span style='float:right;color:red;'>"._T('rmc:mot_exclure')."<input type=checkbox name='motsexclus[]' value='$id_mot' style='margin:0 2px;padding:0;'/></span> $titremot</div>";
					}
					$idgroupeprec = $id_groupe;

				}
				mysql_free_result($result);
			}
			if ($rub > -1) {
				if ($listidgrp != "") 
					$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								AS titremot 
								FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								WHERE spip_groupes_mots.id_groupe not IN ($listidgrp) 
								GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
				else 
					$sql = "SELECT spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								AS titremot 
								FROM spip_groupes_mots 
								INNER JOIN spip_mots ON spip_mots.id_groupe = spip_groupes_mots.id_groupe 
								GROUP BY spip_groupes_mots.titre, spip_groupes_mots.id_groupe, spip_mots.titre 
								ORDER BY spip_groupes_mots.id_groupe";
			}
			$result = spip_query($sql);

			$idgroupeprc = 0;	
			$aff_groupes_noselected = "";
			$j=0;
			if ($result) {
				while ($row = mysql_fetch_assoc($result)) {
					extract($row);
				
					if ($idgroupeprec != $id_groupe) {
						$aff_groupes_noselected.=" <br /><div style=\"background-color:#ccc; border:1px solid ".$couleur_foncee."; font-size:1.2em; font-weight:bold\"><input type=checkbox name=\"idgrp[]\" value=\"$id_groupe\">$titre</div>";
						$nb_groupes_at = ++$j;
					}
					$aff_groupes_noselected.= "<div style=\"border:1px solid ".$couleur_foncee."; background-color:#eee; font-size:.9em\"  > $titremot</div>";
					$idgroupeprec = $id_groupe;
			
				}
				mysql_free_result($result);
			}

//#plug(11-07) : Affichage
			//#plug(11-07) : Affichage des groupes attribues (deja selectionnes)

			if($nbr >0){
				echo debut_cadre_relief(_DIR_IMG_PACK."groupe-mot-24.gif");
				debut_band_titre($couleur_foncee, "verdana3", "bold");
						if($idrub==0 ){
				echo _T('rmc:groupes_toutes_rubriques');
				}else{
				echo _T('rmc:groupes_mots_attribues');
				}
				echo fin_bloc();
				echo "$aff_groupes_select";
				echo fin_cadre_relief();
			}
				
			//#plug(11-07) : Affichage des groupes non attribues
			debut_cadre_relief(_DIR_IMG_PACK."groupe-mot-24.gif");
			if($nb_groupes_at >0){
				debut_band_titre($couleur_foncee, "verdana3", "bold");
				echo _T('rmc:groupes_mots_non_attribues');
				echo fin_bloc();
			}else{
				echo _T('rmc:groupes_mots_tous_attribues');
			} 
			echo $aff_groupes_noselected;
			echo fin_cadre_relief();
		echo "<input type=\"submit\" name=\"refresh\" value=\"Valider\">";
		echo "</form>";
		echo fin_cadre_trait_couleur(true);
		}
	echo fin_cadre_relief();
echo fin_gauche().fin_page();//fin page
}//finexec
예제 #23
0
function exec_admin_galettonuts()
{
    // Seuls les super-admins sont authorisés réaliser des synchros,
    // et par conséquent de configurer le plugin
    if (!('0minirezo' === $GLOBALS['auteur_session']['statut'] && $GLOBALS['connect_toutes_rubriques'])) {
        echo minipres(_T('avis_non_acces_page'));
        exit;
    }
    $erreurs = array();
    $icone_base = _DIR_PLUGIN_GALETTONUTS . 'img_pack/galettonuts-sql_status-';
    $icone_src = 'config-168.png';
    $icone_title = _T('galettonuts:icone_db_config');
    include_spip('inc/galettonuts_fonctions');
    // Lecture de la configuration
    if (!class_exists('L2_Spip_Plugin_Metas')) {
        include_spip('lib/L2/Spip/Plugin/Metas.class');
    }
    $config = new L2_Spip_Plugin_Metas('galettonuts_config');
    $contexte = $config->lire();
    $activer_cron = array_key_exists('activer_cron', $contexte) ? $contexte['activer_cron'] : true;
    // {{{ Traitement des données reçues
    if (_request('_galettonuts_ok')) {
        $champs = array('adresse_db' => _request('adresse_db'), 'login_db' => _request('login_db'), 'pass_db' => _request('pass_db'), 'prefix_db' => _request('prefix_db'), 'choix_db' => _request('choix_db'));
        // Des champs sont-ils vides ?
        $champs = array_map('trim', $champs);
        if (false === (!in_array(null, $champs) || !in_array('', $champs))) {
            $erreurs[] = _T('galettonuts:texte_erreur_1');
        }
        // Activer la synchronisation automatique ?
        if ('oui' == _request('activer_cron')) {
            $activer_cron = true;
        } else {
            $activer_cron = false;
        }
        if ($activer_cron) {
            $champs['heures'] = intval(_request('heures'));
            $champs['minutes'] = intval(_request('minutes'));
            $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro');
            $frequence = 3600 * $champs['heures'] + 60 * $champs['minutes'];
            if ($frequence !== $synchro->lire('frequence')) {
                $synchro->ajouter(array('frequence' => $frequence), true);
                $fichier = '<?php define(\'_GALETTONUTS_DELAIS_CRON\', ' . $frequence . '); ?>';
                ecrire_fichier(_DIR_TMP . 'galettonuts_cron.php', $fichier, true);
                unset($fichier);
            }
        } else {
            // On s'assure de bien supprimer le fichier de vérouillage
            // pour forcer la resynchronisation tenant compte de la nouvelle
            // configuration.
            if (file_exists(_DIR_TMP . 'galettonuts_cron.lock')) {
                unlink(_DIR_TMP . 'galettonuts_cron.lock');
            }
            if (file_exists(_DIR_TMP . 'galettonuts_cron.php')) {
                unlink(_DIR_TMP . 'galettonuts_cron.php');
            }
        }
        $contexte['activer_cron'] = $activer_cron;
        // Prise en compte dans le contexte
        $contexte = array_merge($contexte, $champs);
        unset($champs);
        // Test de connexion à la BDD Galette
        if (!count($erreurs)) {
            $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']);
            if (-1 === $link) {
                $erreurs[] = _T('galettonuts:avis_connexion_echec_1');
                $icone_src = 'error-168.png';
                $icone_title = _T('galettonuts:icone_db_erreur');
            } else {
                if (-2 === galettonuts_galette_db($contexte['choix_db'], $link)) {
                    $erreurs[] = _T('galettonuts:avis_connexion_echec_2');
                    $icone_src = 'error-168.png';
                    $icone_title = _T('galettonuts:icone_db_erreur');
                } else {
                    $icone_src = 'ok-168.png';
                    $icone_title = _T('galettonuts:icone_db_ok');
                    $contexte['db_ok'] = true;
                }
            }
            if (0 < $link) {
                mysql_close($link);
            }
            unset($link);
        }
        // Interraction avec Accès Restreint
        if (defined('_DIR_PLUGIN_ACCESRESTREINT')) {
            if ($config->existe('zones')) {
                galettonuts_dissocier_zones($config->lire('zones'));
            }
            $zones = _request('zones');
            if (is_array($zones) && 0 < count($zones)) {
                $contexte['zones'] = $zones;
            } else {
                $config->supprimer(array('zones' => null));
                unset($contexte['zones']);
            }
            unset($zones);
        }
        // Mémorisation de la configuration à la base de données Galette
        if (!count($erreurs)) {
            $config->ajouter($contexte, true);
        }
        // Lancer une synchronisation
        if (0 == count($erreurs)) {
            galettonuts_synchroniser(true);
        }
    } else {
        if (!empty($contexte['adresse_db']) && !empty($contexte['login_db']) && !empty($contexte['pass_db'])) {
            $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']);
            if (0 > $link) {
                $icone_src = 'error-168.png';
                $icone_title = _T('galettonuts:icone_db_erreur');
                $config->ajouter(array('db_ok' => false));
            } else {
                $icone_src = 'ok-168.png';
                $icone_title = _T('galettonuts:icone_db_ok');
                $config->ajouter(array('db_ok' => true));
                mysql_close($link);
                unset($link);
            }
        }
    }
    // }}}
    // {{{ Affichage
    // Haut de page
    $commencer_page = charger_fonction('commencer_page', 'inc');
    echo $commencer_page(_T('galettonuts:titre_page_admin'), '', 'galettonuts'), '<br/><br/><br/>';
    gros_titre(_T('galettonuts:titre_admin'));
    // Boîte d'informations
    debut_gauche();
    debut_boite_info();
    echo _T('galettonuts:texte_info_admin');
    fin_boite_info();
    // Message(s) d'erreur(s)
    debut_droite();
    if ($c = count($erreurs)) {
        if (1 == $c) {
            $erreur_titre = _T('galettonuts:texte_erreur');
            $erreur_texte = (string) $erreurs[0];
        } else {
            $erreur_titre = _T('galettonuts:texte_erreurs');
            $erreur_texte = '<ul>';
            for ($i = 0; $c < $i; ++$i) {
                $erreur_texte .= '<li>' . $erreurs[$i] . '</li>';
            }
            $erreur_texte .= '</ul>';
        }
        echo '<div style="background-color:#fee;color:red;border:1px solid red;padding:.5em;margin-bottom:25px" class="verdana2"><strong>', $erreur_titre, '</strong>&nbsp;:<br />', $erreur_texte, '</div>';
    }
    echo generer_url_post_ecrire('admin_galettonuts');
    // Accès à la BDD
    debut_cadre_trait_couleur('base-24.gif', false, '', _T('galettonuts:info_bdd'));
    echo '<div style="float:right;width:175px" class="verdana2">', _T('galettonuts:texte_info_bdd'), '<div>', '<div style="position:absolute;bottom:35px;width:168px;height:168px">', '<img src="', $icone_base, $icone_src, '" width="168" height="168" alt="" title="', $icone_title, '" />', '</div>', '</div>', '</div>';
    echo '<div style="width:298px">';
    debut_cadre_couleur();
    echo '<p><label for="adresse_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_adresse'), '</label><br/>', '<input type="text" name="adresse_db" value="', $contexte['adresse_db'], '" id="adresse_db" class="fondl" style="width:278px" tabindex="504"/>', '</p>';
    echo '<p><label for="login_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_login'), '</label><br/>', '<input type="text" name="login_db" value="', $contexte['login_db'], '" id="login_db" class="fondl" style="width:278px" tabindex="508"/>', '</p>';
    echo '<p><label for="pass_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_mdp'), '</label><br/>', '<input type="password" name="pass_db" value="', $contexte['pass_db'], '" id="pass_db" class="fondl" style="width:278px" tabindex="512"/>', '</p>';
    echo '<p><label for="prefix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_prefix'), '</label><br/>', '<input type="text" name="prefix_db" value="', $contexte['prefix_db'], '" id="prefix_db" class="fondl" style="width:278px" tabindex="516"/>', '</p>';
    echo '<p><label for="choix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_choix'), '</label><br/>', '<input type="text" name="choix_db" value="', $contexte['choix_db'], '" id="choix_db" class="fondl" style="width:278px" tabindex="520"/>', '</p>';
    fin_cadre_couleur();
    echo '</div>';
    echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="560"/></div>';
    fin_cadre_trait_couleur();
    // Synchronisation automatique
    echo '<br />';
    debut_cadre_relief('synchro-24.gif', false, '', _T('galettonuts:info_cron'));
    echo '<p class="verdana2">', _T('galettonuts:texte_info_cron'), '</p>';
    echo '<p class="verdana2">', '<label', $activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="oui" id="activer_cron_oui" tabindex="602" ', $activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'block\', \'none\');"', '/>', _T('galettonuts:entree_cron_utiliser'), '</label><br />', '<label', !$activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="non" id="activer_cron_non" tabindex="604" ', !$activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'none\', \'block\');"', '/>', _T('galettonuts:entree_cron_utiliser_non'), '</label>', '</p>';
    echo '<div id="config-cron"', !$activer_cron ? ' style="display:none"' : '', '><hr />';
    echo '<p class="verdana2">', _T('galettonuts:frequence'), '</p>';
    echo '<p class="verdana2" style="text-align:center">', '<input type="text" name="heures" value="', $contexte['heures'], '" id="cron_heures" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_heures" style="font-weight:bold;cursor:pointer">', _T('galettonuts:heures'), '</label>', '<input type="text" name="minutes" value="', $contexte['minutes'], '" id="cron_minutes" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_minutes" style="font-weight:bold;cursor:pointer">', _T('galettonuts:minutes'), '</label>', '</p>';
    echo '</div>';
    echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="660"/></div>';
    fin_cadre_relief();
    // Liaison avec le plugin Accès restreint
    if (defined('_DIR_PLUGIN_ACCESRESTREINT')) {
        $zones = spip_query("SELECT `id_zone`, `titre`, `descriptif` FROM `spip_zones` WHERE 1;");
        if (spip_num_rows($zones)) {
            global $couleur_foncee;
            $i = 0;
            $zone['num'] = _T('accesrestreint:colonne_id');
            $zone['titre'] = _T('accesrestreint:titre');
            $zone['descriptif'] = _T('accesrestreint:descriptif');
            $tabindex = 700;
            $tab_zones = <<<HTML
<table class="arial2" border="0" cellpadding="2" cellspacing="0" style="width:100%;border:1px solid #AAA;">
    <thead>
        <tr style="background-color:{$couleur_foncee};color:#fff;font-weight=bold">
            <th scope="col" style="text-align:left;padding-left:5px;padding-right:5px" width="40">{$zone['num']}</th>
            <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['titre']}</th>
            <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['descriptif']}</th>
            <th scope="col" style="text-align:center;border-left:1px inset #fff;padding-left:5px;padding-right:5px" width="16">&nbsp;</th>
        </tr>
    </thead>
    <tbody>
HTML;
            while ($zone = spip_fetch_array($zones)) {
                ++$tabindex;
                $bgcolor = alterner(++$i, '#FEFEFE', '#EEE');
                if (array_key_exists('zones', $contexte)) {
                    $checked = in_array($zone['id_zone'], $contexte['zones']) ? ' checked="checked"' : '';
                } else {
                    $checked = '';
                }
                $tab_zones .= <<<HTML
        <tr style="background-color:{$bgcolor}">
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['id_zone']}</td>
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['titre']}</td>
            <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['descriptif']}</td>
            <td style="text-align:center">
                <input type="checkbox" name="zones[]" value="{$zone['id_zone']}" class="fondl" tabindex="{$tabindex}"{$checked} />
            </td>
        </tr>
HTML;
            }
            $tab_zones .= '</tbody></table>';
            echo '<br />';
            debut_cadre_relief(_DIR_PLUGIN_ACCESRESTREINT . 'img_pack/zones-acces-24.gif', false, '', _T('galettonuts:info_liaison_access_restreint'));
            echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_1'), '</p>';
            echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_2'), '</p>';
            echo $tab_zones;
            echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="760"/></div>';
            fin_cadre_relief();
        }
    }
    echo '</form>';
    // Fin de page
    echo fin_gauche() . fin_page();
    // }}}
}
예제 #24
0
/**
 * Mises à jour de SPIP n°018
 *
 * @param float $version_installee Version actuelle
 * @param float $version_cible Version de destination
 **/
function maj_v018_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.801, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_rubriques\tADD statut_tmp VARCHAR(10) NOT NULL,\tADD date_tmp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        include_spip('inc/rubriques');
        calculer_rubriques();
        maj_version(1.801);
    }
    // Nouvelles tables d'invalidation
    if (upgrade_vers(1.802, $version_installee, $version_cible)) {
        spip_query("DROP TABLE spip_id_article_caches");
        spip_query("DROP TABLE spip_id_auteur_caches");
        spip_query("DROP TABLE spip_id_breve_caches");
        spip_query("DROP TABLE spip_id_document_caches");
        spip_query("DROP TABLE spip_id_forum_caches");
        spip_query("DROP TABLE spip_id_groupe_caches");
        spip_query("DROP TABLE spip_id_message_caches");
        spip_query("DROP TABLE spip_id_mot_caches");
        spip_query("DROP TABLE spip_id_rubrique_caches");
        spip_query("DROP TABLE spip_id_signature_caches");
        spip_query("DROP TABLE spip_id_syndic_article_caches");
        spip_query("DROP TABLE spip_id_syndic_caches");
        spip_query("DROP TABLE spip_id_type_caches");
        spip_query("DROP TABLE spip_inclure_caches");
        maj_version(1.802);
    }
    if (upgrade_vers(1.803, $version_installee, $version_cible)) {
        #	27 AOUT 2004 : conservons cette table pour autoriser les retours
        #	de SPIP 1.8a6 CVS vers 1.7.2
        #	spip_query("DROP TABLE spip_forum_cache");
        spip_query("DROP TABLE spip_inclure_caches");
        maj_version(1.803);
    }
    if (upgrade_vers(1.804, $version_installee, $version_cible)) {
        // recreer la table spip_caches
        spip_query("DROP TABLE spip_caches");
        creer_base();
        maj_version(1.804);
    }
    /**
     * Recalculer tous les threads
     *
     * Fonction du plugin forum recopiee ici pour assurer la montee
     * de version dans tous les cas de figure
     **/
    function maj_v018_calculer_threads()
    {
        // fixer les id_thread des debuts de discussion
        sql_update('spip_forum', array('id_thread' => 'id_forum'), "id_parent=0");
        // reparer les messages qui n'ont pas l'id_secteur de leur parent
        do {
            $discussion = "0";
            $precedent = 0;
            $r = sql_select("fille.id_forum AS id,\tmaman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman', "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread", '', "thread");
            while ($row = sql_fetch($r)) {
                if ($row['thread'] == $precedent) {
                    $discussion .= "," . $row['id'];
                } else {
                    if ($precedent) {
                        sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})");
                    }
                    $precedent = $row['thread'];
                    $discussion = $row['id'];
                }
            }
            sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})");
        } while ($discussion != "0");
    }
    if (upgrade_vers(1.805, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_forum ADD id_thread bigint(21) DEFAULT '0' NOT NULL");
        maj_v018_calculer_threads();
        maj_version(1.805);
    }
    // tables d'orthographe
    #if ($version_installee < 1.806)
    #	maj_version(1.806);
    // URLs propres (inc_version = 0.12)
    if (upgrade_vers(1.807, $version_installee, $version_cible)) {
        foreach (array('articles', 'breves', 'rubriques', 'mots') as $objets) {
            spip_query("ALTER TABLE spip_{$objets} ADD url_propre VARCHAR(255) NOT NULL");
            spip_query("ALTER TABLE spip_{$objets} ADD INDEX url_propre (url_propre)");
        }
        maj_version(1.807);
    }
    // referers de la veille
    if (upgrade_vers(1.808, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_referers ADD visites_veille INT UNSIGNED NOT NULL");
        maj_version(1.808);
    }
    // corrections diverses
    if (upgrade_vers(1.809, $version_installee, $version_cible)) {
        // plus de retour possible vers 1.7.2
        spip_query("DROP TABLE spip_forum_cache");
        // les requetes ci-dessous ne s'appliqueront que si on est passe
        // par une certaine version de developpement - oublie de le faire
        // plus tot, car le code d'alors recreait purement et simplement
        // cette table
        spip_query("ALTER TABLE spip_versions DROP chapo");
        spip_query("ALTER TABLE spip_versions DROP texte");
        spip_query("ALTER TABLE spip_versions DROP ps");
        spip_query("ALTER TABLE spip_versions DROP extra");
        spip_query("ALTER TABLE spip_versions ADD champs text NOT NULL");
        maj_version(1.809);
    }
    // Annuler les brouillons de forum jamais valides
    if (upgrade_vers(1.81, $version_installee, $version_cible)) {
        sql_delete("spip_forum", "statut='redac'");
        maj_version(1.81);
    }
    if (upgrade_vers(1.811, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic ADD extra longblob NULL");
        maj_version(1.811);
    }
    if (upgrade_vers(1.812, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_documents ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        maj_version(1.812);
    }
    // Mise a jour des types MIME
    if (upgrade_vers(1.813, $version_installee, $version_cible)) {
        # rien a faire car c'est creer_base() qui s'en charge
        maj_version(1.813);
    }
    // URLs propres auteurs
    if (upgrade_vers(1.814, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_auteurs ADD url_propre VARCHAR(255) NOT NULL");
        spip_query("ALTER TABLE spip_auteurs ADD INDEX url_propre (url_propre)");
        maj_version(1.814);
    }
    // Mots-cles sur les documents
    // + liens documents <-> sites et articles syndiques (podcasting)
    if (upgrade_vers(1.815, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_documents\tADD distant VARCHAR(3) DEFAULT 'non'");
        maj_version(1.815);
    }
    // Indexation des documents (rien a faire sauf reinstaller inc_auxbase)
    if (upgrade_vers(1.816, $version_installee, $version_cible)) {
        maj_version(1.816);
    }
    // Texte et descriptif des groupes de mots-cles
    if (upgrade_vers(1.817, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_groupes_mots ADD descriptif text NOT NULL AFTER titre");
        spip_query("ALTER TABLE spip_groupes_mots ADD COLUMN texte longblob NOT NULL AFTER descriptif");
        maj_version(1.817);
    }
    // Conformite des noms de certains champs (0minirezo => minirezo)
    if (upgrade_vers(1.818, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 0minirezo minirezo char(3) NOT NULL");
        spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 1comite comite char(3) NOT NULL");
        spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 6forum forum char(3) NOT NULL");
        maj_version(1.818);
    }
    // Options de syndication : miroir + oubli
    if (upgrade_vers(1.819, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic ADD miroir VARCHAR(3) DEFAULT 'non'");
        spip_query("ALTER TABLE spip_syndic ADD oubli VARCHAR(3) DEFAULT 'non'");
        maj_version(1.819);
    }
    // Un bug dans les 1.730 (il manquait le "ADD")
    if (upgrade_vers(1.82, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_auteurs ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_breves ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)");
        maj_version(1.82);
    }
    // reindexer les articles (on avait oublie les auteurs)
    if (upgrade_vers(1.821, $version_installee, $version_cible)) {
        spip_query("UPDATE spip_articles SET idx='1' WHERE idx='oui'");
        maj_version(1.821);
    }
    // le 'type' des mots doit etre du texte, sinon on depasse en champ multi
    if (upgrade_vers(1.822, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_mots DROP INDEX type");
        spip_query("ALTER TABLE spip_mots CHANGE type type TEXT NOT NULL");
        maj_version(1.822);
    }
    // ajouter une table de fonctions pour ajax
    if (upgrade_vers(1.825, $version_installee, $version_cible)) {
        maj_version(1.825);
    }
    if (upgrade_vers(1.826, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_ajax_fonc DROP fonction");
        maj_version(1.826);
    }
}
예제 #25
0
파일: v019_pre193.php 프로젝트: nursit/SPIP
function v019_pre193($version_installee, $version_cible)
{
    // Syndication : ajout de l'option resume=oui/non et de la langue
    if (upgrade_vers(1.901, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic ADD `resume` VARCHAR(3) DEFAULT 'oui'");
        spip_query("ALTER TABLE spip_syndic_articles ADD `lang` VARCHAR(10) DEFAULT '' NOT NULL");
        maj_version(1.901);
    }
    // Syndication : ajout de source, url_source, tags
    if (upgrade_vers(1.902, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic_articles ADD `url_source` TINYTEXT DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_syndic_articles ADD `source` TINYTEXT DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_syndic_articles ADD `tags` TEXT DEFAULT '' NOT NULL");
        maj_version(1.902);
    }
    // URLs propres des sites (sait-on jamais)
    // + oubli des KEY url_propre sur les auteurs si installation neuve
    if (upgrade_vers(1.903, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_syndic ADD `url_propre` VARCHAR(255) NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD INDEX `url_propre` (`url_propre`)");
        spip_query("ALTER TABLE spip_auteurs ADD INDEX `url_propre` (`url_propre`)");
        maj_version(1.903);
    }
    // suppression des anciennes tables temporaires des visites
    // (maintenant stockees sous forme de fichiers)
    if (upgrade_vers(1.904, $version_installee, $version_cible)) {
        spip_query("DROP TABLE IF EXISTS spip_visites_temp");
        spip_query("DROP TABLE IF EXISTS spip_referers_temp");
        maj_version(1.904);
    }
    // fusion des 10 tables index en une seule
    // pour fonctions futures evoluees du moteur de recherche
    if (upgrade_vers(1.905, $version_installee, $version_cible)) {
        // agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
        // des choses plus sympa
        spip_query("ALTER TABLE spip_meta DROP INDEX `valeur`");
        spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
        // table des correspondances table->id_table
        $liste_tables = array();
        $liste_tables[1] = 'spip_articles';
        $liste_tables[2] = 'spip_auteurs';
        $liste_tables[3] = 'spip_breves';
        $liste_tables[4] = 'spip_documents';
        $liste_tables[5] = 'spip_forum';
        $liste_tables[6] = 'spip_mots';
        $liste_tables[7] = 'spip_rubriques';
        $liste_tables[8] = 'spip_signatures';
        $liste_tables[9] = 'spip_syndic';
        ecrire_meta('index_table', serialize($liste_tables));
        ## devenu inutile car suppression totale de l'indexation
        /*
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
        		spip_query("DROP TABLE IF EXISTS spip_index_articles");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_auteur` as id_objet,'2' as id_table FROM spip_index_auteurs");
        		spip_query("DROP TABLE IF EXISTS spip_index_auteurs");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_breve` as id_objet,'3' as id_table FROM spip_index_breves");
        		spip_query("DROP TABLE IF EXISTS spip_index_breves");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_document` as id_objet,'4' as id_table FROM spip_index_documents");
        		spip_query("DROP TABLE IF EXISTS spip_index_documents");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_forum` as id_objet,'5' as id_table FROM spip_index_forum");
        		spip_query("DROP TABLE IF EXISTS spip_index_forum");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_mot` as id_objet,'6' as id_table FROM spip_index_mots");
        		spip_query("DROP TABLE IF EXISTS spip_index_mots");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_rubrique` as id_objet,'7' as id_table FROM spip_index_rubriques");
        		spip_query("DROP TABLE IF EXISTS spip_index_rubriques");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_signature` as id_objet,'8' as id_table FROM spip_index_signatures");
        		spip_query("DROP TABLE IF EXISTS spip_index_signatures");
        
        		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
        		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
        */
        maj_version(1.905);
    }
    // cette table est desormais geree par le plugin "podcast_client", on la
    // supprime si le plugin n'est pas active ; risque inherent a l'utilisation
    // de versions alpha :-)
    if (upgrade_vers(1.906, $version_installee, $version_cible)) {
        if (!@in_array('podcast_client', $GLOBALS['plugins'])) {
            spip_query("DROP TABLE spip_documents_syndic");
        }
        maj_version(1.906);
    }
    if (upgrade_vers(1.907, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_forum ADD INDEX `idx` (`idx`)");
        maj_version(1.907);
    }
    // Oups ! on stockait les tags de syndication sous la forme rel="category"
    // au lieu de rel="directory" - http://microformats.org/wiki/rel-directory
    if (upgrade_vers(1.908, $version_installee, $version_cible)) {
        spip_query("UPDATE spip_syndic_articles SET `tags` = REPLACE(`tags`, 'rel=\"category\">', 'rel=\"directory\">') WHERE `tags` like '%category%'");
        maj_version(1.908);
    }
    if (upgrade_vers(1.909, $version_installee, $version_cible)) {
        spip_query("ALTER IGNORE TABLE spip_mots_articles ADD PRIMARY KEY (`id_article`, `id_mot`)");
        spip_query("ALTER IGNORE TABLE spip_mots_breves ADD PRIMARY KEY (`id_breve`, `id_mot`)");
        spip_query("ALTER IGNORE TABLE spip_mots_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_mot`)");
        spip_query("ALTER IGNORE TABLE spip_mots_syndic ADD PRIMARY KEY (`id_syndic`, `id_mot`)");
        spip_query("ALTER IGNORE TABLE spip_mots_documents ADD PRIMARY KEY (`id_document`, `id_mot`)");
        spip_query("ALTER IGNORE TABLE spip_mots_forum ADD PRIMARY KEY (`id_forum`, `id_mot`)");
        maj_version(1.909);
    }
    if (upgrade_vers(1.91, $version_installee, $version_cible)) {
        spip_query("ALTER IGNORE TABLE spip_auteurs_articles ADD PRIMARY KEY (`id_auteur`, `id_article`)");
        spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques ADD PRIMARY KEY (`id_auteur`, `id_rubrique`)");
        spip_query("ALTER IGNORE TABLE spip_auteurs_messages ADD PRIMARY KEY (`id_auteur`, `id_message`)");
        maj_version(1.91);
    }
    if (upgrade_vers(1.911, $version_installee, $version_cible)) {
        spip_query("ALTER IGNORE TABLE spip_auteurs_articles DROP INDEX `id_auteur`");
        spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques DROP INDEX `id_auteur`");
        spip_query("ALTER IGNORE TABLE spip_auteurs_messages DROP INDEX `id_auteur`");
        spip_query("ALTER IGNORE TABLE spip_mots_articles DROP INDEX `id_article`");
        spip_query("ALTER IGNORE TABLE spip_mots_breves DROP INDEX `id_breve`");
        spip_query("ALTER IGNORE TABLE spip_mots_rubriques DROP INDEX `id_rubrique`");
        spip_query("ALTER IGNORE TABLE spip_mots_syndic DROP INDEX `id_syndic`");
        spip_query("ALTER IGNORE TABLE spip_mots_forum DROP INDEX `id_forum`");
        spip_query("ALTER IGNORE TABLE spip_mots_documents DROP INDEX `id_document`");
        # 18 juillet 2007: table depreciee
        #		spip_query("ALTER IGNORE TABLE spip_caches DROP	INDEX fichier");
        maj_version(1.911);
    }
    // Le logo du site n'est plus le logo par defaut des rubriques
    // mais pour assurer la compatibilite ascendante, on le duplique
    if (upgrade_vers(1.912, $version_installee, $version_cible)) {
        @copy(_DIR_LOGOS . 'rubon0.gif', _DIR_LOGOS . 'siteon0.gif');
        @copy(_DIR_LOGOS . 'ruboff0.gif', _DIR_LOGOS . 'siteoff0.gif');
        @copy(_DIR_LOGOS . 'rubon0.jpg', _DIR_LOGOS . 'siteon0.jpg');
        @copy(_DIR_LOGOS . 'ruboff0.jpg', _DIR_LOGOS . 'siteoff0.jpg');
        @copy(_DIR_LOGOS . 'rubon0.png', _DIR_LOGOS . 'siteon0.png');
        @copy(_DIR_LOGOS . 'ruboff0.png', _DIR_LOGOS . 'siteoff0.png');
        maj_version(1.912);
    }
    // suppression de auteur_modif qui n'est plus utilise nulle part
    if (upgrade_vers(1.913, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles DROP `auteur_modif`");
        maj_version(1.913);
    }
    // Ajout de SVG
    if (upgrade_vers(1.914, $version_installee, $version_cible)) {
        spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('svg', 'Scalable Vector Graphics', 'embed')");
        spip_query("UPDATE spip_types_documents SET `mime_type`='image/svg+xml' WHERE `extension`='svg'");
        maj_version(1.914);
    }
    // Ajout de plein de type mime
    if (upgrade_vers(1.915, $version_installee, $version_cible)) {
        maj_version(1.915);
    }
    // refaire l'upgrade 1.905 qui a pu foirer en partie a cause de la requete ALTER sur spip_meta
    if (upgrade_vers(1.916, $version_installee, $version_cible)) {
        // agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
        // des choses plus sympa
        spip_query("ALTER TABLE spip_meta DROP INDEX `valeur`");
        spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
        #8/08/07  plus d'indexation dans le core
        //include_spip('inc/indexation');
        //update_index_tables();
        maj_version(1.916);
    }
    if (upgrade_vers(1.917, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_documents DROP `inclus`");
        maj_version(1.917);
    }
    // Permettre d'enregistrer un numero IP dans les revisions d'articles
    // a la place de l'id_auteur
    if (upgrade_vers(1.918, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_versions CHANGE `id_auteur` `id_auteur` VARCHAR(23)");
        maj_version(1.918);
    }
    if (upgrade_vers(1.919, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_ajax_fonc DROP `id_auteur`");
        maj_version('1.919');
    }
    if (upgrade_vers(1.92, $version_installee, $version_cible)) {
        spip_query("ALTER IGNORE TABLE spip_documents_articles ADD PRIMARY KEY (`id_article`, `id_document`)");
        spip_query("ALTER IGNORE TABLE spip_documents_breves ADD PRIMARY KEY (`id_breve`, `id_document`)");
        spip_query("ALTER IGNORE TABLE spip_documents_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_document`)");
        spip_query("ALTER IGNORE TABLE spip_documents_articles DROP INDEX `id_article`");
        spip_query("ALTER IGNORE TABLE spip_documents_breves DROP INDEX `id_breve`");
        spip_query("ALTER IGNORE TABLE spip_documents_rubriques DROP INDEX `id_rubrique`");
        maj_version('1.920');
    }
    if (upgrade_vers(1.922, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_meta ADD `impt` ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER `valeur`");
        $meta_serveur = array('version_installee', 'adresse_site', 'alea_ephemere_ancien', 'alea_ephemere', 'alea_ephemere_date', 'langue_site', 'langues_proposees', 'date_calcul_rubriques', 'derniere_modif', 'optimiser_table', 'drapeau_edition', 'creer_preview', 'taille_preview', 'creer_htpasswd', 'creer_htaccess', 'gd_formats_read', 'gd_formats', 'netpbm_formats', 'formats_graphiques', 'image_process', 'plugin_header', 'plugin');
        foreach ($meta_serveur as $nom) {
            spip_query("UPDATE spip_meta SET `impt`='non' WHERE `nom`=" . _q($nom));
        }
        maj_version('1.922');
    }
    if (upgrade_vers(1.923, $version_installee, $version_cible)) {
        if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])) {
            $IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
            foreach ($IMPORT_tables_noimport as $key => $table) {
                if ($table == 'spip_meta') {
                    unset($IMPORT_tables_noimport[$key]);
                }
            }
            ecrire_meta('IMPORT_tables_noimport', serialize($IMPORT_tables_noimport), 'non');
        }
        maj_version('1.923');
    }
    if (upgrade_vers(1.924, $version_installee, $version_cible)) {
        spip_query('DROP TABLE spip_ajax_fonc');
        maj_version('1.924');
    }
    if (upgrade_vers(1.925, $version_installee, $version_cible)) {
        include_spip('inc/flock');
        /* deplacement des sessions */
        $f_session = preg_files('data', 'session_');
        $repertoire = _DIR_SESSIONS;
        if (!@file_exists($repertoire)) {
            $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
            $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
        }
        foreach ($f_session as $f) {
            $d = basename($f);
            @copy($f, $repertoire . $d);
        }
        /* deplacement des visites */
        $f_visites = preg_files('data/visites');
        $repertoire = sous_repertoire(_DIR_TMP, 'visites');
        foreach ($f_visites as $f) {
            $d = basename($f);
            @copy($f, $repertoire . $d);
        }
        /* deplacement des upload */
        $auteurs = array();
        $req = spip_query("SELECT `login` FROM spip_auteurs WHERE `statut` = '0minirezo'");
        while ($row = sql_fetch($req)) {
            $auteurs[] = $row['login'];
        }
        $f_upload = preg_files('upload', -1, 10000, $auteurs);
        $repertoire = _DIR_TRANSFERT;
        if (!@file_exists($repertoire)) {
            $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
            $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
        }
        foreach ($auteurs as $login) {
            if (is_dir('upload/' . $login)) {
                $sous_repertoire = sous_repertoire(_DIR_TRANSFERT, $login);
            }
        }
        foreach ($f_upload as $f) {
            @copy($f, _DIR_TMP . $f);
        }
        /* deplacement des dumps */
        $f_session = preg_files('data', 'dump');
        $repertoire = _DIR_DUMP;
        if (!@file_exists($repertoire)) {
            $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
            $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
        }
        foreach ($f_session as $f) {
            $d = basename($f);
            @copy($f, $repertoire . $d);
        }
        maj_version('1.925');
    }
    // Ajout de MP4
    if (upgrade_vers(1.926, $version_installee, $version_cible)) {
        spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('mp4', 'MPEG4', 'embed')");
        spip_query("UPDATE spip_types_documents SET `mime_type`='application/mp4' WHERE `extension`='mp4'");
        maj_version('1.926');
    }
}
예제 #26
0
function crayons_update($id, $colval = array(), $type = '')
{
    if (!$colval or !count($colval)) {
        return false;
    }
    list($distant, $table) = distant_table($type);
    if ($distant) {
        list($nom_table, $where) = table_where($type, $id);
        if (!$nom_table) {
            return false;
        }
        $update = $sep = '';
        foreach ($colval as $col => $val) {
            $update .= $sep . '`' . $col . '`=' . _q($val);
            $sep = ', ';
        }
        $a = spip_query($q = 'UPDATE `' . $nom_table . '` SET ' . $update . ' WHERE ' . $where, $distant);
        #spip_log($q);
        include_spip('inc/invalideur');
        suivre_invalideur($cond, $modif = true);
    } else {
        // cle primaire composee : 3-4-rubrique
        // calculer un where approprie
        // et modifier sans passer par la fonction destinee aux tables principales
        // on limite a SPIP 2 mini car sql_updateq n'est pas mappe dans les crayons_compat
        if (is_scalar($id) and $GLOBALS['spip_version_code'] >= '1.93') {
            list($nom_table, $where) = table_where($type, $id, true);
            // where sous forme de tableau
            $a = sql_updateq($nom_table, $colval, $where);
        } else {
            // modification d'une table principale
            include_spip('inc/modifier');
            $a = modifier_contenu($type, $id, array(), $colval);
        }
    }
    return $a;
}
예제 #27
0
function type_urls_edit_urls_1_action() {
	// forms[1] : editer un objet (cas SPIP < 2.0)
	$type = _request('ar_type_objet');
	$table = $type.($type=='syndic'?'':'s');
	$id = intval(_request('ar_num_objet'));
	$url = trim(_request('ar_url_objet'));
	$q = "UPDATE spip_$table SET url_propre="._q($url)." WHERE id_$type=$id";
	spip_query($q);
	redirige_vers_exec(array('ar_num_objet' => _request('ar_num_objet'), 'ar_type_objet' => _request('ar_type_objet')));
}
예제 #28
0
파일: debusquer.php 프로젝트: JLuc/SPIP
function debusquer_source($objet, $affiche)
{
    $quoi = $GLOBALS['debug_objets'][$affiche][$objet];
    if (!empty($GLOBALS['debug_objets']['boucle'][$objet]->id_boucle)) {
        $nom = $GLOBALS['debug_objets']['boucle'][$objet]->id_boucle;
    } else {
        $nom = $GLOBALS['debug_objets']['sourcefile'][$objet];
    }
    $res2 = "";
    if ($affiche == 'resultat') {
        $legend = $nom;
        $req = $GLOBALS['debug_objets']['requete'][$objet];
        if (function_exists('_mysql_traite_query')) {
            $c = strtolower(_request('connect'));
            $c = $GLOBALS['connexions'][$c ? $c : 0]['prefixe'];
            $req = _mysql_traite_query($req, '', $c);
        }
        //  permettre le copier/coller facile
        // $res = ancre_texte($req, array(), true);
        $res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
        //  formatage et affichage des resultats bruts de la requete
        $ress_req = spip_query($req);
        $brut_sql = '';
        $num = 1;
        //  eviter l'affichage de milliers de lignes
        //  personnalisation possible dans mes_options
        $max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
        while ($retours_sql = sql_fetch($ress_req)) {
            if ($num <= $max_aff) {
                $brut_sql .= "<h3>" . ($num == 1 ? $num . " sur " . sql_count($ress_req) : $num) . "</h3>";
                $brut_sql .= "<p>";
                foreach ($retours_sql as $key => $val) {
                    $brut_sql .= "<strong>" . $key . "</strong> => " . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
                }
                $brut_sql .= "</p>";
            }
            $num++;
        }
        $res2 = interdire_scripts($brut_sql);
        foreach ($quoi as $view) {
            //  ne pas afficher les $contexte_inclus
            $view = preg_replace(",<\\?php.+\\?[>],Uims", "", $view);
            if ($view) {
                $res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . "</fieldset>";
            }
        }
    } elseif ($affiche == 'code') {
        $legend = $nom;
        $res = ancre_texte("<" . "?php\n" . $quoi . "\n?" . ">");
    } elseif ($affiche == 'boucle') {
        $legend = _T('zbug_boucle') . ' ' . $nom;
        // Le compilateur prefixe le nom des boucles par l'extension du fichier source.
        $gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
        $res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
    } elseif ($affiche == 'squelette') {
        $legend = $GLOBALS['debug_objets']['sourcefile'][$objet];
        $res = ancre_texte($GLOBALS['debug_objets']['squelette'][$objet]);
    }
    return array($legend, $res, $res2);
}
예제 #29
0
파일: v017.php 프로젝트: JLuc/SPIP
/**
 * Mises à jour de SPIP n°017
 * 
 * @param float $version_installee Version actuelle
 * @param float $version_cible     Version de destination
**/
function maj_v017_dist($version_installee, $version_cible)
{
    if (upgrade_vers(1.702, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD extra longblob NULL");
        spip_query("ALTER TABLE spip_auteurs ADD extra longblob NULL");
        spip_query("ALTER TABLE spip_breves ADD extra longblob NULL");
        spip_query("ALTER TABLE spip_rubriques ADD extra longblob NULL");
        spip_query("ALTER TABLE spip_mots ADD extra longblob NULL");
        // recuperer les eventuels 'supplement' installes en 1.701
        if ($version_installee == 1.701) {
            spip_query("UPDATE spip_articles SET extra = supplement");
            spip_query("ALTER TABLE spip_articles DROP supplement");
            spip_query("UPDATE spip_auteurs SET extra = supplement");
            spip_query("ALTER TABLE spip_auteurs DROP supplement");
            spip_query("UPDATE spip_breves SET extra = supplement");
            spip_query("ALTER TABLE spip_breves DROP supplement");
            spip_query("UPDATE spip_rubriques SET extra = supplement");
            spip_query("ALTER TABLE spip_rubriques DROP supplement");
            spip_query("UPDATE spip_mots SET extra = supplement");
            spip_query("ALTER TABLE spip_mots DROP supplement");
        }
        $u = spip_query("SELECT extra FROM spip_articles");
        $u &= spip_query("SELECT extra FROM spip_auteurs");
        $u &= spip_query("SELECT extra FROM spip_breves");
        $u &= spip_query("SELECT extra FROM spip_rubriques");
        $u &= spip_query("SELECT extra FROM spip_mots");
        maj_version(1.702, $u);
    }
    if (upgrade_vers(1.703, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD lang VARCHAR(10) DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_rubriques ADD lang VARCHAR(10) DEFAULT '' NOT NULL");
        maj_version(1.703);
    }
    if (upgrade_vers(1.704, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD INDEX lang (lang)");
        spip_query("ALTER TABLE spip_auteurs ADD INDEX lang (lang)");
        spip_query("ALTER TABLE spip_rubriques ADD INDEX lang (lang)");
        maj_version(1.704);
    }
    if (upgrade_vers(1.705, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD langue_choisie VARCHAR(3) DEFAULT 'non'");
        spip_query("ALTER TABLE spip_rubriques ADD langue_choisie VARCHAR(3) DEFAULT 'non'");
        maj_version(1.705);
    }
    if (upgrade_vers(1.707, $version_installee, $version_cible)) {
        spip_query("UPDATE spip_articles SET langue_choisie='oui' WHERE MID(lang,1,1) != '.' AND lang != ''");
        spip_query("UPDATE spip_articles SET lang=MID(lang,2,8) WHERE langue_choisie = 'non'");
        spip_query("UPDATE spip_rubriques SET langue_choisie='oui' WHERE MID(lang,1,1) != '.' AND lang != ''");
        spip_query("UPDATE spip_rubriques SET lang=MID(lang,2,8) WHERE langue_choisie = 'non'");
        maj_version(1.707);
    }
    if (upgrade_vers(1.708, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_breves ADD lang VARCHAR(10) DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_breves ADD langue_choisie VARCHAR(3) DEFAULT 'non'");
        maj_version(1.708);
    }
    if (upgrade_vers(1.709, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD id_trad bigint(21) DEFAULT '0' NOT NULL");
        spip_query("ALTER TABLE spip_articles ADD INDEX id_trad (id_trad)");
        maj_version(1.709);
    }
    if (upgrade_vers(1.717, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD INDEX date_modif (date_modif)");
        maj_version(1.717);
    }
    if (upgrade_vers(1.718, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_referers DROP domaine");
        spip_query("ALTER TABLE spip_referers_articles DROP domaine");
        spip_query("ALTER TABLE spip_referers_temp DROP domaine");
        maj_version(1.718);
    }
    if (upgrade_vers(1.722, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD nom_site tinytext NOT NULL");
        spip_query("ALTER TABLE spip_articles ADD url_site VARCHAR(255) NOT NULL");
        spip_query("ALTER TABLE spip_articles ADD INDEX url_site (url_site)");
        if ($version_installee >= 1.72) {
            spip_query("UPDATE spip_articles SET url_site=url_ref");
            spip_query("ALTER TABLE spip_articles DROP INDEX url_ref");
            spip_query("ALTER TABLE spip_articles DROP url_ref");
        }
        maj_version(1.722);
    }
    if (upgrade_vers(1.723, $version_installee, $version_cible)) {
        if ($version_installee == 1.722) {
            spip_query("ALTER TABLE spip_articles MODIFY url_site VARCHAR(255) NOT NULL");
            spip_query("ALTER TABLE spip_articles DROP INDEX url_site;");
            spip_query("ALTER TABLE spip_articles ADD INDEX url_site (url_site);");
        }
        maj_version(1.723);
    }
    if (upgrade_vers(1.724, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_messages ADD date_fin datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
        maj_version(1.724);
    }
    if (upgrade_vers(1.726, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_auteurs ADD low_sec tinytext NOT NULL");
        maj_version(1.726);
    }
    if (upgrade_vers(1.727, $version_installee, $version_cible)) {
        // occitans : oci_xx -> oc_xx
        spip_query("UPDATE spip_auteurs SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'");
        spip_query("UPDATE spip_rubriques SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'");
        spip_query("UPDATE spip_articles SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'");
        spip_query("UPDATE spip_breves SET lang=REPLACE(lang,'oci_', 'oc_') WHERE lang LIKE 'oci_%'");
        maj_version(1.727);
    }
    // Ici version 1.7 officielle
    if (upgrade_vers(1.728, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD id_version int unsigned DEFAULT '0' NOT NULL");
        maj_version(1.728);
    }
    if (upgrade_vers(1.73, $version_installee, $version_cible)) {
        spip_query("ALTER TABLE spip_articles ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_articles ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_auteurs ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_auteurs ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_breves ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_breves ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_mots ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_rubriques ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_syndic ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_forum ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)");
        spip_query("ALTER TABLE spip_signatures ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
        spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)");
        maj_version(1.73);
    }
    if (upgrade_vers(1.731, $version_installee, $version_cible)) {
        spip_query("UPDATE spip_articles SET idx='1' where lang IN ('de','vi')");
        spip_query("UPDATE spip_rubriques SET idx='1' where lang IN ('de','vi')");
        spip_query("UPDATE spip_breves SET idx='1' where lang IN ('de','vi')");
        spip_query("UPDATE spip_auteurs SET idx='1' where lang IN ('de','vi')");
        maj_version(1.731);
    }
    if (upgrade_vers(1.732, $version_installee, $version_cible)) {
        // en correction d'un vieux truc qui avait fait sauter le champ inclus sur les bases version 1.415
        spip_query("ALTER TABLE spip_documents ADD inclus  VARCHAR(3) DEFAULT 'non'");
        maj_version(1.732);
    }
    if (upgrade_vers(1.733, $version_installee, $version_cible)) {
        // spip_query("ALTER TABLE spip_articles ADD id_version int unsigned DEFAULT '0' NOT NULL");
        spip_query("DROP TABLE spip_versions");
        spip_query("DROP TABLE spip_versions_fragments");
        creer_base();
        maj_version(1.733);
    }
    #if ($version_installee < 1.734) {
    #	// integrer nouvelles tables auxiliaires du compilateur ESJ
    #	creer_base();
    #	maj_version(1.734);
    #}
}
예제 #30
0
파일: v019.php 프로젝트: nursit/SPIP
function maj_1_952()
{
    $ok = sql_alter("TABLE spip_documents CHANGE `mode` `mode` enum('vignette','image','document') DEFAULT NULL");
    if ($ok) {
        $s = sql_select("v.id_document as id_document", "spip_documents as d join spip_documents as v ON d.id_vignette=v.id_document");
        $vignettes = array();
        while ($t = sql_fetch($s)) {
            $vignettes[] = intval($t['id_document']);
        }
        $ok &= spip_query("UPDATE spip_documents SET `mode`='image' WHERE `mode`='vignette'");
        $ok &= spip_query("UPDATE spip_documents SET `mode`='vignette' WHERE `mode`='image' AND " . sql_in('id_document', $vignettes));
    }
    if (!$ok) {
        die('echec sur maj_1_952()');
    }
}