Your IP : 216.73.216.42


Current Path : /home/b/o/u/bourgleram/www/398a1/
Upload File :
Current File : /home/b/o/u/bourgleram/www/398a1/afficher_diff.tar

id_rubrique.php000066600000002742152526363350007612 0ustar00<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2016                                                *
 *  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 id_rubrique
 * on affiche en fait le deplacement si id_rubrique a change
 * le nom de la rubrique sinon
 *
 * @param string $champ
 * @param string $old
 * @param string $new
 * @param string $format
 * @return string
 */
function afficher_diff_id_rubrique_dist($champ,$old,$new,$format='diff'){
	// ne pas se compliquer la vie !
	if ($old==$new)
		$out = _T('info_dans_rubrique')
		       . " <b>&#171;&nbsp;".generer_info_entite($new,'rubrique','titre')."&nbsp;&#187;</b>";
	else
		$out = _T('revisions:version_deplace_rubrique',
							 array('from'=> generer_info_entite($old,'rubrique','titre')
									 ,'to'=>generer_info_entite($new,'rubrique','titre')
							 )
		         );
	return $out;
}champ.php000066600000004032152526363350006362 0ustar00<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2016                                                *
 *  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_champ_dist($champ,$old,$new,$format='diff'){
	// ne pas se compliquer la vie !
	if ($old==$new)
		$out = ($format!='complet'?'':$new);
	else {
		if($f = charger_fonction($champ,'afficher_diff', true)){
			return $f($champ, $old, $new, $format);
		}
		
		$diff = new Diff(new DiffTexte);
		$n = preparer_diff($new);
		$o = preparer_diff($old);

		$out = afficher_diff($diff->comparer($n,$o));
		if ($format == 'diff' OR $format == 'apercu')
			$out = afficher_para_modifies($out, ($format == 'apercu'));
	}
	return $out;
}


/**
 * http://code.spip.net/@afficher_para_modifies
 *
 * @param string $texte
 * @param bool $court
 * @return string
 */
function afficher_para_modifies ($texte, $court = false) {
	// Limiter la taille de l'affichage
	if ($court) $max = 200;
	else $max = 2000;

	$texte_ret = "";
	$paras = explode ("\n",$texte);
	for ($i = 0; $i < count($paras) AND strlen($texte_ret) < $max; $i++) {
		if (strpos($paras[$i], '"diff-')) $texte_ret .= $paras[$i]."\n\n";
#		if (strlen($texte_ret) > $max) $texte_ret .= '(...)';
	}
	$texte = $texte_ret;
	return $texte;
}
jointure.php000066600000004272152526363350007137 0ustar00<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2016                                                *
 *  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;
}