1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/spip_ynh.git synced 2024-09-03 20:25:59 +02:00
spip_ynh/sources/plugins-dist/revisions/afficher_diff/jointure.php
2015-04-28 17:10:23 +02:00

60 lines
2.2 KiB
PHP

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details 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 = array();
// les communs
$intersection = array_intersect($new,$old);
foreach($intersection as $id)
if ($id=intval(trim($id)))
$liste[$id] = "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($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_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($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_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>"
. "</span>";
ksort($liste);
$liste = implode(', ',$liste);
return $liste;
}