Пример #1
0
function message_oubli($email, $param)
{
	$r = formulaires_oubli_mail($email);
	if (is_array($r) AND $r[1]) {
		include_spip('inc/acces'); # pour creer_uniqid
		include_spip('inc/texte'); # pour corriger_typo
		$cookie = creer_uniqid();
		sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']);

		$nom = textebrut(corriger_typo($GLOBALS['meta']["nom_site"]));
		$envoyer_mail = charger_fonction('envoyer_mail','inc');

		if ($envoyer_mail($email,
				  ("[$nom] " .  _T('pass_oubli_mot')),
				  _T('pass_mail_passcookie',
				     array('nom_site_spip' => $nom,
					   'adresse_site' => url_de_base(),
					   'sendcookie' => generer_url_public('spip_pass',
					   "$param=$cookie", true)))) )
		  return _T('pass_recevoir_mail');
		else
		  return  _T('pass_erreur_probleme_technique');
	}
	return  _T('pass_erreur_probleme_technique');
}
Пример #2
0
/**
 * Typographie generale
 * avec protection prealable des balises HTML et SPIP
 *
 * http://code.spip.net/@typo
 *
 * @param string $letexte
 * @param bool $echapper
 * @param null $connect
 * @param array $env
 * @return string
 */
function typo($letexte, $echapper = true, $connect = null, $env = array())
{
    // Plus vite !
    if (!$letexte) {
        return $letexte;
    }
    // les appels directs a cette fonction depuis le php de l'espace
    // prive etant historiquement ecrit sans argment $connect
    // on utilise la presence de celui-ci pour distinguer les cas
    // ou il faut passer interdire_script explicitement
    // les appels dans les squelettes (de l'espace prive) fournissant un $connect
    // ne seront pas perturbes
    $interdire_script = false;
    if (is_null($connect)) {
        $connect = '';
        $interdire_script = true;
    }
    $echapper = $echapper ? 'TYPO' : false;
    // Echapper les codes <html> etc
    if ($echapper) {
        $letexte = echappe_html($letexte, $echapper);
    }
    //
    // Installer les modeles, notamment images et documents ;
    //
    // NOTE : propre() ne passe pas par ici mais directement par corriger_typo
    // cf. inc/lien
    $letexte = traiter_modeles($mem = $letexte, false, $echapper ? $echapper : '', $connect, null, $env);
    if (!$echapper and $letexte != $mem) {
        $echapper = '';
    }
    unset($mem);
    $letexte = corriger_typo($letexte);
    $letexte = echapper_faux_tags($letexte);
    // reintegrer les echappements
    if ($echapper !== false) {
        $letexte = echappe_retour($letexte, $echapper);
    }
    // Dans les appels directs hors squelette, securiser ici aussi
    if ($interdire_script) {
        $letexte = interdire_scripts($letexte);
    }
    return $letexte;
}
Пример #3
0
function expanser_liens_tw($texte, $connect = '')
{
    $debug = _request('var_debug_wheel');
    $texte = pipeline('pre_liens', $texte);
    if ($debug) {
        spip_timer('liensmatch');
    }
    tw_expanser_un_lien($connect, 'init');
    if (strpos($texte, '->') !== false) {
        $texte = preg_replace_callback(_RACCOURCI_LIEN_TW, 'tw_expanser_un_lien', $texte);
    }
    if ($debug) {
        $GLOBALS['totaux']['expanser_liens:']['liensmatch'] += spip_timer('liensmatch', true);
    }
    // on passe a traiter_modeles la liste des liens reperes pour lui permettre
    // de remettre le texte d'origine dans les parametres du modele
    if ($debug) {
        spip_timer('traiter_modeles');
    }
    $texte = traiter_modeles($texte, false, false, $connect, tw_expanser_un_lien('', 'sources'));
    if ($debug) {
        $GLOBALS['totaux']['expanser_liens:']['traiter_modeles'] += spip_timer('traiter_modeles', true);
    }
    if ($debug) {
        spip_timer('corriger_typo');
    }
    $texte = corriger_typo($texte);
    if ($debug) {
        $GLOBALS['totaux']['expanser_liens:']['corriger_typo'] += spip_timer('corriger_typo', true);
    }
    if ($debug) {
        spip_timer('reinserts');
    }
    $texte = tw_expanser_un_lien($texte, 'reinsert');
    if ($debug) {
        $GLOBALS['totaux']['expanser_liens:']['reinserts'] += spip_timer('reinserts', true);
    }
    return $texte;
}
Пример #4
0
function nettoyer_raccourcis_typo($texte, $connect='')
{
	$texte = pipeline('nettoyer_raccourcis_typo',$texte);

	if (preg_match_all(_RACCOURCI_LIEN, $texte, $regs, PREG_SET_ORDER))
		foreach ($regs as $reg) {
			list ($titre,,)= traiter_raccourci_lien_atts($reg[1]);
			if (!$titre) {
				$match = typer_raccourci($reg[count($reg)-1]);
				@list($type,,$id,,,,) = $match;
				if ($type) {
					$url = generer_url_entite($id,$type,'','',true);
					if (is_array($url)) list($type, $id) = $url;
					$titre = traiter_raccourci_titre($id, $type, $connect);
				}
				$titre = $titre ? $titre['titre'] : $match[0];
			}
			$titre = corriger_typo(supprimer_tags($titre));
			$texte = str_replace($reg[0], $titre, $texte);
		}

	// supprimer les notes
	$texte = preg_replace(",[[][[]([^]]|[]][^]])*[]][]],UimsS","",$texte);

	// supprimer les codes typos
	$texte = str_replace(array('}','{'), '', $texte);

	// supprimer les tableaux
	$texte = preg_replace(",(^|\r)\|.*\|\r,s", "\r", $texte);

	return $texte;
}
Пример #5
0
function debusquer_entete($titre, $corps)
{
    global $debug_objets;
    include_spip('balise/formulaire_admin');
    include_spip('public/assembler');
    // pour inclure_balise_dynamique
    include_spip('inc/texte');
    // pour corriger_typo
    return _DOCTYPE_ECRIRE . html_lang_attributes() . "<head>\n<title>" . ('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' . _T('admin_debug') . ' ' . $titre . ' (' . supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) . ")</title>\n" . "<meta http-equiv='Content-Type' content='text/html" . (($c = $GLOBALS['meta']['charset']) ? "; charset={$c}" : '') . "' />\n" . http_script('', 'jquery.js') . "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css')) . "' type='text/css' />" . "</head>\n" . "<body style='margin:0 10px;'>\n" . "<div id='spip-debug-header'>" . $corps . inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $debug_objets), false) . '</div></body></html>';
}
Пример #6
0
function trouve_auteurs_articles($id_article)
{
	return corriger_typo(join(", ", array_map('array_shift', sql_allfetsel("nom", "spip_auteurs AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_auteur=L.id_auteur", "L.id_article=$id_article", "", "nom"))));
}
Пример #7
0
/**
 * Nettoyer le titre d'un email
 *
 * @uses textebrut()
 * @uses corriger_typo()
 *
 * @param  string $titre
 * @return string
 */
function nettoyer_titre_email($titre)
{
    return str_replace("\n", ' ', textebrut(corriger_typo($titre)));
}
Пример #8
0
function lettres_d_auteurs($query, $debut, $max_par_page, $tri)
{
	$auteurs = $lettre = array();
	$lettres_nombre_auteurs = 0;
	$lettre_prec ="";
	$nombre_auteurs = 0;
	$query = sql_select($query['SELECT'], $query['FROM'], $query['WHERE'], $query['GROUP BY'], $query['ORDER BY']);

	while ($auteur = sql_fetch($query)) {
		if ($nombre_auteurs>=$debut AND $nombre_auteurs<$debut+$max_par_page) {
			$auteur['restreint'] = sql_countsel("spip_auteurs_rubriques", "id_auteur=".$auteur['id_auteur']);
			
			$auteurs[] = $auteur;
		}

		if ($tri == 'nom') {
			$premiere_lettre = strtoupper(spip_substr(corriger_typo($auteur['nom']),0,1));
			if ($premiere_lettre != $lettre_prec) { 
				$lettre[$premiere_lettre] = $nombre_auteurs;
			}
			$lettre_prec = $premiere_lettre;
		}
		$nombre_auteurs++;
	}
	return array($auteurs, $lettre, $nombre_auteurs, $debut);
}
Пример #9
0
function traiter_raccourci_lien_atts($texte)
{
    $bulle = $hlang = false;
    // title et hreflang donnes par le raccourci ?
    if (strpbrk($texte, "|{") !== false and preg_match(_RACCOURCI_ATTRIBUTS, $texte, $m)) {
        $n = count($m);
        // |infobulle ?
        if ($n > 2) {
            $bulle = $m[3];
            // {hreflang} ?
            if ($n > 4) {
                // si c'est un code de langue connu, on met un hreflang
                if (traduire_nom_langue($m[5]) != $m[5]) {
                    $hlang = $m[5];
                } elseif (!$m[5]) {
                    $hlang = test_espace_prive() ? $GLOBALS['lang_objet'] : $GLOBALS['spip_lang'];
                    // sinon c'est un italique ou un gras dans le title ou dans le texte du lien
                } else {
                    if ($bulle) {
                        $bulle .= $m[4];
                    } else {
                        $m[1] .= $m[2] . $m[4];
                    }
                }
            } else {
                if (preg_match('/^[a-z_]+$/', $m[3])) {
                    // si c'est un code de langue connu, on met un hreflang
                    // mais on laisse le title (c'est arbitraire tout ca...)
                    if (traduire_nom_langue($m[3]) != $m[3]) {
                        $hlang = $m[3];
                    }
                }
            }
        }
        $texte = $m[1];
    }
    if ($bulle) {
        $bulle = nettoyer_raccourcis_typo($bulle);
        $bulle = corriger_typo($bulle);
    }
    return array(trim($texte), $bulle, $hlang);
}
Пример #10
0
function infos_naviguer($id_rubrique, $statut, $row, $n_forums)
{
	$boite = pipeline ('boite_infos', array('data' => '',
		'args' => array(
			'type'=>'rubrique',
			'id' => $id_rubrique,
			'row' => $row,
			'n_forums' => $n_forums
		)
	));

	$navigation =
	  ($boite ?debut_boite_info(true). $boite . fin_boite_info(true):"");

	$res = sql_allfetsel("A.nom, A.id_auteur", "spip_auteurs AS A LEFT JOIN spip_auteurs_rubriques AS R ON A.id_auteur=R.id_auteur", "A.statut = '0minirezo' AND R.id_rubrique=$id_rubrique");

	if (!$res) return $navigation;

	$img = http_img_pack('admin-12.gif','','');
	foreach ($res as $k => $row) {
		$h = generer_url_ecrire('auteur_infos', "id_auteur=" .$row['id_auteur']);
		$res[$k] = "$img <a href='$h'>" . $row['nom'] . '</a>';
	}
	$res = corriger_typo(join('<br />', $res));

	$navigation .= debut_cadre_relief("fiche-perso-24.gif", true, '', _T('info_administrateurs')). $res . fin_cadre_relief(true);

	return $navigation;
}