Documentation du code de SPIP et de ses plugins

Révisions

Documentation

Table of Contents

Packages

Application
SPIP

Namespaces

Spip

Classes

Diff
Génération de diff a plusieurs étages
DiffTexte
Génération de diff sur un Texte
DiffPara
Génération de diff sur un paragraphe
DiffPhrase
Génération de diff sur une phrase

Constants

_INTERVALLE_REVISIONS  = 600

Functions

afficher_diff_champ_dist()  : string
Afficher le diff d'un champ texte generique
afficher_para_modifies()  : string
afficher_diff_id_rubrique_dist()  : string
Afficher le diff d'un id_rubrique on affiche en fait le deplacement si id_rubrique a change le nom de la rubrique sinon
afficher_diff_jointure_dist()  : string
Afficher le diff d'un champ texte generique
formulaires_configurer_revisions_objets_charger_dist()  : mixed
formulaires_configurer_revisions_objets_traiter_dist()  : mixed
test_objet_versionable()  : mixed
trouver_version_inf()  : mixed
check_version_diff()  : mixed
formulaires_reviser_charger_dist()  : mixed
formulaires_reviser_verifier_dist()  : mixed
formulaires_reviser_traiter_dist()  : mixed
lcs_opt()  : array<string|int, mixed>
Calcule un LCS (Longest Common Subsequence) simplifié
lcs()  : array<string|int, mixed>
Calcule un LCS (Longest Common Subsequence)
preparer_diff()  : mixed
afficher_diff()  : mixed
separer_paras()  : array<string|int, string>
Découper les paragraphes d'un texte en fragments
replace_fragment()  : mixed
envoi_replace_fragments()  : mixed
envoi_delete_fragments()  : mixed
ajouter_fragments()  : mixed
supprimer_fragments()  : mixed
recuperer_fragments()  : array<string|int, mixed>
Récupérer les fragments d'un objet pour une version demandée
apparier_paras()  : mixed
recuperer_version_complete()  : array<string|int, mixed>
Retrouve les champs d'un objet et leurs contenus à une version donnée
recuperer_version()  : array<string|int, mixed>
Récupérer les champs d'un objet, pour une version demandée
reconstuire_version()  : array<string|int, mixed>
Reconstruire une version donnée
supprimer_versions()  : mixed
ajouter_version()  : int
Ajouter une version à un objet éditorial
propre_diff()  : mixed
liste_champs_versionnes()  : array<string|int, mixed>
Liste les champs versionnés d'une table objet.
recuperer_valeur_champ_jointure()  : string
Lorsqu'un champ versionée est une jointure, récuperer tous les liens et les mettre sous forme de liste énumérée
verifier_premiere_revision()  : int
Créer la première révision d'un objet si nécessaire
revisions_diff()  : string
Afficher un diff correspondant à une révision d'un objet
retrouver_champ_version_objet()  : mixed
Retrouver le champ d'un objet, pour une version demandée
revision_comparee()  : array<string|int, mixed>
Liste les champs modifiés par une version de révision donnée
label_champ()  : string
Trouver le label d'un champ de révision
revisions_upgrade()  : mixed
Installation/maj des tables révisions
revisions_uncompress_fragments()  : mixed
revisions_repair_unserialized_fragments()  : mixed
revisions_repair_serialise()  : mixed
revisions_vider_tables()  : mixed
Desinstallation/suppression des tables revisions
revisions_update_meta()  : mixed
Mettre a jour la meta des versions
revisions_autoriser()  : mixed
Fonction du pipeline autoriser. N'a rien à faire
autoriser_voirrevisions_dist()  : bool
Autorisation de voir les revisions ?
autoriser_revisions_menu_dist()  : bool
Autorisation de voir le menu révisions
autoriser_configurerrevisions_menu_dist()  : bool
Autorisation de voir le menu configurer_revisions
revisions_ieconfig_metas()  : array<string|int, mixed>
Ajoute les éléments de config des révisions pour les sauvegardes de IEConfig

Constants

Functions

afficher_diff_champ_dist()

Afficher le diff d'un champ texte generique

afficher_diff_champ_dist(string $champ, string $old, string $new[, string $format = 'diff' ]) : string
Parameters
$champ : string
$old : string
$new : string
$format : string = 'diff'

apercu, diff ou complet

Return values
string

afficher_para_modifies()

afficher_para_modifies(string $texte[, bool $court = false ]) : string
Parameters
$texte : string
$court : bool = false
Return values
string

afficher_diff_id_rubrique_dist()

Afficher le diff d'un id_rubrique on affiche en fait le deplacement si id_rubrique a change le nom de la rubrique sinon

afficher_diff_id_rubrique_dist(string $champ, string $old, string $new[, string $format = 'diff' ]) : string
Parameters
$champ : string
$old : string
$new : string
$format : string = 'diff'
Return values
string

afficher_diff_jointure_dist()

Afficher le diff d'un champ texte generique

afficher_diff_jointure_dist(string $champ, string $old, string $new[, string $format = 'diff' ]) : string
Parameters
$champ : string
$old : string
$new : string
$format : string = 'diff'

apercu, diff ou complet

Return values
string

trouver_version_inf()

trouver_version_inf(mixed $objet, mixed $id_objet[, mixed $cond = '' ]) : mixed
Parameters
$objet : mixed
$id_objet : mixed
$cond : mixed = ''

check_version_diff()

check_version_diff(mixed $objet, mixed $id_objet, mixed $id_version, mixed $id_diff[, mixed $last_version = 0 ]) : mixed
Parameters
$objet : mixed
$id_objet : mixed
$id_version : mixed
$id_diff : mixed
$last_version : mixed = 0

formulaires_reviser_charger_dist()

formulaires_reviser_charger_dist(mixed $objet, mixed $id_objet, mixed $id_version, mixed $id_diff) : mixed
Parameters
$objet : mixed
$id_objet : mixed
$id_version : mixed
$id_diff : mixed

formulaires_reviser_verifier_dist()

formulaires_reviser_verifier_dist(mixed $objet, mixed $id_objet, mixed $id_version, mixed $id_diff) : mixed
Parameters
$objet : mixed
$id_objet : mixed
$id_version : mixed
$id_diff : mixed

formulaires_reviser_traiter_dist()

formulaires_reviser_traiter_dist(mixed $objet, mixed $id_objet, mixed $id_version, mixed $id_diff) : mixed
Parameters
$objet : mixed
$id_objet : mixed
$id_version : mixed
$id_diff : mixed

lcs_opt()

Calcule un LCS (Longest Common Subsequence) simplifié

lcs_opt(array<string|int, mixed> $s) : array<string|int, mixed>

Chaque chaîne est une permutation de l'autre et on passe en paramètre un des deux tableaux de correspondances

Parameters
$s : array<string|int, mixed>
Tags
see
lcs()
Return values
array<string|int, mixed>

lcs()

Calcule un LCS (Longest Common Subsequence)

lcs(array<string|int, mixed> $s, array<string|int, mixed> $t) : array<string|int, mixed>

Les deux chaînes n'ont pas été traitées au préalable par la fonction d'appariement

Parameters
$s : array<string|int, mixed>
$t : array<string|int, mixed>
Tags
see
lcs_opt()
Return values
array<string|int, mixed>

preparer_diff()

preparer_diff(mixed $texte) : mixed
Parameters
$texte : mixed

afficher_diff()

afficher_diff(mixed $texte) : mixed
Parameters
$texte : mixed

separer_paras()

Découper les paragraphes d'un texte en fragments

separer_paras(string $texte[, array<string|int, mixed> $paras = [] ]) : array<string|int, string>
Parameters
$texte : string

Texte à fragmenter

$paras : array<string|int, mixed> = []

Tableau de fragments déjà là

Return values
array<string|int, string>

Tableau de fragments (paragraphes)

replace_fragment()

replace_fragment(mixed $id_objet, mixed $objet, mixed $version_min, mixed $version_max, mixed $id_fragment, mixed $fragment) : mixed
Parameters
$id_objet : mixed
$objet : mixed
$version_min : mixed
$version_max : mixed
$id_fragment : mixed
$fragment : mixed

envoi_replace_fragments()

envoi_replace_fragments(mixed $replaces) : mixed
Parameters
$replaces : mixed

envoi_delete_fragments()

envoi_delete_fragments(mixed $id_objet, mixed $objet, mixed $deletes) : mixed
Parameters
$id_objet : mixed
$objet : mixed
$deletes : mixed

ajouter_fragments()

ajouter_fragments(mixed $id_objet, mixed $objet, mixed $id_version, mixed $fragments) : mixed
Parameters
$id_objet : mixed
$objet : mixed
$id_version : mixed
$fragments : mixed

supprimer_fragments()

supprimer_fragments(mixed $id_objet, mixed $objet, mixed $version_debut, mixed $version_fin) : mixed
Parameters
$id_objet : mixed
$objet : mixed
$version_debut : mixed
$version_fin : mixed

recuperer_fragments()

Récupérer les fragments d'un objet pour une version demandée

recuperer_fragments(int $id_objet, string $objet, int $id_version) : array<string|int, mixed>
Parameters
$id_objet : int

Identifiant de l'objet

$objet : string

Objet

$id_version : int

Identifiant de la version

Return values
array<string|int, mixed>

Couples id_fragment => texte

apparier_paras()

apparier_paras(mixed $src, mixed $dest[, mixed $flou = true ]) : mixed
Parameters
$src : mixed
$dest : mixed
$flou : mixed = true

recuperer_version_complete()

Retrouve les champs d'un objet et leurs contenus à une version donnée

recuperer_version_complete(int $id_objet, string $objet, int $id_version) : array<string|int, mixed>
Parameters
$id_objet : int

Identifiant de l'objet

$objet : string

Objet

$id_version : int

Identifiant de la version

Tags
uses
recuperer_version()
uses
liste_champs_versionnes()
uses
retrouver_champ_version_objet()
Return values
array<string|int, mixed>

Couples champs => textes

recuperer_version()

Récupérer les champs d'un objet, pour une version demandée

recuperer_version(int $id_objet, string $objet, int $id_version) : array<string|int, mixed>
Parameters
$id_objet : int

Identifiant de l'objet

$objet : string

Objet

$id_version : int

Identifiant de la version

Tags
used-by
recuperer_version_complete()
Return values
array<string|int, mixed>

Couples champs => textes

reconstuire_version()

Reconstruire une version donnée

reconstuire_version(array<string|int, mixed> $champs, array<string|int, mixed> $fragments[, array<string|int, mixed> $res = [] ]) : array<string|int, mixed>

À partir de la liste des champs et de fragments, retourne le texte de chaque champ.

Parameters
$champs : array<string|int, mixed>

Couples (champ => liste d'id_fragment). La liste est de la forme "5 32 7 16 8 2"

$fragments : array<string|int, mixed>

Couples (id_fragment => texte)

$res : array<string|int, mixed> = []

Couples (champ => texte) déjà connus

Return values
array<string|int, mixed>

Couples (champ => texte)

supprimer_versions()

supprimer_versions(mixed $id_objet, mixed $objet, mixed $version_min, mixed $version_max) : mixed
Parameters
$id_objet : mixed
$objet : mixed
$version_min : mixed
$version_max : mixed

ajouter_version()

Ajouter une version à un objet éditorial

ajouter_version(int $id_objet, string $objet, array<string|int, mixed> $champs[, string $titre_version = '' ][, int|null $id_auteur = null ]) : int
Parameters
$id_objet : int
$objet : string
$champs : array<string|int, mixed>
$titre_version : string = ''

Titre donné aux modifications apportées

$id_auteur : int|null = null

Auteur apportant les modifications. En absence (session anonyme), utilisera l'IP pour garder une trace.

Return values
int

id_version : identifiant de la version

propre_diff()

propre_diff(mixed $texte) : mixed
Parameters
$texte : mixed

liste_champs_versionnes()

Liste les champs versionnés d'une table objet.

liste_champs_versionnes(string $table) : array<string|int, mixed>
Parameters
$table : string

Nom complet de sa table sql. Exemple 'spip_articles'

Tags
used-by
recuperer_version_complete()
Return values
array<string|int, mixed>

Liste des champs versionnés

recuperer_valeur_champ_jointure()

Lorsqu'un champ versionée est une jointure, récuperer tous les liens et les mettre sous forme de liste énumérée

recuperer_valeur_champ_jointure(string $objet, string $id_objet, string $jointure) : string
Parameters
$objet : string
$id_objet : string
$jointure : string
Return values
string

verifier_premiere_revision()

Créer la première révision d'un objet si nécessaire

verifier_premiere_revision(string $table, string $objet, int $id_objet[, array<string|int, mixed> $champs = null ][, int $id_auteur = 0 ]) : int

À faire notamment si on vient d'activer l'extension et qu'on fait une modif sur un objet qui était déjà en base, mais non versionné

La fonction renvoie le numéro de la dernière version de l'objet, et 0 si pas de version pour cet objet

Parameters
$table : string
$objet : string
$id_objet : int
$champs : array<string|int, mixed> = null
$id_auteur : int = 0
Return values
int

revisions_diff()

Afficher un diff correspondant à une révision d'un objet

revisions_diff(int $id_objet, string $objet, int $id_version[, bool $court = false ]) : string
Parameters
$id_objet : int

Identifiant de l'objet

$objet : string

Objet

$id_version : int

Identifiant de la version

$court : bool = false
  • false : affiche le diff complet
  • true : indique juste la taille en octets des changements
Return values
string

Texte HTML du diff.

retrouver_champ_version_objet()

Retrouver le champ d'un objet, pour une version demandée

retrouver_champ_version_objet(string $objet, int $id_objet, int $id_version, string $champ, array<string|int, mixed> &$champs) : mixed

Si le champ n'est pas déjà présent dans la liste des champs ($champs), on remonte les versions à partir du id_version donné, jusqu'à récupérer une version qui contient ce champ. On complète alors la liste des champs avec la version du champ trouvée.

Parameters
$objet : string

Objet

$id_objet : int

Identifiant de l'objet

$id_version : int

Identifiant de la version

$champ : string

Le nom du champ à retrouver

$champs : array<string|int, mixed>

Liste des champs déjà connus

Tags
used-by
recuperer_version_complete()

revision_comparee()

Liste les champs modifiés par une version de révision donnée

revision_comparee(int $id_objet, string $objet, int $id_version[, string $format = 'diff' ][, null $id_diff = null ]) : array<string|int, mixed>

Pour un couple objet/id_objet et id_version donné, calcule les champs qui ont été modifiés depuis une version précédente et la version d'id_version, et les retourne.

La version précédente est par défaut la version juste avant id_version, mais peut être définie via le paramètre id_diff.

Le retour est plus ou moins locace en fonction du paramètre format.

Parameters
$id_objet : int

Identifiant de l'objet

$objet : string

Objet

$id_version : int

Identifiant de la version

$format : string = 'diff'

Type de retour

  • diff => seulement les modifs (page revisions)
  • apercu => idem, mais en plus tres cout s'il y en a bcp
  • complet => tout, avec surlignage des modifications (page revision)
$id_diff : null = null

Identifiant de la version de base du diff, par défaut l'id_version juste précédent

Return values
array<string|int, mixed>

Couples (champ => texte)

label_champ()

Trouver le label d'un champ de révision

label_champ(string $champ[, string $objet = false ]) : string

Quelques champs ont un label dans dans les chaînes de langue de SPIP Pour un champ particulier d'un objet particulier, le pipeline revisions_chercher_label peut être utilisé

Parameters
$champ : string

Le nom du champ révisionné

$objet : string = false

Le type d'objet révisionné

Return values
string

Le label du champ

revisions_upgrade()

Installation/maj des tables révisions

revisions_upgrade(string $nom_meta_base_version, string $version_cible) : mixed
Parameters
$nom_meta_base_version : string
$version_cible : string

revisions_vider_tables()

Desinstallation/suppression des tables revisions

revisions_vider_tables(string $nom_meta_base_version) : mixed
Parameters
$nom_meta_base_version : string

revisions_autoriser()

Fonction du pipeline autoriser. N'a rien à faire

revisions_autoriser() : mixed
Tags
pipeline

autoriser

autoriser_voirrevisions_dist()

Autorisation de voir les revisions ?

autoriser_voirrevisions_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Il faut :

  • des revisions définies pour cet objet
  • que l'objet existe
  • que l'on soit autorisé à voir l'objet
Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

autoriser_revisions_menu_dist()

Autorisation de voir le menu révisions

autoriser_revisions_menu_dist(string $faire[, string $type = '' ][, int $id = 0 ][, array<string|int, mixed> $qui = null ][, array<string|int, mixed> $opt = null ]) : bool

Il faut des révisions activées et présentes.

Parameters
$faire : string

Action demandée

$type : string = ''

Type d'objet sur lequel appliquer l'action

$id : int = 0

Identifiant de l'objet

$qui : array<string|int, mixed> = null

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed> = null

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

autoriser_configurerrevisions_menu_dist()

Autorisation de voir le menu configurer_revisions

autoriser_configurerrevisions_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_revisions

Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

revisions_ieconfig_metas()

Ajoute les éléments de config des révisions pour les sauvegardes de IEConfig

revisions_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Parameters
$table : array<string|int, mixed>

Description des configurations

Tags
pipeline

ieconfig_metas

Return values
array<string|int, mixed>

Description des configurations

Search results