Beispiel #1
0
/**
 * Traiter
 * @return array
 */
function formulaires_sauvegarder_traiter_dist()
{
    $status_file = base_dump_meta_name(0);
    $dir_dump = dump_repertoire();
    $archive = $dir_dump . basename(_request('nom_sauvegarde'), ".sqlite");
    if (_request('tout_sauvegarder')) {
        // ici on prend toutes les tables sauf celles exclues par defaut
        // (tables de cache en pratique)
        $exclude = lister_tables_noexport();
        list($tables, ) = base_liste_table_for_dump($exclude);
        $tables = base_lister_toutes_tables('', $tables, $exclude);
    } else {
        $tables = _request('tables');
    }
    include_spip('inc/dump');
    $res = dump_init($status_file, $archive, $tables);
    if ($res === true) {
        // on lance l'action sauvegarder qui va realiser la sauvegarde
        // et finira par une redirection vers la page sauvegarde_fin
        include_spip('inc/actions');
        $redirect = generer_action_auteur('sauvegarder', $status_file);
        return array('message_ok' => 'ok', 'redirect' => $redirect);
    } else {
        return array('message_erreur' => $res);
    }
}
Beispiel #2
0
function exec_export_all_init($rub, $gz, $tables, $serveur='', $save=''){
	$meta = base_dump_meta_name($rub);
	utiliser_langue_visiteur();
	if (!isset($GLOBALS['meta'][$meta])){
		// c'est un demarrage en arrivee directe depuis exec=admin_tech
		// on initialise  (mais si c'est le validateur, ne rien faire)
		if ($GLOBALS['exec'] == 'valider_xml') return;
		$archive = exec_export_all_args($rub, $gz);
		$tables = export_all_start($meta, $archive, $rub, $tables);
		$v = array($gz, $archive, $rub, $tables, 1, 0, $serveur, $save);
		ecrire_meta($meta, serialize($v), 'non');
		// rub=$rub sert AUSSI a distinguer cette redirection
		// d'avec l'appel initial sinon FireFox croit malin
		// d'optimiser la redirection
		$url = generer_url_ecrire('export_all',"rub=$rub", true);
	} else {
		// appels suivants
		$export = charger_fonction('export', 'inc');
		$arg = $export($meta);
		// Si retour de $export c'est fini; dernier appel pour ramasser
		// et produire l'en tete du fichier a partir de l'espace public
		$url = generer_action_auteur("export_all",$arg,'',true, true, true);
	}
	include_spip('inc/headers');
	redirige_par_entete($url);
}
/**
 * Sauvegarder par morceaux
 *
 * @param string $arg
 */
function action_sauvegarder_dist($arg = null)
{
    if (!$arg) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    $status_file = $arg;
    $redirect = parametre_url(generer_action_auteur('sauvegarder', $status_file), "step", intval(_request('step') + 1), '&');
    // lancer export qui va se relancer jusqu'a sa fin
    $sauvegarder = charger_fonction('sauvegarder', 'inc');
    utiliser_langue_visiteur();
    // quand on sort de $export avec true c'est qu'on a fini
    if ($sauvegarder($status_file, $redirect)) {
        dump_end($status_file, 'sauvegarder');
        include_spip('inc/headers');
        echo redirige_formulaire(generer_url_ecrire("sauvegarder", 'status=' . $status_file, '', true, true));
    }
    // forcer l'envoi du buffer par tous les moyens !
    echo str_repeat("<br />\r\n", 256);
    while (@ob_get_level()) {
        @ob_flush();
        @flush();
        @ob_end_flush();
    }
}
Beispiel #4
0
function formulaires_exporter_sites_traiter_dist()
{
    $id_parent = intval(_request('id_parent'));
    $exporter_publie_seulement = _request('exporter_publie_seulement') ? 1 : 0;
    $exporter_avec_mots_cles = _request('exporter_avec_mots_cles') ? 1 : 0;
    include_spip('inc/actions');
    $redirect = generer_action_auteur('exporter_bookmarks', "{$id_parent}-{$exporter_publie_seulement}-{$exporter_avec_mots_cles}");
    return array('redirect' => $redirect);
}
Beispiel #5
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));
    }
}
/**
 * Inserer les infos d'agenda sur les articles et rubriques
 *
 * @param array $flux
 * @return array
 */
function agenda_affiche_milieu($flux)
{
    $e = trouver_objet_exec($flux['args']['exec']);
    $out = "";
    if ($e['type'] == 'rubrique' and autoriser('configurer') and $e['edition'] == false and $id_rubrique = intval($flux['args']['id_rubrique']) and autoriser('modifier', 'rubrique', $id_rubrique)) {
        $activer = true;
        $res = "";
        $actif = sql_getfetsel('agenda', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
        $statut = "-32";
        $alt = "";
        $voir = "";
        if (!sql_countsel('spip_rubriques', 'agenda=1')) {
            $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
        } else {
            include_spip('inc/rubriques');
            if (sql_countsel('spip_rubriques', sql_in('id_rubrique', calcul_hierarchie_in($id_rubrique)) . " AND agenda=1 AND id_rubrique<>" . intval($id_rubrique))) {
                $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
                $activer = false;
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            } elseif (!$actif) {
                $alt = _T('agenda:rubrique_sans_gestion_evenement') . '<br />';
                $statut = "-non-32";
            }
            if ($actif) {
                $alt = _T('agenda:rubrique_mode_agenda') . '<br />';
                $statut = "-ok-32";
                $voir = _T('agenda:voir_evenements_rubrique');
            }
        }
        if (!$actif) {
            if ($activer) {
                $res .= bouton_action(_T('agenda:rubrique_activer_agenda'), generer_action_auteur('activer_agenda_rubrique', $id_rubrique, self()), 'ajax');
            }
        } else {
            $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'), generer_action_auteur('activer_agenda_rubrique', "-{$id_rubrique}", self()), 'ajax');
        }
        if ($voir) {
            $res .= " | <a href='" . generer_url_ecrire('evenements', "id_rubrique={$id_rubrique}") . "'>{$voir}</a>";
        }
        if ($res) {
            $out .= boite_ouvrir(_T('agenda:agenda') . http_img_pack("agenda{$statut}.png", $alt, "class='statut'", $alt), 'simple agenda-statut') . $res . boite_fermer();
        }
    } elseif ($e['type'] == 'article' and $e['edition'] == false) {
        $id_article = $flux['args']['id_article'];
        $out .= recuperer_fond('prive/objets/contenu/article-evenements', $flux['args']);
    }
    if ($out) {
        if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
            $flux['data'] = substr_replace($flux['data'], $out, $p, 0);
        } else {
            $flux['data'] .= $out;
        }
    }
    return $flux;
}
Beispiel #7
0
/**
 * Retour de la demande de paiement chez PaypalExpress
 *
 * @param array $config
 * @param null|array $response
 * @return array
 */
function presta_paypalexpress_call_response($config, $response = null)
{
    include_spip('inc/bank');
    $mode = $config['presta'];
    $ack = false;
    include_spip('presta/paypalexpress/inc/paypalexpress');
    /* At this point, the buyer has completed in authorizing payment
    	at PayPal.  The script will now call PayPal with the details
    	of the authorization, incuding any shipping information of the
    	buyer.  Remember, the authorization is not a completed transaction
    	at this state - the buyer still needs an additional step to finalize
    	the transaction
    	*/
    $token = urlencode(_request('token'));
    $id_transaction = intval($_SESSION['id_transaction']);
    if (!($row = sql_fetsel("*", "spip_transactions", "id_transaction=" . intval($id_transaction)))) {
        return bank_transaction_invalide($id_transaction, array('mode' => $mode, 'log' => var_export($_REQUEST, true) . var_export($_SESSION, true), 'erreur' => 'donnees Paypal non conformes'));
    }
    /* Build a second API request to PayPal, using the token as the
    	ID to get the details on the payment authorization
    	*/
    $nvpstr = "&TOKEN=" . $token;
    #var_dump($nvpstr);
    // pas la peine de faire un call Paypal si Cancel
    if ($token and _request('action') !== 'bank_cancel' and !defined('_BANK_CANCEL_TRANSACTION')) {
        /* Make the API call and store the results in an array.  If the
        		call was a success, show the authorization details, and provide
        		an action to complete the payment.  If failed, show the error
        		*/
        $resArray = bank_paypalexpress_hash_call($config, "GetExpressCheckoutDetails", $nvpstr);
        #var_dump($resArray);
        $_SESSION['reshash'] = $resArray;
        $ack = strtoupper($resArray["ACK"]);
    }
    if ($ack == "SUCCESS" and isset($resArray["PAYERID"]) and isset($resArray["EMAIL"]) and $resArray["PAYERID"] == _request('PayerID')) {
        $url = $_SESSION['paypalexpress_url_confirm'];
        $url_checkout = generer_action_auteur('paypalexpress_checkoutpayment', $resArray["PAYERID"] . "-" . $mode . "-" . bank_config_id($config));
        $url = parametre_url($url, 'checkout', $url_checkout, '&');
        $resume = "Paiement par compte Paypal : <br/>" . $resArray['FIRSTNAME'] . ' ' . $resArray['LASTNAME'] . "," . $resArray['EMAIL'];
        $_SESSION['order_resume'] = $resume;
        $_SESSION['token'] = $token;
        $_SESSION['payer_id'] = $resArray["PAYERID"];
        // on redirige (un peu sauvagement) sur l'URL de confirmation
        // qui est l'url d'origine du paiement avec un &confirm=oui
        // et va rafficher la commande avec un bouton de validation de paiement
        include_spip("inc/headers");
        redirige_par_entete($url);
    } else {
        // regarder si l'annulation n'arrive pas apres un reglement (internaute qui a ouvert 2 fenetres de paiement)
        if ($row['reglee'] == 'oui') {
            return array($id_transaction, true);
        }
        return bank_transaction_echec($id_transaction, array('mode' => $mode, 'config_id' => bank_config_id($config), 'log' => var_export($_REQUEST, true) . var_export($_SESSION['reshash'], true), 'erreur' => $ack, 'where' => 'GetExpressCheckoutDetails'));
    }
}
Beispiel #8
0
function profils_boite_infos($flux)
{
    if ($flux['args']['type'] == 'auteur' and $id_auteur = $flux['args']['id'] and include_spip('inc/autoriser') and autoriser('webmestre')) {
        // on peut s'autologer a la place d'un visiteur
        if ($statut = sql_getfetsel("statut", "spip_auteurs", "id_auteur=" . intval($id_auteur) . " AND statut=" . sql_quote("6forum"))) {
            include_spip('inc/actions');
            $bouton = bouton_action("Se connecter avec son compte", generer_action_auteur("usurper_profil", "{$id_auteur}", generer_url_public("profil", "", "", false)));
            $flux['data'] .= $bouton;
        }
    }
    return $flux;
}
/**
 * Action effectuant 1 action dans la liste des actions à réaliser
 * sur les plugins.
 *
 * Cette action sera relancée tant qu'il reste des actions à faire
 */
function action_actionner_dist()
{
    // droits
    include_spip('inc/autoriser');
    if (!autoriser('configurer', '_plugins')) {
        include_spip('inc/minipres');
        echo minipres();
        exit;
    }
    include_spip('inc/svp_actionner');
    include_spip('inc/headers');
    $actionneur = new Actionneur();
    $actionneur->get_actions();
    if ($actionneur->one_action()) {
        // si SVP a été enlevé des actifs, on redirige sur la fin...
        // sinon cette page d'action/actionner devient introuvable.
        // dans ce cas précis, les autres actions prévues venant après la desactivation de SVP
        // ne pourront être traitees... SVP n'étant plus là !
        if ($actionneur->tester_si_svp_desactive()) {
            $url = _request('redirect');
        } else {
            $url = generer_action_auteur('actionner', '', _request('redirect'));
        }
        // en mode pas à pas, on affiche un bilan entre chaque action
        // et on demande a l'utilistateur de cliquer pour realiser
        // l'action suivante.
        include_spip('inc/config');
        if (lire_config('svp/mode_pas_a_pas') == 'oui') {
            include_spip('inc/minipres');
            $pres = $actionneur->presenter_actions();
            $btn = "<a href='{$url}'>[ Action Suivante ]</a>";
            $styles = "\n\t\t\t\t<style type='text/css'>\n\t\t\t\t#minipres #actionner .fail {color:#c30000;}\n\t\t\t\t#minipres #actionner ul {margin-left: 0.5em;}\n\t\t\t\t#minipres #actionner li {list-style-type:square; margin-left: 0.5em;}\n\t\t\t\t</style>";
            echo minipres(_T('svp:installation_en_cours'), $pres . '<br /><br />' . $btn . $styles);
            die;
        }
        redirige_par_entete(str_replace('&amp;', '&', $url));
    }
    foreach ($actionneur->done as $done) {
        if ($done['todo'] == 'on') {
            if ($voir = session_get('svp_admin_plugin_voir') and $voir == 'inactif') {
                session_set('svp_admin_plugin_voir', 'actif');
            }
            break;
        }
    }
    include_spip('inc/svp_depoter_local');
    svp_actualiser_paquets_locaux();
    if (!_request('redirect')) {
        $GLOBALS['redirect'] = generer_url_ecrire('admin_plugin');
    } else {
        $GLOBALS['redirect'] = str_replace('&amp;', '&', _request('redirect'));
    }
}
function formulaires_exporter_souscriptions_traiter_dist($type_souscription = "tous")
{
    $type_souscription = _request('exporter_type_souscription');
    $statut = _request('exporter_statut');
    $campagne = _request('exporter_campagne');
    $verifier = charger_fonction('verifier', 'inc/');
    $date_debut = $date_fin = "";
    $verifier(_request('exporter_date_debut'), 'date', array('normaliser' => 'datetime'), $date_debut);
    $verifier(_request('exporter_date_fin'), 'date', array('normaliser' => 'datetime'), $date_fin);
    /* Construction de l'URL spéciale pour l'action d'exportation. */
    $arg = sprintf("%s/%s/%s/%s/%s", $type_souscription == 'tous' ? '' : $type_souscription, $statut == 'tous' ? '' : $statut, $campagne == 'tous' ? '' : $campagne, $date_debut ? strtotime($date_debut) : "", $date_fin ? strtotime($date_fin) : "");
    include_spip('inc/actions');
    $redirect = generer_action_auteur('exporter_souscriptions', $arg);
    return array('redirect' => $redirect);
}
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');
}
Beispiel #12
0
function inc_joindre_dist($v) {

	// calculer le formulaire de base

	$res = joindre_formulaire($v);

	if (!empty($v['cadre'])) {
		$debut_cadre = 'debut_cadre_'.$v['cadre'];
		$fin_cadre = 'fin_cadre_'.$v['cadre'];
		$res = $debut_cadre($v['icone'], true, $v['fonction'], $v['titre'])
			. $res
			. $fin_cadre(true);
	}

	$res = "\n<div class='joindre'>".$res."</div>\n";
	$att = " enctype='multipart/form-data' class='form_upload'";
	$args = (intval($v['id']) .'/' .intval($v['id_document']) . "/".$v['mode'].'/'.$v['type']);
	$script = $v['script'];

	// si espace prive, $v a une signification speciale (pas clair)
	if (test_espace_prive())
		return redirige_action_post('joindre', $args, $script, $v['args'], $res, $att);
	else	return generer_action_auteur('joindre', $args, $script, $res, "$att method='post'");
}
Beispiel #13
0
function legender_corps($ancre, $flag, $id, $id_document, $script, $type, $document, $label, $taille)
{
	include_spip('inc/editer');

	$contenu = '';
	$descriptif = $document['descriptif'];
	if ($descriptif)
	  $contenu .=  "<p>".PtoBR(lignes_longues(propre($descriptif),25)) . "</p>\n";
	if ($document['largeur'] OR $document['hauteur'])
	  $contenu .= _T('info_largeur_vignette',
		     array('largeur_vignette' => $document['largeur'],
			   'hauteur_vignette' => $document['hauteur']))
			 . ' &mdash; ';

	  $contenu .= taille_en_octets($document['taille']);

	$date = $document['date'];
	if ($date AND ($GLOBALS['meta']["documents_date"] == 'oui'))
		$contenu .= "<br />\n" . affdate($date);

	$corps = (!$contenu ? '' :
		  "<div class='verdana1' style='text-align: center; margin-bottom: 10px;'>$contenu</div>") .
	  "<div class='formulaire_spip formulaire_spip_compact'><ul><li class='editer_titre'><label for='titre_document$id_document'>$label</label>\n" .

	  "<input type='text' name='titre_document' id='titre_document$id_document' class='text' value=\"".entites_html($document['titre']).
	  "\" size='40'	onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" /></li>\n"
	  . (($GLOBALS['meta']["documents_date"] == 'oui')
	  	? "<li class='editer_date'>".date_formulaire_legender($date, $id_document)."</li>"
	  	:'' )
	  . "<li class='editer_descriptif'><label for='descriptif_document$id_document'>".
	  _T('info_description_2').
	  "</label>\n" .
	  "<textarea name='descriptif_document' id='descriptif_document$id_document' rows='4' class='textarea' cols='*' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">" .
	    entites_html($descriptif) .
	  "</textarea></li></ul></div>\n" .
	  $taille
	  
	  .controles_md5($document);

	$att_bouton = "";

	$att_span = " id='valider_doc$id_document' "
	. ($flag == 'ajax' ? '' : "class='display_au_chargement'")
	.  " style='text-align:"
	.  $GLOBALS['spip_lang_right']
	. ($flag == 'ajax' ? ';display:block' : "")
	. "'";

	if (test_espace_prive())
		return ajax_action_post("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, _T('bouton_enregistrer'), $att_bouton, $att_span, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
		  . "<div class='nettoyeur'></div>";
	else {
		$corps = "<div class='boutons'>"
		       . $corps 
		       . "<span"
		       . $att_span
		       . "><input type='submit' value='"
		       . _T('bouton_enregistrer')
		       ."' /></span></div>";
		$redirect = parametre_url($script,'show_docs',$id_document,'&');
		$redirect = parametre_url($redirect,"id_$type",$id,'&');
		$redirect = parametre_url($redirect,"id_$type",$id,'&');
		$redirect = ancre_url($redirect,"legender-$id_document");
		return generer_action_auteur("legender", $id_document, $redirect, $corps, "\nmethod='post'");
	}
}
Beispiel #14
0
function formulaires_editer_auteur_traiter_dist($id_auteur='new', $retour='', $lier_article=0, $config_fonc='auteurs_edit_config', $row=array(), $hidden=''){
	if (_request('saisie_webmestre') OR _request('webmestre'))
		set_request('webmestre',_request('webmestre')?_request('webmestre'):'non');
	$retour = parametre_url($retour, 'email_confirm','');

	if (!autoriser('modifier','auteur',$id_auteur,null,array('email'=>'?'))){
		$email_nouveau = _request('email');
		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
		// pour qu'il confirme qu'il possede bien cette adresse
		// son clic sur l'url du message permettre de confirmer le changement
		// et de revenir sur son profil
		if ($GLOBALS['visiteur_session']['id_auteur']==$id_auteur
			AND $email_nouveau!=($email_ancien=sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))){
			$envoyer_mail = charger_fonction('envoyer_mail','inc');
			$texte = _T('form_auteur_mail_confirmation',
											array('url'=>generer_action_auteur('confirmer_email', $email_nouveau,parametre_url($retour, 'email_modif','ok'))));
			$envoyer_mail($email_nouveau,_T('form_auteur_confirmation'),$texte);
			set_request('email_confirm',$email_nouveau);
			if ($email_ancien)
				$envoyer_mail($email_ancien,_T('form_auteur_confirmation'),_T('form_auteur_envoi_mail_confirmation',array('email'=>$email_nouveau)));
			$retour = parametre_url($retour, 'email_confirm',$email_nouveau);
		}
	}

	$res = formulaires_editer_objet_traiter('auteur',$id_auteur,0,0,$retour,$config_fonc,$row,$hidden);
	return $res;
}
Beispiel #15
0
/**
 * Retourne une URL ou un formulaire sécurisé en méthode POST
 * 
 * @param string $action
 *     Nom du fichier/action appelé (dans le répertoire action)
 * @param string $arg
 *     Arguments pour l'action sécurisée
 * @param string $ret
 *     Adresse de redirection souhaitée à la fin du bon déroulement de l’action
 * @param string $gra
 *     Arguments à transmettre, tel que `arg1=yy&arg2=zz`
 * @param bool|int|string $corps
 *     - -1 : renvoyer action, arg et hash sous forme de array()
 *     - true ou false : renvoyer une url, avec `&amp;` (false) ou `&` (true)
 *     - string : renvoyer un formulaire
 * @param string|int $att
 *     - id_auteur pour lequel générer l'action en mode url ou array()
 *     - attributs du formulaire en mode formulaire
 * @return array|string
 *     URL, code HTML du formulaire ou tableau (action, arg, hash)
 */
function redirige_action_post($action, $arg, $ret, $gra, $corps, $att = '')
{
    $r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
    return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
}
Beispiel #16
0
function afficher_script_statut($id, $type, $n, $img, $statut, $titre, $act='') {
	$i = http_wrapper($img);
	$h = generer_action_auteur("instituer_$type","$id-$statut");
	$h = "javascript:selec_statut('$id', '$type', $n, '$i', '$h');";
	$t = supprimer_tags($titre);
	$inf = getimagesize($i);
	return "<a href=\"$h\"\ntitle=\"$t\"$act><img src='$i' $inf[3] alt=' '/></a>";
}
function formulaires_assistant_migration_traiter_dist(){

	$s = lire_migration_vers_status();
	include_spip('base/dump');
	$status_file = base_dump_meta_name(substr(md5($s['target']),0,8));

	// ici on prend toutes les tables sauf celles exclues par defaut
	// (tables de cache en pratique)
	$exclude = lister_tables_noexport();
	list($tables,) = base_liste_table_for_dump($exclude);
	$tables = base_lister_toutes_tables('',$tables,$exclude);

	include_spip('inc/migrer_vers');
	$res = migrer_vers_init($status_file, $tables);

	if ($res===true) {
		// on lance l'action sauvegarder qui va realiser la sauvegarde
		// et finira par une redirection vers la page sauvegarde_fin
		include_spip('inc/actions');
		$redirect = generer_action_auteur('migrer_vers', $status_file);
		return array('message_ok'=>_T('migration:message_connexion_ok'),'redirect'=>$redirect);
	}
	else
		return array('message_erreur'=>$res);
}
Beispiel #18
0
function bouton_proposer_article($id_article,$statut_article){
	$ret = "";

	if ($statut_article=='prepa'
		AND $id_auteur = $GLOBALS["visiteur_session"]["id_auteur"]
		AND $GLOBALS["visiteur_session"]["statut"] == "1comite"
		AND autoriser('modifier', 'article', $id_article)
		AND sql_fetsel("id_article", "spip_auteurs_articles", "id_article=".intval($id_article)." AND id_auteur=".intval($id_auteur))) {
			$ret .= debut_cadre_relief("", true);
			$ret .= "<div class='verdana3' style='text-align: center;'>";
			$ret .= "<div>"._T("texte_proposer_publication")."</div>";

			$ret .= bouton_action(_T("bouton_demande_publication"),
							generer_action_auteur('instituer_article', "$id_article-prop", self()), '', _T('confirm_changer_statut'));

			$ret .= "</div>";
			$ret .= fin_cadre_relief(true);

	}
	return $ret;
}
Beispiel #19
0
/**
 * Traitements du formulaire d'édition d'un auteur
 *
 * En plus de l'enregistrement normal des infos de l'auteur, la fonction
 * traite ces cas spécifiques :
 * 
 * - Envoie lorsqu'un rédacteur n'a pas forcément l'autorisation changer
 *   seul son adresse email, un email à la nouvelle adresse indiquée
 *   pour vérifier l'email saisi, avec un lien dans le mai sur l'action
 *   'confirmer_email' qui acceptera alors le nouvel email.
 *
 * - Crée aussi une éventuelle laision indiquée dans $associer_objet avec
 *   cet auteur.
 * 
 * @see formulaires_editer_objet_traiter()
 * 
 * @param int|string $id_auteur
 *     Identifiant de l'auteur. 'new' pour une nouvel auteur.
 * @param string $retour
 *     URL de redirection après le traitement
 * @param string $associer_objet
 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
 *     tel que 'article|3'
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL de l'auteur, si connu
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Retour des traitements
**/
function formulaires_editer_auteur_traiter_dist($id_auteur = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '')
{
    if (_request('saisie_webmestre') or _request('webmestre')) {
        set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
    }
    $retour = parametre_url($retour, 'email_confirm', '');
    include_spip('inc/autoriser');
    if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
        $email_nouveau = _request('email');
        set_request('email');
        // vider la saisie car l'auteur n'a pas le droit de modifier cet email
        // mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
        // pour qu'il confirme qu'il possede bien cette adresse
        // son clic sur l'url du message permettre de confirmer le changement
        // et de revenir sur son profil
        if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur and $email_nouveau != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))) {
            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
            $texte = _T('form_auteur_mail_confirmation', array('url' => generer_action_auteur('confirmer_email', $email_nouveau, parametre_url($retour, 'email_modif', 'ok'))));
            $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
            set_request('email_confirm', $email_nouveau);
            if ($email_ancien) {
                $envoyer_mail($email_ancien, _T('form_auteur_confirmation'), _T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
            }
            $retour = parametre_url($retour, 'email_confirm', $email_nouveau);
        }
    }
    $res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
    // Un lien auteur a prendre en compte ?
    if ($associer_objet and $id_auteur = $res['id_auteur']) {
        $objet = '';
        if (intval($associer_objet)) {
            $objet = 'article';
            $id_objet = intval($associer_objet);
        } elseif (preg_match(',^\\w+\\|[0-9]+$,', $associer_objet)) {
            list($objet, $id_objet) = explode('|', $associer_objet);
        }
        if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
            include_spip('action/editer_auteur');
            auteur_associer($id_auteur, array($objet => $id_objet));
            if (isset($res['redirect'])) {
                $res['redirect'] = parametre_url($res['redirect'], "id_lien_ajoute", $id_auteur, '&');
            }
        }
    }
    return $res;
}
Beispiel #20
0
function galettonuts_formulaire_synchro()
{
    global $spip_lang_left, $spip_lang_right;
    include_spip('inc/config');
    // Détermine si on dépli le cadre
    if ('oui' == _request('galettonuts_synchro_ok')) {
        $visibilite = 'visible';
    } else {
        $visibilite = 'invisible';
    }
    $return = debut_cadre_couleur('synchro-24.gif', true, '', call_user_func('bouton_block_' . $visibilite, 'galettonuts_synchro') . _T('galettonuts:titre_formulaire_synchro'));
    $return .= call_user_func('debut_block_' . $visibilite, 'galettonuts_synchro');
    // Le plugin n'a pas encore été configuré
    if (!class_exists('L2_Spip_Plugin_Metas')) {
        include_spip('lib/L2/Spip/Plugin/Metas.class');
    }
    $config = new L2_Spip_Plugin_Metas('galettonuts_config');
    if (!$config || !$config->lire('db_ok')) {
        $return .= debut_cadre_relief('', true);
        $return .= http_img_pack('warning.gif', _T('info_avertissement'), 'style="width:48px;height:48px;float:right;margin:5px;"');
        $return .= '<p class="verdana2"><strong>';
        $return .= _T('galettonuts:configuration_manquante');
        $return .= '</strong><br />';
        $return .= _T('galettonuts:configuration_lien', array('url' => generer_url_ecrire('admin_galettonuts')));
        $return .= '</p>';
        $return .= fin_cadre_relief(true);
        $return .= fin_block();
        $return .= fin_cadre_couleur(true);
        return $return;
    }
    unset($config);
    // Affichage des erreurs
    if ($statut = (int) _request('code_retour')) {
        switch ($statut) {
            // Une erreur inconnue est survenue.
            case 0:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_erreur') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // Des erreurs sont survenues lors de la connexion à la BDD.
            // Des erreurs sont survenues lors de la connexion à la BDD.
            case -2:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_erreur_bdd') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // La synchronisation a échouée.
            // La synchronisation a échouée.
            case -1:
                $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_echec') . '</p>';
                $alt = _T('info_avertissement');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png';
                break;
                // La synchronisation est inutile.
            // La synchronisation est inutile.
            case -10:
                $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_inutile') . '</p>';
                $alt = _T('galettonuts:info_information');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png';
                break;
                // La synchronisation s'est déroulée correctement
            // La synchronisation s'est déroulée correctement
            default:
                $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />';
                $msg .= _T('galettonuts:etat_synchro_ok', array('nb' => $statut)) . '</p>';
                $alt = _T('galettonuts:info_information');
                $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png';
                break;
        }
        $return .= debut_cadre_relief('', true);
        $return .= http_img_pack($img, $alt, 'style="width:48px;height:48px;float:right;margin:5px;"');
        $return .= $msg;
        $return .= fin_cadre_relief(true);
    }
    $voir_statut = _request('statut');
    if ($voir_statut) {
        $voir_statut = '&statut=' . $voir_statut;
    }
    $action = generer_action_auteur('galettonuts_cron_manuel', 'galettonuts-0.1&' . $voir_statut, 'auteurs');
    $return .= '<p class="verdana2">' . _T('galettonuts:texte_synchro_manuelle') . '</p>';
    $return .= '<form action="' . $action . '" method="post>"';
    $return .= form_hidden($action);
    // Dernière mise à jour
    $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro');
    if ('' != ($maj = $synchro->lire('maj'))) {
        $return .= '<p class="verdana2">' . _T('galettonuts:derniere_maj', array('annee' => date('Y', $maj), 'mois' => date('m', $maj), 'jour' => date('d', $maj), 'heures' => date('G', $maj), 'minutes' => date('i', $maj), 'secondes' => date('s', $maj)));
        $return .= '</p>';
    }
    // Bouton de validation
    $return .= '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">';
    $return .= '<input type="submit" name="_galettonuts_ok" value="' . _T('galettonuts:entree_synchroniser') . '" class="fondo" style="cursor:pointer"/></div>';
    $return .= '</form>';
    $return .= fin_block();
    $return .= fin_cadre_couleur(true);
    return $return;
}
Beispiel #21
0
function http_calendrier_ics_message($annee, $mois, $jour, $large)
{	

  if (!autoriser('ecrire')) return '';

  $b = _T("lien_nouvea_pense_bete");
  $v = _T("lien_nouveau_message");
  $j=  _T("lien_nouvelle_annonce");

  return "&nbsp;" .
    http_href(generer_action_auteur("editer_message","pb/$annee-$mois-$jour"), 
	       ($large ? $b : '&nbsp;'), 
	      attribut_html($b),
	      'color: blue;',
	      'calendrier-arial10 pense-bete') .
    "\n" .
    http_href(generer_action_auteur("editer_message","normal/$annee-$mois-$jour"), 
	       ($large ? $v : '&nbsp;'), 
	      attribut_html($v),
	      'color: green;',
	      'calendrier-arial10 message') .
    (($GLOBALS['connect_statut'] != "0minirezo") ? "" :
     ("\n" .
    http_href(generer_action_auteur("editer_message","affich/$annee-$mois-$jour"), 
		($large ? $j : '&nbsp;'), 
		attribut_html($j),
		'color: #ff9900;',
		'calendrier-arial10 annonce')));
}
function plugins_afficher_plugin_distant_dist($url_page, $zip_file, $info, $expose=false, $class_li="item"){
	static $id_input=0;
	static $versions = array();
	static $charger_plugin = null;

	$erreur = false;
	$s = "";

	$titre = $info[0];
	$url_doc = $info[1];
	$info = $info[2]; // recuperer le tableau

	$titre = typo('<multi>'.$titre.'</multi>'); // recuperer les blocs multi du flux de la zone (temporaire?)
	$nick = strtolower(basename($zip_file, '.zip'));
	$info['prefix'] = $nick;
	$plug_file = $zip_file;
	
	// numerotons les occurences d'un meme prefix
	$versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : '';
	$id = $info['prefix'] . $versions[$info['prefix']];
	
	$class = $class_li;
	$class .= $actif?" actif":"";
	$class .= $expose?" on":"";
	$erreur = isset($info['erreur']);
	if ($erreur)
		$class .= " erreur";
	$s .= "<li id='$id' class='$class'>";


	// checkbox pour activer ou desactiver
	// si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension)
	/*
	if (!$erreur AND $actif>=0){
		$id_input++;
		$check = "\n<input type='radio' name='url_zip_plugin' id='label_$id_input' value='O'";
		$check .= $actif?" checked='checked'":"";
		$check .= " class='checkbox' />";
		$check .= "<label for='label_$id_input'>".$titre."</label>";
		$s .= "<div class='check'>$check</div>";
	}*/

	if (!$erreur){
		// bouton de telechargement
		if (!$charger_plugin)
			$charger_plugin = generer_action_auteur('charger_plugin',"charger_zip","./");
		$balise_img = chercher_filtre('balise_img');
		$action = parametre_url($charger_plugin,'url_zip_plugin',$plug_file);
		$s .= "<div class='download'>".
		"<a href='$action' title='"._T('plugin_charger')."'>"
		. $balise_img(find_in_path("images/telecharger-16.png"),_T('plugin_charger'))
		."</a></div>"
		;
	}

	// Cartouche Resume
	$s .= "<div class='resume'>";

	$desc = $info['descriptif'];
	$url_stat = parametre_url($url_page, "plugin",$plug_file);

	$s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".$titre."</a></h3>";
	$s .= "<div class='short'>".couper($desc,60)."</div>";
	if (isset($info['icon']) and $info['icon']) {
		include_spip("inc/filtres_images_mini");
		$s.= "<div class='icon'><a href='$url_stat' rel='info'><img src='".$info['icon']."' width='32' height='auto' /></a></div>";
	}
	$s .= "</div>";

	if ($erreur){
		$s .=  "<div class='erreur'>";
		foreach($info['erreur'] as $err)
			$s .= "$err <br/>";
		$s .=  "</div>";
	}

	// afficher les details d'un plug en secours ; la div sert pour l'ajax
	$s .= "<div class='details'>";
	if ($expose)
		$s .= affiche_bloc_plugin_distant($plug_file, $info);
	$s .= "</div>";

	$s .= "</li>";
	return $s;
}
Beispiel #23
0
function spiplistes_boite_agenda_contenu ($periode, $retour, $img_pack) {
	$result = "";
	$maintenant = time();
	switch($periode) {
		case _SPIPLISTES_AGENDA_PERIODE_HEBDO:
			$loupe_img = 'loupe-moins.gif';
			$autre_periode = _SPIPLISTES_AGENDA_PERIODE_MOIS;
			break;
		case _SPIPLISTES_AGENDA_PERIODE_MOIS:
		default:
			$loupe_img = 'loupe-plus.gif';
			$autre_periode = _SPIPLISTES_AGENDA_PERIODE_HEBDO;
			$periode = _SPIPLISTES_AGENDA_PERIODE_DEFAUT;
	}

	$inventaire = spiplistes_listes_inventaire($periode);

	if($inventaire) {

		$inventaire = spiplistes_listes_completer_planning($inventaire, $periode);
		
		$exec_url = parametre_url($retour, 'periode_agenda', $autre_periode);
		$action_url = generer_action_auteur(_SPIPLISTES_ACTION_AGENDA, $autre_periode);
		$action_url = parametre_url($action_url, 'redirect', rawurlencode($retour));
		$result .= ""
			. "<div style='height:"._SPIPLISTES_AGENDA_LOUPE_HEIGHT."px'>\n"
			. "<a href='".$exec_url."'"
				. " onclick=\"return(AjaxSqueeze('".$action_url."','spiplistes_boite_agenda','',event))\""
				. " title='"._T('spiplistes:boite_agenda_voir_jours', array('nb_jours' => $autre_periode))."'"
				. " class='agenda-loupe'"
				. " style='background-image: url(".$img_pack.$loupe_img.")'"
				. " >"
			. "</a>\n"
			. "</div>\n"
			;
	} //

	$result .= ""
		. "<div style='position:relative'>\n"
		;

	// tableau datas
	$result_datas = ""
		. "<!-- tableau agenda des datas -->\n"
		. "<table cellpadding='0' cellspacing='0' border='0' class='table-agenda'"
			. " style='width:"
				. _SPIPLISTES_AGENDA_TABLE_WIDTH . "px;"
				. "height:"
				. _SPIPLISTES_AGENDA_TABLE_HEIGHT . "px'"
			. " >\n"
		. "<caption class='verdana2'>\n"
		.	(
			$inventaire
			? _T('spiplistes:boite_agenda_legende', array('nb_jours' => $periode))
			: _T('spiplistes:pas_de_liste_prog')
			)
		. "</caption>\n"
		. "<tr>\n"
		;

	if($inventaire) {
		$max_jour = spiplistes_boitelistes_calculer_max($inventaire);
		$coef_graph = ($max_jour ? (_SPIPLISTES_AGENDA_TABLE_HEIGHT / $max_jour) : 0);
		$larg_col = ceil(_SPIPLISTES_AGENDA_CADRE_WIDTH / $periode);
		function spiplistes_redate($matches) {
			$matches[1]++;
			return(_T('date_jour_'.$matches[1])." ".$matches[2]);
		}
		for($ii = 0; $ii < $periode; $ii++) {
			$date_sql = spiplistes_date_jour_sql($ii);
			$date_jour = date("w j", mktime(0, 0, 0, date("m")  , date("d")+$ii, date("Y")));
			$dimanche = ($date_jour[0] == "0");
			$date_jour = preg_replace_callback("/^(\d{1,2}) (.*)$/", "spiplistes_redate", $date_jour);
			$style = "border-right:1px solid #" . ($dimanche ? "f99" : "cff") . ";";
			$liste_graph =
				(isset($inventaire[$date_sql]))
				? spiplistes_boitelistes_planning_jour($inventaire[$date_sql], $date_jour, $coef_graph)
				: ""
				;
			$result_datas .= ""
				. "<td class='bas' style='".$style."width:".$larg_col."px;height:"._SPIPLISTES_AGENDA_TABLE_HEIGHT."px'"
				. " title='$date_jour'"
				. " >\n"
				. $liste_graph
				. "</td>\n"
				;
		}
	} // 
	else {
		$result_datas .= "<td class='centrer' style='font-weight:bold;color:#ccc'>?</td>\n";
	}

	$result_datas .= ""
		. "</tr>\n"
		. "</table>\n"
		. "<!-- fin tableau agenda des datas -->\n"
		;
	
	$result_legend = "";
	if($inventaire) {
		$titre_tableau = _T('spiplistes:max_').": ".$max_jour;
		$hauteur_col = ceil(_SPIPLISTES_AGENDA_TABLE_HEIGHT / 2);
		$style_col = "border:0;height:".$hauteur_col."px;";
		$moyenne_jour = ceil($max_jour / 2);
		$result_legend = ""
			. "<!-- tableau agenda des legendes -->\n"
			. "<table cellpadding='0' cellspacing='0' border='0' class='table-agenda'"
				. " style='width:" . _SPIPLISTES_AGENDA_TABLE_WIDTH . "px;"
					. "height:"	. _SPIPLISTES_AGENDA_TABLE_HEIGHT . "px;"
					. "border:0'"
				. " >\n"
			. "<caption style='text-align:right;font-size:60%'>$titre_tableau</caption>\n"
			. "<tr class='tr-legend'>\n"
			. "<td style='".$style_col."border:1px solid #000;border-left:0;border-right:0'>"
				. "<div>"
					. "<div class='left-legend'>$max_jour</div>"
					. "<div class='right-legend'>$max_jour</div>"
				. "</div>"
			. "</td>\n"
			. "</tr>\n"
			. "<tr class='tr-legend'>\n"
			. "<td style='$style_col'>"
				. "<div>"
					. "<div class='left-legend'>$moyenne_jour</div>"
					. "<div class='right-legend'>$moyenne_jour</div>"
				. "</div>"
			. "</td>\n"
			. "</tr>\n"
			. "</table>\n"
			. "<!-- fin tableau agenda des legendes -->\n"
			;
	}
	
	$result .= ""
		. $result_legend
		. $result_datas
		. "</div>\n"
		;
	return($result);
}
Beispiel #24
0
function gadget_messagerie() {
	global $connect_statut;

	return "<div>&nbsp;</div>"
	. icone_horizontale(_T('lien_nouvea_pense_bete'),generer_action_auteur("editer_message","pb"), "pense-bete.gif",'',false)
	.  icone_horizontale(_T('lien_nouveau_message'),generer_action_auteur("editer_message","normal"), "message.gif",'',false)
	  . (($connect_statut != "0minirezo") ? '' :
	     icone_horizontale(_T('lien_nouvelle_annonce'),generer_action_auteur("editer_message","affich"), "annonce.gif",'',false));
}
Beispiel #25
0
function menu_langues($nom_select, $default = '')
{
    include_spip('inc/actions');
    $langues = liste_options_langues($nom_select);
    $ret = "";
    if (!count($langues)) {
        return '';
    }
    if (!$default) {
        $default = $GLOBALS['spip_lang'];
    }
    foreach ($langues as $l) {
        $selected = $l == $default ? ' selected=\'selected\'' : '';
        $ret .= "<option value='{$l}'{$selected}>[" . $l . "] " . traduire_nom_langue($l) . "</option>\n";
    }
    if (!test_espace_prive()) {
        $cible = self();
        $base = '';
    } else {
        $cible = self();
        $base = spip_connect() ? 'base' : '';
    }
    $change = ' onchange="this.parentNode.parentNode.submit()"';
    return generer_action_auteur('converser', $base, $cible, select_langues($nom_select, $change, $ret) . "<noscript><div style='display:inline'><input type='submit' class='fondo' value='" . _T('bouton_changer') . "' /></div></noscript>", " method='post'");
}
Beispiel #26
0
function boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur=0, $ref, $forum_ip, $script, $args) {
	$controle = $original = $spam = '';


	// selection du logo et des boutons correspondant a l'etat du forum
	switch ($forum_stat) {
		# forum sous un article dans l'espace prive
		case "prive":
			$logo = "forum-interne-24.gif";
			$valider = false;
			$valider_repondre = false;
			$suppression = 'privoff';
			break;
		# forum des administrateurs
		case "privadmin":
			$logo = "forum-admin-24.gif";
			$valider = false;
			$valider_repondre = false;
			$suppression = false;
			break;
		# forum de l'espace prive, supprime (non revalidable,
		# d'ailleurs on ne sait plus a quel type de forum il appartenait)
		case "privoff":
			$logo = "forum-interne-24.gif";
			$valider = false;
			$valider_repondre = false;
			$suppression = false;
			break;
		# forum general de l'espace prive
		case "privrac":
			$logo = "forum-interne-24.gif";
			$valider = false;
			$valider_repondre = false;
			$suppression = 'privoff';
			break;

		# forum publie sur le site public
		case "publie":
			$logo = "forum-public-24.gif";
			$valider = false;
			$valider_repondre = false;
			$suppression = 'off';
			break;
		# forum supprime sur le site public
		case "off":
			$logo = "forum-public-24.gif";
			$valider = 'publie';
			$valider_repondre = false;
			$suppression = false;
			$controle = "<br /><span style='color: red; font-weight: bold;'>"._T('info_message_supprime')." $forum_ip</span>";
			if($forum_id_auteur)
				$controle .= " - <a href='" . generer_url_ecrire('auteur_infos', "id_auteur=$forum_id_auteur") .
				  "'>" ._T('lien_voir_auteur'). "</a>";
			break;
		# forum propose (a moderer) sur le site public
		case "prop":
			$logo = "forum-public-24.gif";
			$valider = 'publie';
			$valider_repondre = true;
			$suppression = 'off';
			break;
		# forum signale comme spam sur le site public
		case "spam":
			$logo = "forum-public-24.gif";
			$valider = 'publie';
			$valider_repondre = false;
			$suppression = false;
			$spam = true;
			break;
		# forum original (reponse a un forum modifie) sur le site public
		case "original":
			$logo = "forum-public-24.gif";
			$original = true;
			break;
		default:
			return;
	}

	$lien =  generer_url_ecrire($script, $args, true, true) . "#forum$id_forum";
	$boutons ='';
	if ($suppression)
	  $boutons .= icone_inline(_T('icone_supprimer_message'), generer_action_auteur('instituer_forum',"$id_forum-$suppression", $lien),
			$logo,
			"supprimer.gif", 'right', 'non');

	if ($valider)
	  $boutons .= icone_inline(_T('icone_valider_message'), generer_action_auteur('instituer_forum',"$id_forum-$valider", $lien),
			$logo,
			"creer.gif", 'right', 'non');

	if ($valider_repondre) {
	  $dblret = rawurlencode(_DIR_RESTREINT_ABS . $lien);
	  $boutons .= icone_inline(_T('icone_valider_message') . " &amp; " .   _T('lien_repondre_message'), generer_action_auteur('instituer_forum',"$id_forum-$valider", generer_url_public('forum', "$ref&id_forum=$id_forum&retour=$dblret", true, true)),
			     $logo,
			     "creer.gif", 'right', 'non');
	}

	if ($boutons) $controle .= "<div style='float:".$GLOBALS['spip_lang_right'] ."; width: 80px; padding-bottom:20px;'>". $boutons . "</div>";

	// TODO: un bouton retablir l'original ?
	if ($original) {
		$controle .= "<div style='float:".$GLOBALS['spip_lang_right'].";color:green'>"
		."("
		._T('forum_info_original')
		.")</div>";
	}

	if ($spam) {
		$controle .= "<div style='float:".$GLOBALS['spip_lang_right'].";color:red'>"
		."("
		._T('spam') // Marque' comme spam ?
		.")</div>";
	}


	return $controle;
}
Beispiel #27
0
/**
 * Afficher le sélecteur de rubrique
 *
 * Il permet de placer un objet dans la hiérarchie des rubriques de SPIP
 *
 * @param string $titre
 * @param int $id_objet
 * @param int $id_parent
 * @param string $objet
 * @param int $id_secteur
 * @param bool $restreint
 * @param bool $actionable
 *   true : fournit le selecteur dans un form directement postable
 * @param bool $retour_sans_cadre
 * @return string
 */
function chercher_rubrique($titre, $id_objet, $id_parent, $objet, $id_secteur, $restreint, $actionable = false, $retour_sans_cadre = false)
{
    global $spip_lang_right;
    include_spip('inc/autoriser');
    if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) {
        return "";
    }
    if (!sql_countsel('spip_rubriques')) {
        return "";
    }
    $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
    $form = $chercher_rubrique($id_parent, $objet, $restreint, $objet == 'rubrique' ? $id_objet : 0);
    if ($id_parent == 0) {
        $logo = "racine-24.png";
    } elseif ($id_secteur == $id_parent) {
        $logo = "secteur-24.png";
    } else {
        $logo = "rubrique-24.png";
    }
    $confirm = "";
    if ($objet == 'rubrique') {
        // si c'est une rubrique-secteur contenant des breves, demander la
        // confirmation du deplacement
        $contient_breves = sql_countsel('spip_breves', "id_rubrique=" . intval($id_objet));
        if ($contient_breves > 0) {
            $scb = $contient_breves > 1 ? 's' : '';
            $scb = _T('avis_deplacement_rubrique', array('contient_breves' => $contient_breves, 'scb' => $scb));
            $confirm .= "\n<div class='confirmer_deplacement verdana2'>" . "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>" . $scb . "</label></div></div>\n";
        } else {
            $confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n";
        }
    }
    $form .= $confirm;
    if ($actionable) {
        if (strpos($form, '<select') !== false) {
            $form .= "<div style='text-align: {$spip_lang_right};'>" . '<input class="fondo" type="submit" value="' . _T('bouton_choisir') . '"/>' . "</div>";
        }
        $form = "<input type='hidden' name='editer_{$objet}' value='oui' />\n" . $form;
        $form = generer_action_auteur("editer_{$objet}", $id_objet, self(), $form, " method='post' class='submit_plongeur'");
    }
    if ($retour_sans_cadre) {
        return $form;
    }
    include_spip('inc/presentation');
    return debut_cadre_couleur($logo, true, "", $titre) . $form . fin_cadre_couleur(true);
}
Beispiel #28
0
function inc_couleurs_dist($choix=NULL,$ajouter = false)
{
	static $couleurs_spip = array(
// Vert de gris
1 => array (
		"couleur_foncee" => "#999966",
		"couleur_claire" => "#CCCC99",
		"couleur_lien" => "#666633",
		"couleur_lien_off" => "#999966"
		),
// Rose vieux
2 => array (
		"couleur_foncee" => "#EB68B3",
		"couleur_claire" => "#E4A7C5",
		"couleur_lien" => "#8F004D",
		"couleur_lien_off" => "#BE6B97"
		),
// Orange
3 => array (
		"couleur_foncee" => "#fa9a00",
		"couleur_claire" => "#ffc000",
		"couleur_lien" => "#FF5B00",
		"couleur_lien_off" => "#B49280"
		),
//  Bleu truquoise
4 => array (
		"couleur_foncee" => "#5da7c5",
		"couleur_claire" => "#97d2e1",
		"couleur_lien" => "#116587",
		"couleur_lien_off" => "#81B7CD"
		),
// Violet
5 => array (
		"couleur_foncee" => "#8F8FBD",
		"couleur_claire" => "#C4C4DD",
		"couleur_lien" => "#6071A5",
		"couleur_lien_off" => "#5C5C8C"
		),
//  Gris
6 => array (
		"couleur_foncee" => "#909090",
		"couleur_claire" => "#D3D3D3",
		"couleur_lien" => "#808080",
		"couleur_lien_off" => "#909090"
		),
);

	if (is_numeric($choix)) {
		// Compatibilite ascendante (plug-ins notamment)
		$GLOBALS["couleur_claire"] = $couleurs_spip[$choix]['couleur_claire'];
		$GLOBALS["couleur_foncee"] = $couleurs_spip[$choix]['couleur_foncee'];
		$GLOBALS["couleur_lien"] = $couleurs_spip[$choix]['couleur_lien'];
		$GLOBALS["couleur_lien_off"] = $couleurs_spip[$choix]['couleur_lien_off'];
		
	  return
	    "couleur_claire=" .
	    substr($couleurs_spip[$choix]['couleur_claire'],1).
	    '&couleur_foncee=' .
	    substr($couleurs_spip[$choix]['couleur_foncee'],1);
	} else {
		if (is_array($choix)) {
			if ($ajouter) {
				return $couleurs_spip = $couleurs_spip + $choix;
			} else {
				return $couleurs_spip = $choix;
			}
		}

		$evt = '
onmouseover="changestyle(\'bandeauinterface\');"
onfocus="changestyle(\'bandeauinterface\');"
onblur="changestyle(\'bandeauinterface\');"';

		$bloc = '';
		$ret = self('&');
		foreach ($couleurs_spip as $key => $val) {
			$bloc .=
			'<a href="'
			  . generer_action_auteur('preferer',"couleur:$key",$ret)
				. '"'
			. ' rel="'.generer_url_public('style_prive','ltr='
				. $GLOBALS['spip_lang_left'] . '&'
				. inc_couleurs_dist($key)).'"'
			  . $evt
			.'>'
			. http_img_pack("rien.gif",
					_T('choix_couleur_interface') . $key,
					"width='8' height='8' style='margin: 1px; background-color: "	. $val['couleur_claire'] . ";'")
			. "</a>";
		}

		// Ce js permet de changer de couleur sans recharger la page

		return  '<span id="selecteur_couleur">'
		.  $bloc
		. "</span>\n"
		. '<script type="text/javascript"><!--' . "
			$('#selecteur_couleur a')
			.click(function(){
				$('head>link#cssprivee')
				.clone()
				.removeAttr('id')
				.attr('href', $(this).attr('rel'))
				.appendTo($('head'));

				$.get($(this).attr('href'));
				return false;
			});
		// --></script>\n";


	}
}
Beispiel #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();

}
function afficher_script_statut($id, $type, $n, $img, $statut, $titre, $act = '')
{
    $h = generer_action_auteur("instituer_objet", "{$type}-{$id}-{$statut}");
    $h = "selec_statut('{$id}', '{$type}', {$n}, jQuery('img',this).attr('src'), '{$h}');return false;";
    $t = supprimer_tags($titre);
    return "<a href=\"#\" onclick=\"{$h}\" title=\"{$t}\"{$act}>" . http_img_pack($img, $t) . "</a>";
}