|
Server IP : 10.131.40.8 / Your IP : 216.73.216.15 Web Server : Apache System : Linux webd008.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : ludmqhh ( 137773) PHP Version : 8.4.10 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0705) : /home/ludmqhh/www/hotel-forum/wp-content/plugins/loco-translate/src/fs/../output/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
require_once ABSPATH . WPINC . '/Text/Diff.php';
require_once ABSPATH . WPINC . '/Text/Diff/Renderer.php';
require_once ABSPATH . WPINC . '/Text/Diff/Renderer/inline.php';
require_once ABSPATH . WPINC . '/wp-diff.php';
/**
* Diff renderer extending that which WordPress uses for post revisions.
*/
class Loco_output_DiffRenderer extends WP_Text_Diff_Renderer_Table {
/**
* {@inheritdoc}
*/
public function __construct( $params = [] ){
parent::__construct( $params + [
'show_split_view' => true,
'leading_context_lines' => 1,
'trailing_context_lines' => 1,
] );
}
/**
* Render diff of two files, presumed to be PO or POT
* @param Loco_fs_File Left hand file
* @param Loco_fs_File Right hand file
* @return string HTML table
*/
public function renderFiles( Loco_fs_File $lhs, Loco_fs_File $rhs ){
loco_require_lib('compiled/gettext.php');
// attempt to raise memory limit to WP_MAX_MEMORY_LIMIT
if( function_exists('wp_raise_memory_limit') ){
wp_raise_memory_limit('loco');
}
// like wp_text_diff but avoiding whitespace normalization
// uses deprecated signature for 'auto' in case of old WordPress
return $this->render( new Text_Diff( self::splitFile($lhs), self::splitFile($rhs) ) );
}
/**
* @param Loco_fs_File
* @return string[]
*/
private static function splitFile( Loco_fs_File $file ){
$src = $file->getContents();
$src = Loco_gettext_Data::ensureUtf8($src);
$arr = preg_split( '/\\r?\\n/', $src );
if( ! is_array($arr) ){
$f = new Loco_mvc_FileParams( [], $file );
throw new Loco_error_Exception('Failed to split '.$f->relpath.' ('.$f->size.')' );
}
return $arr;
}
/**
* {@inheritdoc}
*/
public function _startDiff() {
return "<table class=\"diff\">\n";
}
/**
* {@inheritdoc}
*/
public function _endDiff() {
return "</table>\n";
}
/**
* {@inheritdoc}
*/
public function _startBlock( $header ) {
return '<tbody data-diff="'.esc_attr($header)."\">\n";
}
/**
* {@inheritdoc}
*/
public function _endBlock() {
return "</tbody>\n";
}
}
