Markdown-Reader
Notepad Documentation
Notepad — Bloc-notes personnel #
Description #
Bloc-notes texte simple, un par utilisateur. Permet de sauvegarder et retrouver des notes persistantes directement depuis l'interface BeamReactor. Pas de formatage riche, pas de catégories — juste du texte brut.
Fonctionnement #
Chaque utilisateur dispose d'une note unique identifiée par un hash MD5 de son nom d'utilisateur et de sa date d'inscription (md5(username + signup_date)). Ce hash sert de clé dans la table notepad.
À la première visite, une entrée vide est créée automatiquement. Les sauvegardes suivantes font un UPDATE si l'entrée existe, un INSERT sinon.
Prérequis #
- Table SQL
notepad(colonnes :userVARCHAR,noteTEXT) - Session active avec
email_address
Interface #
- Textarea pleine largeur (max 1000px), 20 lignes
- Boutons Sauvegarder (
$dial[8]) et Reset ($dial[9]) - Compteur de caractères affiché sous le formulaire
- Message de confirmation après sauvegarde
- Soumission par formulaire POST classique (pas d'AJAX)
Flux #
1. Chargement : récupération de l'email en session → lookup username et signup_date dans la table users → hash → SELECT dans notepad
2. Sauvegarde : sanitization du contenu via Parser::sanitize (type string, max 65535 caractères) → INSERT ou UPDATE selon existence
3. Affichage : le contenu est échappé via htmlspecialchars dans le textarea
Sécurité #
- Accès restreint à
NOTEPAD_LEVEL_USER - Contenu sanitizé via
Parser::sanitize($note, 'string', maxLength: 65535) - Requêtes SQL préparées
- Sortie HTML échappée
Note : Le plugin n'est pas encore durci pour un usage en production. L'identification par md5(username + signup_date) est fonctionnelle mais pourrait être remplacée par l'ID utilisateur direct. La protection CSRF n'est pas implémentée. Ces points sont identifiés et prévus.
Structure #
/plugins/notepad/
├── notepad.php
├── /conf/
│ └── notepad.conf.inc.php
├── /locale/
│ ├── notepad.en.inc.php
│ └── notepad.fr.inc.php
└── /sql/
└── notepad.sql
Traductions #
| Clé | Description |
|------------|------------------------------------|
| $dialplugindisplay | Titre du plugin |
| $dialplugincall | Nom dans le centre de contrôle |
| $dialnp[0] | Label du textarea |
| $dialnp[1] | Message de confirmation sauvegarde |
| $dialnp[2] | Label du compteur de caractères |
Changelog #
- 2.0.3 (2011-05-28) : Migration vers
SQL::etParser::sanitize, compteur de caractères - 0.x (2002–2026) : Bloc-notes original