File: TableDiffFormatterFullContext.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (40 lines) | stat: -rw-r--r-- 938 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

namespace MediaWiki\Extension\AbuseFilter;

use Wikimedia\Diff\Diff;
use Wikimedia\Diff\TableDiffFormatter;

/**
 * Like TableDiffFormatter, but will always render the full context (even for empty diffs).
 *
 * @todo Consider moving to MW core (as a separate class, or as an option to TableDiffFormatter)
 *
 * @internal
 */
class TableDiffFormatterFullContext extends TableDiffFormatter {
	/**
	 * Format a diff.
	 *
	 * @param Diff $diff
	 * @return string The formatted output.
	 */
	public function format( $diff ) {
		$xlen = $ylen = 0;

		// Calculate the length of the left and the right side
		foreach ( $diff->edits as $edit ) {
			if ( $edit->orig ) {
				$xlen += count( $edit->orig );
			}
			if ( $edit->closing ) {
				$ylen += count( $edit->closing );
			}
		}

		// Just render the diff with no preprocessing
		$this->startDiff();
		$this->block( 1, $xlen, 1, $ylen, $diff->edits );
		return $this->endDiff();
	}
}