ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
Text_Diff_Renderer Class Reference
+ Inheritance diagram for Text_Diff_Renderer:
+ Collaboration diagram for Text_Diff_Renderer:

Public Member Functions

 Text_Diff_Renderer ($params=array())
 Constructor. More...
 
 getParams ()
 Get any renderer parameters. More...
 
 render ($diff)
 Renders a diff. More...
 
 _block ($xbeg, $xlen, $ybeg, $ylen, &$edits)
 
 _startDiff ()
 
 _endDiff ()
 
 _blockHeader ($xbeg, $xlen, $ybeg, $ylen)
 
 _startBlock ($header)
 
 _endBlock ()
 
 _lines ($lines, $prefix=' ')
 
 _context ($lines)
 
 _added ($lines)
 
 _deleted ($lines)
 
 _changed ($orig, $final)
 

Data Fields

 $_leading_context_lines = 0
 Number of leading context "lines" to preserve. More...
 
 $_trailing_context_lines = 0
 Number of trailing context "lines" to preserve. More...
 

Detailed Description

Definition at line 12 of file Renderer.php.

Member Function Documentation

◆ _added()

Text_Diff_Renderer::_added (   $lines)

Reimplemented in Text_Diff_Renderer_unified.

Definition at line 194 of file Renderer.php.

195 {
196 return $this->_lines($lines, '>');
197 }
_lines($lines, $prefix=' ')
Definition: Renderer.php:184

References _lines().

Referenced by _block(), and _changed().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _block()

Text_Diff_Renderer::_block (   $xbeg,
  $xlen,
  $ybeg,
  $ylen,
$edits 
)

Definition at line 125 of file Renderer.php.

126 {
127 $output = $this->_startBlock($this->_blockHeader($xbeg, $xlen, $ybeg, $ylen));
128
129 foreach ($edits as $edit) {
130 switch (strtolower(get_class($edit))) {
131 case 'text_diff_op_copy':
132 $output .= $this->_context($edit->orig);
133 break;
134
135 case 'text_diff_op_add':
136 $output .= $this->_added($edit->final);
137 break;
138
139 case 'text_diff_op_delete':
140 $output .= $this->_deleted($edit->orig);
141 break;
142
143 case 'text_diff_op_change':
144 $output .= $this->_changed($edit->orig, $edit->final);
145 break;
146 }
147 }
148
149 return $output . $this->_endBlock();
150 }
_blockHeader($xbeg, $xlen, $ybeg, $ylen)
Definition: Renderer.php:162
_startBlock($header)
Definition: Renderer.php:174
_changed($orig, $final)
Definition: Renderer.php:204

References _added(), _blockHeader(), _changed(), _context(), _deleted(), _endBlock(), and _startBlock().

Referenced by render().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _blockHeader()

Text_Diff_Renderer::_blockHeader (   $xbeg,
  $xlen,
  $ybeg,
  $ylen 
)

Reimplemented in Text_Diff_Renderer_unified.

Definition at line 162 of file Renderer.php.

163 {
164 if ($xlen > 1) {
165 $xbeg .= ',' . ($xbeg + $xlen - 1);
166 }
167 if ($ylen > 1) {
168 $ybeg .= ',' . ($ybeg + $ylen - 1);
169 }
170
171 return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg;
172 }

Referenced by _block().

+ Here is the caller graph for this function:

◆ _changed()

Text_Diff_Renderer::_changed (   $orig,
  $final 
)

Reimplemented in Text_Diff_Renderer_unified.

Definition at line 204 of file Renderer.php.

205 {
206 return $this->_deleted($orig) . "---\n" . $this->_added($final);
207 }

References _added(), and _deleted().

Referenced by _block().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _context()

Text_Diff_Renderer::_context (   $lines)

Definition at line 189 of file Renderer.php.

190 {
191 return $this->_lines($lines);
192 }

References _lines().

Referenced by _block().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _deleted()

Text_Diff_Renderer::_deleted (   $lines)

Reimplemented in Text_Diff_Renderer_unified.

Definition at line 199 of file Renderer.php.

200 {
201 return $this->_lines($lines, '<');
202 }

References _lines().

Referenced by _block(), and _changed().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _endBlock()

Text_Diff_Renderer::_endBlock ( )

Definition at line 179 of file Renderer.php.

180 {
181 return '';
182 }

Referenced by _block().

+ Here is the caller graph for this function:

◆ _endDiff()

Text_Diff_Renderer::_endDiff ( )

Definition at line 157 of file Renderer.php.

158 {
159 return '';
160 }

Referenced by render().

+ Here is the caller graph for this function:

◆ _lines()

Text_Diff_Renderer::_lines (   $lines,
  $prefix = ' ' 
)

Definition at line 184 of file Renderer.php.

185 {
186 return $prefix . implode("\n$prefix", $lines) . "\n";
187 }

Referenced by _added(), Text_Diff_Renderer_unified\_added(), _context(), _deleted(), and Text_Diff_Renderer_unified\_deleted().

+ Here is the caller graph for this function:

◆ _startBlock()

Text_Diff_Renderer::_startBlock (   $header)

Definition at line 174 of file Renderer.php.

175 {
176 return $header . "\n";
177 }
$header

References $header.

Referenced by _block().

+ Here is the caller graph for this function:

◆ _startDiff()

Text_Diff_Renderer::_startDiff ( )

Definition at line 152 of file Renderer.php.

153 {
154 return '';
155 }

Referenced by render().

+ Here is the caller graph for this function:

◆ getParams()

Text_Diff_Renderer::getParams ( )

Get any renderer parameters.

Returns
array All parameters of this renderer object.

Definition at line 48 of file Renderer.php.

49 {
50 $params = array();
51 foreach (get_object_vars($this) as $k => $v) {
52 if ($k{0} == '_') {
53 $params[substr($k, 1)] = $v;
54 }
55 }
56
57 return $params;
58 }
$params
Definition: example_049.php:96

References $params.

◆ render()

Text_Diff_Renderer::render (   $diff)

Renders a diff.

Parameters
Text_Diff$diffA Text_Diff object.
Returns
string The formatted output.

Definition at line 67 of file Renderer.php.

68 {
69 $xi = $yi = 1;
70 $block = false;
71 $context = array();
72
75
76 $output = $this->_startDiff();
77
78 foreach ($diff->getDiff() as $edit) {
79 if ($edit instanceof Text_Diff_Op_copy) {
80 if (is_array($block)) {
81 if (count($edit->orig) <= $nlead + $ntrail) {
82 $block[] = $edit;
83 } else {
84 if ($ntrail) {
85 $context = array_slice($edit->orig, 0, $ntrail);
86 $block[] = new Text_Diff_Op_copy($context);
87 }
88 $output .= $this->_block($x0, $ntrail + $xi - $x0,
89 $y0, $ntrail + $yi - $y0,
90 $block);
91 $block = false;
92 }
93 }
94 $context = $edit->orig;
95 } else {
96 if (!is_array($block)) {
97 $context = array_slice($context, count($context) - $nlead);
98 $x0 = $xi - count($context);
99 $y0 = $yi - count($context);
100 $block = array();
101 if ($context) {
102 $block[] = new Text_Diff_Op_copy($context);
103 }
104 }
105 $block[] = $edit;
106 }
107
108 if ($edit->orig) {
109 $xi += count($edit->orig);
110 }
111 if ($edit->final) {
112 $yi += count($edit->final);
113 }
114 }
115
116 if (is_array($block)) {
117 $output .= $this->_block($x0, $xi - $x0,
118 $y0, $yi - $y0,
119 $block);
120 }
121
122 return $output . $this->_endDiff();
123 }
$_leading_context_lines
Number of leading context "lines" to preserve.
Definition: Renderer.php:20
$_trailing_context_lines
Number of trailing context "lines" to preserve.
Definition: Renderer.php:28
_block($xbeg, $xlen, $ybeg, $ylen, &$edits)
Definition: Renderer.php:125

References $_leading_context_lines, $_trailing_context_lines, _block(), _endDiff(), and _startDiff().

+ Here is the call graph for this function:

◆ Text_Diff_Renderer()

Text_Diff_Renderer::Text_Diff_Renderer (   $params = array())

Constructor.

Definition at line 33 of file Renderer.php.

34 {
35 foreach ($params as $param => $value) {
36 $v = '_' . $param;
37 if (isset($this->$v)) {
38 $this->$v = $value;
39 }
40 }
41 }

References $params.

Field Documentation

◆ $_leading_context_lines

Text_Diff_Renderer::$_leading_context_lines = 0

Number of leading context "lines" to preserve.

This should be left at zero for this class, but subclasses may want to set this to other values.

Definition at line 20 of file Renderer.php.

Referenced by render().

◆ $_trailing_context_lines

Text_Diff_Renderer::$_trailing_context_lines = 0

Number of trailing context "lines" to preserve.

This should be left at zero for this class, but subclasses may want to set this to other values.

Definition at line 28 of file Renderer.php.

Referenced by render().


The documentation for this class was generated from the following file: