Пример #1
0
function exec_articles_tous_args($id_rubrique, $aff_art, $sel_lang)
{
	global $browser_layer,$spip_lang_right,$spip_lang_left;

	changer_typo(); // pour definir la direction de la langue
	if (!is_array($aff_art)) $aff_art = array('prop','publie');
	$enfant = arbo_articles_tous();

	$flag_trad = (($GLOBALS['meta']['multi_rubriques'] == 'oui' 
		OR $GLOBALS['meta']['multi_articles'] == 'oui') 
		AND $GLOBALS['meta']['gerer_trad'] == 'oui');

	list($article,$text_article,$aff_statut) = texte_articles_tous($sel_lang, $flag_trad, $aff_art, lang_dir());
	if (_AJAX AND $id_rubrique) {
		include_spip('inc/actions');
		ajax_retour(afficher_contenu_rubrique($article, $enfant, $text_article, $id_rubrique, $flag_trad, 2));
	}
	else {

		pipeline('exec_init',array('args'=>array('exec'=>'articles_tous'),'data'=>''));
		$commencer_page = charger_fonction('commencer_page', 'inc');
		echo $commencer_page(_T('titre_page_articles_tous'), "accueil", "tout-site");

		echo http_script('var img_deplierhaut = "'. chemin_image('noeud_plus.gif') .'";
var img_deplierbas = "'. chemin_image('noeud_moins.gif') . '";');

		echo http_script('', 'jquery-ui-1.8-drag-drop.min.js');
		echo http_script('', 'articles_tous_edite.js');
		echo http_script('', 'pause.js');
	
		echo debut_gauche('', true);
		echo formulaire_affiche_tous($aff_art, $aff_statut, $sel_lang);

		echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_tous'),'data'=>''));
		echo creer_colonne_droite('', true);
		echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_tous'),'data'=>''));
		echo debut_droite('', true);

		if ($enfant AND $browser_layer)
		  echo couche_formulaire_tous();

		$out = "<textarea cols='1' rows='1' id='deplacements' style='display:none;' name='deplacements'></textarea>"
		  . "\n<div id='apply' style='display:none;text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_changer')."' /></div>";

		echo "\n<div id='cancel' class='verdana2' style='display:none;text-align:$spip_lang_left;float:$spip_lang_left'>",
		  "<a href='javascript:annuler_deplacement();'>",
		  _T('bouton_annuler'),
		  "</a></div>",
		  redirige_action_post("reorganiser","",'articles_tous', '', $out),
		  "<ul id='articles_tous'><li id='rubrique-0' class='treeItem racine verdana2'>",
		  "<span class='holder icone'>&nbsp;</span>",
		  _T('info_racine_site'),
		  "\n<ul class=''>\n",
		  afficher_contenu_rubrique($article, $enfant, $text_article, 0, $flag_trad, 2),
		  "</ul></li></ul>\n",
		  fin_gauche(), fin_page();
	}
}
Пример #2
0
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));
    }
}
Пример #3
0
function affiche_stats_lang($critere)
{
    global $spip_lang_right;
    $taille = 450;
    //
    // Statistiques par langue
    //
    $out = "";
    $r = sql_fetsel("SUM({$critere}) AS total_visites", "spip_articles");
    $visites = 1;
    // attention a '0.0'
    if ($r and $r['total_visites'] > 0) {
        $total_visites = $r['total_visites'];
    } else {
        $total_visites = 1;
    }
    $result = sql_select("lang, SUM(" . $critere . ") AS cnt", "spip_articles", "statut='publie' ", "lang");
    $out .= "\n<table cellpadding='2' cellspacing='0' border='0' width='100%' style='border: 1px solid #aaaaaa;'>";
    $ifond = 1;
    $visites_abs = 0;
    while ($row = sql_fetch($result)) {
        $lang = $row['lang'];
        if ($row['cnt']) {
            $visites = round($row['cnt'] / $total_visites * $taille);
            $pourcent = round($row['cnt'] / $total_visites * 100);
        }
        if ($visites > 0) {
            if ($ifond == 0) {
                $ifond = 1;
                $couleur = "white";
            } else {
                $ifond = 0;
                $couleur = "eeeeee";
            }
            $out .= "\n<tr style='background-color: {$couleur}'>";
            $dir = lang_dir($lang, '', ' dir="rtl"');
            $out .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><p {$dir}><span style='float: {$spip_lang_right};'>{$pourcent}%</span>" . traduire_nom_langue($lang) . "</p></td>";
            $out .= "<td style='border-bottom: 1px solid #cccccc;'>";
            $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='" . ($taille + 5) . "'>";
            $out .= "\n<tr><td style='align:{$spip_lang_right}; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>";
            if ($visites_abs > 0) {
                $out .= "<img src='" . chemin_image('rien.gif') . "' width='{$visites_abs}' height='10' alt=' ' />";
            }
            if ($visites > 0) {
                $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='{$visites}' height='8' alt=' ' />";
            }
            $out .= "</td></tr></table>\n";
            $out .= "</td>";
            $out .= "</tr>";
            $visites_abs += $visites;
        }
    }
    $out .= "</table>\n";
    return $out;
}
Пример #4
0
function puce_statut_mot($id, $statut, $id_groupe, $type, $ajax='') {
	static $icones = array();
	if (!isset($icones[$id_groupe])) {
		$t = sql_fetsel('technique', 'spip_groupes_mots', 'id_groupe='.intval($id_groupe));
		if ($t['technique'] == 'oui')
			$icones[$id_groupe] = _DIR_PLUGIN_MOTS_TECHNIQUES.'images/mot-technique-16.png';
		else
			$icones[$id_groupe] = chemin_image('petite-cle.gif');
	}

	return "<img src='" . $icones[$id_groupe] . "' alt='' />";
}
Пример #5
0
function action_tester_taille_dist()
{
    if (!autoriser('configurer')) {
        return;
    }
    $taille = _request('arg');
    $taille = explode('-', $taille);
    $GLOBALS['taille_max'] = end($taille);
    $GLOBALS['taille_min'] = 0;
    if (count($taille) > 1) {
        $GLOBALS['taille_min'] = reset($taille);
    }
    // si l'intervalle est assez petit, on garde la valeur min
    if ($GLOBALS['taille_max'] * $GLOBALS['taille_max'] - $GLOBALS['taille_min'] * $GLOBALS['taille_min'] < 50000) {
        ecrire_meta('max_taille_vignettes', $t = $GLOBALS['taille_min'] * $GLOBALS['taille_min'] * 0.9, 'non');
        echo round($t / 1000000, 3) . ' Mpx';
        die;
    }
    $taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max'] + $GLOBALS['taille_min']) / 2);
    include_spip('inc/filtres');
    // des inclusions representatives d'un hit prive et/ou public pour la conso memoire
    include_spip('public/assembler');
    include_spip('public/balises');
    include_spip('public/boucles');
    include_spip('public/cacher');
    include_spip('public/compiler');
    include_spip('public/composer');
    include_spip('public/criteres');
    include_spip('public/interfaces');
    include_spip('public/parametrer');
    include_spip('public/phraser_html');
    include_spip('public/references');
    include_spip('inc/presentation');
    include_spip('inc/charsets');
    include_spip('inc/documents');
    include_spip('inc/header');
    propre("<doc1>");
    // charger propre avec le trairement d'un modele
    $i = _request('i') + 1;
    $image_source = chemin_image("test.png");
    $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg=" . $GLOBALS['taille_min'] . "-" . $GLOBALS['taille_test']);
    ob_start('action_tester_taille_error_handler');
    filtrer('image_recadre', $image_source, $taille, $taille);
    $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']);
    // si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee
    $taille = $GLOBALS['taille_max'];
    filtrer('image_recadre', $image_source, $taille, $taille);
    $GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']);
    ob_end_clean();
    // on est ici, donc pas de plantage
    echo redirige_formulaire($GLOBALS['redirect']);
}
Пример #6
0
/**
 * Affiche l'étape 0 d'installation : écran d'accueil.
 *
 * @uses info_copyright()
 **/
function install_etape__dist()
{
    utiliser_langue_visiteur();
    $menu_langues = menu_langues('var_lang_ecrire');
    if (!$menu_langues) {
        redirige_url_ecrire('install', "etape=chmod");
    } else {
        include_spip('inc/presentation');
        // pour info_copyright
        $res = "<div class='petit-centre'><img alt='SPIP' src='" . chemin_image('logo-spip2.gif') . "' />\n" . "<p class='small'>" . info_copyright() . "</p></div>\n" . "<p>" . _T('install_select_langue') . "</p>" . "<div>" . $menu_langues . "</div>\n" . generer_form_ecrire('install', "<input type='hidden' name='etape' value='chmod' />" . bouton_suivant());
        echo minipres('AUTO', $res);
    }
}
Пример #7
0
function inc_tourner_dist($id_document, $document, $script, $flag, $type)
{
	global $spip_lang_right;

	if (!$document) {
		// retour d'Ajax
		$document = sql_fetsel("*", "spip_documents", "id_document = " . intval($id_document));
	}

	$prim = 'id_' . $type;
	// si pas de doc le hash sera inutilisable
	$id = intval(sql_getfetsel('id_objet', 'spip_documents_liens', "objet=".sql_quote($type)." AND id_document = " . intval($id_document)));

	$titre = $document['titre'];
	$id_vignette = $document['id_vignette'];
	$fichier = entites_html($document['fichier']);

	if (isset($document['url']))
		$url = $document['url'];
	else {
		$url = generer_url_entite($id_document, 'document');
	}

	$res = '';

	// Indiquer les documents manquants avec un panneau de warning

	if ($document['distant'] != 'oui') {
		if (!@file_exists(get_spip_doc($document['fichier']))){
			$c = _T('fichier_introuvable',
					array('fichier'=>basename($document['fichier'])));
			$res = "<img src='" . chemin_image('warning-24.gif')
				."'\n\tstyle='float: right;'\n\talt=\"$c\"\n\ttitle=\"$c\" />";
		} else {
			if ($flag AND !$id_vignette) 
				$res = boutons_rotateurs($document, $type, $id, $id_document,$script);
		}
	} else {
		$res = "\n<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>";
		
		// Signaler les documents distants par une icone de trombone
		$res .= "<img src='" . chemin_image('attachment.gif') . "'\n\t \n\talt=\"$fichier\"\n\ttitle=\"$fichier\" />\n";
		// Bouton permettant de copier en local le fichier
		$res .= bouton_copier_local($document, $type, $id, $id_document, $script);
		
		$res .= "</div>\n";
	}
	return tourner_greffe($id_document, $document, $url, $res);
}
Пример #8
0
function exec_test_ajax_dist() {
	switch (_request('js')) {
		// on est appele par <noscript>
		case -1:
			spip_setcookie('spip_accepte_ajax', -1);
			include_spip('inc/headers');
			redirige_par_entete(chemin_image('puce-orange-anim.gif'));
			break;

		// ou par ajax
		case 1:
		default:
			spip_setcookie('spip_accepte_ajax', 1);
			break;
	}
}
Пример #9
0
/**
 * Afficher l'arborescence du dossier squelette
 *
 * @param string $path_base
 * @param string $current_file
 * @return string
 */
function skeleditor_afficher_dir_skel($path_base,$current_file) {
	include_spip('inc/skeleditor');
	include_spip('inc/presentation');
	$file_list = skeleditor_files_editables($path_base);
	$current_file = substr($current_file,strlen($path_base));

  $output = "<div id='arbo'><div class='dir'>\n";
	$init_dir = $current_dir = "";
	foreach($file_list as $file){
		$dir = substr(dirname($file),strlen($path_base));
		$file = substr($file,strlen($path_base));

		if ($dir != $current_dir)
			$output .= skeleditor_tree_open_close_dir($current_dir,$dir,$current_file);

		$class="fichier";
		$readonly = false;
		if (!is_writable($path_base.$dir) OR !is_writable($path_base.$file)) {
			$readonly = true;
			$class .= " readonly";
		}

		$class .= ($file==$current_file?" on":'');

		$icon = "file";
		if (preg_match(',('._SE_EXTENSIONS_IMG.')$,',$file))
			$icon = "image";

		include_spip('inc/filtres_images_mini');
		$cadenas = ($readonly) ? "&nbsp;".inserer_attribut(image_reduire(chemin_image('cadenas-16.png'),12),'title',attribut_html(_T('texte_inc_meta_2'))) : "";

		$output .= "<a href='".generer_url_ecrire('skeleditor','f='.urlencode($f=$path_base.$file))."' class='$class'
			onclick=\"jQuery('#contenu > :first').ajaxReload({history:true,args:{f:'$f'}});return false;\">"
			. "<img src='"._DIR_PLUGIN_SKELEDITOR."images/se-$icon-16.png' alt='$icon' /> "
			.basename($file)
			.$cadenas
			. "</a>"
			;
	}
	$output .= skeleditor_tree_open_close_dir($current_dir,$init_dir,$current_file);
  $output .= "</div></div>\n";
  return $output;
}
Пример #10
0
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;
    }
}
function html_65c161fa3974dab7ff9b5b08fa07491e($Cache, $Pile, $doublons = array(), $Numrows = array(), $SP = 0)
{
    if (isset($Pile[0]["doublons"]) and is_array($Pile[0]["doublons"])) {
        $doublons = nettoyer_env_doublons($Pile[0]["doublons"]);
    }
    $connect = '';
    $page = ($t1 = strval(invalideur_session($Cache, (function_exists("autoriser") || include_spip("inc/autoriser")) && autoriser('configurer', '_admin_vider') ? " " : "" ? ' ' : ''))) !== '' ? $t1 . ('

' . boite_ouvrir(interdire_scripts(wrap(concat(filtre_balise_img_dist(chemin_image('image-24.png'), '', 'cadre-icone'), _T('info_images_auto')), '<h3>')), 'simple', 'titrem') . '<div id="placehoder_taille_cache_images"><p>&nbsp;<br />&nbsp;<br />&nbsp;<br /></p></div>
	<script type="text/javascript">
		jQuery(function(){jQuery(\'#placehoder_taille_cache_images\').animateLoading().load(\'' . invalideur_session($Cache, replace(generer_action_auteur('calculer_taille_cache', 'images'), '&amp;', '&')) . '\');});
	</script>
	<noscript>
		<iframe src="' . invalideur_session($Cache, generer_action_auteur('calculer_taille_cache', 'images')) . '" style="width: 100%;height: 3em;overflow: hidden;"></iframe>
	</noscript>

' . boite_pied() . '
	' . bouton_action(_T('public|spip|ecrire:bouton_vider_cache'), invalideur_session($Cache, generer_action_auteur('purger', 'vignettes', invalideur_session($Cache, self()))), 'ajax') . '
' . boite_fermer() . '
') : '';
    return analyse_resultat_skel('html_65c161fa3974dab7ff9b5b08fa07491e', $Cache, $page, '../prive/squelettes/inclure/admin_vider_images.html');
}
Пример #12
0
/**
 * Charger les informations contenues dans le xml d'une composition
 *
 * @param string $nom
 * @param string $info
 * @return array|string
 */
function compositions_charger_infos($nom,$info=""){
		// on peut appeller avec le nom du squelette
		$nom = preg_replace(',[.]html$,i','',$nom).".xml";
		include_spip('inc/xml');
		$composition = array();
		if ($xml = spip_xml_load($nom,false)){
			if (count($xml['composition'])){
				$xml = reset($xml['composition']);
				$composition['nom'] = _T_ou_typo(spip_xml_aplatit($xml['nom']));
				$composition['description'] = isset($xml['description'])?_T_ou_typo(spip_xml_aplatit($xml['description'])):'';
				if (isset($xml['icon'])) {
					$icon = chemin_image(reset($xml['icon']));
					if (!$icon) {
						$icon = find_in_path(reset($xml['icon']));
					}
				} else {
					$icon = '';
				}
				$composition['image_exemple'] = isset($xml['image_exemple']) ? find_in_path(reset($xml['image_exemple'])) : '';
				$composition['icon'] = $icon;
				$composition['class'] = isset($xml['class']) ? trim(reset($xml['class'])) : '';
				$composition['configuration'] = isset($xml['configuration']) ? spip_xml_aplatit($xml['configuration']) : '';
				$composition['branche'] = array();
				if (spip_xml_match_nodes(',^branche,', $xml, $branches)){
					foreach (array_keys($branches) as $branche){
						list($balise, $attributs) = spip_xml_decompose_tag($branche);
						$composition['branche'][$attributs['type']] = $attributs['composition'];
					}
				}
			}
		}
		if (!$info)
			return $composition;
		else 
			return isset($composition[$info])?$composition[$info]:"";
}
Пример #13
0
/**
 * Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth
 *
 * @param array $flux
 * @return array
 */
function auth_spip_formulaire_login($flux)
{
    // faut il encore envoyer md5 ?
    // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
    // les hash md5 ont une longueur 32, les sha 64
    $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
    $flux['data'] .= ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '') . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'sha256.js"></script>' . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login.js"></script>' . '<script type="text/javascript">/*<![CDATA[*/' . "var alea_actuel='" . $flux['args']['contexte']['_alea_actuel'] . "';" . "var alea_futur='" . $flux['args']['contexte']['_alea_futur'] . "';" . "var login='******'args']['contexte']['var_login'] . "';" . "var page_auteur = '" . generer_url_public('informer_auteur') . "';" . "var informe_auteur_en_cours = false;" . "var attente_informe = 0;" . "var compat_md5 = " . ($compat_md5 ? "true;" : "false;") . "(function(\$){\n\t\t\$('#password')\n\t\t\t.after(\"<em id='pass_securise'><img src='" . chemin_image('cadenas-16.png') . "' width='16' height='16' alt='" . attribut_html(_T('login_securise')) . "' title='" . attribut_html(_T('login_securise')) . "' \\/><\\/em>\");\n\t\taffiche_login_secure();\n\t\t\$('#var_login').change(actualise_auteur);\n\t\t\$('form#formulaire_login').submit(login_submit);\n\t}(jQuery));" . "/*]]>*/</script>";
    return $flux;
}
Пример #14
0
function puce_statut_mot_dist($id, $statut, $id_groupe, $type, $ajax = '', $menu_rapide = _ACTIVER_PUCE_RAPIDE)
{
    return "<img src='" . chemin_image("mot-16.png") . "' width='16' height='16' alt=''  />";
}
Пример #15
0
function inc_migrer_vers_dist($status_file, $redirect='') {
	if (!$status = migrer_vers_lire_status($status_file)) {
		// rien a faire ?
	}
	else {
		$status_file = _DIR_TMP.basename($status_file).".txt";
		$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 ...
		$timeout = min($timeout,30); // ne prolongeons pas plus que 30s car cela peut produire des erreur 500 et bloque le refresh
		$max_time = time()+$timeout/2;

		include_spip('inc/minipres');
		//@apache_setenv('no-gzip', 1); // trop agressif, plante sur certains hebergements
		@ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
		@ini_set("output_buffering","off");
		@ini_set('implicit_flush', 1);
		@ob_implicit_flush(1);

		switch ($status['etape']){
			case 'init':
				$titre = _T('migration:titre_debut_migration');
				break;
			case 'base':
			case 'basecopie':
				$titre = _T('migration:titre_migration_en_cours_base') . " (".count($status['tables']).") ";
				break;
			case 'fichiers':
			case 'fichierscopie':
				$titre = _T('migration:titre_migration_en_cours_fichiers') . " (".count($status['files']).") ";
				break;
			case 'squelettes':
			case 'squelettescopie':
				$titre = _T('migration:titre_migration_en_cours_squelettes') . " (".array_sum(array_map('count',$status['squelettes'])).") ";
				break;
		}

		$titre .= "<img src=\"".chemin_image('searching.gif')."\" />";
		echo ( install_debut_html($titre));
		// script de rechargement auto sur timeout
		echo "<meta http-equiv='Refresh' content='$timeout'>";
		@flush();
		echo "<div style='text-align: left'>\n";

		include_spip('inc/migration');
		$s = lire_migration_vers_status();

		// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
		switch ($status['etape']){
			case 'init':
				$status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']);
				ecrire_fichier($status_file, serialize($status));
				break;
			case 'base':
			case 'basecopie':
				$options = array(
					'callback_progression' => 'migrer_vers_afficher_progres',
					'max_time' => $max_time,
					'no_erase_dest' => lister_tables_noerase(),
					'where' => $status['where']?$status['where']:array(),
					'racine_fonctions_dest' =>'migration/envoi',
					'data_pool' => 200*1024,
				);
				$res = base_copier_tables($status_file, $status['tables'], '', '', $options);
				if ($res) {
					if ($res==="abort"){
						$s = lire_migration_vers_status();
						$s['status'] = 'abort';
						ecrire_migration_status('vers',$s);
					}
					if ($s['status'] != 'abort') {
						$status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']);
						ecrire_fichier($status_file, serialize($status));
					}
				}
				break;
			case 'fichiers':
			case 'fichierscopie':
				$options = array(
					'callback_progression' => 'migrer_vers_afficher_progres',
					'max_time' => $max_time,
					'racine_fonctions_dest' =>'migration/envoi',
					'data_pool' => 200*1024,
				);
				$res = base_copier_files($status_file, $status['files'],_DIR_IMG,_DIR_IMG, $options);
				if ($res) {
					$status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']);
					ecrire_fichier($status_file, serialize($status));
				}
				break;
			case 'squelettes':
			case 'squelettescopie':
				$options = array(
					'callback_progression' => 'migrer_vers_afficher_progres',
					'max_time' => $max_time,
					'racine_fonctions_dest' =>'migration/envoi',
					'data_pool' => 200*1024,
					'etape_suivante' => 'squelettescopie',
				);
				$res = true;
				if ($dir_sources = migration_determiner_dossier_squelette()
				  AND count($dir_sources = explode(':',$dir_sources))){
					foreach($dir_sources as $dir_source)
						$res = base_copier_files($status_file, $status['squelettes'][$dir_source],$dir_source,_DIR_RACINE."squelettes/", $options);
				}
				if ($res) {
					$status['etape'] = migrer_vers_etape_suivante($status['etape'],$s['quoi']);
					ecrire_fichier($status_file, serialize($status));
				}
				break;
		}
		// sortir si on a fini ou abandon demande
		$res = (in_array($status['etape'],array('fini','finition')) OR $s['status']=='abort');

		echo ( "</div>\n");

		if (!$res AND $redirect)
			echo migrer_vers_relance($redirect);
		echo (install_fin_html());
		#while (ob_get_level())
		#	ob_end_flush();
		flush();

		return $res;
	}
}
Пример #16
0
/**
 * Construit un bloc permettant d'activer le sélecteur de rubrique AJAX
 *
 * Construit un bloc comportant une icone clicable avec image animée à côté
 * pour charger en Ajax du code à mettre sous cette icone.
 *
 * @note
 *   Attention: changer le onclick si on change le code Html.
 *   (la fonction JS charger_node ignore l'attribut id qui ne sert en fait pas;
 *   getElement en mode Ajax est trop couteux).
 * 
 * @param string $url
 *     URL qui retournera le contenu du sélecteur en AJAX
 * @param string $js
 *     Code javascript ajouté sur onclick
 * @param string $idom
 *     Identifiant donné à l'image activant l'ajax et au block recevant son contenu
 * @param string $name
 *     Nom du champ à envoyer par le formulaire
 * @param string $init
 *     Code HTML à l'intérieur de l'input titreparent
 * @param int $id
 *     Valeur actuelle du champ
 * @return string
 *     Code HTML du sélecteur de rubrique AJAX
**/
function construire_selecteur($url, $js, $idom, $name, $init = '', $id = 0)
{
    $icone = strpos($idom, 'auteur') !== false ? 'auteur-24.png' : 'rechercher-20.png';
    return "<div class='rubrique_actuelle'><a href='#' onclick=\"" . $js . "return charger_node_url_si_vide('" . $url . "', this.parentNode.nextSibling, this.nextSibling,'',event)\" title='" . attribut_html(_T('titre_image_selecteur')) . "'><img src='" . chemin_image($icone) . "'\nstyle='vertical-align: middle;' alt='" . attribut_html(_T('titre_image_selecteur')) . "' /></a><img src='" . chemin_image('searching.gif') . "' id='img_" . $idom . "'\nstyle='visibility: hidden;' alt='*' />" . "<input id='titreparent' name='titreparent'" . $init . " />" . "<input type='hidden' id='{$name}' name='{$name}' value='" . $id . "' /><div class='nettoyeur'></div></div><div id='" . $idom . "'\nstyle='display: none;'></div>";
}
Пример #17
0
function afficher_tranches_requete($num_rows, $idom, $url='', $nb_aff = 10, $old_arg=NULL) {
	static $ancre = 0;
	global $browser_name, $spip_lang_right, $spip_display;
	if ($old_arg!==NULL){ // eviter de casser la compat des vieux appels $cols_span ayant disparu ...
		$idom = $url;		$url = $nb_aff; $nb_aff=$old_arg;
	}

	$ancre++;
	$self = self();
	$ie_style = ($browser_name == "MSIE") ? "height:1%" : '';
	$style = "style='visibility: hidden; float: $spip_lang_right'";
	$nav= navigation_pagination($num_rows, $nb_aff, $url, _request($idom), $idom, true);
	$script = parametre_url($self, $idom, -1);
	$l = htmlentities(_T('lien_tout_afficher'));

	return http_img_pack("searching.gif", "*", "$style id='img_$idom'")
	  . "\n<div style='$ie_style;' class='arial1 tranches' id='a$ancre'>"
	  . $nav
	  . "<a href='$script#a$ancre' class='plus'"
	  . (!$url ? '' : generer_onclic_ajax($url, $idom,-1))
	  . "><img title=\"$l\" alt=\"$l\"\nsrc=\""
	  . chemin_image("plus.gif")
	  . "\" /></a></div>\n";
}
Пример #18
0
function debusquer_squelette($fonc, $mode, $self)
{
    global $debug_objets;
    if ($mode !== 'validation') {
        if (isset($debug_objets['sourcefile']) and $debug_objets['sourcefile']) {
            $res = "<div id='spip-boucles'>\n" . debusquer_navigation_squelettes($self) . "</div>";
        } else {
            $res = '';
        }
        if ($fonc) {
            $id = " id='{$fonc}'";
            if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
                list($legend, $texte, $res2) = debusquer_source($fonc, $mode);
                $texte .= $res2;
            } elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) {
                $legend = _T('zbug_' . $mode);
                $texte = $debug_objets[$mode][$fonc . 'tout'];
                $texte = ancre_texte($texte, array('', ''));
            }
        } else {
            if (strlen(trim($res))) {
                return "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}</div>";
            } else {
                // cas de l'appel sur erreur: montre la page
                return isset($GLOBALS['debug_objets']['resultat']['tout']) ? $GLOBALS['debug_objets']['resultat']['tout'] : '';
            }
        }
    } else {
        $valider = charger_fonction('valider', 'xml');
        $val = $valider($debug_objets['validation'][$fonc . 'tout']);
        // Si erreur, signaler leur nombre dans le formulaire admin
        $debug_objets['validation'] = $val->err ? count($val->err) : '';
        list($texte, $err) = emboite_texte($val, $fonc, $self);
        if ($err === false) {
            $err = _T('impossible');
        } elseif ($err === true) {
            $err = _T('correcte');
        } else {
            $err = ": {$err}";
        }
        $legend = _T('validation') . ' ' . $err;
        $res = $id = '';
    }
    return !trim($texte) ? '' : "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}" . "<div id='debug_boucle'><fieldset{$id}><legend>" . "<a href='" . $self . "#f_" . substr($fonc, 0, 37) . "'> &#8593; " . ($legend ? $legend : $mode) . "</a></legend>" . $texte . "</fieldset></div>" . "</div>";
}
Пример #19
0
function forum_envoi_entete($parent, $titre_parent, $texte, $titre, $nom_site, $url_site)
{
	global $spip_lang_rtl;

	return "\n<br /><br /><table width='100%' cellpadding='0' cellspacing='0' border='0'>"
		. (!$parent ? '' : "<tr><td colspan='2'>$parent</td></tr>")
		. "<tr>"
		. (!$parent ? "<td colsan='2'"
			: (" <td style='width: 10px; background-image: url("
			   . chemin_image('forum-vert.gif')
			   . ");'>"
			   . http_img_pack('rien.gif', ' ', " style='width: 0px; height: 0px; border: 0px;'")
			   . "</td>\n<td "))
		.  " style='width: 100%' valign='top' rowspan='2'>"
		.  debut_cadre_thread_forum("", true, "", typo($titre))
		. propre($texte)
		. (!$nom_site ? '' : "<p><a href='$url_site'>$nom_site</a></p>")
		. "\n<div style='text-align: right'><input type='submit' name='valider_forum' value='"
		. _T('bouton_envoyer_message')
		. "'\nonclick='AjaxNamedSubmit(this)' /></div>"
		. fin_cadre_thread_forum(true)
		. "</td>"
		. "</tr>\n"
		. (!$parent ? ''
			: ("<tr><td valign='top' style='width: 10px; background-image: url("
			  . chemin_image('rien.gif')
			  . ");'>"
			  .  http_img_pack("forum-droite$spip_lang_rtl.gif",
					    '&nbsp;', 
					   " style='width: 10px; height: 13px'")
		      . "</td>\n</tr>"))
		. "</table>";
}
Пример #20
0
function formulaire_recherche($page, $complement = "")
{
    $recherche = _request('recherche');
    $recherche_aff = entites_html($recherche);
    if (!strlen($recherche)) {
        $recherche_aff = _T('info_rechercher');
        $onfocus = " onfocus=\"this.value='';\"";
    } else {
        $onfocus = '';
    }
    $form = '<input type="text" size="10" value="' . $recherche_aff . '" name="recherche" class="recherche" accesskey="r"' . $onfocus . ' />';
    $form .= "<input type='image' src='" . chemin_image('rechercher-20.png') . "' name='submit' class='submit' alt='" . _T('info_rechercher') . "' />";
    return "<div class='spip_recherche'>" . generer_form_ecrire($page, $form . $complement, " method='get'") . "</div>";
}
Пример #21
0
function afficher_forum_4($compteur_forum, $nb_forum, $thread)
{
	global $spip_lang_rtl;
	$fleche2="forum-droite$spip_lang_rtl.gif";
	$fleche='rien.gif';
	$vertical = chemin_image('forum-vert.gif');
	$rien = chemin_image('rien.gif');
	$res = '';
	for ($j=2;$j<=$compteur_forum AND $j<20;$j++){
		$res .= "<td style='width: 10px; vertical-align: top; background-image: url("
		. (($thread[$j]!=$nb_forum[$j]) ? $vertical : $rien)
		.  ");'>"
		. http_img_pack(($j==$compteur_forum) ? $fleche2 : $fleche, "", "width='10' height='13'")
		. "</td>\n";
	}
	return $res;
}
Пример #22
0
function statistiques_lang_ok()
{
	global $spip_ecran, $spip_lang_right;

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('onglet_repartition_lang'), "statistiques_visites", "repartition-langues");

	if ($spip_ecran == "large") {
		$largeur_table = 974;
	} else {
		$largeur_table = 750;
	}
	$taille = $largeur_table - 200;	
	echo "<table class='centered' width='$largeur_table'><tr><td style='width: $largeur_table" . "px; text-align:center;' class='verdana2'>";
	echo "<br /><br />";

	echo gros_titre(_T('onglet_repartition_lang'),'', false);

//barre_onglets("repartition", "langues");

	if (_request('critere') == "debut") {
		$critere = "visites";
//	echo gros_titre(_T('onglet_repartition_debut','', false));	
	} else {
		$critere = "popularite";
//	echo gros_titre(_T('onglet_repartition_actuelle','', false));	
}

	echo ($critere == "popularite") ? barre_onglets("rep_depuis", "popularite"): barre_onglets("rep_depuis", "debut");


//
// Statistiques par langue
//


	echo debut_cadre_enfonce("langues-24.gif", true);

	$r = sql_fetsel("SUM($critere) AS total_visites", "spip_articles");

	$visites = 1;
	if ($r)
		$total_visites = $r['total_visites'];
	else
		$total_visites = 1;

	$result = sql_select("lang, SUM(".$critere.") AS cnt", "spip_articles", "statut='publie' ", "lang");
		
	$ifond = 1;
	$visites_abs = 0;
	$res = '';
	while ($row = sql_fetch($result)) {

		$lang = $row['lang'];
		$visites = round($row['cnt'] / $total_visites * $taille);
		$pourcent = round($row['cnt'] / $total_visites * 100);

		if ($visites > 0) {

				if ($ifond==0){
					$ifond=1;
					$couleur="white";
				}else{
					$ifond=0;
					$couleur="eeeeee";
				}
	
				$res .= "\n<tr style='background-color: $couleur'>";
				$dir=lang_dir($lang,'',' dir="rtl"');
				$res .= "<td style='width: 100%; border-bottom: 1px solid #cccccc;'><span class='verdana2'$dir><span style='float: $spip_lang_right;'>$pourcent%</span>".traduire_nom_langue($lang)."</span></td>";
				
				$res .= "<td style='border-bottom: 1px solid #cccccc;'>";
				$res .= "\n<table cellpadding='0' cellspacing='0' border='0' width='".($taille+5)."'>";
				$res .= "\n<tr><td style='align:$spip_lang_right; background-color: #eeeeee; border: 1px solid #999999; white-space: nowrap;'>";
				if ($visites_abs > 0) $res .= "<img src='" . chemin_image('rien.gif') . "' width='$visites_abs' height='8' alt=' ' />";
				if ($visites>0) $res .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_langue' style='border: 0px;' width='$visites' height='8' alt=' ' />";
				$res .= "</td></tr></table>\n";
	
				$res .= "</td>";
				$res .= "</tr>";
				$visites_abs += $visites;
		}
	}
	if ($res)
		echo "\n<table cellpadding='2' cellspacing='0' border='0' width='100%' style='border: 1px solid #aaaaaa;'>", $res, "</table>\n";


//echo "<p><span class='verdana1 spip_medium'>"._T('texte_signification')."</span>";

	echo fin_cadre_enfonce(true);

	echo "</td></tr></table>";
	echo fin_page();
}
Пример #23
0
/**
 * Filtre pour afficher l'img icone d'un objet
 *
 * @param string $objet
 * @param int $taille
 * @return string
 */
function objet_icone($objet, $taille = 24)
{
    $icone = objet_info($objet, 'icone_objet') . "-" . $taille . ".png";
    $icone = chemin_image($icone);
    $balise_img = charger_filtre('balise_img');
    return $icone ? $balise_img($icone, _T(objet_info($objet, 'texte_objet'))) : '';
}
Пример #24
0
function puce_statut_rubrique_dist($id, $statut, $id_rubrique, $type, $ajax='') {

	return "<img src='" . chemin_image('rubrique-12.gif') . "' alt='' />";
}
Пример #25
0
function exec_rechercher_args($id, $type, $exclus, $rac, $do)
{
    if (!$do) {
        $do = 'aff';
    }
    $where = preg_split(",\\s+,", $type);
    if ($where) {
        foreach ($where as $k => $v) {
            $where[$k] = "'%" . substr(str_replace("%", "\\%", sql_quote($v)), 1, -1) . "%'";
        }
        $where_titre = "(titre LIKE " . join(" AND titre LIKE ", $where) . ")";
        $where_desc = "(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")";
        $where_id = "(id_rubrique = " . join(" AND id_rubrique = ", $where) . ")";
    } else {
        $where_titre = " 1=2";
        $where_desc = " 1=2";
        $where_id = " 1=2";
    }
    if ($exclus) {
        include_spip('inc/rubriques');
        $where_exclus = " AND " . sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT');
    } else {
        $where_exclus = '';
    }
    $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_id}{$where_exclus}");
    $points = $rub = array();
    while ($row = sql_fetch($res)) {
        $id_rubrique = $row["id_rubrique"];
        $rub[$id_rubrique]["titre"] = typo($row["titre"]);
        $rub[$id_rubrique]["id_parent"] = $row["id_parent"];
        $points[$id_rubrique] = $points[$id_rubrique] + 3;
    }
    $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_titre}{$where_exclus}");
    while ($row = sql_fetch($res)) {
        $id_rubrique = $row["id_rubrique"];
        $rub[$id_rubrique]["titre"] = typo($row["titre"]);
        $rub[$id_rubrique]["id_parent"] = $row["id_parent"];
        if (isset($points[$id_rubrique])) {
            $points[$id_rubrique] += 2;
        } else {
            $points[$id_rubrique] = 0;
        }
    }
    $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "{$where_desc}{$where_exclus}");
    while ($row = sql_fetch($res)) {
        $id_rubrique = $row["id_rubrique"];
        $rub[$id_rubrique]["titre"] = typo($row["titre"]);
        $rub[$id_rubrique]["id_parent"] = $row["id_parent"];
        if (isset($points[$id_rubrique])) {
            $points[$id_rubrique] += 1;
        } else {
            $points[$id_rubrique] = 0;
        }
    }
    if ($points) {
        arsort($points);
        $style = " style='background-image: url(" . chemin_image('secteur-12.png') . ")'";
        foreach ($rub as $k => $v) {
            $rub[$k]['atts'] = ($v["id_parent"] ? $style : '') . " class='petite-rubrique'";
        }
    }
    return proposer_item($points, $rub, $rac, $type, $do);
}
Пример #26
0
/**
 * Completer le formulaire de login avec le js ou les saisie specifiques a ce mode d'auth
 *
 * @param array $flux
 * @return array
 */
function auth_spip_formulaire_login($flux)
{
    // faut il encore envoyer md5 ?
    // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
    // les hash md5 ont une longueur 32, les sha 64
    // en evitant une requete sql a chaque affichage du formulaire login sans session
    // (perf issue pour les sites qui mettent le formulaire de login sur la home)
    $compat_md5 = false;
    if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
        $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
        if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
            effacer_meta('sha_256_only');
        }
        if (!$compat_md5) {
            ecrire_meta('sha_256_only', 'oui');
        }
    }
    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
    $flux['data'] .= ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '') . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>' . '<script type="text/javascript">/*<![CDATA[*/' . "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "'," . "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "'," . "'login':'******'args']['contexte']['var_login'] . "'," . "'page_auteur': '" . generer_url_public('informer_auteur') . "'," . "'informe_auteur_en_cours':false," . "'attente_informe':0," . "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};" . "jQuery(function(){\n\tjQuery('#password').after(\"<em id='pass_securise'><img src='" . chemin_image('cadenas-16.png') . "' width='16' height='16' alt='" . attribut_html(_T('login_securise')) . "' title='" . attribut_html(_T('login_securise')) . "' \\/><\\/em>\");\n\tif (login_info.alea_actuel) jQuery('#pass_securise').show(); else jQuery('#pass_securise').hide();\n\tjQuery('#var_login').change(function(){actualise_auteur();});\n\tjQuery('form#formulaire_login').submit(function(){login_submit();});\n});" . "/*]]>*/</script>";
    return $flux;
}
Пример #27
0
function action_tester_dist()
{
    $arg = _request('arg');
    $gd_formats = $gd_formats_read_gif = "";
    // verifier les formats acceptes par GD
    if ($arg == "gd1") {
        // Si GD est installe et php >= 4.0.2
        if (function_exists('imagetypes')) {
            if (imagetypes() & IMG_GIF) {
                $gd_formats[] = "gif";
            } else {
                # Attention GD sait lire le gif mais pas forcement l'ecrire
                if (function_exists('ImageCreateFromGIF')) {
                    $srcImage = @ImageCreateFromGIF(_ROOT_IMG_PACK . "test.gif");
                    if ($srcImage) {
                        $gd_formats_read_gif = ",gif";
                        ImageDestroy($srcImage);
                    }
                }
            }
            if (imagetypes() & IMG_JPG) {
                $gd_formats[] = "jpg";
            }
            if (imagetypes() & IMG_PNG) {
                $gd_formats[] = "png";
            }
        } else {
            # ancienne methode de detection des formats, qui en plus
            # est bugguee car elle teste les formats en lecture
            # alors que la valeur deduite sert a identifier
            # les formats disponibles en ecriture... (cf. inc_logos)
            $gd_formats = array();
            if (function_exists('ImageCreateFromJPEG')) {
                $srcImage = @ImageCreateFromJPEG(_ROOT_IMG_PACK . "test.jpg");
                if ($srcImage) {
                    $gd_formats[] = "jpg";
                    ImageDestroy($srcImage);
                }
            }
            if (function_exists('ImageCreateFromGIF')) {
                $srcImage = @ImageCreateFromGIF(_ROOT_IMG_PACK . "test.gif");
                if ($srcImage) {
                    $gd_formats[] = "gif";
                    ImageDestroy($srcImage);
                }
            }
            if (function_exists('ImageCreateFromPNG')) {
                $srcImage = @ImageCreateFromPNG(_ROOT_IMG_PACK . "test.png");
                if ($srcImage) {
                    $gd_formats[] = "png";
                    ImageDestroy($srcImage);
                }
            }
        }
        if ($gd_formats) {
            $gd_formats = join(",", $gd_formats);
        }
        ecrire_meta("gd_formats_read", $gd_formats . $gd_formats_read_gif);
        ecrire_meta("gd_formats", $gd_formats);
    } else {
        if ($arg == "netpbm") {
            define('_PNMSCALE_COMMAND', 'pnmscale');
            // chemin a changer dans mes_options
            if (_PNMSCALE_COMMAND == '') {
                return;
            }
            $netpbm_formats = array();
            $jpegtopnm_command = str_replace("pnmscale", "jpegtopnm", _PNMSCALE_COMMAND);
            $pnmtojpeg_command = str_replace("pnmscale", "pnmtojpeg", _PNMSCALE_COMMAND);
            $vignette = _ROOT_IMG_PACK . "test.jpg";
            $dest = _DIR_VAR . "test-jpg.jpg";
            $commande = "{$jpegtopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}";
            spip_log($commande);
            exec($commande);
            if ($taille = @getimagesize($dest)) {
                if ($taille[1] == 10) {
                    $netpbm_formats[] = "jpg";
                }
            }
            $giftopnm_command = str_replace("pnmscale", "giftopnm", _PNMSCALE_COMMAND);
            $pnmtojpeg_command = str_replace("pnmscale", "pnmtojpeg", _PNMSCALE_COMMAND);
            $vignette = _ROOT_IMG_PACK . "test.gif";
            $dest = _DIR_VAR . "test-gif.jpg";
            $commande = "{$giftopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}";
            spip_log($commande);
            exec($commande);
            if ($taille = @getimagesize($dest)) {
                if ($taille[1] == 10) {
                    $netpbm_formats[] = "gif";
                }
            }
            $pngtopnm_command = str_replace("pnmscale", "pngtopnm", _PNMSCALE_COMMAND);
            $vignette = _ROOT_IMG_PACK . "test.png";
            $dest = _DIR_VAR . "test-gif.jpg";
            $commande = "{$pngtopnm_command} {$vignette} | " . _PNMSCALE_COMMAND . " -width 10 | {$pnmtojpeg_command} > {$dest}";
            spip_log($commande);
            exec($commande);
            if ($taille = @getimagesize($dest)) {
                if ($taille[1] == 10) {
                    $netpbm_formats[] = "png";
                }
            }
            if ($netpbm_formats) {
                $netpbm_formats = join(",", $netpbm_formats);
            } else {
                $netpbm_formats = '';
            }
            ecrire_meta("netpbm_formats", $netpbm_formats);
        }
    }
    // et maintenant envoyer la vignette de tests
    if (in_array($arg, array("gd1", "gd2", "imagick", "convert", "netpbm"))) {
        include_spip('inc/filtres');
        include_spip('inc/filtres_images_mini');
        $taille_preview = 150;
        $image = _image_valeurs_trans(_DIR_IMG_PACK . 'test_image.jpg', "reduire-{$taille_preview}-{$taille_preview}", 'jpg');
        $image['fichier_dest'] = _DIR_VAR . "test_{$arg}";
        if ($preview = _image_creer_vignette($image, $taille_preview, $taille_preview, $arg, true) and $preview['width'] * $preview['height'] > 0) {
            redirige_par_entete($preview['fichier']);
        }
    }
    # image echec
    redirige_par_entete(chemin_image('puce-rouge-anim.gif'));
}
Пример #28
0
function exec_admin_effacer_dist()
{
	if (!autoriser('detruire')) {
		include_spip('inc/minipres');
		echo minipres();
	} else {

	pipeline('exec_init',array('args'=>array('exec'=>'admin_effacer'),'data'=>''));

	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('titre_page_admin_effacer'), "configuration", "base");

	echo "\n<br /><br />";
	echo gros_titre(_T('titre_admin_effacer'),'',false);
	echo barre_onglets("administration", "effacer");

	echo debut_gauche('',true);
	echo debut_boite_info(true);

	echo _T('info_gauche_admin_effacer');

	echo fin_boite_info(true);
	
	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'admin_effacer'),'data'=>''));	  
	
	echo creer_colonne_droite('',true);
	echo pipeline('affiche_droite',array('args'=>array('exec'=>'admin_effacer'),'data'=>''));	  
	
	echo debut_droite('',true);
	echo debut_cadre_trait_couleur('',true,'',"<label for='reinstall'>"._T('texte_effacer_base')."</label>");

	$res = "\n<input type='hidden' name='reinstall' id='reinstall' value='non' />";

	$res = generer_form_ecrire('delete_all', $res, '', _T('bouton_effacer_tout'));

	echo 
		'<img src="' .  chemin_image('warning.gif') . '" alt="',
	  	_T('info_avertissement'),
		"\" style='width: 48px; height: 48px; float: right;margin: 10px;' />",
		_T('texte_admin_effacer_01'),
		"<div class='nettoyeur'></div>",
		"\n<div style='text-align: center'>",
		debut_boite_alerte(),
		"\n<div class='serif'>",
		"\n<b>"._T('avis_suppression_base')."&nbsp;!</b>",
		$res,
		"\n</div>",
		fin_boite_alerte(),
		"</div>";

	echo fin_cadre_relief(true);
	
	echo debut_cadre_trait_couleur('',true,'',_T('texte_effacer_statistiques'));

	$res = generer_form_ecrire('delete_statistiques', "", '', _T('bouton_effacer_statistiques'));

	echo 
		'<img src="' .  chemin_image('warning.gif') . '" alt="',
	  	_T('info_avertissement'),
		"\" style='width: 48px; height: 48px; float: right;margin: 10px;' />",
	  _T('texte_admin_effacer_stats'),
		"<div class='nettoyeur'></div>",
		"\n<div style='text-align: center'>",
		"\n<div class='serif'>",
		"\n<b>"._T('avis_suppression_base')."&nbsp;!</b>",
		$res,
		"\n</div>",
		"</div>";

	echo fin_cadre_relief(true);

	echo pipeline('affiche_milieu',array('args'=>array('exec'=>'admin_effacer'),'data'=>''));	  

	echo fin_gauche(), fin_page();
	}
}
Пример #29
0
function exec_messagerie_dist()
{

global $connect_id_auteur, $connect_statut, $spip_lang_rtl;


$commencer_page = charger_fonction('commencer_page', 'inc');
echo $commencer_page(_T('titre_page_messagerie'), "accueil", "messagerie");

echo debut_gauche("messagerie",true);


echo debut_boite_info(true);

echo _T('info_gauche_messagerie');

echo "<p>".http_img_pack("m_envoi$spip_lang_rtl.gif", 'V', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_vert'), '</p>';

 echo aide ("messut");

echo "<p>".http_img_pack("m_envoi_bleu$spip_lang_rtl.gif", 'B', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_bleu'), '</p>';

echo aide ("messpense");

echo "<p>".http_img_pack("m_envoi_jaune$spip_lang_rtl.gif", 'J', "style='width: 14px; height: 7px; border: 0px'") .' ' . _T('info_symbole_jaune'), '</p>';

echo fin_boite_info(true);

echo creer_colonne_droite('', true);

echo debut_cadre_relief("messagerie-24.gif", true);
echo icone_horizontale(_T('lien_nouvea_pense_bete'),generer_action_auteur("editer_message","pb"), "pense-bete.gif", "", false);
echo icone_horizontale(_T('lien_nouveau_message'),generer_action_auteur("editer_message","normal"), "message.gif", "", false);
		
		if ($connect_statut == "0minirezo") {
			echo icone_horizontale(_T('lien_nouvelle_annonce'),generer_action_auteur("editer_message","affich"), "annonce.gif", "", false);
		}
echo fin_cadre_relief(true);


# Affiche l'encadre "lien iCal"

 echo
    debut_cadre_enfonce('',true) .
    "<div class='verdana1'>"._T("calendrier_synchro") .
    "<table  class='cellule-h-table' cellpadding='0'><tr>\n" .
    "<td><a href='" . generer_url_ecrire("synchro") . "' class='ical'>&nbsp;</a></td>\n"
    . "<td class='cellule-h-lien'><br /><a href='" . generer_url_ecrire("synchro") . "' class='cellule-h'>" 
    . _T("icone_suivi_activite")
    . "</a></td>\n</tr></table>\n" ."</div>" .
    fin_cadre_enfonce(true);


 echo debut_droite("messagerie", true);

 $messages_vus = array();

 echo afficher_ses_messages('<b>' . _T('infos_vos_pense_bete') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')", $messages_vus, false, true);


 echo afficher_ses_messages('<b>' . _T('info_nouveaux_message') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND vu='non' AND statut='publie' AND lien.id_message=messages.id_message", $messages_vus,  true, true);


 echo afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_messages AS lien", "lien.id_auteur=$connect_id_auteur AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')",  $messages_vus, true, false);


// Afficher le lien RSS

echo bouton_spip_rss('messagerie', array('id_auteur' => $connect_id_auteur));



 echo afficher_ses_messages('<b>' . _T('info_message_en_redaction') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='redac'",  $messages_vus, true, false);


 $result = sql_select('auteurs.id_auteur, auteurs.nom, COUNT(*) AS total', 'spip_auteurs AS auteurs,  spip_auteurs_messages AS lien2, spip_messages AS messages, spip_auteurs_messages AS lien', "(lien.id_auteur = $connect_id_auteur AND lien.id_message = messages.id_message AND messages.statut = 'publie' AND (messages.rv != 'oui' OR messages.date_fin > ".sql_quote(date('Y-m-d H:i:s'))." )) AND (lien2.id_auteur = lien2.id_auteur AND lien2.id_message = messages.id_message AND lien2.id_auteur != $connect_id_auteur AND auteurs.id_auteur = lien2.id_auteur)", "auteurs.id_auteur", 'total DESC', 10);

 $cor = array();
 while($row = sql_fetch($result)) {
		$id_auteur = $row['id_auteur'];
		$nom = typo($row["nom"]);
		$total = $row["total"];
		$cor[]= "<div class='tr_liste'\nonmouseover=\"changeclass(this,'tr_liste_over');\"\nonmouseout=\"changeclass(this,'tr_liste');\"\nstyle='padding: 2px; padding-left: 10px; border-bottom: 1px solid #cccccc;'><div class='verdana1'><img src='" . chemin_image('redac-12.gif') . "'\nstyle='border: 0px' alt=' ' /> <a href='" . generer_url_ecrire("auteur_infos","id_auteur=$id_auteur") . "'>$nom,</a> ($total)</div></div>";
 }

 if ($cor) {

	echo "<div style='height: 12px;'></div>";
	$bouton = bouton_block_depliable(_T('info_principaux_correspondants'),true,'principaux');
	echo debut_cadre('liste',"redacteurs-24.gif",'',$bouton);
	echo debut_block_depliable(true,'principaux');
	echo "<table width='100%' cellpadding='0' cellspacing='0'>";
	echo "<tr><td valign='top' style='width: 50%'>";
	$count = ceil(count($cor)/2);
	echo join("\n",array_slice($cor, 0, $count));
	echo "</td><td valign='top' style='width: 50%'>";
	echo join("\n",array_slice($cor, $count));
	echo "</td></tr></table>";
	echo fin_block();
	echo fin_cadre('liste');
 }

 echo afficher_ses_messages('<b>' . _T('info_pense_bete_ancien') . '</b>', '', "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND rv!='oui'",  $messages_vus, false, false);

 echo afficher_ses_messages('<b>' . _T('info_tous_redacteurs') . '</b>', '', "statut='publie' AND type='affich' AND (date_fin > DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).", INTERVAL 1 DAY) OR rv != 'oui')",  $messages_vus, false, false);

echo fin_gauche(), fin_page();

}
Пример #30
0
/**
 * Chargement du formulaire d'édition de logo
 *
 * @param string $objet Objet SPIP auquel sera lie le document (ex. article)
 * @param int $id_objet Identifiant de l'objet
 * @param string $retour Url de redirection apres traitement
 * @param array $options Tableau d'option (exemple : image_reduire => 50)
 * @return array               Variables d'environnement pour le fond
 */
function formulaires_editer_logo_charger_dist($objet, $id_objet, $retour = '', $options = array())
{
    // pas dans une boucle ? formulaire pour le logo du site
    // dans ce cas, il faut chercher un 'siteon0.ext'
    if (!$objet) {
        $objet = 'site';
    }
    $objet = objet_type($objet);
    $_id_objet = id_table_objet($objet);
    if (!is_array($options)) {
        $options = unserialize($options);
    }
    if (!isset($options['titre'])) {
        $balise_img = chercher_filtre('balise_img');
        $img = $balise_img(chemin_image('image-24.png'), "", 'cadre-icone');
        $libelles = pipeline('libeller_logo', $GLOBALS['logo_libelles']);
        $libelle = ($id_objet or $objet != 'rubrique') ? $objet : 'racine';
        if (isset($libelles[$libelle])) {
            $libelle = $libelles[$libelle];
        } elseif ($libelle = objet_info($objet, 'texte_logo_objet')) {
            $libelle = _T($libelle);
        } else {
            $libelle = _L('Logo');
        }
        switch ($objet) {
            case 'article':
                $libelle .= " " . aide("logoart");
                break;
            case 'breve':
                $libelle .= " " . aide("breveslogo");
                break;
            case 'rubrique':
                $libelle .= " " . aide("rublogo");
                break;
            default:
                break;
        }
        $options['titre'] = $img . $libelle;
    }
    if (!isset($options['editable'])) {
        include_spip('inc/autoriser');
        $options['editable'] = autoriser('iconifier', $objet, $id_objet);
    }
    $res = array('editable' => ($GLOBALS['meta']['activer_logos'] == 'oui' ? ' ' : '') && (!isset($options['editable']) or $options['editable']), 'logo_survol' => $GLOBALS['meta']['activer_logos_survol'] == 'oui' ? ' ' : '', 'objet' => $objet, 'id_objet' => $id_objet, '_options' => $options, '_show_upload_off' => '');
    // rechercher le logo de l'objet
    // la fonction prend un parametre '_id_objet' etrange :
    // le nom de la cle primaire (et non le nom de la table)
    // ou directement le nom du raccourcis a chercher
    $chercher_logo = charger_fonction('chercher_logo', 'inc');
    $etats = $res['logo_survol'] ? array('on', 'off') : array('on');
    foreach ($etats as $etat) {
        $logo = $chercher_logo($id_objet, $_id_objet, $etat);
        if ($logo) {
            $res['logo_' . $etat] = $logo[0];
        }
    }
    // pas de logo_on -> pas de formulaire pour le survol
    if (!isset($res['logo_on'])) {
        $res['logo_survol'] = '';
    } elseif (!isset($res['logo_off']) and _request('logo_up')) {
        $res['_show_upload_off'] = ' ';
    }
    // si le logo n'est pas editable et qu'il n'y en a pas, on affiche pas du tout le formulaire
    if (!$res['editable'] and !isset($res['logo_off']) and !isset($res['logo_on'])) {
        return false;
    }
    return $res;
}