/**
 * Traiter les champs postes
 */
function formulaires_newsletter_subscribe_traiter_dist($listes = '')
{
    // langue par defaut lors de l'inscription : la langue courante dans la page
    $options = array('lang' => $GLOBALS['spip_lang'], 'nom' => _request('nom'));
    $email = _request('session_email');
    if ($listes and is_string($listes)) {
        $listes = explode(',', $listes);
    }
    if ($listes and is_array($listes) and count($listes)) {
        $options['listes'] = $listes;
    }
    $res = array('editable' => true);
    $newsletter_subscribe = charger_fonction("subscribe", "newsletter");
    if ($newsletter_subscribe($email, $options)) {
        if (lire_config('mailsubscribers/double_optin', 0)) {
            $res['message_ok'] = _T('newsletter:subscribe_message_ok_confirm', array('email' => "<b>{$email}</b>"));
        } else {
            $res['message_ok'] = _T('newsletter:subscribe_message_ok', array('email' => "<b>{$email}</b>"));
        }
    } else {
        $res['message_erreur'] = _T('mailsubscriber:erreur_technique_subscribe');
    }
    set_request('email');
    return $res;
}
/**
 * Vérifications du formulaire de téléchargement de plugin
 *
 * Vérifie qu'une archive est saisie, et si la destination existe
 * demande à confirmer l'écrasement
 * 
 * @return array
 *     Tableau des erreurs
**/
function formulaires_charger_plugin_archive_verifier_dist()
{
    include_spip('inc/plugin');
    // _DIR_PLUGINS_AUTO
    $erreurs = array();
    if (!($archive = _request('archive'))) {
        $erreurs['archive'] = _T('info_obligatoire');
    } else {
        // Validité de l'url de l'archive
        $infos_archive = pathinfo($archive);
        if (!isset($infos_archive['extension'])) {
            $erreurs['archive'] = _T('svp:message_nok_url_archive');
        } else {
            // calcul du répertoire de destination
            if (!($destination = _request('destination'))) {
                $destination = $infos_archive['filename'];
            }
            $destination = str_replace('../', '', $destination);
            set_request('destination', $destination);
            // si la destination existe, on demande confirmation de l'ecrasement.
            $dir = _DIR_PLUGINS_AUTO . $destination;
            if (is_dir($dir) and !_request('confirmer')) {
                $base = dirname($dir);
                $nom = basename($dir);
                $backup = "{$base}/.{$nom}.bck";
                $erreurs['confirmer'] = _T("svp:confirmer_telecharger_dans", array('dir' => joli_repertoire($dir), 'dir_backup' => joli_repertoire($backup)));
            }
        }
    }
    return $erreurs;
}
Example #3
0
/**
 * Chargement des valeurs par defaut des champs du formulaire
 * 
 * @param  string $type_objet[facultatif] objet editorial spip
 * @param int $id_objet[facultatif] identifiant de l'objet
 * @param boolean $adh_i3_rech_ok si au moins 1 critere de recherche saisis.
 * 
 */
function formulaires_adhi3_recherche_charger_dist($type_objet, $id_objet)
{
    // Recuperation des parametres transmis
    $datas['type_objet'] = $type_objet;
    $datas['id_objet'] = $id_objet;
    // Recuperation des champs du formulaire
    // ==> lies a adhclub :
    $datas['id_saison'] = _request('id_saison');
    $datas['techbase'] = _request('techbase');
    $datas['encadrant'] = _request('encadrant');
    $datas['niveau'] = _request('niveau');
    $datas['niv_rel'] = _request('niv_rel');
    // ==> lies a i3 :
    $datas['ordre'] = _request('ordre');
    $datas['desc'] = _request('desc');
    $datas['case'] = _request('case');
    $datas['valeur'] = _request('valeur');
    $datas['exceptions'] = pipeline('i3_exceptions_des_champs_auteurs_elargis', array());
    // Raz des criteres si demande affichage tous les adherents
    if (_request('afficher_tous')) {
        // ==> lies a adhclub :
        set_request('id_saison', '');
        set_request('techbase', '');
        set_request('encadrant', '');
        set_request('niveau', '');
        set_request('niv_rel', '');
        // ==> lies a i3 :
        set_request('valeur', '');
        set_request('case', '');
    }
    return $datas;
}
Example #4
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;
}
Example #5
0
/**
 * Recuperer les champs date_xx et heure_xx, verifier leur coherence et les reformater
 *
 * @param string $suffixe
 * @param bool $horaire
 * @param array $erreurs
 * @return int
 */
function verifier_corriger_date_saisie($suffixe, $horaire, &$erreurs)
{
    include_spip('inc/filtres');
    $date = _request("date_{$suffixe}") . ($horaire ? ' ' . trim(_request("heure_{$suffixe}")) . ':00' : '');
    $date = recup_date($date);
    if (!$date) {
        return '';
    }
    $ret = null;
    if (!($ret = mktime(0, 0, 0, $date[1], $date[2], $date[0]))) {
        $erreurs["date_{$suffixe}"] = _T('agenda:erreur_date');
    } elseif (!($ret = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]))) {
        $erreurs["date_{$suffixe}"] = _T('agenda:erreur_heure');
    }
    if ($ret) {
        if (trim(_request("date_{$suffixe}") !== ($d = date('d/m/Y', $ret)))) {
            $erreurs["date_{$suffixe}"] = _T('agenda:erreur_date_corrigee');
            set_request("date_{$suffixe}", $d);
        }
        if ($horaire and trim(_request("heure_{$suffixe}") !== ($h = date('H:i', $ret)))) {
            $erreurs["heure_{$suffixe}"] = _T('agenda:erreur_heure_corrigee');
            set_request("heure_{$suffixe}", $h);
        }
    }
    return $ret;
}
/**
 * Traiter
 *
 * @param int $id_article
 * @return array
 */
function formulaires_activer_petition_article_traiter_dist($id_article)
{
    include_spip('inc/autoriser');
    if (autoriser('modererpetition', 'article', $id_article)) {
        switch (_request('change_petition')) {
            case 'on':
                foreach (array('email_unique', 'site_obli', 'site_unique', 'message') as $k) {
                    if (_request($k) != 'oui') {
                        set_request($k, 'non');
                    }
                }
                include_spip('action/editer_petition');
                if (!($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article)))) {
                    $id_petition = petition_inserer($id_article);
                }
                petition_modifier($id_petition, array('email_unique' => _request('email_unique'), 'site_obli' => _request('site_obli'), 'site_unique' => _request('site_unique'), 'message' => _request('message'), 'texte' => _request('texte_petition'), 'statut' => 'publie'));
                break;
            case 'off':
                if ($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article))) {
                    include_spip('action/editer_petition');
                    petition_modifier($id_petition, array('statut' => 'poubelle'));
                }
                break;
        }
    }
    return array('message_ok' => _T('config_info_enregistree'));
}
Example #7
0
function formulaires_editer_zone_traiter_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '')
{
    if (_request('publique') !== 'oui') {
        set_request('publique', 'non');
    }
    if (_request('privee') !== 'oui') {
        set_request('privee', 'non');
    }
    $res = formulaires_editer_objet_traiter('zone', $id_zone, 0, 0, $retour, $config_fonc, $row, $hidden);
    if ($retour and $res['id_zone']) {
        $res['redirect'] = parametre_url($retour, 'id_zone', $res['id_zone']);
    }
    // Un lien auteur a prendre en compte ?
    if ($associer_objet and $id_zone = $res['id_zone']) {
        $objet = '';
        if (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)) {
            zone_lier($id_zone, $objet, $id_objet);
            if (isset($res['redirect'])) {
                $res['redirect'] = parametre_url($res['redirect'], "id_lien_ajoute", $id_zone, '&');
            }
        }
    }
    return $res;
}
Example #8
0
function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
	$erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','date_debut','date_fin'));

	include_spip('inc/date_gestion');

	$horaire = _request('horaire')=='non'?false:true;
	$date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs);
	$date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs);

	if ($date_debut AND $date_fin AND $date_fin<$date_debut)
		$erreurs['date_fin'] = _T('agenda:erreur_date_avant_apres');

	include_spip('spip_bonux_fonctions');
	if (count($id = picker_selected(_request('parents_id'),'article'))
	  AND $id = reset($id)
	  AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
	  // reinjecter dans id_parent
	  set_request('id_parent',$id);
	}

	if (!$id_parent = intval(_request('id_parent')))
		$erreurs['id_parent'] = _T('agenda:erreur_article_manquant');
	else {
		if (!autoriser('creerevenementdans','article',$id_parent))
			$erreurs['id_parent'] = _T('agenda:erreur_article_interdit');
	}

	#if (!count($erreurs))
	#	$erreurs['message_erreur'] = 'ok?';
	return $erreurs;
}
Example #9
0
function formulaires_editer_site_verifier_dist($id_syndic='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='sites_edit_config', $row=array(), $hidden=''){
	include_spip('inc/filtres');
	include_spip('inc/site');
	$oblis = array('nom_site','url_site');
	// Envoi depuis le formulaire d'analyse automatique d'un site
	if (_request('ajoute_url_auto') AND strlen(vider_url($u = _request('url_auto')))) {
		if ($auto = analyser_site($u)) {
			// Si pas de logo, on va le chercher dans le ou les feeds
			if(isset($auto['url_syndic']) && !$auto['logo'] && ($auto['url_syndic'] != _request('ajouter_url_auto')) && preg_match(',^select: (.+),', $auto['url_syndic'], $regs)){
				$url_syndic = str_replace('select: ','',$auto['url_syndic']);
				$feeds = explode(' ',$regs[1]);
				foreach ($feeds as $feed) {
					if(($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])){
						$auto['format_logo'] = $auto_syndic['format_logo'];
						$auto['logo'] = $auto_syndic['logo'];
						break;
					}
				}
			}
			foreach($auto as $k=>$v){
				set_request($k,$v);
			}
			$erreurs['message_ok'] =
			_T('texte_referencement_automatique_verifier', array('url' => $u));
		}
		else{
			$erreurs['url_auto'] = _T('avis_site_introuvable');
		}
	}
	else
		$erreurs = formulaires_editer_objet_verifier('site',$id_syndic,$oblis);
	return $erreurs;
}
Example #10
0
function formulaires_gestion_forum_traiter_dist($id_forum = '', $id_rubrique = '', $id_article = '', $id_breve = '', $id_syndic = '', $id_message = '', $id_auteur = '', $auteur = '', $email_auteur = '', $ip = '')
{
    $retour = array();
    $retour['message_ok'] = 'rien a faire';
    if (!($forum_ids = _request('forum_ids'))) {
        $forum_ids = array();
    }
    $select_type = _request('select_type');
    $select_statut = _request('select_statut');
    $pagination = _request('pagination');
    $pagination_ancien = _request('pagination_ancien');
    set_request('select_type', $select_type);
    set_request('voir_statut', $select_statut);
    if ($pagination != $pagination_ancien) {
        set_request('debut_forum', '');
    }
    if (_request('valider')) {
        $statut = 'publie';
        $retour['message_ok'] = 'messages publies';
    }
    if (_request('bruler')) {
        $statut = 'spam';
        $retour['message_ok'] = 'messages marquees comme spam';
    }
    if (_request('supprimer')) {
        $statut = 'off';
        $retour['message_ok'] = 'messages supprimes';
    }
    include_spip('action/instituer_forum');
    foreach ($forum_ids as $id) {
        $row = sql_fetsel("*", "spip_forum", "id_forum={$id}");
        instituer_un_forum($statut, $row);
    }
    return $retour;
}
function formulaires_tri_stages_verifier_dist()
{
    $erreurs = array();
    // vérfication champs ville stage qui peut comporter plusieurs villes
    $ville_stage = _request('ville_stage');
    if ($ville_stage) {
        preg_match_all("/[-0-9a-zA-Z_]+/", $ville_stage, $recherche);
        $nbre = count($recherche[0]);
        $sortie = '';
        if ($recherche && $nbre > 1) {
            foreach ($recherche[0] as $k => $v) {
                if ($k < $nbre - 1) {
                    $sortie .= $v . ', ';
                } else {
                    $sortie .= $v;
                }
            }
            if ($input == $sortie) {
                return;
            } else {
                //	$erreurs["ville_stage"] = _T('fraap_candidatures:erreur_champ_ville_stage');
                set_request("ville_stage", $sortie);
            }
        }
    }
    // vérification des dates (via spip-bonux)
    $horaire = false;
    $date_debut = verifier_corriger_date_saisie('debut', $horaire, $erreurs);
    $date_fin = verifier_corriger_date_saisie('fin', $horaire, $erreurs);
    if ($date_debut and $date_fin and $date_fin < $date_debut) {
        $erreurs['date_fin'] = _T('fraap_candidatures:erreur_date_avant_apres');
    }
    return $erreurs;
}
function formulaires_configurer_comments_verifier()
{
    $erreurs = array();
    if (_request('nom_obli') !== '1') {
        set_request('nom_obli', '0');
    }
    return $erreurs;
}
Example #13
0
function formulaires_editer_site_traiter_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = '')
{
    // netoyer les entrees
    if (!is_null(_request('url_site'))) {
        set_request('url_site', vider_url(_request('url_site')));
    }
    return formulaires_editer_objet_traiter('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Example #14
0
function formulaires_editer_article_traiter_dist($id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = array(), $hidden = '')
{
    // ici on ignore changer_lang qui est poste en cas de trad,
    // car l'heuristique du choix de la langue est pris en charge par article_inserer
    // en fonction de la config du site et de la rubrique choisie
    set_request("changer_lang");
    return formulaires_editer_objet_traiter('article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Example #15
0
function formulaires_reviser_verifier_dist($objet, $id_objet, $id_version, $id_diff)
{
    $erreurs = array();
    list($id_version, $id_diff) = check_version_diff($objet, $id_objet, _request('id_version'), _request('id_diff'));
    set_request('id_version', $id_version);
    set_request('id_diff', $id_diff);
    return $erreurs;
}
Example #16
0
function action_poster_forum_prive_post($r)
{
	list(,$id, $id_parent, $statut, $script, $objet) = $r;

	if (_request('valider_forum') AND ($statut!='')) {
		include_spip('inc/texte');
		include_spip('inc/forum');

		$titre_message = corriger_caracteres(_request('titre_message'));
		$texte = corriger_caracteres(_request('texte'));

		$id_forum = sql_insertq('spip_forum', array(
			$objet => $id,
			'titre' => $titre_message,
			'texte' => $texte,
			'date_heure' => date('Y-m-d H:i:s'),
			'nom_site' => _request('nom_site'),
			'url_site' => _request('url_site'),
			'statut' => $statut,
			'id_auteur' =>$GLOBALS['visiteur_session']['id_auteur'],
			'auteur' => $GLOBALS['visiteur_session']['nom'],
			'email_auteur' => $GLOBALS['visiteur_session']['email'],
			'id_parent' => $id_parent));

		calculer_threads();

		if ($objet == 'id_message') {
			sql_updateq("spip_auteurs_messages", array("vu" => 'non'), "id_message=$id");

		}

		// Notification
		if ($notifications = charger_fonction('notifications', 'inc')) {
			$notifications('forumprive', $id_forum);
		}

		$retour = urldecode(_request('redirect'));
		$retour = parametre_url($retour, 'modif_forum', 'fin', '&');
		$retour = parametre_url($retour, 'texte', $objet, '&');
#		$retour = parametre_url($retour, 'script', $script, '&');
		redirige_par_entete($retour ."#id".$id_forum);
	} else {
	   // previsualisation : on ne fait que passer .... 
	   // et si les clients HTTP respectaient le RFC HTTP selon lequel
	   // une redirection d'un POST doit etre en POST et pas en GET
	   // on n'aurait pas a faire l'horreur ci-dessous.
		  
	   set_request('action', '');
	   set_request('exec', 'poster_forum_prive');
	   set_request('id', $id);
	   set_request('id_parent', $id_parent);
	   set_request('statut', $statut);
	   set_request('script', $script);

	   include(_DIR_RESTREINT.'index.php');
	   exit;
	}
}
Example #17
0
function traiter_appels_actions()
{
    // cas de l'appel qui renvoie une redirection (302) ou rien (204)
    if ($action = _request('action')) {
        include_spip('base/abstract_sql');
        // chargement systematique pour les actions
        include_spip('inc/autoriser');
        include_spip('inc/headers');
        include_spip('inc/actions');
        // des actions peuvent appeler _T
        if (!isset($GLOBALS['spip_lang'])) {
            include_spip('inc/lang');
            utiliser_langue_visiteur();
        }
        // si l'action est provoque par un hit {ajax}
        // il faut transmettre l'env ajax au redirect
        // on le met avant dans la query string au cas ou l'action fait elle meme sa redirection
        if ($v = _request('var_ajax') and $v !== 'form' and $args = _request('var_ajax_env') and $url = _request('redirect')) {
            $url = parametre_url($url, 'var_ajax', $v, '&');
            $url = parametre_url($url, 'var_ajax_env', $args, '&');
            set_request('redirect', $url);
        } else {
            if (_request('redirect')) {
                set_request('redirect', securiser_redirect_action(_request('redirect')));
            }
        }
        $var_f = charger_fonction($action, 'action');
        $var_f();
        if (!isset($GLOBALS['redirect'])) {
            $GLOBALS['redirect'] = _request('redirect');
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $GLOBALS['redirect'] = urldecode($GLOBALS['redirect']);
            }
            $GLOBALS['redirect'] = securiser_redirect_action($GLOBALS['redirect']);
        }
        if ($url = $GLOBALS['redirect']) {
            // si l'action est provoque par un hit {ajax}
            // il faut transmettre l'env ajax au redirect
            // qui a pu etre defini par l'action
            if ($v = _request('var_ajax') and $v !== 'form' and $args = _request('var_ajax_env')) {
                $url = parametre_url($url, 'var_ajax', $v, '&');
                $url = parametre_url($url, 'var_ajax_env', $args, '&');
                // passer l'ancre en variable pour pouvoir la gerer cote serveur
                $url = preg_replace(',#([^#&?]+)$,', "&var_ajax_ancre=\\1", $url);
            }
            $url = str_replace('&amp;', '&', $url);
            // les redirections se font en &, pas en en &amp;
            redirige_par_entete($url);
        }
        if (!headers_sent() and !ob_get_length()) {
            http_status(204);
        }
        // No Content
        return true;
    }
    return false;
}
Example #18
0
function formulaires_configurer_compresseur_verifier_dist(){
	$erreurs = array();
	
	// les checkbox
	foreach(array('auto_compress_http','auto_compress_js','auto_compress_css', 'auto_compress_closure') as $champ)
		if (_request($champ)!='oui')
			set_request($champ,'non');
			
	return $erreurs;
}
/**
 * Vérifications du formulaire de réglage de la modération d'un site
 *
 * @param int $id_syndic
 *     Identifiant du site.
 * @param string $retour
 *     URL de redirection après le traitement
 * @return array
 *     Erreurs du formulaire
 **/
function formulaires_regler_moderation_site_verifier_dist($id_syndic, $retour = '')
{
    $erreurs = array();
    foreach (array('moderation', 'miroir', 'oubli', 'resume') as $k) {
        if (!_request($k) or !in_array(_request($k), array('oui', 'non'))) {
            set_request($k, 'non');
        }
    }
    return $erreurs;
}
/**
 * Intervient après le changement de statut d'un objet
 *
 * @pipeline post_edition
 *
 * @param array $flux
 *        	Données du pipeline
 * @return array Données du pipeline
 */
function reservations_credits_post_edition($flux)
{
    $table = $flux['args']['table'];
    if ($table == 'spip_evenements') {
        $statut_ancien = $flux['args']['statut_ancien'];
        $statut = $flux['data']['statut'];
        // Si un événement publié est annulé
        if ($statut_ancien == 'publie' and $statut == 'annule') {
            set_request('instituer_credit_mouvement', 'credit');
        } elseif ($statut_ancien == 'annule' and $statut == 'publie') {
            set_request('instituer_credit_mouvement', 'debit');
        }
        // On crée les crédits pour chaque détail de réservation payé
        if ($type = _request('instituer_credit_mouvement')) {
            set_request('type', $type);
            $action = charger_fonction('editer_objet', 'action');
            if (test_plugin_actif('prix_objets')) {
                $sql = sql_select('id_reservations_detail,
							id_auteur,
							email,
							spip_reservations_details.prix_ht,
							spip_reservations_details.prix,
							spip_reservations_details.taxe,
							descriptif,code_devise', 'spip_reservations_details
							LEFT JOIN spip_reservations USING (id_reservation)
							LEFT JOIN spip_prix_objets USING (id_prix_objet)', 'id_evenement=' . $flux['args']['id_objet'] . ' AND spip_reservations_details.statut="accepte"');
            } else {
                $sql = sql_select('id_reservations_detail, id_auteur, email, prix_ht, prix, taxe,descriptif', 'spip_reservations_details LEFT JOIN spip_reservations USING (id_reservation)', 'id_evenement=' . $flux['args']['id_objet'] . ' AND spip_reservations_details.statut="accepte"');
            }
            $date = date('Y-m-d H:i:s');
            while ($data = sql_fetch($sql)) {
                if (!isset($data['id_auteur']) or !($email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur =' . $data['id_auteur']))) {
                    $email = $data['email'];
                }
                if (isset($data['code_devise'])) {
                    set_request('devise', $data['code_devise']);
                }
                set_request('email', $email);
                set_request('id_reservations_detail', $data['id_reservations_detail']);
                set_request('descriptif', _T('reservation_credit_mouvement:mouvement_evenement_' . $statut, array('titre' => $data['descriptif'])));
                // On établit le montant
                if ($data['prix'] > 0) {
                    set_request('montant', $data['prix']);
                } else {
                    $montant = $data['prix_ht'] + $data['taxe'];
                    set_request('montant', $montant);
                }
                set_request('date_creation', $date);
                // Création du crédit
                $action('new', 'reservation_credit_mouvement');
            }
        }
    }
    return $flux;
}
Example #21
0
function formulaires_editer_adresse_profil_traiter_dist($id_auteur)
{
    $traiter = charger_fonction("traiter", "formulaires/editer_profil");
    $res = $traiter($id_auteur);
    if (isset($res['message_ok'])) {
        $res['message_ok'] = _T('editer_profil:message_ok_adresse_profil_modifie');
        $res['editable'] = true;
        set_request('modif');
    }
    return $res;
}
function formulaires_configurer_compteur_verifier_dist()
{
    $erreurs = array();
    // les checkbox
    foreach (array('activer_statistiques', 'activer_captures_referers') as $champ) {
        if (_request($champ) != 'oui') {
            set_request($champ, 'non');
        }
    }
    return $erreurs;
}
Example #23
0
/**
 * Vérification du fichier $nom
 *
 * @param  string $nom
 * @param  Object $cfg
 * @return Object
 */
function cfg_pre_verifier_cfg_fichier($nom, &$cfg){	
	$f = cfg_get_info_fichier_upload($nom);
	// si pas de fichier envoye, on ne traite pas le champ
	if (!$f['tmp_name']) {
		unset ($cfg->champs[$nom], $cfg->extensions['cfg_fichier'][$nom]);
	// sinon indiquer un changement
	// pour eviter le message d'erreur "pas de changement"
	} else {
		set_request($nom, '<OLD>'.	$cfg->val[$nom]);
	}
	return $cfg;
}
Example #24
0
function formulaires_editer_groupe_mot_traiter_dist($id_groupe = 'new', $retour = '', $config_fonc = 'groupes_mots_edit_config', $row = array(), $hidden = '')
{
    set_request('redirect', '');
    // cas des checkbox : injecter la valeur non si rien de coche
    foreach (array('obligatoire', 'unseul', 'comite', 'forum', 'minirezo') as $champ) {
        if (!_request($champ)) {
            set_request($champ, 'non');
        }
    }
    $res = formulaires_editer_objet_traiter('groupe_mots', $id_groupe, 0, 0, $retour, $config_fonc, $row, $hidden);
    return $res;
}
function formulaires_inscription_verifier_dist($mode = '', $id = 0)
{
    set_request("_upgrade_auteur");
    // securite
    include_spip('inc/filtres');
    $erreurs = array();
    include_spip('inc/autoriser');
    if (!autoriser('inscrireauteur', $mode, $id) or strlen(_request('nobot')) > 0) {
        $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
    }
    if (!($nom = _request('nom_inscription'))) {
        $erreurs['nom_inscription'] = _T("info_obligatoire");
    } elseif (!nom_acceptable(_request('nom_inscription'))) {
        $erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
    }
    if (!($mail = strval(_request('mail_inscription')))) {
        $erreurs['mail_inscription'] = _T("info_obligatoire");
    }
    // compatibilite avec anciennes fonction surchargeables
    // plus de definition par defaut
    if (!count($erreurs)) {
        include_spip('action/inscrire_auteur');
        if (function_exists('test_inscription')) {
            $f = 'test_inscription';
        } else {
            $f = 'test_inscription_dist';
        }
        $declaration = $f($mode, $mail, $nom, $id);
        if (is_string($declaration)) {
            $k = strpos($declaration, 'mail') !== false ? 'mail_inscription' : 'nom_inscription';
            $erreurs[$k] = _T($declaration);
        } else {
            include_spip('base/abstract_sql');
            if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))) {
                if ($row['statut'] == '5poubelle' and !$declaration['pass']) {
                    $erreurs['message_erreur'] = _T('form_forum_access_refuse');
                } else {
                    if ($row['statut'] != 'nouveau' and !$declaration['pass']) {
                        if (intval($row['statut']) > intval($mode)) {
                            set_request("_upgrade_auteur", $row['id_auteur']);
                        } else {
                            // deja inscrit
                            $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
                        }
                    }
                }
                spip_log($row['id_auteur'] . " veut se resinscrire");
            }
        }
    }
    return $erreurs;
}
function formulaires_configurer_forums_contenu_verifier_dist()
{
    $erreurs = array();
    if (!_request('forums_titre') and !_request('forums_texte') and !_request('forums_urlref')) {
        $erreurs['forums_titre'] = _T('info_obligatoire');
    }
    foreach (array('forums_titre', 'forums_texte', 'forums_urlref', 'forums_afficher_barre', 'forums_forcer_previsu') as $champ) {
        if (_request($champ) !== 'oui') {
            set_request($champ, 'non');
        }
    }
    return $erreurs;
}
Example #27
0
/**
 * Inscription rapide d'un client, sans confirmation email, par simple saisie email
 * Si inscriptions pas autorisees, retourner une chaine d'avertissement
 *
 * @param string $statut
 * @param string $retour
 * @return array
 */
function formulaires_inscription_rapide_verifier_dist($statut = '6forum', $retour = '')
{
    // fournir le nom à partir de l'email
    $nom = _request('mail_inscription');
    $nom = explode('@', $nom);
    $nom = reset($nom);
    $nom = preg_replace(",[-_\\.],", " ", $nom);
    $nom = ucwords($nom);
    set_request('nom_inscription', $nom);
    $inscription_verifier = charger_fonction("verifier", "formulaires/inscription");
    $erreurs = $inscription_verifier($statut);
    return $erreurs;
}
Example #28
0
function formulaires_configurer_identite_traiter_dist()
{
    include_spip('inc/config');
    set_request('adresse_site', appliquer_adresse_site(_request('adresse_site')));
    include_spip('inc/meta');
    foreach (array('nom_site', 'slogan_site', 'descriptif_site', 'email_webmaster') as $k) {
        ecrire_meta($k, _request($k));
    }
    include_spip('inc/texte_mini');
    $reload = texte_script(couper(_request('nom_site'), 35));
    $reload = "<script type='text/javascript'>if (window.jQuery) jQuery('#bando_identite .nom_site_spip .nom').html('{$reload}');</script>";
    return array('message_ok' => _T('config_info_enregistree') . $reload, 'editable' => true);
}
Example #29
0
function formulaires_editer_profil_traiter_dist($id_auteur)
{
    refuser_traiter_formulaire_ajax();
    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
    $new_email = "";
    // si l'email change
    if (_request('email') and _request('email') !== $auteur['email']) {
        $new_email = _request('email');
        // si c'etait le login, changer aussi le login
        if ($auteur['email'] == $auteur['login']) {
            set_request('login', _request('email'));
        }
    }
    include_spip('inc/editer');
    // renseigner le nom de la table auteurs (s'il n'a pas été renseigné)
    if (!_request('nom')) {
        set_request('nom', _request('prenom') . ' ' . _request('name'));
    }
    $res = formulaires_editer_objet_traiter('auteur', $id_auteur);
    // si l'email change
    if ($new_email) {
        // securite si jamais la modif en base n'a pas eu lieu
        $new_email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
        // updater les abonnements dans mailsubscribers
        // si jamais il y a deja in subscriber sur le nouveau mail, ca ne fera rien, et l'ancien email continuera a recevoir
        // a charge pour l'utilisateur de se desabonner manuellement sur l'ancien
        if (test_plugin_actif("mailsubscribers")) {
            sql_updateq("spip_mailsubscribers", array('email' => $new_email), "email=" . sql_quote($auteur['email']));
        }
    }
    /*
    if ($email = _request('email')){
    
      if (_request('newsletter')){
    		$subscribe = charger_fonction("subscribe","newsletter");
    		$subscribe($email,array('nom'=>_request('nom'),'listes'=>array('profils'),'force'=>true));
      }
    	else {
    		$unsubscribe = charger_fonction("unsubscribe","newsletter");
    		$unsubscribe($email,array('listes'=>array('profils')));
    	}
    	set_request('newsletter');
    }
    */
    if (isset($res['message_ok'])) {
        $res['message_ok'] = _T('editer_profil:message_ok_profil_modifie');
        $res['editable'] = true;
    }
    return $res;
}
function action_autosubscribe_newsletter_dist($email = null)
{
    if (is_null($email)) {
        // pas d'espace dans une adresse mail mais des + qui sont malheureusement urldecode
        if (strpos(_request('arg'), " ") !== false) {
            set_request('arg', str_replace(" ", "+", _request('arg')));
        }
        $securiser_action = charger_fonction("securiser_action", "inc");
        $email = $securiser_action();
    }
    // autosubscribe immediat sans double optin
    $subscribe = charger_fonction("subscribe", "newsletter");
    $subscribe($email, array('force' => true, 'listes' => array('newsletter')));
}