* Pipelines utilisés du plugin révisions
*
* @package SPIP\Revisions\Pipelines
-**/
-if (!defined('_ECRIRE_INC_VERSION')) return;
+ **/
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
/**
* Ajoute dans le bloc d'info d'un objet un bouton permettant d'aller voir
* l'historique de ses révisions
- *
- * @param array $flux Données du pipeline
+ *
+ * @param array $flux Données du pipeline
* @return array $flux Données du pipeline
*/
-function revisions_boite_infos($flux){
+function revisions_boite_infos($flux) {
$type = $flux['args']['type'];
if ($id = intval($flux['args']['id'])
- AND $tables = unserialize($GLOBALS['meta']['objets_versions'])
- AND in_array(table_objet_sql($type),$tables)
- AND autoriser('voirrevisions',$type,$id)
+ and $tables = unserialize($GLOBALS['meta']['objets_versions'])
+ and in_array(table_objet_sql($type), $tables)
+ and autoriser('voirrevisions', $type, $id)
// regarder le numero de revision le plus eleve, et afficher le bouton
// si c'est interessant (id_version>1)
- AND sql_countsel('spip_versions', 'id_objet='.intval($id).' AND objet = '.sql_quote($type)) > 1
+ and sql_countsel('spip_versions', 'id_objet=' . intval($id) . ' AND objet = ' . sql_quote($type)) > 1
) {
include_spip('inc/presentation');
- $flux['data'] .= icone_horizontale(_T('revisions:info_historique_lien'), generer_url_ecrire('revision',"id_objet=$id&objet=$type"), "revision-24.png");
+ $flux['data'] .= icone_horizontale(_T('revisions:info_historique_lien'),
+ generer_url_ecrire('revision', "id_objet=$id&objet=$type"), "revision-24.png");
}
return $flux;
* Liste les révisions en bas de la page d'accueil de ecrire/
* et sur la page de suivi de l'activité du site
*
- * @param array $flux Données du pipeline
+ * @param array $flux Données du pipeline
* @return array $flux Données du pipeline
*/
function revisions_affiche_milieu($flux) {
// la bonne page et des objets révisables cochées !
if (in_array($flux['args']['exec'], array('accueil', 'suivi_edito'))
- AND unserialize($GLOBALS['meta']['objets_versions'])) {
+ and unserialize($GLOBALS['meta']['objets_versions'])
+ ) {
$contexte = array();
- if ($GLOBALS['visiteur_session']['statut']!=='0minirezo') {
+ if ($GLOBALS['visiteur_session']['statut'] !== '0minirezo') {
$contexte['id_auteur'] = $GLOBALS['visiteur_session']['id_auteur'];
}
- $flux['data'] .= recuperer_fond('prive/objets/liste/versions',$contexte,array('ajax'=>true));
+ $flux['data'] .= recuperer_fond('prive/objets/liste/versions', $contexte, array('ajax' => true));
}
+
return $flux;
}
/**
* Définir les metas de configuration liées aux révisions
- *
+ *
* Utilisé par inc/config
*
- * @param array $metas Liste des métas et leurs valeurs par défaut
+ * @param array $metas Liste des métas et leurs valeurs par défaut
* @return array Liste des métas et leurs valeurs par défaut
*/
-function revisions_configurer_liste_metas($metas){
+function revisions_configurer_liste_metas($metas) {
// Dorénavant dans les metas on utilisera un array serialisé de types d'objets
// qui correspondront aux objets versionnés
- $metas['objets_versions'] = '';
+ $metas['objets_versions'] = '';
return $metas;
}
+
/**
* Charge les données d'une révision donnée dans le formulaire d'édition d'un objet
- *
- * @param array $flux Données du pipeline
+ *
+ * @param array $flux Données du pipeline
* @return array $flux Données du pipeline
*/
-function revisions_formulaire_charger($flux){
- if (strncmp($flux['args']['form'],'editer_',7)==0
- AND $id_version = _request('id_version')
- AND $objet = substr($flux['args']['form'],7)
- AND $id_table_objet = id_table_objet($objet)
- AND isset($flux['data'][$id_table_objet])
- AND $id = intval($flux['data'][$id_table_objet])
- AND !$flux['args']['je_suis_poste']){
- // ajouter un message convivial pour indiquer qu'on a restaure la version
- $flux['data']['message_ok'] = _T('revisions:icone_restaurer_version',array('version'=>$id_version));
- $flux['data']['message_ok'] .= "<br />"._T('revisions:message_valider_recuperer_version');
+function revisions_formulaire_charger($flux) {
+ if (strncmp($flux['args']['form'], 'editer_', 7) == 0
+ and $id_version = _request('id_version')
+ and $objet = substr($flux['args']['form'], 7)
+ and $id_table_objet = id_table_objet($objet)
+ and isset($flux['data'][$id_table_objet])
+ and $id = intval($flux['data'][$id_table_objet])
+ and !$flux['args']['je_suis_poste']
+ ) {
+ // ajouter un message convival pour indiquer qu'on a restaure la version
+ $flux['data']['message_ok'] = _T('revisions:icone_restaurer_version', array('version' => $id_version));
+ $flux['data']['message_ok'] .= "<br />" . _T('revisions:message_valider_recuperer_version');
// recuperer la version
include_spip('inc/revisions');
- $champs = recuperer_version($id,$objet, $id_version);
- foreach($champs as $champ=>$valeur){
- if (!strncmp($champ,'jointure_',9)==0){
- if ($champ=='id_rubrique')
+ #$champs = recuperer_version_complete($id, $objet, $id_version);
+ $champs = recuperer_version($id, $objet, $id_version);
+ foreach ($champs as $champ => $valeur) {
+ if (!strncmp($champ, 'jointure_', 9) == 0) {
+ if ($champ == 'id_rubrique') {
$flux['data']['id_parent'] = $valeur;
- else
+ } else {
$flux['data'][$champ] = $valeur;
+ }
}
}
}
+
return $flux;
}
+
/**
* Sur une insertion en base, lever un flag pour ne pas creer une premiere révision vide
* dans pre_edition mais attendre la post_edition pour cela
- *
- * @param array $x Données du pipeline
+ *
+ * @param array $x Données du pipeline
* @return array $x Données du pipeline
*/
-function revisions_post_insertion($x){
+function revisions_post_insertion($x) {
$table = $x['args']['table'];
include_spip('inc/revisions');
- if($champs = liste_champs_versionnes($table)) {
- $GLOBALS['premiere_revision']["$table:".$x['args']['id_objet']] = true;
+ if ($champs = liste_champs_versionnes($table)) {
+ $GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']] = true;
}
+
return $x;
}
* vérifier qu'une version initiale existe bien pour cet objet
* et la creer sinon avec l'etat actuel de l'objet
*
- * @param array $x Données du pipeline
+ * @param array $x Données du pipeline
* @return array $x Données du pipeline
*/
function revisions_pre_edition($x) {
// ne rien faire quand on passe ici en controle md5
if (!isset($x['args']['action'])
- OR $x['args']['action']!=='controler'){
+ or $x['args']['action'] !== 'controler'
+ ) {
$table = $x['args']['table'];
include_spip('inc/revisions');
// si flag leve passer son chemin, post_edition le fera (mais baisser le flag en le gardant en memoire tout de meme)
- if (isset($GLOBALS['premiere_revision']["$table:".$x['args']['id_objet']])){
- $GLOBALS['premiere_revision']["$table:".$x['args']['id_objet']] = 0;
- }
- // sinon creer une premiere revision qui date et dont on ne connait pas l'auteur
- elseif ($versionnes = liste_champs_versionnes($table)) {
+ if (isset($GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']])) {
+ $GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']] = 0;
+ } // sinon creer une premiere revision qui date et dont on ne connait pas l'auteur
+ elseif ($versionnes = liste_champs_versionnes($table)) {
$objet = isset($x['args']['type']) ? $x['args']['type'] : objet_type($table);
verifier_premiere_revision($table, $objet, $x['args']['id_objet'], $versionnes, -1);
}
}
+
return $x;
}
* Avant modification en base d'un lien,
* enregistrer une première révision de l'objet si nécessaire
*
- * @param array $x Données du pipeline
+ * @param array $x Données du pipeline
* @return array $x Données du pipeline
*/
function revisions_pre_edition_lien($x) {
- if (intval($x['args']['id_objet_source'])>0
- AND intval($x['args']['id_objet'])>0) {
+ if (intval($x['args']['id_objet_source']) > 0
+ and intval($x['args']['id_objet']) > 0
+ ) {
$table = table_objet_sql($x['args']['objet']);
- $id_objet = $x['data'];
+ $id_objet = intval($x['args']['id_objet']);
include_spip('inc/revisions');
- if (isset($GLOBALS['premiere_revision']["$table:".$id_objet])){
- $GLOBALS['premiere_revision']["$table:".$id_objet] = 0;
- }
- // ex : si le champ jointure_mots est versionnable sur les articles
+ if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
+ } // ex : si le champ jointure_mots est versionnable sur les articles
elseif ($versionnes = liste_champs_versionnes($table)
- AND in_array($j='jointure_'.table_objet($x['args']['objet_source']),$versionnes)){
- verifier_premiere_revision($table,$x['args']['objet'],$id_objet,$versionnes,-1);
+ and in_array($j = 'jointure_' . table_objet($x['args']['objet_source']), $versionnes)
+ ) {
+ verifier_premiere_revision($table, $x['args']['objet'], $id_objet, $versionnes, -1);
}
$table = table_objet_sql($x['args']['objet_source']);
$id_objet = $x['args']['id_objet_source'];
- if (isset($GLOBALS['premiere_revision']["$table:".$id_objet])){
- $GLOBALS['premiere_revision']["$table:".$id_objet] = 0;
- }
- // ex : si le champ jointure_articles est versionnable sur les mots
+ if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
+ } // ex : si le champ jointure_articles est versionnable sur les mots
elseif ($versionnes = liste_champs_versionnes($table)
- AND in_array($j='jointure_'.table_objet($x['args']['objet']),$versionnes)){
- verifier_premiere_revision($table,$x['args']['objet_source'],$id_objet,$versionnes,-1);
+ and in_array($j = 'jointure_' . table_objet($x['args']['objet']), $versionnes)
+ ) {
+ verifier_premiere_revision($table, $x['args']['objet_source'], $id_objet, $versionnes, -1);
}
}
/**
* Après modification en base, versionner l'objet
*
- * @param array $x Données du pipeline
+ * @param array $x Données du pipeline
* @return array $x Données du pipeline
*/
function revisions_post_edition($x) {
include_spip('inc/revisions');
- if ($versionnes = liste_champs_versionnes($x['args']['table'])){
+ if (isset($x['args']['table']) and $versionnes = liste_champs_versionnes($x['args']['table'])) {
// Regarder si au moins une des modifs est versionnable
$champs = array();
$table = $x['args']['table'];
$objet = isset($x['args']['type']) ? $x['args']['type'] : objet_type($table);
- if (isset($GLOBALS['premiere_revision']["$table:".$x['args']['id_objet']])){
- unset($GLOBALS['premiere_revision']["$table:".$x['args']['id_objet']]);
+ include_spip('inc/session');
+
+ if (isset($GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']])) {
+ unset($GLOBALS['premiere_revision']["$table:" . $x['args']['id_objet']]);
// verifier la premiere version : sur une version initiale on attend ici pour la creer
// plutot que de creer une version vide+un diff
- verifier_premiere_revision($table, $objet, $x['args']['id_objet'], $versionnes, $GLOBALS['visiteur_session']['id_auteur']);
- }
- else {
+ verifier_premiere_revision($table, $objet, $x['args']['id_objet'], $versionnes, session_get('id_auteur'));
+ } else {
// on versionne les differences
- foreach ($versionnes as $key)
- if (isset($x['data'][$key]))
+ foreach ($versionnes as $key) {
+ if (isset($x['data'][$key])) {
$champs[$key] = $x['data'][$key];
+ }
+ }
- if (count($champs))
- ajouter_version($x['args']['id_objet'],$objet, $champs, '', $GLOBALS['visiteur_session']['id_auteur']);
+ if (count($champs)) {
+ ajouter_version($x['args']['id_objet'], $objet, $champs, '', session_get('id_auteur'));
+ }
}
}
+
return $x;
}
/**
* Après modification en base d'un lien, versionner l'objet si nécessaire
*
- * @param array $x Données du pipeline
+ * @param array $x Données du pipeline
* @return array $x Données du pipeline
*/
function revisions_post_edition_lien($x) {
'id_objet' => $id_o,
'action'=>'delete',
),
- 'data' => $id_o
+ 'data' => $couples
)
*/
- if (intval($x['args']['id_objet_source'])>0
- AND intval($x['args']['id_objet'])>0) {
+ if (intval($x['args']['id_objet_source']) > 0
+ and intval($x['args']['id_objet']) > 0
+ ) {
$table = table_objet_sql($x['args']['objet']);
- $id_objet = $x['data'];
+ $id_objet = $x['args']['id_objet'];
include_spip('inc/revisions');
- if (isset($GLOBALS['premiere_revision']["$table:".$id_objet])){
- $GLOBALS['premiere_revision']["$table:".$id_objet] = 0;
- }
- // ex : si le champ jointure_mots est versionnable sur les articles
+ if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
+ } // ex : si le champ jointure_mots est versionnable sur les articles
elseif ($versionnes = liste_champs_versionnes($table)
- AND in_array($j='jointure_'.table_objet($x['args']['objet_source']),$versionnes)){
- $champs = array($j=>recuperer_valeur_champ_jointure($x['args']['objet'],$id_objet,$x['args']['objet_source']));
- ajouter_version($id_objet,$x['args']['objet'], $champs, '', $GLOBALS['visiteur_session']['id_auteur']);
+ and in_array($j = 'jointure_' . table_objet($x['args']['objet_source']), $versionnes)
+ ) {
+ $champs = array(
+ $j => recuperer_valeur_champ_jointure($x['args']['objet'], $id_objet, $x['args']['objet_source'])
+ );
+ ajouter_version($id_objet, $x['args']['objet'], $champs, '', $GLOBALS['visiteur_session']['id_auteur']);
}
$table = table_objet_sql($x['args']['objet_source']);
$id_objet = $x['args']['id_objet_source'];
- if (isset($GLOBALS['premiere_revision']["$table:".$id_objet])){
- $GLOBALS['premiere_revision']["$table:".$id_objet] = 0;
- }
- // ex : si le champ jointure_articles est versionnable sur les mots
+ if (isset($GLOBALS['premiere_revision']["$table:" . $id_objet])) {
+ $GLOBALS['premiere_revision']["$table:" . $id_objet] = 0;
+ } // ex : si le champ jointure_articles est versionnable sur les mots
elseif ($versionnes = liste_champs_versionnes($table)
- AND in_array($j='jointure_'.table_objet($x['args']['objet']),$versionnes)){
- $champs = array($j=>recuperer_valeur_champ_jointure($x['args']['objet_source'],$id_objet,$x['args']['objet']));
- ajouter_version($id_objet,$x['args']['objet_source'], $champs, '', $GLOBALS['visiteur_session']['id_auteur']);
+ and in_array($j = 'jointure_' . table_objet($x['args']['objet']), $versionnes)
+ ) {
+ $champs = array(
+ $j => recuperer_valeur_champ_jointure($x['args']['objet_source'], $id_objet, $x['args']['objet'])
+ );
+ ajouter_version($id_objet, $x['args']['objet_source'], $champs, '', $GLOBALS['visiteur_session']['id_auteur']);
}
}
* @return array
* Tableau des tâches et leur périodicité en seconde
*/
-function revisions_taches_generales_cron($taches_generales){
+function revisions_taches_generales_cron($taches_generales) {
$taches_generales['optimiser_revisions'] = 86400;
+
return $taches_generales;
}
-?>