En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

notepad Documentation › NOTEPAD_DOCUMENTATION

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 : `user` VARCHAR, `note` TEXT)
  • 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::` et `Parser::sanitize`, compteur de caractères
  • 0.x (2002–2026) : Bloc-notes original
de en fr