From b91cc556800e58401e2631ae145c627bb5a0e955 Mon Sep 17 00:00:00 2001 From: gfra54 Date: Sun, 6 Apr 2014 12:52:39 +0200 Subject: [PATCH] Customise "old" and "new" labels You can pass an array of options to the main renderer that will let you customize the "old" and "new" labels to fit your needs. It is just a display feature. --- example/example.php | 20 ++++++++++++++++++++ lib/Diff.php | 12 +++++++++--- lib/Diff/Renderer/Html/Inline.php | 6 +++--- lib/Diff/Renderer/Html/SideBySide.php | 6 +++--- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/example/example.php b/example/example.php index 234bc2c8..690cf868 100644 --- a/example/example.php +++ b/example/example.php @@ -24,6 +24,12 @@ //'ignoreCase' => true, ); + // Options for the renderer (change labels) + $renderer_options = array( + 'old'=> 'Production', + 'new'=> 'Development' + ); + // Initialize the diff class $diff = new Diff($a, $b, $options); @@ -36,6 +42,13 @@ $renderer = new Diff_Renderer_Html_SideBySide; echo $diff->Render($renderer); + ?> +

Side by Side Diff with custom labels

+ Render($renderer, $renderer_options); + ?>

Inline Diff

render($renderer); + ?> +

Inline Diff with custom labels

+ render($renderer, $renderer_options); + ?>

Unified Diff

 3,
 		'ignoreNewLines' => false,
 		'ignoreWhitespace' => false,
-		'ignoreCase' => false
+		'ignoreCase' => false,
+		'old' => false,
+		'new' => false,
 	);
 
 	/**
@@ -98,10 +100,14 @@ public function __construct($a, $b, $options=array())
 	 * @param object $renderer An instance of the rendering object to use for generating the diff.
 	 * @return mixed The generated diff. Exact return value depends on the rendered.
 	 */
-	public function render(Diff_Renderer_Abstract $renderer)
+	public function render(Diff_Renderer_Abstract $renderer,$renderer_options=false)
 	{
 		$renderer->diff = $this;
-		return $renderer->render();
+		if($renderer_options) {
+			return $renderer->render($renderer_options);
+		} else {
+			return $renderer->render();
+		}
 	}
 
 	/**
diff --git a/lib/Diff/Renderer/Html/Inline.php b/lib/Diff/Renderer/Html/Inline.php
index 60e8005a..307d1dd8 100644
--- a/lib/Diff/Renderer/Html/Inline.php
+++ b/lib/Diff/Renderer/Html/Inline.php
@@ -50,7 +50,7 @@ class Diff_Renderer_Html_Inline extends Diff_Renderer_Html_Array
 	 *
 	 * @return string The generated inline diff.
 	 */
-	public function render()
+	public function render($renderer_options=array())
 	{
 		$changes = parent::render();
 		$html = '';
@@ -61,8 +61,8 @@ public function render()
 		$html .= '';
 		$html .= '';
 		$html .= '';
-		$html .= '';
-		$html .= '';
+		$html .= '';
+		$html .= '';
 		$html .= '';
 		$html .= '';
 		$html .= '';
diff --git a/lib/Diff/Renderer/Html/SideBySide.php b/lib/Diff/Renderer/Html/SideBySide.php
index 307af1c3..cddc303b 100644
--- a/lib/Diff/Renderer/Html/SideBySide.php
+++ b/lib/Diff/Renderer/Html/SideBySide.php
@@ -50,7 +50,7 @@ class Diff_Renderer_Html_SideBySide extends Diff_Renderer_Html_Array
 	 *
 	 * @return string The generated side by side diff.
 	 */
-	public function render()
+	public function render($renderer_options=array())
 	{
 		$changes = parent::render();
 
@@ -62,8 +62,8 @@ public function render()
 		$html .= '
OldNew'.(!empty($renderer_options['old']) ? htmlspecialchars($renderer_options['old']) :'Old').''.(!empty($renderer_options['new']) ? htmlspecialchars($renderer_options['new']) :'New').'Differences
'; $html .= ''; $html .= ''; - $html .= ''; - $html .= ''; + $html .= ''; + $html .= ''; $html .= ''; $html .= ''; foreach($changes as $i => $blocks) {
Old VersionNew Version'.(!empty($renderer_options['old']) ? htmlspecialchars($renderer_options['old']) :'Old Version').''.(!empty($renderer_options['new']) ? htmlspecialchars($renderer_options['new']) :'New Version').'