Example #1
0
function formulaires_editer_balade_traiter_dist($id_collection = 'new', $retour = '')
{
    $message = array();
    // récupérer le rang des articles de la balade et le mettre à jour
    $rangs = _request('rang');
    foreach ($rangs as $rang => $id_article) {
        $rang = $rang + 1;
        $ok = sql_updateq('spip_collections_liens', array('rang' => intval($rang)), "objet='article' AND id_objet = {$id_article}");
    }
    // éditer le gis associé
    if ($action_editer = charger_fonction("editer_gis", 'action', true)) {
        list($id, $err) = $action_editer(_request('id_gis'));
    }
    // ne pas polluer l'url de retour avec des paramètres inutiles
    set_request('id_gis');
    set_request('id_objet');
    // invalider le cache
    include_spip('inc/invalideur');
    suivre_invalideur("id='gis/{$id}");
    // rediriger sur l'url de retour passée en paramètre
    if ($retour) {
        include_spip('inc/headers');
        $message['redirect'] = redirige_formulaire($retour);
    }
    return $message;
}
function formulaires_editer_json_article_traiter_dist($id_article = 'new', $retour = '')
{
    $message = array('editable' => true, 'message_ok' => '');
    $vhplab_json = _request('vhplab_json');
    $vhplab_json_num = intval($vhplab_json);
    if ($vhplab_json_num > 0) {
        // comprobamos si el articulo ya ha sido relacionado con un id
        $result = sql_select('*', 'spip_vhplab_json_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article"));
        if ($row = sql_fetch($result)) {
            // si el articulo ya ha sido relacionado con un id actualizamos el enlace
            sql_updateq('spip_vhplab_json', array('id_json' => $vhplab_json_num), 'id_vhplab_json=' . intval($row['id_vhplab_json']));
            $message['message_ok'] = _T('vhplab:json_update_ok');
        } else {
            // si el articulo no ha sido relacionado con ningún id creamos un enlace
            $id_vhplab = sql_insertq("spip_vhplab_json", array('id_json' => $vhplab_json_num));
            sql_insertq('spip_vhplab_json_liens', array('id_vhplab_json' => intval($id_vhplab), 'id_objet' => intval($id_article), 'objet' => 'article'));
            $message['message_ok'] = _T('vhplab:json_insert_ok');
        }
    }
    if ($retour) {
        include_spip('inc/headers');
        $message['message_ok'] .= redirige_formulaire($retour);
    }
    return $message;
}
function formulaires_editer_mot_article_traiter_dist($id_article = 'new', $id_groupe = '', $retour = '')
{
    $message = array('editable' => true, 'message_ok' => '');
    $id_mot_ancien = sql_getfetsel('mot.id_mot', 'spip_mots as mot left join spip_mots_liens as mots_liens ON (mot.id_mot=mots_liens.id_mot)', 'mots_liens.id_objet=' . intval($id_article) . ' AND mots_liens.objet = "article" AND mot.id_groupe=' . intval($id_groupe));
    include_spip('action/editer_liens');
    // si aucun mot selectionne on delie le mot de ce groupe
    if (!($id_mot = _request('id_mot'))) {
        objet_dissocier(array("mot" => $id_mot_ancien), array("article" => $id_article));
    } else {
        if ($id_mot_ancien != $id_mot) {
            // on delie l'ancien mot
            objet_dissocier(array("mot" => $id_mot_ancien), array("article" => $id_article));
            // on lie le nouveau
            objet_associer(array("mot" => $id_mot), array("article" => $id_article));
        }
    }
    // on invalide le cache
    include_spip('inc/invalideur');
    suivre_invalideur("id='id_article/{$id_article}'");
    if ($retour) {
        include_spip('inc/headers');
        $message .= redirige_formulaire($retour);
    }
    return $message;
}
/**
 * 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();
    }
}
Example #5
0
/**
 * Sauvegarder par morceaux
 * 
 * @param string $arg
 */
function action_restaurer_dist($arg = null)
{
    if (!$arg) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    $status_file = $arg;
    define('_DUMP_STATUS_FILE', $status_file);
    $status_file = _DIR_TMP . basename($status_file) . ".txt";
    if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
        include_spip('inc/headers');
        echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
    } else {
        utiliser_langue_visiteur();
        $archive = "<br />" . joli_repertoire($status['archive']);
        $action = _T('dump:info_restauration_sauvegarde', array('archive' => $archive));
        $admin = charger_fonction('admin', 'inc');
        echo $admin('restaurer', $action, "", 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();
    }
}
Example #6
0
function formulaires_login_charger_dist($cible = "", $login = "", $prive = null)
{
    $erreur = _request('var_erreur');
    if (!$login) {
        $login = strval(_request('var_login'));
    }
    // si on est deja identifie
    if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
        $login = $GLOBALS['visiteur_session']['login'];
    }
    // ou si on a un cookie admin
    if (!$login) {
        if (isset($_COOKIE['spip_admin']) and preg_match(",^@(.*)\$,", $_COOKIE['spip_admin'], $regs)) {
            $login = $regs[1];
        }
    }
    include_spip('inc/auth');
    $row = auth_informer_login($login);
    // Construire l'environnement du squelette
    // Ne pas proposer de "rester connecte quelques jours"
    // si la duree de l'alea est inferieure a 12 h (valeur par defaut)
    $valeurs = array('var_login' => $login, 'editable' => !$row, 'cnx' => isset($row['cnx']) ? $row['cnx'] : '', 'auth_http' => login_auth_http(), 'rester_connecte' => _RENOUVELLE_ALEA < 12 * 3600 ? '' : ' ', '_logo' => isset($row['logo']) ? $row['logo'] : '', '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '', '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '', '_pipeline' => 'affiche_formulaire_login');
    if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
        $valeurs['editable'] = true;
    }
    if (is_null($prive) ? is_url_prive($cible) : $prive) {
        include_spip('inc/autoriser');
        $loge = autoriser('ecrire');
    } else {
        $loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
    }
    // Si on est connecte, appeler traiter()
    // et lancer la redirection si besoin
    if (!$valeurs['editable'] and $loge) {
        $traiter = charger_fonction('traiter', 'formulaires/login');
        $res = $traiter($cible, $login, $prive);
        $valeurs = array_merge($valeurs, $res);
        if (isset($res['redirect']) and $res['redirect']) {
            include_spip('inc/headers');
            # preparer un lien pour quand redirige_formulaire ne fonctionne pas
            $valeurs['_deja_loge'] = inserer_attribut("<a>" . _T('login_par_ici') . "</a>{$m}", 'href', $res['redirect']);
            $m = redirige_formulaire($res['redirect']);
        }
    }
    // en cas d'echec de cookie, inc_auth a renvoye vers le script de
    // pose de cookie ; s'il n'est pas la, c'est echec cookie
    // s'il est la, c'est probablement un bookmark sur bonjour=oui,
    // et pas un echec cookie.
    if ($erreur == 'cookie') {
        $valeurs['echec_cookie'] = ' ';
    } elseif ($erreur) {
        // une erreur d'un SSO indique dans la redirection vers ici
        // mais il faut se proteger de toute tentative d'injection malveilante
        include_spip('inc/texte');
        $valeurs['message_erreur'] = safehtml($erreur);
    }
    return $valeurs;
}
Example #7
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));
    }
}
Example #8
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']);
}
Example #9
0
function exec_upgrade_dist()
{
    global $spip_version_base;
    if (!_FILE_CONNECT) {
        redirige_url_ecrire("install");
    }
    // Si reinstallation necessaire, message ad hoc
    if (_request('reinstall') == 'oui') {
        include_spip('inc/minipres');
        $r = minipres(_T('titre_page_upgrade'), "<p><b>" . _T('texte_nouvelle_version_spip_1') . "</b><p> " . _T('texte_nouvelle_version_spip_2', array('connect' => '<tt>' . _FILE_CONNECT . '</tt>')) . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />", '', _T('bouton_relancer_installation')));
        echo $r;
    } elseif (_request('fin')) {
        include_spip('inc/plugin');
        actualise_plugins_actifs();
        include_spip('inc/headers');
        $res = generer_url_ecrire('admin_plugin', 'var_mode=recalcul');
        echo redirige_formulaire($res);
    } else {
        if (!isset($GLOBALS['meta']['version_installee'])) {
            $GLOBALS['meta']['version_installee'] = 0.0;
        } else {
            $GLOBALS['meta']['version_installee'] = (double) str_replace(',', '.', $GLOBALS['meta']['version_installee']);
        }
        # NB: str_replace car, sur club-internet, il semble que version_installe soit
        # enregistree au format '1,812' et non '1.812'
        // Erreur downgrade
        // (cas de double installation de fichiers SPIP sur une meme base)
        if ($spip_version_base < $GLOBALS['meta']['version_installee']) {
            $commentaire = _T('info_mise_a_niveau_base_2');
        } else {
            $commentaire = _T('texte_mise_a_niveau_base_1');
        }
        $commentaire .= "<br />[" . $GLOBALS['meta']['version_installee'] . "/" . $spip_version_base . "]";
        $_POST['reinstall'] = 'non';
        // pour copy_request dans admin
        include_spip('inc/headers');
        $admin = charger_fonction('admin', 'inc');
        $res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire);
        if ($res) {
            echo $res;
        } else {
            // effacer les alea pour forcer leur relecture
            // si jamais ils ont change pendant l'upgrade
            unset($GLOBALS['meta']['alea_ephemere']);
            unset($GLOBALS['meta']['alea_ephemere_ancien']);
            $res = redirige_action_auteur('purger', 'cache', 'upgrade', 'fin=oui', true);
            echo redirige_formulaire($res);
        }
    }
}
Example #10
0
function formulaires_editer_adhsaison_traiter_dist($id_saison = 'new', $retour = '', $config_fonc = 'saisons_edit_config', $row = array(), $hidden = '')
{
    $message = "";
    $action_editer = charger_fonction("editer_adhsaison", 'action');
    list($id, $err) = $action_editer();
    if ($err) {
        $message .= $err;
    } elseif ($retour) {
        include_spip('inc/headers');
        $retour = parametre_url($retour, 'id_saison', $id);
        $message .= redirige_formulaire($retour);
    }
    return $message;
}
function formulaires_editer_related_article_traiter_dist($id_article = 'new', $retour = '')
{
    $message = array('editable' => true, 'message_ok' => '');
    $related = _request('related');
    $related_num = intval($related);
    $delete_related = _request('delete_related');
    $delete_related_num = explode(' ', $delete_related);
    if ($related_num > 0) {
        // insertamos as coordenadas do artigo
        $result = sql_select('*', 'spip_vhplab_related', 'id_objet_related=' . intval($related_num) . ' AND objet_related=' . sql_quote("article"));
        if ($row = sql_fetch($result)) {
            $already = sql_select('*', 'spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
            if ($r = sql_fetch($already)) {
                $message['message_ok'] = _T('vhplab:related_already_ok');
            } else {
                sql_insertq('spip_vhplab_related_liens', array('id_vhplab_related' => intval($row['id_vhplab_related']), 'id_objet' => intval($id_article), 'objet' => 'article'));
                $message['message_ok'] = _T('vhplab:related_insert_ok');
            }
        } else {
            $id_vhplab = sql_insertq("spip_vhplab_related", array('id_objet_related' => $related_num, 'objet_related' => 'article'));
            sql_insertq('spip_vhplab_related_liens', array('id_vhplab_related' => intval($id_vhplab), 'id_objet' => intval($id_article), 'objet' => 'article'));
            $message['message_ok'] = _T('vhplab:related_insert_ok');
        }
    }
    if (count($delete_related_num) > 0) {
        for ($i = 0; $i < count($delete_related_num); $i++) {
            $result = sql_select('*', 'spip_vhplab_related', 'id_objet_related=' . intval($delete_related_num[$i]) . ' AND objet_related=' . sql_quote("article"));
            if ($row = sql_fetch($result)) {
                $already = sql_select('*', 'spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
                if ($r = sql_fetch($already)) {
                    sql_delete('spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
                    $message['message_ok'] .= _T('vhplab:related_deleted_ok');
                }
            }
        }
    }
    if ($retour) {
        include_spip('inc/headers');
        $message['message_ok'] .= redirige_formulaire($retour);
    }
    return $message;
}
Example #12
0
function formulaires_editer_tags_article_traiter_dist($id_article = 'new', $retour = '')
{
    $message = array('editable' => true, 'message_ok' => '');
    $tags = _request('tags');
    $array_tags = split(',', $tags);
    // 4 insertamos as tags do artigo
    $txt = '4';
    for ($i = 0; $i < count($array_tags); $i++) {
        $tag = trim($array_tags[$i]);
        $type = 'tags';
        if (strlen($tag) > 3) {
            $result = sql_select("*", "spip_mots", "titre=" . sql_quote($tag));
            if ($row = sql_fetch($result)) {
                $result = sql_insertq("spip_mots_liens", array('id_mot' => $row['id_mot'], 'id_objet' => $id_article, 'objet' => 'article'));
                $message .= _T('vhplab:tags_insert_ok_1');
            } else {
                $result = sql_select("*", "spip_groupes_mots", "titre=" . sql_quote($type));
                if ($row = sql_fetch($result)) {
                    $c = array('titre' => $tag, 'id_groupe' => $row['id_groupe'], 'type' => $type, 'maj' => $date);
                    $id_nova_mot = sql_insertq("spip_mots", $c);
                    if ($id_nova_mot) {
                        $result = sql_insertq("spip_mots_liens", array('id_mot' => $id_nova_mot, 'id_objet' => $id_article, 'objet' => 'article'));
                        $message .= _T('vhplab:tags_insert_ok_2');
                    }
                }
            }
        }
    }
    // borra la cache pero no se como va:
    // http://programmer.spip.net/The-processes
    /*
    include_spip('inc/invalideur');
    suivre_invalideur("id='id_article/$id_article'");
    */
    if ($retour) {
        include_spip('inc/headers');
        $message .= redirige_formulaire($retour);
    }
    return $message;
}
Example #13
0
/**
 * fonction appliquee par ecrire/index sur le resultat de la precedente
 * en cas de refus de connexion.
 * Retourne un message a afficher ou redirige illico.
 *
 * @param  $raison
 * @return array|string
 */
function auth_echec($raison)
{
    include_spip('inc/minipres');
    include_spip('inc/headers');
    // pas authentifie. Pourquoi ?
    if (is_string($raison)) {
        // redirection vers une page d'authentification
        // on ne revient pas de cette fonction
        // sauf si pb de header
        $raison = redirige_formulaire($raison);
    } elseif (is_int($raison)) {
        // erreur SQL a afficher
        $raison = minipres(_T('info_travaux_titre'), _T('titre_probleme_technique') . "<p><tt>" . sql_errno() . " " . sql_error() . "</tt></p>");
    } elseif (@$raison['statut']) {
        // un simple visiteur n'a pas acces a l'espace prive
        spip_log("connexion refusee a " . @$raison['id_auteur']);
        $raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
    } else {
        // auteur en fin de droits ...
        $h = $raison['site'];
        $raison = minipres(_T('avis_erreur_connexion'), "<br /><br /><p>" . _T('texte_inc_auth_1', array('auth_login' => $raison['login'])) . " <a href='{$h}'>" . _T('texte_inc_auth_2') . "</a>" . _T('texte_inc_auth_3'));
    }
    return $raison;
}
Example #14
0
function action_tester_taille_dist() {

	if (!autoriser('configurer'))
		return;
	
	$max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0;
	$max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0;
	$max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0;

	$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'],'non');
		echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html><head><title>test</title></head><body><div>";
    echo round($t/1024/1024,3).' Mpx';
		echo "</div></body></html>";
		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');
	$dummy = propre("<doc1>");

	$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');
	$result = 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'];
	$result = 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']);
}
Example #15
0
function traiter_formulaires_dynamiques($get=false){
	static $post = array();
	static $done = false;

	if ($get) return $post; 
	if ($done) return false;
	$done = true;

	if (!($form = _request('formulaire_action')
	AND $args = _request('formulaire_action_args')))
		return false; // le hit peut continuer normalement

	include_spip('inc/filtres');
	if (($args = decoder_contexte_ajax($args,$form))===false) {
		spip_log("signature ajax form incorrecte : $form");
		return false; // continuons le hit comme si de rien etait
	} else {
		include_spip('inc/lang');
		// sauvegarder la lang en cours
		$old_lang = $GLOBALS['spip_lang'];
		// changer la langue avec celle qui a cours dans le formulaire
		// on la depile de $args car c'est un argument implicite masque	
		changer_langue(array_shift($args));

			
		$verifier = charger_fonction("verifier","formulaires/$form/",true);
		$post["erreurs_$form"] = pipeline(
				  'formulaire_verifier',
					array(
						'args'=>array('form'=>$form,'args'=>$args),
						'data'=>$verifier?call_user_func_array($verifier,$args):array())
					);
		if ((count($post["erreurs_$form"])==0)){
			$rev = "";
			$retour = "";
			if ($traiter = charger_fonction("traiter","formulaires/$form/",true))
				$rev = call_user_func_array($traiter,$args);

			$rev = pipeline(
				  'formulaire_traiter',
					array(
						'args'=>array('form'=>$form,'args'=>$args),
						'data'=>$rev)
					);
			// le retour de traiter peut avoir 3 formats
			// - simple message texte
			// - tableau a deux entrees ($editable,$message)
			// - tableau explicite ('editable'=>$editable,'message_ok'=>$message,'redirect'=>$redirect,'id_xx'=>$id_xx)
			// le dernier format est celui conseille car il permet le pipelinage, en particulier
			// en y passant l'id de l'objet cree/modifie
			// si message_erreur est present, on considere que le traitement a echoue
			// cas du message texte simple
			if (!is_array($rev)){
				$post["message_ok_$form"] = $rev;
			}
			// cas du tableau deux valeurs simple (ancien format, deconseille)
			elseif (count($rev)==2 
			  AND !array_key_exists('message_ok',$rev)
			  AND !array_key_exists('message_erreur',$rev)
			  AND !array_key_exists('redirect',$rev)) {
				$post["editable_$form"] = reset($rev);
				$post["message_ok_$form"] = end($rev);
			}
			// cas du tableau explicite (conseille)
			else {
				// verifier si traiter n'a pas echoue avec une erreur :
				if (isset($rev['message_erreur'])) {
					$post["erreurs_$form"]["message_erreur"] = $rev['message_erreur'];
					
				}
				else {
					// sinon faire ce qu'il faut :
					if (isset($rev['message_ok']))
						$post["message_ok_$form"] = $rev['message_ok'];
					if (isset($rev['editable']))
						$post["editable_$form"] = $rev['editable'];
					// si une redirection est demandee, appeler redirigae_formulaire qui choisira
					// le bon mode de redirection (302 et on ne revient pas ici, ou javascript et on continue)
					if (isset($rev['redirect']) AND $rev['redirect']){
						include_spip('inc/headers');
						list($masque,$message) = redirige_formulaire($rev['redirect'], '','ajaxform');
						$post["message_ok_$form"] .= $message;
						$retour .= $masque;
					}
				}
			}
		}
		// si le formulaire a ete soumis en ajax, on le renvoie direct !
		if (_request('var_ajax')){
			if (find_in_path('formulaire_.php','balise/',true)) {
				include_spip('inc/actions');
				include_spip('public/assembler');
				array_unshift($args,$form);
				$retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn',$args),false);
				// on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7
				// sans cela le formulaire n'est pas actif apres le hit ajax
				$retour = "<br class='bugajaxie' style='display:none;'/>".$retour;
				ajax_retour($retour,false);
				return true; // on a fini le hit
			}
		}
		// restaurer la lang en cours
		changer_langue($old_lang);
	}
	return false; // le hit peut continuer normalement
}
Example #16
0
/**
 * http://doc.spip.org/@minipres
 *
 * @param string $titre
 *   titre de la page
 * @param string $corps
 *   corps de la page
 * @param string $onload
 *   attribut onload de <body>
 * @param bool $all_inline
 *   inliner les css et js dans la page (limiter le nombre de hits)
 * @return string
 */
function minipres($titre = '', $corps = "", $onload = '', $all_inline = false)
{
    if (!defined('_AJAX')) {
        define('_AJAX', false);
    }
    // par securite
    if (!$titre) {
        if (!_AJAX) {
            http_status(403);
        }
        if (!($titre = _request('action')) and !($titre = _request('exec')) and !($titre = _request('page'))) {
            $titre = '?';
        }
        $titre = spip_htmlspecialchars($titre);
        $titre = $titre == 'install' ? _T('avis_espace_interdit') : $titre . '&nbsp;: ' . _T('info_acces_interdit');
        $corps = generer_form_ecrire('accueil', '', '', $GLOBALS['visiteur_session']['statut'] ? _T('public:accueil_site') : _T('public:lien_connecter'));
        spip_log($GLOBALS['visiteur_session']['nom'] . " {$titre} " . $_SERVER['REQUEST_URI']);
    }
    if (!_AJAX) {
        return install_debut_html($titre, $onload, $all_inline) . $corps . install_fin_html();
    } else {
        include_spip('inc/headers');
        include_spip('inc/actions');
        $url = self('&', true);
        foreach ($_POST as $v => $c) {
            $url = parametre_url($url, $v, $c, '&');
        }
        ajax_retour("<div>" . $titre . redirige_formulaire($url) . "</div>", false);
    }
}
Example #17
0
/**
 * cette fonction doit etre appelee avec un $id_transaction securise
 * jamais avec un $id_transaction qui provient directement de l'url sans verification
 *
 * @param string $mode
 * @param string $acte_ou_abo
 * @param bool|string $succes
 *   true, false, 'wait'
 * @param int $id_transaction
 * @return string|void
 */
function redirige_apres_retour_transaction($mode, $acte_ou_abo, $succes, $id_transaction = 0)
{
    $redirect = "";
    $row = false;
    if ($id_transaction = intval($id_transaction)) {
        // attraper les infos sur la transaction
        $row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction));
    }
    // cas de paiement par un admin (cheque...)
    // renvoyer dans le prive
    $id_auteur = sql_getfetsel("id_auteur", "spip_transactions", "id_transaction=" . intval($id_transaction));
    if ($id_transaction and isset($GLOBALS['visiteur_session']['id_auteur']) and (test_espace_prive() or $id_auteur and $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur) and include_spip("inc/autoriser") and autoriser("regler", "transaction", $id_transaction)) {
        $redirect = generer_url_ecrire("transactions", "id_transaction=" . $id_transaction, true);
    }
    if (!$redirect) {
        // si des urls retour ok ou echec sont definies pour cette transaction
        // fournies par #FORMULAIRE_PAYER_ACTE
        if ($row['url_retour'] and $urls = unserialize($row['url_retour'])) {
            if ($succes === true and isset($urls['url_retour_ok'])) {
                $redirect = $urls['url_retour_ok'];
            } elseif ($succes === 'wait' and isset($urls['url_retour_attente'])) {
                $redirect = $urls['url_retour_attente'];
            } elseif (!$succes and isset($urls['url_retour_echec'])) {
                $redirect = $urls['url_retour_echec'];
            }
        }
        // par defaut on revient sur des pages standard,
        // ou sur une des pages reglees en define()
        if (!strlen($redirect)) {
            // _BANK_ACTE_NORMAL_RETURN_URL
            // _BANK_ACTE_WAIT_RETURN_URL
            // _BANK_ACTE_CANCEL_RETURN_URL
            // _BANK_ABO_NORMAL_RETURN_URL
            // _BANK_ABO_WAIT_RETURN_URL
            // _BANK_ABO_CANCEL_RETURN_URL
            $acte_ou_abo = $acte_ou_abo == 'acte' ? 'ACTE' : 'ABO';
            if ($succes === true) {
                $c = "_BANK_" . $acte_ou_abo . "_NORMAL_RETURN_URL";
                if (defined($c)) {
                    $redirect = constant($c);
                } else {
                    $redirect = generer_url_public('bank_retour_ok');
                }
            } elseif ($succes === 'wait') {
                $c = "_BANK_" . $acte_ou_abo . "_WAIT_RETURN_URL";
                if (defined($c)) {
                    $redirect = constant($c);
                } else {
                    $redirect = generer_url_public('bank_retour_attente');
                }
            } else {
                $c = "_BANK_" . $acte_ou_abo . "_CANCEL_RETURN_URL";
                if (defined($c)) {
                    $redirect = constant($c);
                } else {
                    $redirect = generer_url_public('bank_retour_echec');
                }
            }
        }
        // ajouter id_transaction et transaction_hash sur l'url de retour dans tous les cas
        if (strlen($redirect)) {
            $redirect = parametre_url($redirect, 'type', strtolower($acte_ou_abo), '&');
            if ($row and $row['transaction_hash']) {
                $redirect = parametre_url($redirect, 'id_transaction', $id_transaction, '&');
                $redirect = parametre_url($redirect, 'transaction_hash', $row['transaction_hash'], '&');
            }
        }
    }
    // permettre de definir autrement l'url de redirection
    $redirect = pipeline('bank_redirige_apres_retour_transaction', array('args' => array('mode' => $mode, 'type' => $acte_ou_abo, 'succes' => $succes, 'id_transaction' => $id_transaction, 'row' => $row), 'data' => $redirect));
    #var_dump($redirect);die();
    if (strlen($redirect)) {
        include_spip('inc/headers');
        return redirige_formulaire($redirect);
    }
    //on ne devrait jamais arriver la !
    if ($succes === true) {
        echo "Transaction {$mode} {$acte_ou_abo} {$id_transaction} terminee OK";
    } elseif ($succes === 'wait') {
        echo "Transaction {$mode} {$acte_ou_abo} {$id_transaction} terminee OK";
    } else {
        echo "Transaction {$mode} {$acte_ou_abo} {$id_transaction} annulee";
    }
    die;
}
Example #18
0
function formulaires_assistant_migration_verifier_3_dist(){

	$erreurs = array();
	if (_request('direction')=='depuis'){
		// en cas d'abandon sur une migration "depuis", annuler
		if (_request('canceldepuis')){
			include_spip('inc/migration');
			$status = abandonner_migration_depuis();
			finir_migration_status_depuis();
			include_spip('inc/headers');
			$erreurs['message_erreur'] = _T('migration:titre_abandon_migration') . redirige_formulaire(generer_url_ecrire('migrer_depuis_fin'));
		}
		else {
			$s = lire_migration_depuis_status();
			if ($s AND $s['status']!=='ended')
				$erreurs['waiting'] = ' ';
		}
	}
	else {
		foreach(array('url_cible') as $obli)
			if (!_request($obli))
				$erreurs[$obli] = _T('info_obligatoire');
		if (strpos(_request('url_cible'),'+')===false)
			$erreurs['url_cible'] = _T('migration:erreur_url_incorrecte');
		if (!count($erreurs)){
			$url_cible = _request('url_cible');
			$url_cible = explode('+',$url_cible);
			$migration_key = array_pop($url_cible);
			$url_cible = implode('+',$url_cible);

			initialiser_migration_vers($url_cible,$migration_key,_request('quoi'));
			$connect = charger_fonction('connect','migration/envoi');
			$res = $connect($GLOBALS['meta']['adresse_site']);
			if ($res!==true){
				$erreurs['message_erreur'] = _T(is_string($res)?$res:'migration:erreur_echec_connexion_init');
			}
		}
	}

	return $erreurs;
}
Example #19
0
/**
 * Affichage de la page de gestion des plugins
 */
function exec_admin_plugin_dist()
{
    if (!autoriser('configurer', 'plugins')) {
        include_spip('inc/minipres');
        echo minipres();
    }
    // on fait la verif du path avant tout,
    // et l'installation des qu'on est dans la colonne principale
    // si jamais la liste des plugins actifs change, il faut faire un refresh du hit
    // pour etre sur que les bons fichiers seront charges lors de l'install
    include_spip('inc/plugin');
    $new = actualise_plugins_actifs();
    if ($new and _request('actualise') < 2) {
        $url = parametre_url(self(), 'actualise', _request('actualise') + 1, '&');
        include_spip('inc/headers');
        echo redirige_formulaire($url);
        exit;
    }
    // reinstaller SVP si on le demande expressement.
    if (_request('var_mode') == 'reinstaller_svp') {
        include_spip('svp_administrations');
        svp_vider_tables('svp_base_version');
        include_spip('inc/headers');
        echo redirige_formulaire(self());
        exit;
    }
    // le code ci-dessous eut ete bien beau mais...
    // si l'on veut que les messages d'installation moches des plugins
    // soient au bon endroit, nous sommes obliges d'appeler la fonction
    // d'installation a la bonne place, et donc, en php...
    // car dans le html d'un squelette, encapsule dans un ob_start()/ob_flush(),
    // la redirection en cas de timeout sur une installation ne se fait pas.
    /*
    	// on installe les plugins maintenant,
    	// cela permet aux scripts d'install de faire des affichages (moches...)
    	plugin_installes_meta();
    	
    	// les squelettes ne peuvent pas s'appeler 'admin_plugin'
    	// sinon Z les charge en priorite par rapport a ce fichier exec en PHP
    	set_request('fond', 'svp_admin_plugin');
    	
    	// on lance l'affichage standard Z
    	include_spip('exec/fond');
    */
    // liste des erreurs mises en forme
    $erreur_activation = plugin_donne_erreurs();
    $commencer_page = charger_fonction('commencer_page', 'inc');
    echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin");
    echo debut_gauche('plugin', true);
    echo pipeline('affiche_gauche', array('args' => array('exec' => 'admin_plugin'), 'data' => recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')));
    echo debut_droite('plugin', true);
    //  alerte si mode de compatibilité forcée
    $mode_compat = defined('_DEV_PLUGINS') ? '<span class="notice">' . _T('svp:alerte_compatibilite') . '</span>' : '';
    echo gros_titre(_T('icone_admin_plugin') . $mode_compat, '', false);
    // message d'erreur au retour d'une operation
    if ($erreur_activation) {
        include_spip('inc/filtres_boites');
        echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreur_activation . boite_fermer() . "</div>";
    }
    // afficher les actions realisees s'il y en a eu
    // (activation/desactivation/telechargement...)
    echo svp_presenter_actions_realisees();
    // on installe les plugins maintenant,
    // cela permet aux scripts d'install de faire des affichages (moches...)
    plugin_installes_meta();
    echo recuperer_fond('prive/squelettes/contenu/svp_admin_plugin', $_REQUEST, array('ajax' => true));
    echo pipeline('affiche_milieu', array('args' => array('exec' => 'admin_plugin'), 'data' => ''));
    echo fin_gauche(), fin_page();
}
Example #20
0
/**
 * Retourne une page HTML contenant, dans une présentation minimale,
 * le contenu transmis dans `$titre` et `$corps`.
 *
 * Appelée pour afficher un message d’erreur (l’utilisateur n’a pas
 * accès à cette page par exemple).
 *
 * Lorsqu’aucun argument n’est transmis, un header 403 est renvoyé,
 * ainsi qu’un message indiquant une interdiction d’accès.
 *
 * @example
 *   ```
 *   include_spip('inc/minipres');
 *   if (!autoriser('configurer')) {
 *      echo minipres();
 *      exit;
 *   }
 *   ```
 * @uses install_debut_html()
 * @uses install_fin_html()
 *
 * @param string $titre
 *   Titre de la page
 * @param string $corps
 *   Corps de la page
 * @param array $options
 *   string onload : Attribut onload de `<body>`
 *   bool all_inline : Inliner les css et js dans la page (limiter le nombre de hits)
 *   int status : status de la page
 * @return string
 *   HTML de la page
 */
function minipres($titre = '', $corps = "", $options = array())
{
    // compat signature old
    // minipres($titre='', $corps="", $onload='', $all_inline = false)
    $args = func_get_args();
    if (isset($args[2]) and is_string($args[2])) {
        $options = array('onload' => $args[2]);
    }
    if (isset($args[3])) {
        $options['all_inline'] = $args[3];
    }
    $options = array_merge(array('onload' => '', 'all_inline' => false), $options);
    if (!defined('_AJAX')) {
        define('_AJAX', false);
    }
    // par securite
    if (!$titre) {
        if (!isset($options['status'])) {
            $options['status'] = 403;
        }
        if (!($titre = _request('action')) and !($titre = _request('exec')) and !($titre = _request('page'))) {
            $titre = '?';
        }
        $titre = spip_htmlspecialchars($titre);
        $titre = $titre == 'install' ? _T('avis_espace_interdit') : $titre . '&nbsp;: ' . _T('info_acces_interdit');
        $statut = isset($GLOBALS['visiteur_session']['statut']) ? $GLOBALS['visiteur_session']['statut'] : '';
        $nom = isset($GLOBALS['visiteur_session']['nom']) ? $GLOBALS['visiteur_session']['nom'] : '';
        if ($statut != '0minirezo') {
            $titre = _T('info_acces_interdit');
        }
        $corps = generer_form_ecrire('accueil', '', '', $statut ? _T('public:accueil_site') : _T('public:lien_connecter'));
        spip_log($nom . " {$titre} " . $_SERVER['REQUEST_URI']);
    }
    if (!_AJAX) {
        if (isset($options['status'])) {
            http_status($options['status']);
        }
        return install_debut_html($titre, $options['onload'], $options['all_inline']) . $corps . install_fin_html();
    } else {
        include_spip('inc/headers');
        include_spip('inc/actions');
        $url = self('&', true);
        foreach ($_POST as $v => $c) {
            $url = parametre_url($url, $v, $c, '&');
        }
        ajax_retour("<div>" . $titre . redirige_formulaire($url) . "</div>", false);
    }
}
Example #21
0
/**
 * Relancer le hit de maj avant timeout
 * si pas de redirect fourni, on redirige vers exec=upgrade pour finir
 * ce qui doit etre une maj SPIP
 * 
 * @param string $meta
 * @param string $table
 * @param string $redirect
 * @return void
 */
function relance_maj($meta, $table, $redirect = '')
{
    include_spip('inc/headers');
    if (!$redirect) {
        // recuperer la valeur installee en cours
        // on la tronque numeriquement, elle ne sert pas reellement
        // sauf pour verifier que ce n'est pas oui ou non
        // sinon is_numeric va echouer sur un numero de version 1.2.3
        $installee = intval($GLOBALS[$table][$meta]);
        $redirect = generer_url_ecrire('upgrade', "reinstall={$installee}&meta={$meta}&table={$table}", true);
    }
    echo redirige_formulaire($redirect);
    exit;
}
Example #22
0
function minipres($titre='', $corps="", $onload='')
{
	if (!defined('_AJAX')) define('_AJAX', false);
	if (!$titre) {
		if (!_AJAX)
			http_status(403);
		if (!$titre = _request('action')
		AND !$titre = _request('exec')
		AND !$titre = _request('page'))
			$titre = '?';

		$titre = htmlspecialchars($titre);

		$titre = ($titre == 'install')
		  ?  _T('avis_espace_interdit')
		  : $titre . '&nbsp;: '. _T('info_acces_interdit');
		$corps = generer_form_ecrire('accueil', '','',_T('public:accueil_site'));
		spip_log($GLOBALS['visiteur_session']['nom'] . " $titre " . $_SERVER['REQUEST_URI']);
	}

	if (!_AJAX)
		return install_debut_html($titre, $onload)
		. $corps
		. install_fin_html();
	else {
		include_spip('inc/headers');
		include_spip('inc/actions');
		$url = self('&',true);
		foreach ($_POST as $v => $c)
			$url = parametre_url($url, $v, $c, '&');
		echo ajax_retour("<div>".$titre . redirige_formulaire($url)."</div>",false);
	}
}
Example #23
0
function traiter_formulaires_dynamiques($get = false)
{
    static $post = array();
    static $done = false;
    if ($get) {
        return $post;
    }
    if ($done) {
        return false;
    }
    $done = true;
    if (!($form = _request('formulaire_action') and $args = _request('formulaire_action_args'))) {
        return false;
    }
    // le hit peut continuer normalement
    include_spip('inc/filtres');
    if (($args = decoder_contexte_ajax($args, $form)) === false) {
        spip_log("signature ajax form incorrecte : {$form}");
        return false;
        // continuons le hit comme si de rien etait
    } else {
        include_spip('inc/lang');
        // sauvegarder la lang en cours
        $old_lang = $GLOBALS['spip_lang'];
        // changer la langue avec celle qui a cours dans le formulaire
        // on la depile de $args car c'est un argument implicite masque
        changer_langue(array_shift($args));
        // inclure mes_fonctions et autres filtres avant verifier/traiter
        include_spip('public/parametrer');
        // ainsi que l'API SQL bien utile dans verifier/traiter
        include_spip('base/abstract_sql');
        $verifier = charger_fonction("verifier", "formulaires/{$form}/", true);
        $post["erreurs_{$form}"] = pipeline('formulaire_verifier', array('args' => array('form' => $form, 'args' => $args), 'data' => $verifier ? call_user_func_array($verifier, $args) : array()));
        // accessibilite : si des erreurs mais pas de message general l'ajouter
        if (count($post["erreurs_{$form}"]) and !isset($post["erreurs_{$form}"]['message_erreur'])) {
            $post["erreurs_{$form}"]['message_erreur'] = singulier_ou_pluriel(count($post["erreurs_{$form}"]), 'avis_1_erreur_saisie', 'avis_nb_erreurs_saisie');
        }
        // si on ne demandait qu'une verif json
        if (_request('formulaire_action_verifier_json')) {
            include_spip('inc/json');
            include_spip('inc/actions');
            ajax_retour(json_encode($post["erreurs_{$form}"]), 'text/plain');
            return true;
            // on a fini le hit
        }
        $retour = "";
        if (count($post["erreurs_{$form}"]) == 0) {
            $rev = "";
            if ($traiter = charger_fonction("traiter", "formulaires/{$form}/", true)) {
                $rev = call_user_func_array($traiter, $args);
            }
            $rev = pipeline('formulaire_traiter', array('args' => array('form' => $form, 'args' => $args), 'data' => $rev));
            // le retour de traiter est
            // un tableau explicite ('editable'=>$editable,'message_ok'=>$message,'redirect'=>$redirect,'id_xx'=>$id_xx)
            // il permet le pipelinage, en particulier
            // en y passant l'id de l'objet cree/modifie
            // si message_erreur est present, on considere que le traitement a echoue
            $post["message_ok_{$form}"] = '';
            // on peut avoir message_ok et message_erreur
            if (isset($rev['message_ok'])) {
                $post["message_ok_{$form}"] = $rev['message_ok'];
            }
            // verifier si traiter n'a pas echoue avec une erreur :
            if (isset($rev['message_erreur'])) {
                $post["erreurs_{$form}"]["message_erreur"] = $rev['message_erreur'];
                // si il y a une erreur on ne redirige pas
            } else {
                // sinon faire ce qu'il faut :
                if (isset($rev['editable'])) {
                    $post["editable_{$form}"] = $rev['editable'];
                }
                // si une redirection est demandee, appeler redirigae_formulaire qui choisira
                // le bon mode de redirection (302 et on ne revient pas ici, ou javascript et on continue)
                if (isset($rev['redirect']) and $rev['redirect']) {
                    include_spip('inc/headers');
                    list($masque, $message) = redirige_formulaire($rev['redirect'], '', 'ajaxform');
                    $post["message_ok_{$form}"] .= $message;
                    $retour .= $masque;
                }
            }
        }
        // si le formulaire a ete soumis en ajax, on le renvoie direct !
        if (_request('var_ajax')) {
            if (find_in_path('formulaire_.php', 'balise/', true)) {
                include_spip('inc/actions');
                include_spip('public/assembler');
                array_unshift($args, $form);
                $retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn', $args), false);
                // on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7
                // sans cela le formulaire n'est pas actif apres le hit ajax
                // la classe ajax-form-is-ok sert a s'assurer que le retour ajax s'est bien passe
                $retour = "<br class='bugajaxie ajax-form-is-ok' style='display:none;'/>" . $retour;
                ajax_retour($retour, false);
                return true;
                // on a fini le hit
            }
        }
        // restaurer la lang en cours
        changer_langue($old_lang);
    }
    return false;
    // le hit peut continuer normalement
}
Example #24
0
/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2014                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/
// Script pour appeler un squelette apres s'etre authentifie
include_once 'inc_version.php';
include_spip('inc/cookie');
$auth = charger_fonction('auth', 'inc');
$var_auth = $auth();
if ($var_auth !== '') {
    if (!is_int($var_auth)) {
        // si l'authentifie' n'a pas acces a l'espace de redac
        // c'est qu'on voulait forcer sa reconnaissance en tant que visiteur.
        // On reexecute pour deboucher sur le include public.
        // autrement on insiste
        if (is_array($var_auth)) {
            $var_auth = '../?' . $_SERVER['QUERY_STRING'];
            spip_setcookie('spip_session', $_COOKIE['spip_session'], time() + 3600 * 24 * 14);
        }
        include_spip('inc/headers');
        redirige_formulaire($var_auth);
    }
}
// En somme, est prive' ce qui est publiquement nomme'...
include 'public.php';
Example #25
0
function migration_afficher_status($status){
	$s = "?";
	switch($status['status']){
		case 'init':
			$s = _T('migration:status_waiting');
			break;
		case 'end':
		case 'basereverted':
			$s = "[end]".redirige_formulaire(generer_url_ecrire('migrer_depuis_fin'));
			break;
		default:
			if (isset($status['source']))
				$s = _T('migration:status_connected',array('source'=>"<strong>".$status['source']."</strong>"));
			if (isset($status['progress'])){
				if (isset($status['progress']['tables']))
					$status['progress']['tables'] = migration_afficher_status_tables($status['progress']['tables']);
				if (isset($status['progress']['files']))
					$status['progress']['files'] = migration_afficher_status_files($status['progress']['files']);
				$s.= '<br />'.implode('<br />',$status['progress']);
			}
			$s .= '<br />';
			$s .= "[".$status['status']."]";
			break;
	}
	return $s;
}
Example #26
0
/**
 * Traiter le formulaire 
*/
function formulaires_integ_adhintg_traiter_dist($titre_saison, $retour = '', $config_fonc = 'integ_adhintg_edit_config', $row = array(), $hidden = '')
{
    $ref_saisie = _request('ref_saisie');
    $id_coti = intval(_request('id_coti'));
    $message = "";
    $exec_import = charger_fonction("import_edit", 'exec');
    // @todo-JR-20120216-Verifier l'affichage des erreurs car c'est une liste
    //	Chaque enreg peut etre en erreur !!
    //	voir inc/adh_import.adh_import_show_erreurs
    list($id, $err) = $exec_import($ref_saisie, $id_coti);
    if ($err) {
        $message .= $err;
    } elseif ($retour) {
        //include_spip('inc/headers');
        $retour = parametre_url($retour, 'ref_saisie', $id);
        $message .= redirige_formulaire($retour);
    }
    return $message;
}