Lecteur Markdown
Blogs Documentation
Blogs #
Système de blogs multi-utilisateurs.
Namespace: Beamreactor\Plugins\Blogs
Version: 2.2.0
Niveau requis: BLOGS_LEVEL_USER (édition), public (lecture)
Vue d'ensemble #
Fonctionnalités #
- Blogs personnels par utilisateur
- Éditeur WYSIWYG intégré
- Génération automatique de tagcloud
- Pagination des articles
- Modération par les administrateurs
- Support multilingue
- Inclusion en widget (mode
$unfold)
Modes d'affichage #
| Mode | Description |
|------|-------------|
| Liste globale | Derniers articles de tous les blogs |
| Blog utilisateur | Articles d'un auteur spécifique |
| Article unique | Affichage complet d'un article |
| Widget | Inclusion directe via $blogger + $unfold=1 |
Actions (paramètre bedit) #
| Valeur | Action | Niveau requis |
|--------|--------|---------------|
| 1 | Créer un nouvel article | BLOGS_LEVEL_USER |
| 2 | Modifier un article | Auteur ou BLOGS_LEVEL_MODERATOR |
| 3 | Supprimer un article | Auteur ou BLOGS_LEVEL_MODERATOR |
| 4 | Suppression modérateur | BLOGS_LEVEL_MODERATOR |
Fonctions #
clear_tagcloud #
clear_tagcloud(int $id, string $blogger): void
Paramètres:
$id— ID de l'article$blogger— Identifiant de l'auteur
add_tagcloud #
Génère et insère les tags d'un article.
add_tagcloud(string $titre, string $texte, int $id, string $langage, string $blogger): void
Paramètres:
$titre— Titre de l'article (pondération x3)$texte— Contenu HTML de l'article$id— ID de l'article$langage— Code langue$blogger— Identifiant de l'auteur
Comportement:
- Extrait le texte brut du HTML
- Compte les occurrences de chaque mot
- Filtre : longueur 5-11 caractères, minimum 3 occurrences
- Stocke dans
blogs_scattags
Structure des tables #
blogs #
CREATE TABLE blogs (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(135) NOT NULL,
authorid VARCHAR(50) NOT NULL,
doc TEXT,
date DATETIME,
moddate DATETIME,
uniqueid VARCHAR(120),
INDEX (authorid),
INDEX (date)
);
blogs_scattags #
CREATE TABLE blogs_scattags (
id INT AUTO_INCREMENT PRIMARY KEY,
plugin VARCHAR(50),
document INT,
language VARCHAR(5),
date DATETIME,
wordsc VARCHAR(50),
occ INT,
author VARCHAR(50),
INDEX (author, document),
INDEX (wordsc)
);
Paramètres GET #
| Paramètre | Type | Description |
|-----------|------|-------------|
| blogger | string | Filtre par auteur |
| blogid | int | ID d'un article spécifique |
| blpage | int | Numéro de page |
| blimit | int | Nombre d'articles (défaut: 5) |
| bedit | int | Action d'édition |
Paramètres POST #
| Paramètre | Type | Description |
|-----------|------|-------------|
| bedit | int | Action (1=créer, 2=modifier) |
| titre | string | Titre de l'article (max 135 car.) |
| htmlfeed | html | Contenu de l'article |
| id | int | ID pour modification |
| uniqueid | string | Token anti-CSRF |
Inclusion en widget #
Pour afficher un blog directement dans une page :
$blogger = 'username';
$unfold = 1;
include($cfg[18] . '/blogs.php');
Locale #
Clés utilisées dans $dialbdt:
| Index | Description |
|-------|-------------|
| 0 | Lien tous les blogs |
| 2 | Message création OK |
| 3 | Lien nouvel article |
| 4 | Lien retour |
| 5 | Message modification OK |
| 7 | Bouton supprimer |
| 8 | Bouton modifier |
| 10 | Erreur champs requis |
| 11 | Erreur doublon titre |
| 13 | Séparateur "par" |
| 17 | Titre derniers articles |
| 18 | Titre blogs actifs |
| 19 | Séparateur dernier article |
Permissions #
| Action | Condition |
|--------|-----------|
| Lire | Public |
| Créer | BLOGS_LEVEL_USER |
| Modifier ses articles | Auteur + BLOGS_LEVEL_USER |
| Supprimer ses articles | Auteur + BLOGS_LEVEL_USER |
| Modérer tout article | user_level > 2 |
Exemples d'URL #
# Liste des derniers articles
?obj=blogs.php
# Blog d'un utilisateur
?obj=blogs.php&blogger=johndoe
# Article spécifique
?obj=blogs.php&blogger=johndoe&blogid=42
# Formulaire de création
?obj=blogs.php&bedit=1
# Modifier un article
?obj=blogs.php&bedit=2&id=42
Notes #
- Le titre est pondéré x3 dans le tagcloud pour améliorer la pertinence
- Les mots de moins de 5 caractères sont ignorés (stop words implicite)
- La date de modification (
moddate) prend le pas sur la date de création pour l'affichage - Le champ
uniqueidsert de token anti-CSRF pour les formulaires