File "jointure.php"
Full path: /home/argothem/www/v4_old/plugins-dist/revisions/afficher_diff/jointure.php
File size: 2.26 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/diff');
/**
* Afficher le diff d'un champ texte generique
*
* @param string $champ
* @param string $old
* @param string $new
* @param string $format
* apercu, diff ou complet
* @return string
*/
function afficher_diff_jointure_dist($champ, $old, $new, $format = 'diff') {
$join = substr($champ, 9);
$objet = objet_type($join);
$old = explode(',', $old);
$new = explode(',', $new);
$liste = [];
// les communs
$intersection = array_intersect($new, $old);
foreach ($intersection as $id) {
if ($id = intval(trim($id))) {
$liste[$id] = "<a href='" . generer_objet_url($id, $objet) . "' title='" . _T(objet_info($objet, 'texte_objet')) . " $id'>"
. generer_objet_info($id, $objet, 'titre')
. '</a>';
}
}
// les supprimes
$old = array_diff($old, $intersection);
foreach ($old as $id) {
if ($id = intval(trim($id))) {
$liste[$id] = "<span class='diff-supprime'>"
. "<a href='" . generer_objet_url($id, $objet) . "' title='" . _T(objet_info($objet, 'texte_objet')) . " $id'>"
. generer_objet_info($id, $objet, 'titre')
. '</a>'
. '</span>';
}
}
// les ajoutes
$new = array_diff($new, $intersection);
foreach ($new as $id) {
if ($id = intval(trim($id))) {
$liste[$id] = "<span class='diff-ajoute'>"
. "<a href='" . generer_objet_url($id, $objet) . "' title='" . _T(objet_info($objet, 'texte_objet')) . " $id'>"
. generer_objet_info($id, $objet, 'titre')
. '</a>'
. '</span>';
}
}
ksort($liste);
$liste = implode(', ', $liste);
return $liste;
}