Lecteur Markdown
REFERPAGE_DOCUMENTATION_FR
BeamReactor — Module `referpage` (Recommandation de page) #
Version : 1.15.0
Auteur : Treveur Bretaudière
Depuis : 2002
Dernière mise à jour : 2015-06-21
---
Présentation #
Le module `referpage` permet aux visiteurs d'envoyer par email un lien vers une page du site à un ou plusieurs destinataires. C'est un système de recommandation / parrainage de type « envoyer à un ami ».
Il repose sur trois fichiers :
| Fichier | Rôle |
|---|---|
| `referpage.php` | Logique principale : formulaire, validation, envoi d'email |
| `referpage_conf_inc.php` | Configuration du module (affichage, niveau d'accès) |
| `referpage_fr_inc.php` | Locale française (+ locales EN, DE disponibles) |
---
Prérequis #
- Accès utilisateur de niveau `BASE_LEVEL_USER` minimum.
- La fonction `mail()` PHP doit être opérationnelle sur le serveur.
- Le fichier de locale correspondant doit être chargé via `getlocale('referpage')`.
- Le système de templating BeamReactor (`frameheader` / `framefooter`) doit être actif.
- Les fonctions utilitaires `censor()`, `Parser::sanitize()` et `Parser::check()` doivent être disponibles.
---
Fonctionnement #
Flux principal #
1. Affichage du formulaire — L'utilisateur saisit son nom, son adresse email, et une ou plusieurs adresses destinataires séparées par des points-virgules.
2. Validation — Le module vérifie la présence du nom, la validité de l'email expéditeur, et la validité de chaque adresse destinataire.
3. Envoi — Un email est envoyé à chaque destinataire valide via `mail()`. Le message contient un lien vers la page recommandée et un texte explicatif.
4. Retour — Un récapitulatif indique les envois réussis et échoués.
URL de page référée #
Le module peut recevoir une page spécifique à recommander via les paramètres GET `query` (URL encodée en base64) et `id` (hash MD5 de vérification utilisant `$cfg[17]` comme sel). Sans ces paramètres, l'URL par défaut est `$cfg[0]` (URL racine du site).
---
Configuration (`referpage_conf_inc.php`) #
| Variable | Valeur | Rôle |
|---|---|---|
| `$basedatadisplay` | `'no'` | Pas d'affichage de données de base |
| `$basedisplevel` | `BASE_LEVEL_USER` | Niveau d'accès minimum |
---
Structure de l'email envoyé #
L'email est envoyé en texte brut (`text/plain`) avec encodage 8bit et comprend :
- Un message d'accueil personnalisé
- L'URL de la page recommandée
- Le nom et l'URL du site (depuis `$cfg[0]` et `$cfg[1]`)
- Le contenu de `$cfg[19]` (description additionnelle)
- Une note anti-spam indiquant l'origine du message
Sujet : `[label locale] {nom expéditeur} ({email expéditeur})`
Headers : From, Reply-To, X-Sender, X-Mailer, MIME, Content-Type, Content-Transfer-Encoding.
---
Validation des données #
| Champ | Contrôle |
|---|---|
| Nom de l'expéditeur | Obligatoire, nettoyé via `Parser::sanitize($str, 'string', maxLength: 150)`, filtré par `censor()` |
| Email de l'expéditeur | Obligatoire, validé via `Parser::check($email, 'email')` |
| Emails destinataires | Séparés par `;`, chacun validé individuellement, au moins un requis |
---