svn/root/tags/v0.16.6
kent1@arscenic.info 7 years ago
parent ed0c3591c4
commit 22a11120f2

@ -1,13 +1,21 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
function action_effacer_configuration_dist(){
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function action_effacer_configuration_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (!autoriser('configurer'))
if (!autoriser('configurer')) {
return false;
}
if ($arg == 'contact') {
effacer_meta($arg);
} else {
return false;
if($arg == 'contact'){effacer_meta($arg);}else{return false;}
}
}
?>

@ -1,11 +1,13 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/meta');
// Installation et mise à jour
function contact_upgrade($nom_meta_version_base, $version_cible){
function contact_upgrade($nom_meta_version_base, $version_cible) {
$maj = array();
$maj['create'] = array(
@ -23,10 +25,10 @@ function contact_upgrade($nom_meta_version_base, $version_cible){
}
// Désinstallation
function contact_vider_tables($nom_meta_version_base){
function contact_vider_tables($nom_meta_version_base) {
include_spip('base/abstract_sql');
// On recupere tous les messages de contact
$messages = sql_allfetsel(
'id_message',
@ -38,32 +40,33 @@ function contact_vider_tables($nom_meta_version_base){
'id_messages',
$messages
);
// Pour les liens, id_message est id_objet/objet
$in_messages = sql_in(
'id_objet',
$messages
);
// On supprime les documents qui ne sont rattaches qu'aux messages ainsi que leur liens en passant par supprimer_lien_document
// On supprime les documents qui ne sont rattaches qu'aux messages
// ainsi que leur liens en passant par supprimer_lien_document
include_spip('action/dissocier_document');
$s = sql_select(array('id_document','id_objet'),
"spip_documents_liens",
$in_messages." AND objet='message'");
$s = sql_select(
array('id_document','id_objet'),
'spip_documents_liens',
$in_messages." AND objet='message'"
);
while ($t = sql_fetch($s)) {
supprimer_lien_document($t['id_document'], 'message', $t['id_objet'], true);
}
// On supprimer les liens avec les auteurs
sql_delete('spip_auteurs_liens', $in_messages." AND objet='message'");
// On supprime les messages, mais pas la table qui peut etre utilise par organiseur
sql_delete(
'spip_messages',
'type = '.sql_quote('contac')
);
);
// On efface la version entregistrée
effacer_meta($nom_meta_version_base);
}
?>

@ -1,8 +1,10 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function contact_infos_supplementaires(){
function contact_infos_supplementaires() {
$champs = array(
'civilite' => _T('contact:champ_civilite'),
'prenom' => _T('contact:champ_prenom'),
@ -24,5 +26,3 @@ function contact_infos_supplementaires(){
$champs = pipeline('contact_infos_supplementaires', $champs);
return $champs;
}
?>

@ -1,12 +1,12 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
function contact_ieconfig_metas($table){
$table['contact']['titre'] = _T('contact:titre');
$table['contact']['icone'] = 'contact-16.png';
$table['contact']['metas_serialize'] = 'contact';
return $table;
}
?>
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function contact_ieconfig_metas($table) {
$table['contact']['titre'] = _T('contact:titre');
$table['contact']['icone'] = 'contact-16.png';
$table['contact']['metas_serialize'] = 'contact';
return $table;
}

@ -1,6 +1,8 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Pipeline jqueryui_plugins (jQuery UI) pour demander au plugin l'insertion des scripts pour .sortable()
@ -8,44 +10,44 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* @param array $plugins
* @return array
*/
function contact_jqueryui_plugins($plugins){
if(test_espace_prive()){
$plugins[] = "jquery.ui.sortable";
function contact_jqueryui_plugins($plugins) {
if (test_espace_prive()) {
$plugins[] = 'jquery.ui.sortable';
}
return $plugins;
}
/**
* Insertion dans le pipeline formulaire_verifier (SPIP)
*
*
* Dans le formulaire d'inscription, si on a un message d'erreur,
* on vérifie que ce n'est pas dû au fait que l'auteur a le statut "contact" à cause d'un message
* de contact envoyé.
*
* Si c'est le cas :
* on vérifie que ce n'est pas dû au fait que l'auteur a le statut "contact" à cause d'un message
* de contact envoyé.
*
* Si c'est le cas :
* - on change son statut de contact à nouveau
* - on met le statut d'inscription dans prefs
* - on met comme login son adresse email
* - on lui crée un pass aléatoirement
* - on lui indique en erreur qu'il était déjà inscrit et qu'il doit renouveler son pass
*
*
* @param array $flux
* Le contexte du pipeline
* @return array $flux
* Le contexte du pipeline modifié s'il y a lieu
*/
function contact_formulaire_verifier($flux){
if ($flux['args']['form'] == 'inscription' && isset($flux['data']['message_erreur'])){
if($email = _request('mail_inscription')){
$auteur = sql_fetsel('*','spip_auteurs','email='.sql_quote($email));
if($auteur['statut'] == 'contact'){
function contact_formulaire_verifier($flux) {
if ($flux['args']['form'] == 'inscription' && isset($flux['data']['message_erreur'])) {
if ($email = _request('mail_inscription')) {
$auteur = sql_fetsel('*', 'spip_auteurs', 'email='.sql_quote($email));
if ($auteur['statut'] == 'contact') {
$statut_inscription = $flux['args']['args'][0];
include_spip('action/inscrire_auteur');
creer_pass_pour_auteur($auteur['id_auteur']);
sql_updateq('spip_auteurs',array('prefs' => $statut_inscription,'statut' => 'nouveau','login'=> $email),'id_auteur = '.intval($auteur['id_auteur']));
sql_updateq('spip_auteurs', array('prefs' => $statut_inscription, 'statut' => 'nouveau', 'login'=> $email), 'id_auteur = '.intval($auteur['id_auteur']));
$flux['data'] = array(
'message_erreur' => _T('contact:message_redemander_pass',array('email'=>$email,'url_pass'=>generer_url_public('spip_pass')))
);
'message_erreur' => _T('contact:message_redemander_pass', array('email' => $email, 'url_pass' => generer_url_public('spip_pass')))
);
}
}
}
@ -54,14 +56,13 @@ function contact_formulaire_verifier($flux){
/**
* Insertion dans le pipeline nospam_lister_formulaires (Plugin nospam)
*
*
* Déclare le formulaire de contact comme utilisant le plugin nospam
*
*
* @param array $flux
* @return array
*/
function contact_nospam_lister_formulaires($flux){
function contact_nospam_lister_formulaires($flux) {
$flux[] = 'contact';
return $flux;
}
?>

@ -1,5 +1,8 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/config');
include_spip('configurer/pipelines');
@ -7,7 +10,7 @@ include_spip('contact_fonctions');
/**
* Chargement du formulaire de contact
*
*
* @param $id_auteur string|array
* Le ou les id_auteur transmis au formulaire (Voir la configuration du plugin)
* @param $tracer string
@ -25,7 +28,7 @@ include_spip('contact_fonctions');
* - plusieurs_et
* - plusieurs_ou
*/
function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=array()){
function formulaires_contact_charger_dist($id_auteur = '', $tracer = '', $options = array()) {
$valeurs = array();
$valeurs['destinataire'] = array();
@ -33,45 +36,47 @@ function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=arra
// La liste dans laquelle on pourra éventuellement choisir
$choix_destinataires = ($tmp = lire_config('contact/choix_destinataires')) ? $tmp : array();
$choix_destinataires = array_map('intval',$choix_destinataires);
$choix_destinataires = array_map('intval', $choix_destinataires);
// tableau des type_choix necessitant la prise en compte de $id_auteur
$t_c = array('tous_et', 'tous_ou', 'un_et', 'un_ou', 'plusieurs_et', 'plusieurs_ou');
$valeurs['type_choix'] = $type_choix = (isset($options['type_choix'])) ? $options['type_choix'] : lire_config('contact/type_choix');
if( in_array($type_choix,$t_c) ){
if(!is_array($id_auteur)){
$id_auteur = explode(',',$id_auteur);
if(!is_numeric($id_auteur[0]))$id_auteur=array();
if (in_array($type_choix, $t_c)) {
if (!is_array($id_auteur)) {
$id_auteur = explode(',', $id_auteur);
if (!is_numeric($id_auteur[0])) {
$id_auteur=array();
}
}
}
$nb_d = count($choix_destinataires);
// Rien n'a été défini, on utilise l'auteur 1
if ($nb_d == 0){
if ($nb_d == 0) {
$valeurs['destinataire'][] = 1;
}else{
} else {
$valeurs['destinataire'] = $choix_destinataires;
}
if ($type_choix == 'tous_ou' and $id_auteur){
if ($type_choix == 'tous_ou' and $id_auteur) {
$valeurs['destinataire'] = $id_auteur;
}else if ($type_choix == 'tous_et' and $id_auteur){
$valeurs['destinataire'] = array_unique(array_merge($valeurs['destinataire'],$id_auteur));
}else if (($type_choix == 'un' or $type_choix == 'plusieurs') and $nb_d>1){
$valeurs['choix_destinataires'] = $valeurs['destinataire'];
}else if ($type_choix == 'un_et' or $type_choix == 'plusieurs_et'){
$c_d = array_unique(array_merge($valeurs['destinataire'],$id_auteur));
if(count($c_d)>1){
} elseif ($type_choix == 'tous_et' and $id_auteur) {
$valeurs['destinataire'] = array_unique(array_merge($valeurs['destinataire'], $id_auteur));
} elseif (($type_choix == 'un' or $type_choix == 'plusieurs') and $nb_d>1) {
$valeurs['choix_destinataires'] = $valeurs['destinataire'];
} elseif ($type_choix == 'un_et' or $type_choix == 'plusieurs_et') {
$c_d = array_unique(array_merge($valeurs['destinataire'], $id_auteur));
if (count($c_d)>1) {
$valeurs['choix_destinataires'] = $c_d;
}else{
} else {
$valeurs['destinataire'] = $c_d;
}
}else if ($type_choix == 'un_ou' or $type_choix == 'plusieurs_ou'){
if(count($id_auteur)>1){
} elseif ($type_choix == 'un_ou' or $type_choix == 'plusieurs_ou') {
if (count($id_auteur) > 1) {
$valeurs['choix_destinataires'] = $id_auteur;
}elseif(count($id_auteur)==1){
} elseif (count($id_auteur) == 1) {
$valeurs['destinataire'] = $id_auteur;
}elseif(count($valeurs['destinataire'])>1){
} elseif (count($valeurs['destinataire']) > 1) {
$valeurs['choix_destinataires'] = $valeurs['destinataire'];
}
}
@ -81,12 +86,12 @@ function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=arra
$champs_possibles = contact_infos_supplementaires();
$champs_mini_config = array('mail', 'sujet', 'texte');
$champs_choisis = lire_config('contact/champs',$champs_mini_config);
$champs_choisis = lire_config('contact/champs', $champs_mini_config);
// On envoie un tableau contenant tous les champs choisis et leur titre
// DANS L'ORDRE de ce qu'on a récupéré de CFG
$champs_choisis = array_flip($champs_choisis);
foreach ($champs_choisis as $cle => $valeur){
foreach ($champs_choisis as $cle => $valeur) {
$champs_choisis[$cle] = $champs_possibles[$cle];
}
$valeurs['_champs'] = $champs_choisis;
@ -99,7 +104,7 @@ function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=arra
)
);
$valeurs['_obligatoires'] = $champs_obligatoires = lire_config('contact/obligatoires',$champs_mini_config);
$valeurs['_obligatoires'] = $champs_obligatoires = lire_config('contact/obligatoires', $champs_mini_config);
// Infos sur l'ajout de pièces jointes ou non
$autoriser_pj = (lire_config('contact/autoriser_pj') == 'true');
@ -118,14 +123,15 @@ function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=arra
$valeurs['pj_cle_enregistrees'] = array();
$valeurs['pj_mime_enregistrees'] = array();
if((!$valeurs['mail'] || $valeurs['mail'] == '') && isset($GLOBALS['visiteur_session']['email']))
if ((!$valeurs['mail'] || $valeurs['mail'] == '') && isset($GLOBALS['visiteur_session']['email'])) {
$valeurs['mail'] = $GLOBALS['visiteur_session']['email'];
}
return $valeurs;
}
/**
* Vérification du formulaire de contact
*
*
* @param $id_auteur string|array
* Le ou les id_auteur transmis au formulaire (Voir la configuration du plugin)
* @param $tracer string
@ -143,43 +149,49 @@ function formulaires_contact_charger_dist($id_auteur='',$tracer='',$options=arra
* - plusieurs_et
* - plusieurs_ou
*/
function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=array()){
function formulaires_contact_verifier_dist($id_auteur = '', $tracer = '', $options = array()) {
$erreurs = array();
include_spip('inc/filtres');
include_spip('inc/documents');
include_spip('inc/charsets');
if($tracer){
$trace=explode('-',$tracer);
if( !(count($trace)==2) or !(intval($trace[1])>0) ){
if ($tracer) {
$trace = explode('-', $tracer);
if (!(count($trace) == 2) or !(intval($trace[1]) > 0)) {
$erreurs['message_erreur'] = _T('contact:message_erreur_transmission');
}
}
if (!_request('destinataire'))
$erreurs['destinataire'] = _T("info_obligatoire");
if (!$adres = _request('mail'))
$erreurs['mail'] = _T("info_obligatoire");
elseif(!email_valide($adres))
if (!_request('destinataire')) {
$erreurs['destinataire'] = _T('info_obligatoire');
}
if (!$adres = _request('mail')) {
$erreurs['mail'] = _T('info_obligatoire');
} elseif (!email_valide($adres)) {
$erreurs['mail'] = _T('form_prop_indiquer_email');
}
$champs_mini_config = array('mail', 'sujet', 'texte');
$champs_choisis = lire_config('contact/champs',$champs_mini_config );
$champs_obligatoires = lire_config('contact/obligatoires',$champs_mini_config);
if (is_array($champs_choisis) and is_array($champs_obligatoires)){
foreach($champs_choisis as $champ){
if (!_request($champ) and in_array($champ, $champs_obligatoires))
$erreurs[$champ] = _T("info_obligatoire");
$champs_choisis = lire_config('contact/champs', $champs_mini_config);
$champs_obligatoires = lire_config('contact/obligatoires', $champs_mini_config);
if (is_array($champs_choisis) and is_array($champs_obligatoires)) {
foreach ($champs_choisis as $champ) {
if (!_request($champ) and in_array($champ, $champs_obligatoires)) {
$erreurs[$champ] = _T('info_obligatoire');
}
}
}
if(!(strlen(_request('sujet'))>2))
if (!(strlen(_request('sujet')) > 2)) {
$erreurs['sujet'] = _T('forum:forum_attention_trois_caracteres');
}
$texte_min = !defined('_TEXTE_MIN')?10:_TEXTE_MIN;
if(!(strlen(_request('texte'))>=$texte_min) && !$erreurs['texte'])
$erreurs['texte'] = _T('contact:forum_attention_nbre_caracteres',array('nbre_caract'=>$texte_min));
if (!(strlen(_request('texte'))>=$texte_min) && !$erreurs['texte']) {
$erreurs['texte'] = _T('contact:forum_attention_nbre_caracteres', array('nbre_caract' => $texte_min));
}
if ($nobot=_request('nobot'))
if ($nobot = _request('nobot')) {
$erreurs['nobot'] = _T('contact:message_erreur_robot');
}
// On s'occupe des pièces jointes.
$pj_fichiers = $_FILES['pj_fichiers'];
@ -187,7 +199,9 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
//Si le répertoire temporaire n'existe pas encore, il faut le créer.
$repertoire_temp_pj = _DIR_TMP.'/contact_pj/';
if (!is_dir($repertoire_temp_pj)) mkdir($repertoire_temp_pj);
if (!is_dir($repertoire_temp_pj)) {
mkdir($repertoire_temp_pj);
}
//Pour les nouvelles pj uploadées
if ($pj_fichiers != null) {
@ -196,19 +210,22 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
$nom_pj = trim(preg_replace('/[\s]+/', '_', strtolower(translitteration($nom_pj))));
// Si le fichier a bien un nom et qu'il n'y a pas d'erreur associé à ce fichier
if (($nom_pj != null) && ($pj_fichiers['error'][$cle] == 0)) {
//On vérifie qu'un fichier ne porte pas déjà le même nom, sinon on lui donne un nom aléatoire + nom original
if (file_exists($repertoire_temp_pj.$nom_pj))
// On vérifie qu'un fichier ne porte pas déjà le même nom,
// sinon on lui donne un nom aléatoire + nom original
if (file_exists($repertoire_temp_pj.$nom_pj)) {
$nom_pj = rand().'_'.$nom_pj;
}
//déplacement du fichier vers le dossier de réception temporaire
if (move_uploaded_file($pj_fichiers['tmp_name'][$cle], $repertoire_temp_pj.$nom_pj)) {
$infos_pj[$cle]['message'] = 'ajout fichier';
$infos_pj[$cle]['nom'] = $nom_pj;
// On en déduit l'extension et du coup la vignette
$infos_pj[$cle]['extension'] = strtolower(preg_replace('/^.*\.([\w]+)$/i', '$1', $nom_pj));
if (function_exists('vignette_par_defaut'))
if (function_exists('vignette_par_defaut')) {
$vignette = 'vignette_par_defaut';
else
} else {
$vignette = charger_fonction('vignette', 'inc');
}
$infos_pj[$cle]['vignette'] = $vignette($infos_pj[$cle]['extension'], false, true);
//On récupère le tye MIME du fichier aussi
$infos_pj[$cle]['mime'] = $pj_fichiers['type'][$cle];
@ -217,24 +234,25 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
}
}
//Pour les pj qui ont déjà été récupérées avec succes, on remet le tableau des informations sur les pj à jour
// Pour les pj qui ont déjà été récupérées avec succes,
// on remet le tableau des informations sur les pj à jour
$pj_enregistrees_nomfichier = _request('pj_enregistrees_nomfichier');
$pj_enregistrees_mime = _request('pj_enregistrees_mime');
$pj_enregistrees_extension = _request('pj_enregistrees_extension');
$pj_enregistrees_vignette = _request('pj_enregistrees_vignette');
if (is_array($pj_enregistrees_nomfichier))
foreach ($pj_enregistrees_nomfichier as $cle => $nom){
if (is_array($pj_enregistrees_nomfichier)) {
foreach ($pj_enregistrees_nomfichier as $cle => $nom) {
$infos_pj[$cle]['message'] = 'ajout fichier';
$infos_pj[$cle]['nom'] = $nom;
$infos_pj[$cle]['mime'] = $pj_enregistrees_mime[$cle];
$infos_pj[$cle]['extension'] = $pj_enregistrees_extension[$cle];
$infos_pj[$cle]['vignette'] = $pj_enregistrees_vignette[$cle];
}
}
//Maintenant on vérifie s'il n'y a pas eu une suppression de fichiers
$nb_max_pj = lire_config('contact/nb_max_pj');
for ($cle=0 ; $cle<$nb_max_pj ; $cle++) {
for ($cle = 0; $cle < $nb_max_pj; $cle++) {
if (_request('pj_supprimer_'.$cle)) {
//On récupère le nom de la pièce jointe à supprimer
$nom_pj_supprimer = $infos_pj[$cle]['nom'];
@ -245,7 +263,7 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
$repertoire_temp_pj_complet = realpath(getcwd() . DIRECTORY_SEPARATOR . $repertoire_temp_pj);
$nom_pj_complet = realpath($repertoire_temp_pj_complet . DIRECTORY_SEPARATOR . $nom_pj_supprimer);
if($nom_pj_complet !== false && strpos($nom_pj_complet, $repertoire_temp_pj_complet) === 0) {
if ($nom_pj_complet !== false && strpos($nom_pj_complet, $repertoire_temp_pj_complet) === 0) {
// On supprime le fichier portant ce nom
unlink($repertoire_temp_pj.$nom_pj_supprimer);
//On re-propose la possibilité de télécharger un fichier en supprimant les infos du fichier
@ -255,7 +273,7 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
}
// Si on est pas dans une confirmation et qu'il n'y pas de vraies erreurs on affiche la prévisu du message
if (!_request('confirmer') AND !count($erreurs)) {
if (!_request('confirmer') and !count($erreurs)) {
$erreurs['previsu']=' ';
$erreurs['message_erreur'] = ''; // pas de message d'erreur global si aucune erreur réelle
}
@ -272,7 +290,7 @@ function formulaires_contact_verifier_dist($id_auteur='',$tracer='',$options=arr
return $erreurs;
}
function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=array()){
function formulaires_contact_traiter_dist($id_auteur = '', $tracer = '', $options = array()) {
include_spip('base/abstract_sql');
include_spip('inc/texte');
@ -281,8 +299,9 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
// On récupère à qui ça va être envoyé
$destinataire = _request('destinataire');
if (!is_array($destinataire))
if (!is_array($destinataire)) {
$destinataire = array($destinataire);
}
$destinataire = array_map('intval', $destinataire);
$mail = sql_allfetsel(
'email',
@ -291,71 +310,71 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
);
$mail = array_map('reset', $mail);
// S'il n'y a pas le plugin facteur, on met l'(es) adresse(s) sous forme de chaine de caractères.
if (!defined("_DIR_PLUGIN_FACTEUR"))
if (!defined('_DIR_PLUGIN_FACTEUR')) {
$mail = join(', ', $mail);
}
// Les infos supplémentaires
$champs_possibles = contact_infos_supplementaires();
$champs_mini_config = array('mail', 'sujet', 'texte');
$champs_choisis = lire_config('contact/champs',$champs_mini_config);
if (is_array($champs_choisis)){
foreach($champs_choisis as $champ){
if ($reponse_champ = _request($champ)){
if( ($champ=='mail') OR ($champ=='sujet') OR ($champ=='texte') ){
$champs_choisis = lire_config('contact/champs', $champs_mini_config);
if (is_array($champs_choisis)) {
foreach ($champs_choisis as $champ) {
if ($reponse_champ = _request($champ)) {
if (($champ == 'mail') or ($champ == 'sujet') or ($champ == 'texte')) {
$posteur[$champ] = $reponse_champ;
}else{
$infos .= "\n\n".$champs_possibles[$champ]." : ".$reponse_champ;
} else {
$infos .= "\n\n" . $champs_possibles[$champ] . ' : ' . $reponse_champ;
}
}
}
}
if($tracer){
$trace=explode('-',$tracer);
if( (count($trace)==2) and (intval($trace[1])>0) ){
$url = generer_url_entite(intval($trace[1]),$trace[0]);
if($url){
$inforigine= $GLOBALS['meta']['adresse_site']."/".$url;
}else{
$inforigine= 'info trace non comprise';
if ($tracer) {
$trace = explode('-', $tracer);
if ((count($trace) == 2) and (intval($trace[1]) > 0)) {
$url = generer_url_entite(intval($trace[1]), $trace[0]);
if ($url) {
$inforigine = $GLOBALS['meta']['adresse_site'].'/'.$url;
} else {
$inforigine = 'info trace non comprise';
}
}else{
} else {
$inforigine= 'info trace non comprise';
}
$inforigine= _T('contact:inforigine')."\n".$inforigine."\n\n";
}
// horodatons
$horodatage = affdate_heure (date ("Y-m-d H:i:s"));
$horodatage = affdate_heure(date('Y-m-d H:i:s'));
$horodatage = "\n\n"._T('contact:horodatage', array('horodatage'=>$horodatage))."\n\n";
$par = _T('contact:par_qui').$posteur['mail']."\n\n";
$texte = $horodatage.$par.$inforigine.$infos."\n\n".$posteur['texte'];
$nom_site = supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']));
$texte .= "\n\n "._T('envoi_via_le_site')." ".$nom_site." (".$GLOBALS['meta']['adresse_site']."/) \n";
$texte .= "\n\n " . _T('envoi_via_le_site') . ' ' . $nom_site . ' (' . $GLOBALS['meta']['adresse_site'] . "/) \n";
// Si le plugin facteur est pas activé, on recupère seulement le
// texte brut, on laisse Facteur faire le traitement propre(),
// gérer les retours, etc. Autrement, on transforme le texte en
// HTML.
$texte_final = $texte;
if (!defined("_DIR_PLUGIN_FACTEUR")) {
if (!defined('_DIR_PLUGIN_FACTEUR')) {
// Texte a envoyer par mail, sans raccourcis SPIP
// On évite de couper les urls
define('_MAX_LONG_URL',100000);
define('_MAX_COUPE_URL',100000);
define('_MAX_LONG_URL', 100000);
define('_MAX_COUPE_URL', 100000);
$texte_final = propre($texte);
}
// Eviter que le facteur machouille les apostrophes
if ($GLOBALS['meta']['facteur_filtre_iso_8859']){
$texte_final = preg_replace(',&#8217;,',"'",$texte_final);
if ($GLOBALS['meta']['facteur_filtre_iso_8859']) {
$texte_final = preg_replace(',&#8217;,', "'", $texte_final);
}
if (!defined("_DIR_PLUGIN_FACTEUR")) {
if (!defined('_DIR_PLUGIN_FACTEUR')) {
// Sauvegarder un soupcon de liste dans le mail
$texte_final = preg_replace (array('/<li>/','/<\/li>/','/<\/ul>/'), array("- ","\n","\n"), $texte_final);
$texte_final = preg_replace(array('/<li>/', '/<\/li>/', '/<\/ul>/'), array('- ', "\n", "\n"), $texte_final);
$texte_final = supprimer_tags($texte_final);
}
@ -394,9 +413,11 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
'spip_auteurs',
'email = '.sql_quote($posteur['mail'])
);
if (!$id_aut){
if (!$id_aut) {
$nom_auteur = trim(_request('prenom').' '._request('nom'));
if (!$nom_auteur) $nom_auteur = $posteur['mail'];
if (!$nom_auteur) {
$nom_auteur = $posteur['mail'];
}
$id_aut = sql_insertq(
'spip_auteurs',
array(
@ -425,16 +446,16 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
// S'il y a des pièces jointes on les ajoute aux documents de SPIP.
if ($pj_enregistrees_nomfichier != null) {
include_spip('inc/autoriser');
//On charge la fonction pour ajouter le document là où il faut
$ajouter_documents = charger_fonction('ajouter_documents','action');
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
$files = array();
foreach ($pj_enregistrees_nomfichier as $nom_pj) {
$files[] = array('tmp_name'=>$repertoire_temp_pj.$nom_pj,'name'=>$nom_pj);
}
autoriser_exception('modifier', 'message', $id_message, true);
$ajouts = $ajouter_documents("new", $files, 'message', $id_message, 'document');
$ajouts = $ajouter_documents('new', $files, 'message', $id_message, 'document');
autoriser_exception('modifier', 'message', $id_message, false);
}
@ -453,8 +474,7 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
$memoire = generer_url_ecrire('message', 'id_message='.$id_message);
if ($pj_enregistrees_nomfichier != null) {
$texte_final['texte'] .= "\n\n"._T('contact:consulter_memoire')."\n".$memoire;
}
else{
} else {
$texte_final .= "\n\n"._T('contact:consulter_memoire')."\n".$memoire;
}
}
@ -465,16 +485,16 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
);
}
$texte_final['repondre_a'] = $posteur['mail'];
$posteur['texte_final'] = $texte_final;
$posteur = pipeline('contact_pre_envoi',$posteur);
$posteur = pipeline('contact_pre_envoi', $posteur);
$texte_final = $posteur['texte_final'];
unset($posteur['texte_final']);
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$envoyer_mail($mail, $posteur['sujet'], $texte_final , '', "X-Originating-IP: ".$GLOBALS['ip']);
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
$envoyer_mail($mail, $posteur['sujet'], $texte_final , '', 'X-Originating-IP: '.$GLOBALS['ip']);
// Maintenant que tout a été envoyé ou enregistré, s'il y avait des PJ il faut supprimer les fichiers
if ($pj_enregistrees_nomfichier != null) {
@ -484,14 +504,12 @@ function formulaires_contact_traiter_dist($id_auteur='',$tracer='',$options=arra
$repertoire_temp_pj_complet = realpath(getcwd() . DIRECTORY_SEPARATOR . $repertoire_temp_pj);
$nom_pj_complet = realpath($repertoire_temp_pj_complet . DIRECTORY_SEPARATOR . $nom_pj);
if($nom_pj_complet !== false && strpos($nom_pj_complet, $repertoire_temp_pj_complet) === 0) {
if ($nom_pj_complet !== false && strpos($nom_pj_complet, $repertoire_temp_pj_complet) === 0) {
unlink($repertoire_temp_pj.$nom_pj);
}
}
}
$message = _T('contact:succes', array("equipe_site" => $nom_site));
$message = _T('contact:succes', array('equipe_site' => $nom_site));
return array('message_ok'=>$message);
}
?>

@ -1,7 +1,10 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/contact/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
// Surcharge partielle du fichier ecrire/lang/public_fr.php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
@ -9,5 +12,3 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'form_pet_votre_email' => 'Votre email',
);
?>

Loading…
Cancel
Save