_CNIL_PERIODE
public
mixed
_CNIL_PERIODE
= 3600 * 24 * 31 * 4
public
mixed
_CNIL_PERIODE
= 3600 * 24 * 31 * 4
public
mixed
_TRACER_ERREUR_FORUM
= false
Inserer en base un message de forum
forum_inserer([int $id_parent = null ][, null $set = null ]) : bool|string
revision_forum(mixed $id_forum[, mixed $c = false ]) : mixed
action_instituer_forum_dist([mixed $arg = null ]) : mixed
instituer_un_forum(mixed $statut, mixed $row) : mixed
action_instituer_lot_forum_dist([mixed $arg = null ]) : mixed
Compile la balise `#FORMULAIRE_FORUM` qui affiche un formulaire d'ajout de commentaire
balise_FORMULAIRE_FORUM(Champ $p) : Champ
Signature : #FORMULAIRE_FORUM{[redirection[, objet, id_objet]]}
Particularité du contexte du formulaire pour permettre une saisie
de mots-clés dans les forums : si la variable de personnalisation
$afficher_groupe[]
est définie dans le fichier d'appel, et si la table
de référence est OK, la liste des mots-clés est alors proposée.
Pile au niveau de la balise
Pile complétée par le code à générer
Chercher l'objet/id_objet et la configuration du forum
balise_FORMULAIRE_FORUM_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|bool
Retrouve l'objet et id_objet d'un forum
balise_forum_retrouve_objet(int $ido, int $id_forum, array<string|int, mixed> $args, array<string|int, mixed> $context_compil[, bool $objet_obligatoire = true ]) : array<string|int, mixed>|bool
S'il n'est pas transmis, on le prend dans la boucle englobante, sinon dans l'environnement, sinon on tente de le retrouver depuis un autre message de forum
Compile la balise `#FORMULAIRE_FORUM_PRIVE` qui affiche un formulaire d'ajout de commentaire pour l'espace privé
balise_FORMULAIRE_FORUM_PRIVE(Champ $p) : Champ
Signature : #FORMULAIRE_FORUM_PRIVE{[redirection[, objet, id_objet]]}
Particularité du contexte du formulaire pour permettre une saisie
de mots-clés dans les forums : si la variable de personnalisation
$afficher_groupe[]
est définie dans le fichier d'appel, et si la table
de référence est OK, la liste des mots-clés est alors proposée.
Pile au niveau de la balise
Pile complétée par le code à générer
Chercher l'objet/id_objet et la configuration du forum
balise_FORMULAIRE_FORUM_PRIVE_stat(array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : array<string|int, mixed>|bool
Interfaces de la table forum pour le compilateur
forum_declarer_tables_interfaces(array<string|int, mixed> $interfaces) : array<string|int, mixed>
Déclaration de la table spip_forum et de l'objet forum
forum_declarer_tables_objets_sql(array<string|int, mixed> $tables) : array<string|int, mixed>
Tableau des objets déclarés
Tableau des objets complété
Récupérer le réglage des forums publics d'un objet
get_forums_publics([int $id_objet = 0 ][, string $objet = 'article' ]) : bool
true si les forums publics sont autorisés, false sinon
Charger
formulaires_activer_forums_objet_charger_dist(int $id_objet[, string $objet = 'article' ]) : array<string|int, mixed>
Contexte du squelette du formulaire
Traiter
formulaires_activer_forums_objet_traiter_dist(int $id_objet[, string $objet = 'article' ]) : array<string|int, mixed>
Retours des traitements
formulaires_configurer_forums_contenu_charger_dist() : mixed
formulaires_configurer_forums_contenu_verifier_dist() : mixed
formulaires_configurer_forums_contenu_traiter_dist() : mixed
formulaires_configurer_forums_notifications_charger_dist() : mixed
formulaires_configurer_forums_notifications_traiter_dist() : mixed
formulaires_configurer_forums_participants_charger_dist() : mixed
formulaires_configurer_forums_participants_traiter_dist() : mixed
formulaires_configurer_forums_prives_charger_dist() : mixed
formulaires_configurer_forums_prives_traiter_dist() : mixed
Identification du formulaire poste : ne pas tenir compte de la previsu et du retour
formulaires_forum_identifier_dist(mixed $objet, mixed $id_objet, mixed $id_forum, mixed $ajouter_mot, mixed $ajouter_groupe, mixed $afficher_previsu, mixed $retour) : array<string|int, mixed>
Charger l'env du squelette de #FORMULAIRE_FORUM
formulaires_forum_charger_dist(string $objet, int $id_objet, int $id_forum, int|array<string|int, mixed> $ajouter_mot, mixed $ajouter_groupe, mixed $forcer_previsu, mixed $retour) : array<string|int, mixed>|bool
mots ajoutés cochés par defaut
groupes ajoutables
forcer la previsualisation du message oui ou non
url de retour
Une securite qui nous protege contre : - les doubles validations de forums (derapages humains ou des brouteurs) - les abus visant a mettre des forums malgre nous sur un article (??) On installe un fichier temporaire dans _DIR_TMP (et pas _DIR_CACHE afin de ne pas bugguer quand on vide le cache) Le lock est leve au moment de l'insertion en base (inc-messforum) Ce systeme n'est pas fonctionnel pour les forums sans previsu (notamment si $forcer_previsu = 'non')
forum_fichier_tmp(mixed $arg) : int
Verifier la saisie de #FORMULAIRE_FORUM
formulaires_forum_verifier_dist(string $objet, int $id_objet, int $id_forum, int|array<string|int, mixed> $ajouter_mot, mixed $ajouter_groupe, mixed $forcer_previsu, mixed $retour) : array<string|int, mixed>|bool
mots ajoutés cochés par defaut
groupes ajoutables
forcer la previsualisation du message oui ou non
url de retour
Lister les formats de documents joints acceptes dans les forum
forum_documents_acceptes() : array<string|int, mixed>
Preparer la previsu d'un message de forum
inclure_previsu(string $texte, string $titre, string $url_site, string $nom_site, array<string|int, mixed> $ajouter_mot, array<string|int, mixed> $doc, string $objet, int $id_objet, int $id_forum) : string
Traiter la saisie de #FORMULAIRE_FORUM tout est delegue a inc_forum_insert()
formulaires_forum_traiter_dist(string $objet, int $id_objet, int $id_forum, int|array<string|int, mixed> $ajouter_mot, mixed $ajouter_groupe, mixed $forcer_previsu, mixed $retour) : array<string|int, mixed>|bool
mots ajoutes coches par defaut
groupes ajoutables
forcer la previsualisation du message oui ou non
url de retour
Identification du formulaire poste : ne pas tenir compte du retour
formulaires_forum_prive_identifier_dist(mixed $objet, mixed $id_objet, mixed $id_forum, mixed $forcer_previsu, mixed $statut) : array<string|int, mixed>
formulaires_forum_prive_charger_dist(mixed $objet, mixed $id_objet, mixed $id_forum, mixed $forcer_previsu, mixed $statut[, mixed $retour = '' ]) : mixed
formulaires_forum_prive_verifier_dist(mixed $objet, mixed $id_objet, mixed $id_forum, mixed $forcer_previsu, mixed $statut[, mixed $retour = '' ]) : mixed
inclure_forum_prive_previsu(mixed $texte, mixed $titre, mixed $url_site, mixed $nom_site, mixed $ajouter_mot[, mixed $doc = '' ]) : mixed
formulaires_forum_prive_traiter_dist(mixed $objet, mixed $id_objet, mixed $id_forum, mixed $forcer_previsu, mixed $statut[, mixed $retour = '' ]) : mixed
Installation/maj des tables forum
forum_upgrade(string $nom_meta_base_version, string $version_cible) : mixed
Désinstallation/suppression des tables forum
forum_vider_tables(string $nom_meta_base_version) : mixed
Fonction d'appel pour le pipeline
forum_autoriser() : mixed
Autorisation de voir l'élément «forums internes» dans le menu
autoriser_foruminternesuivi_menu_dist(string $faire[, string $type = '' ][, int $id = 0 ][, array<string|int, mixed> $qui = null ][, array<string|int, mixed> $opt = null ]) : bool
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de voir l'élément «suivi des forums» dans le menu
autoriser_forumreactions_menu_dist(string $faire[, string $type = '' ][, int $id = 0 ][, array<string|int, mixed> $qui = null ][, array<string|int, mixed> $opt = null ]) : bool
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de modérer un message de forum
autoriser_modererforum_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Il faut l'autorisation de modifier l'objet correspondant (si le forum est attaché à un objet), sinon avoir droits par défaut (être administrateur).
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de changer le statut d'un message de forum
autoriser_forum_instituer_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Seulement sur les objets qu'on a le droit de modérer.
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation par défaut de modérer un message de forum
autoriser_forum_moderer_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Si l'on connait l'objet, on délègue à modererforum, sinon il faut être administrateur
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de modifier un message de forum
autoriser_forum_modifier_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Jamais
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de consulter le forum des administrateurs
autoriser_forum_admin_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Il faut être administrateur (y compris restreint)
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation d'auto-association de documents sur des forum
autoriser_forum_autoassocierdocument_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Jamais
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation d'association de documents sur des forum
autoriser_forum_associerdocuments_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Toujours
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de dissociation de documents sur des forum
autoriser_forum_dissocierdocuments_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Toujours
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de participer au forum des admins
autoriser_forumadmin_participer_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Il faut être administrateur (y compris restreint)
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de participer au forum privé d'un objet quelconque
autoriser_participerforumprive_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Afin de rester compatible avec l'existant cette autorisation est toujours vraie.
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autorisation de voir le menu configurer_forum
autoriser_configurerforum_menu_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Il faut avoir accès à la page configurer_forum
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Un filtre appliqué à `#PARAMETRES_FORUM`, qui donne l'adresse de la page de réponse
filtre_url_reponse_forum(string $parametres) : string
URL de la page de réponse
Un filtre qui, étant donné un `#PARAMETRES_FORUM`, retourne une URL de suivi rss dudit forum
filtre_url_rss_forum(string $param) : string
Attention : appliqué à un #PARAMETRES_FORUM
complexe (id_article=x&id_forum=y
)
ça retourne une URL de suivi du thread y
(que le thread existe ou non)
URL pour le suivi RSS
Empêche l'exécution de code HTML
interdit_html(string $texte) : string
Permet si la constante _INTERDIRE_TEXTE_HTML
est définie
(ce n'est pas le cas par défaut) d'échapper les balises HTML
d'un texte (de sorte qu'elles seront affichées et non traitées par
le navigateur).
Génère l'URL du parent du forum indiqué
generer_url_forum_parent(int $id_forum) : string
Ajoute les metas sauvegardables de Forum pour le plugin IEConfig
forum_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Déclaration des sauvegardes
Déclaration des sauvegardes complétées
Bloc sur les encours editoriaux en page d'accueil
forum_accueil_encours(string $texte) : string
Bloc sur les informations generales concernant chaque type d'objet
forum_accueil_informations(string $texte) : string
Affichage de la fiche complete des articles et rubriques
forum_afficher_fiche_objet(array<string|int, mixed> $flux) : array<string|int, mixed>
Boite de configuration des objets articles
forum_afficher_config_objet(array<string|int, mixed> $flux) : array<string|int, mixed>
Message d'information relatif au statut d'un objet
forum_afficher_message_statut_objet(array<string|int, mixed> $flux) : array<string|int, mixed>
Nombre de forums d'un secteur dans la boite d'info
forum_boite_infos(array<string|int, mixed> $flux) : array<string|int, mixed>
Compter et afficher les contributions d'un visiteur pour affichage dans la page auteurs
forum_compter_contributions_auteur(array<string|int, mixed> $flux) : array<string|int, mixed>
Definir les meta de configuration liee aux forums
forum_configurer_liste_metas(array<string|int, mixed> $metas) : array<string|int, mixed>
Optimiser la base de donnée en supprimant les forums orphelins
forum_optimiser_base_disparus(array<string|int, mixed> $flux) : array<string|int, mixed>
Remplissage des champs a la creation d'objet
forum_pre_insertion(array<string|int, mixed> $flux) : array<string|int, mixed>
Regrouper les resultats de recherche par threads sauf si {plat} est present
forum_prepare_recherche(array<string|int, mixed> $flux) : array<string|int, mixed>
Bloc en sur les encours d'une rubrique (page naviguer)
forum_rubrique_encours(array<string|int, mixed> $flux) : array<string|int, mixed>
Supprimer les forums lies aux objets du core lors de leur suppression
forum_trig_supprimer_objets_lies(array<string|int, mixed> $objets) : array<string|int, mixed>
Moderation des forums specifique a un article
inc_article_accepter_forums_publics_dist(int $id_objet) : string
identifiant de l'article
: "non", "pos"(teriori), "pri"(ori), "abo"(nnement)
Construitre l'email personalise de notification d'un forum
inc_email_notification_forum_dist(array<string|int, mixed> $t, string $email[, array<string|int, mixed> $contexte = [] ]) : string
recuperer le critere SQL qui selectionne nos forums
critere_statut_controle_forum(string $type[, int|array<string|int, mixed> $id_secteur = 0 ][, string $recherche = '' ]) : array<string|int, mixed>
calcul_index_forum(mixed $objet, mixed $id_objet) : mixed
calculer_threads() : mixed
racine_forum(mixed $id_forum) : mixed
parent_forum(mixed $id_forum) : mixed
Pour compatibilite : remplacer les appels par son contenu
generer_url_forum_dist(unknown_type $id_forum[, unknown_type $args = '' ][, unknown_type $ancre = '' ]) : unknown
conserver_original(mixed $id_forum) : mixed
enregistre_et_modifie_forum(mixed $id_forum[, mixed $c = false ]) : mixed
Trouver le titre d'un objet publie
forum_recuperer_titre_dist(string $objet, int $id_objet[, int $id_forum = 0 ][, bool $publie = true ]) : bool|string
Retourne pour un couple objet/id_objet donne de quelle maniere les forums sont acceptes dessus non: pas de forum pos: a posteriori, acceptes et eventuellements moderes ensuite pri: a priori, doivent etre valides par un admin abo: les personnes doivent au prealable etre identifiees
controler_forum(string $objet, int $id_objet) : string
objet a tester
identifiant de l'objet
chaine de 3 caractere parmi 'non','pos','pri','abo'
Verifier la presence du jeton de secu post previsu
forum_insert_noprevisu() : bool
recuperer tous les objets dont on veut pouvoir obtenir l'identifiant directement dans l'environnement
forum_get_objets_depuis_env() : array<string|int, mixed>
reduce_strlen(mixed $n, mixed $c) : mixed
mots_du_forum(mixed $ajouter_mot, mixed $id_message) : mixed
tracer_erreur_forum([mixed $type = '' ]) : mixed
Un parametre permet de forcer le statut (exemple: plugin antispam)
inc_forum_insert_dist(mixed $objet, mixed $id_objet, mixed $id_forum[, null $force_statut = null ]) : bool
en reponse a
forum_insert_base(mixed $c, mixed $id_forum, mixed $objet, mixed $id_objet, mixed $statut[, mixed $ajouter_mot = false ]) : mixed
forum_insert_statut(mixed $champs[, mixed $forcer_statut = null ]) : mixed
Cette notification s'exécute quand un message est posté
notifications_forumposte_dist(string $quoi, int $id_forum, array<string|int, mixed> $options) : mixed
Cette notification s'exécute quand on valide un message 'prop'osé.
notifications_forumvalide_dist(string $quoi, int $id_forum, array<string|int, mixed> $options) : mixed
On va notifier ceux qui ne l'ont pas été à la notification forumposte (sachant que les deux peuvent se suivre si le forum est validé directement ('pos' ou 'abo')
forum_compte_messages_from(mixed $email, mixed $id_forum) : mixed
Titre du lien "Répondre à ce ..."
forum_titre_lien_repondre_a(mixed $objet) : string
boucle_FORUMS_dist(mixed $id_boucle, mixed &$boucles) : mixed
critere_FORUMS_meme_parent_dist(mixed $idb, mixed &$boucles, mixed $crit) : mixed
Compile le critère `{compter_reponses}`
critere_FORUMS_compter_reponses(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed
Ce critère compte le nombre de messages en réponse à un message donné.
Il stocke l’information dans le champ nombre_reponses
.
On peut le récupérer en squelette avec #FORUM_NOMBRE_REPONSES
Le calcul se fait par une jointure LEFT : les éléments avec aucune réponse sont retournés.
On peut passer un opérateur optionnel tel que :
{compter_reponses nombre_reponses = 0}
Ce qui fera un test sur le résultat du calcul (HAVING).
Identifiant de la boucle
AST du squelette
Paramètres du critère dans cette boucle
Retourne le nombre de vote sur un objet de SPIP.
balise_FORUM_NOMBRE_REPONSES_dist(Champ $p) : Champ
Nécessite le critere {compter_reponses}
sur la boucle FORUMS
<BOUCLE_(FORUMS){compter_reponses}>#FORUM_NOMBRE_REPONSES ...
Faute de copie du champ id_secteur dans la table des forums, faut le retrouver par jointure Pour chaque Row il faudrait tester si le forum est d'article, de breve, de rubrique, ou de syndication.
public_critere_secteur_forums_dist(string $idb, object &$boucles, mixed $val, mixed $crit) : mixed|string
Pour le moment on ne traite que les articles, les 3 autres cas ne marcheront donc pas: ca ferait 4 jointures qu'il faut traiter optimalement ou alors pas du tout.
balise_PARAMETRES_FORUM_dist(mixed $p) : mixed
calcul_parametres_forum(mixed &$env, mixed $reponse, mixed $type, mixed $primary) : mixed
quete_accepter_forum(mixed $id_article) : mixed
lang_parametres_forum(mixed $qs, mixed $lang) : mixed
code_invalideur_forums_dist(mixed $p, mixed $code) : mixed
urls_generer_url_ecrire_forum_dist(mixed $id[, mixed $args = '' ][, mixed $ancre = '' ][, mixed $public = null ][, mixed $connect = '' ]) : mixed
urls_generer_url_forum_dist(mixed $id_forum[, mixed $args = '' ][, mixed $ancre = '' ]) : mixed