MediaWiki
REL1_24
|
00001 <?php 00031 class ArrayDiffFormatter extends DiffFormatter { 00032 00038 public function format( $diff ) { 00039 $oldline = 1; 00040 $newline = 1; 00041 $retval = array(); 00042 foreach ( $diff->getEdits() as $edit ) { 00043 switch ( $edit->getType() ) { 00044 case 'add': 00045 foreach ( $edit->getClosing() as $line ) { 00046 $retval[] = array( 00047 'action' => 'add', 00048 'new' => $line, 00049 'newline' => $newline++ 00050 ); 00051 } 00052 break; 00053 case 'delete': 00054 foreach ( $edit->getOrig() as $line ) { 00055 $retval[] = array( 00056 'action' => 'delete', 00057 'old' => $line, 00058 'oldline' => $oldline++, 00059 ); 00060 } 00061 break; 00062 case 'change': 00063 foreach ( $edit->getOrig() as $key => $line ) { 00064 $retval[] = array( 00065 'action' => 'change', 00066 'old' => $line, 00067 'new' => $edit->getClosing( $key ), 00068 'oldline' => $oldline++, 00069 'newline' => $newline++, 00070 ); 00071 } 00072 break; 00073 case 'copy': 00074 $oldline += count( $edit->getOrig() ); 00075 $newline += count( $edit->getOrig() ); 00076 } 00077 } 00078 00079 return $retval; 00080 } 00081 00082 }