Version 2.3.6
This commit is contained in:
1 parent
a3bb603c96
commit
19b38c7c74
764 files changed
+143731
-118164
No files matched your search
@@ -2,25 +2,17 @@
|
||||
|
||||
/*
|
||||
+--------------------------------------------------------------------------
|
||||
| Invision Power Board 2.2.2
|
||||
| Invision Power Board
|
||||
| =============================================
|
||||
| by Matthew Mecham
|
||||
| (c) 2001 - 2006 Invision Power Services, Inc.
|
||||
| http://www.invisionpower.com
|
||||
| =============================================
|
||||
| Web: http://www.invisionboard.com
|
||||
| http://www.ibresource.ru/products/invisionpowerboard/
|
||||
| Time: Monday 05th of March 2007 10:10:54 PM
|
||||
| Release: e3790216629e5a2aaf37070b32237f06
|
||||
| Licence Info: http://www.invisionboard.com/?license
|
||||
| http://www.ibresource.ru/license
|
||||
+---------------------------------------------------------------------------
|
||||
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
|
||||
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
|
||||
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
|
||||
+---------------------------------------------------------------------------
|
||||
| > $Date: 2006-12-08 16:41:30 -0500 (Fri, 08 Dec 2006) $
|
||||
| > $Revision: 781 $
|
||||
| > $Date: 2007-12-17 18:07:20 -0500 (Mon, 17 Dec 2007) $
|
||||
| > $Revision: 1149 $
|
||||
| > $Author: bfarber $
|
||||
+---------------------------------------------------------------------------
|
||||
|
|
||||
@@ -32,7 +24,7 @@
|
||||
|
||||
if ( ! defined( 'IN_ACP' ) )
|
||||
{
|
||||
print "<h1>Íåêîððåêòíûé àäðåñ</h1>Âû íå èìååòå äîñòóïà ê ýòîìó ôàéëó íàïðÿìóþ. Åñëè âû íåäàâíî îáíîâëÿëè ôîðóì, âû äîëæíû îáíîâèòü âñå ñîîòâåòñòâóþùèå ôàéëû.";
|
||||
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -44,7 +36,7 @@ class ad_skin_diff
|
||||
* @var string
|
||||
*/
|
||||
var $perm_main = "lookandfeel";
|
||||
|
||||
|
||||
/**
|
||||
* Section title name
|
||||
*
|
||||
@@ -55,65 +47,65 @@ class ad_skin_diff
|
||||
|
||||
function auto_run()
|
||||
{
|
||||
$this->ipsclass->admin->page_detail = "Ñðàâíèòü âàø ñòèëü.";
|
||||
$this->ipsclass->admin->page_title = "HTML Ñðàâíåíèå ñòèëåé";
|
||||
$this->ipsclass->admin->nav[] = array( $this->ipsclass->form_code, 'Ñðàâíåíèå' );
|
||||
$this->ipsclass->admin->page_detail = "Compare your template set differences.";
|
||||
$this->ipsclass->admin->page_title = "Skin Template HTML Differences";
|
||||
$this->ipsclass->admin->nav[] = array( $this->ipsclass->form_code, 'Skin Differences Home' );
|
||||
|
||||
//-----------------------------------------
|
||||
// LOAD HTML
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->html = $this->ipsclass->acp_load_template('cp_skin_lookandfeel');
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// What to do?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
switch($this->ipsclass->input['code'])
|
||||
{
|
||||
case 'skin_diff':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':rundiff' );
|
||||
$this->skin_differences_start();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_process':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':rundiff' );
|
||||
$this->skin_differences_process();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_view':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':rundiff' );
|
||||
$this->skin_differences_view();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_export':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':export' );
|
||||
$this->skin_differences_export();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_view_diff':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':rundiff' );
|
||||
$this->skin_differences_view_diff();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_from_skin':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':rundiff' );
|
||||
$this->skin_differences_start_from_skin();
|
||||
break;
|
||||
|
||||
|
||||
case 'skin_diff_remove':
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':remove' );
|
||||
$this->skin_differences_remove();
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
default:
|
||||
$this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':' );
|
||||
$this->skin_differences_list();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [VIEW]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -127,47 +119,47 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_session_id = intval( $this->ipsclass->input['diff_session_id'] );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get current session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$current_session = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'template_diff_session', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
if ( ! $current_session['diff_session_id'] )
|
||||
{
|
||||
$this->ipsclass->admin->error("Íåâîçìîæíî ïîëó÷èòü òåêóùóþ ñåññèþ øàáëîíà.");
|
||||
$this->ipsclass->admin->error("Could not get the current template compare session.");
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Delete from IMPORT
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'templates_diff_import', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Delete from SESSION
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'template_diff_session', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Delete from CHANGES
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'template_diff_changes', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Done...
|
||||
//-----------------------------------------
|
||||
|
||||
$this->ipsclass->main_msg = "Îò÷åò î ðàçëè÷èÿõ óäàëåí";
|
||||
|
||||
|
||||
$this->ipsclass->main_msg = "Differences report removed";
|
||||
|
||||
$this->skin_differences_list();
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [EXPORT]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -181,58 +173,58 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_session_id = intval( $this->ipsclass->input['diff_session_id'] );
|
||||
$content = '';
|
||||
$missing = 0;
|
||||
$changed = 0;
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get current session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$current_session = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'template_diff_session', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
if ( ! $current_session['diff_session_id'] )
|
||||
{
|
||||
$this->ipsclass->admin->error("Íåâîçìîæíî ïîëó÷èòü òåêóùóþ ñåññèþ øàáëîíà");
|
||||
$this->ipsclass->admin->error("Could not get the current template compare session.");
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get data
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => '*',
|
||||
'from' => 'template_diff_changes',
|
||||
'where' => 'diff_session_id='.$diff_session_id,
|
||||
'order' => 'diff_change_func_group ASC, diff_change_func_name ASC' ) );
|
||||
|
||||
|
||||
|
||||
|
||||
$this->ipsclass->DB->exec_query();
|
||||
|
||||
|
||||
while( $row = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Culmulate
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$row['diff_change_type'] ? $changed++ : $missing++;
|
||||
|
||||
|
||||
$row['diff_change_content'] = str_replace( "\n", "<br>", $row['diff_change_content']);
|
||||
$row['diff_change_content'] = str_replace( "><", ">\n<" ,$row['diff_change_content']);
|
||||
$row['diff_change_content'] = preg_replace( "#(?<!(\<del|\<ins)) {1}(?!:style)#i", " " ,$row['diff_change_content']);
|
||||
|
||||
|
||||
|
||||
$content .= $this->html->skin_diff_export_row( $row['diff_change_func_name'], $row['diff_change_func_group'], $row['diff_change_content'] );
|
||||
}
|
||||
|
||||
|
||||
$content = $this->html->skin_diff_export_overview( $content, $missing, $changed, $current_session['diff_session_title'], gmdate( 'r' ) );
|
||||
|
||||
|
||||
$this->ipsclass->admin->show_download( $content, 'ipb-difference-export.html', "unknown/unknown", 0 );
|
||||
|
||||
|
||||
$this->ipsclass->admin->output();
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [VIEW]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -246,33 +238,33 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_key = $this->ipsclass->input['diff_key'];
|
||||
|
||||
//-----------------------------------------
|
||||
// Get data
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_row = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*',
|
||||
'from' => 'template_diff_changes',
|
||||
'where' => "diff_change_key='".$diff_key."'" ) );
|
||||
|
||||
|
||||
|
||||
|
||||
if ( ! $diff_row['diff_change_key'] )
|
||||
{
|
||||
$this->ipsclass->admin->error( "Êëþ÷ íå íàéäåí" );
|
||||
$this->ipsclass->admin->error( "No key found" );
|
||||
}
|
||||
|
||||
|
||||
$diff_row['diff_change_content'] = str_replace( "\n", "<br>", $diff_row['diff_change_content']);
|
||||
$diff_row['diff_change_content'] = str_replace( "><", ">\n<" ,$diff_row['diff_change_content']);
|
||||
$diff_row['diff_change_content'] = preg_replace( "#(?<!(\<del|\<ins)) {1}(?!:style)#i", " " ,$diff_row['diff_change_content']);
|
||||
|
||||
|
||||
$this->ipsclass->html = $this->html->skin_diff_view_bit( $diff_row['diff_change_func_group'], $diff_row['diff_change_func_name'], $diff_row['diff_change_content'] );
|
||||
|
||||
|
||||
$this->ipsclass->admin->print_popup();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [VIEW]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -286,83 +278,83 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_session_id = intval( $this->ipsclass->input['diff_session_id'] );
|
||||
$content = '';
|
||||
$missing = 0;
|
||||
$changed = 0;
|
||||
$last_group = '';
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get current session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$current_session = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'template_diff_session', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
if ( ! $current_session['diff_session_id'] )
|
||||
{
|
||||
$this->ipsclass->admin->error("Íåâîçìîæíî ïîëó÷èòü òåêóùóþ ñåññèþ øàáëîíà.");
|
||||
$this->ipsclass->admin->error("Could not get the current template compare session.");
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get data
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => '*',
|
||||
'from' => 'template_diff_changes',
|
||||
'where' => 'diff_session_id='.$diff_session_id,
|
||||
'order' => 'diff_change_func_group ASC, diff_change_func_name ASC' ) );
|
||||
|
||||
|
||||
|
||||
|
||||
$this->ipsclass->DB->exec_query();
|
||||
|
||||
|
||||
while( $row = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Gen data
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$key = $diff_session_id.':'.$row['diff_change_func_group'].':'.$row['diff_change_func_name'];
|
||||
$size = $this->ipsclass->size_format( $this->ipsclass->math_strlen_to_bytes( strlen( $row['diff_change_content'] ) ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Diff type
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( ! $row['diff_change_type'] )
|
||||
{
|
||||
$diff_is = '<span style="color:red">Íîâîå</span>';
|
||||
$diff_is = '<span style="color:red">New</span>';
|
||||
$missing++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$diff_is = '<span style="color:green">Èçìåíåíî</span>';
|
||||
$diff_is = '<span style="color:green">Changed</span>';
|
||||
$changed++;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// New cat?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $last_group != $row['diff_change_func_group'] )
|
||||
{
|
||||
$last_group = $row['diff_change_func_group'];
|
||||
|
||||
|
||||
$content .= $this->html->skin_diff_row_newgroup( $row['diff_change_func_group'] );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Culmulate
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content .= $this->html->skin_diff_row( $row['diff_change_func_name'], $size, $key, $diff_is, str_replace( ':', '_', $key ) );
|
||||
}
|
||||
|
||||
|
||||
$this->ipsclass->html = $this->html->skin_diff_overview( $content, $missing, $changed );
|
||||
|
||||
|
||||
$this->ipsclass->admin->output();
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences: From 1 skin to another
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -376,57 +368,57 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content = "";
|
||||
$skin_id = intval( $this->ipsclass->input['skin_id'] );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Check...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( ! $skin_id )
|
||||
{
|
||||
$this->ipsclass->admin->error( "No skin ID passed!" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get skin set...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$skin_set = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'skin_sets', 'where' => 'set_skin_set_id='.$skin_id ) );
|
||||
|
||||
|
||||
if ( ! $skin_set['set_skin_set_id'] )
|
||||
{
|
||||
$this->ipsclass->admin->error( "Íå âûáðàí ID ñòèëÿ (çàíîâî!)" );
|
||||
$this->ipsclass->admin->error( "No skin ID passed (again)!" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get number template bits
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$total_bits = $this->ipsclass->DB->build_and_exec_query( array( 'select' => 'COUNT(*) as count', 'from' => 'skin_templates', 'where' => 'set_id=1' ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Create session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->do_insert( 'template_diff_session', array( 'diff_session_togo' => intval( $total_bits['count'] ),
|
||||
'diff_session_done' => 0,
|
||||
'diff_session_title' => "Ñðàâíåíèå ñî ñòèëåì: ".$skin_set['set_name'],
|
||||
'diff_session_title' => "Comparison from skin set: ".$skin_set['set_name'],
|
||||
'diff_session_updated' => time(),
|
||||
'diff_session_ignore_missing' => 1 ) );
|
||||
|
||||
|
||||
$diff_session_id = $this->ipsclass->DB->get_insert_id();
|
||||
|
||||
|
||||
$seen_templates = array();
|
||||
|
||||
//-----------------------------------------
|
||||
// Grab template bits from DB
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'skin_templates', 'where' => 'set_id='.$skin_id ) );
|
||||
$outer = $this->ipsclass->DB->exec_query();
|
||||
|
||||
|
||||
while( $entry = $this->ipsclass->DB->fetch_row( $outer ) )
|
||||
{
|
||||
$check = $this->ipsclass->DB->build_and_exec_query( array( 'select' => 'diff_key', 'from' => 'templates_diff_import', 'where' => "diff_key='".$diff_session_id.':'.$entry[ 'group_name' ].':'.$entry[ 'func_name' ]."'" ) );
|
||||
@@ -449,14 +441,14 @@ class ad_skin_diff
|
||||
'diff_func_data' => $entry[ 'func_data' ],
|
||||
'diff_func_name' => $entry[ 'func_name' ],
|
||||
'diff_func_content' => $entry[ 'section_content' ],
|
||||
'diff_session_id' => $diff_session_id ), 'diff_key='.$diff_session_id.':'.$entry[ 'group_name' ].':'.$entry[ 'func_name' ] );
|
||||
'diff_session_id' => $diff_session_id ), "diff_key='" . $diff_session_id.':'.$entry[ 'group_name' ].':'.$entry[ 'func_name' ] . "'" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->ipsclass->admin->output_multiple_redirect_init( $this->ipsclass->base_url.'&'.$this->ipsclass->form_code_js."&code=skin_diff_process&diff_session_id={$diff_session_id}&pergo=10" );
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -470,146 +462,146 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content = "";
|
||||
$seen = array();
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Check...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( ! $this->ipsclass->input['diff_session_title'] )
|
||||
{
|
||||
$this->ipsclass->admin->error( "Âû äîëæíû ââåñòè íàçâàíèå" );
|
||||
$this->ipsclass->admin->error( "You must enter a title" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get uploaded file
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $_FILES['FILE_UPLOAD']['name'] == "" or ! $_FILES['FILE_UPLOAD']['name'] or ($_FILES['FILE_UPLOAD']['name'] == "none") )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Ut-oh....
|
||||
//-----------------------------------------
|
||||
|
||||
$this->ipsclass->admin->error( "Ôàéë íå áûë çàãðóæåí" );
|
||||
|
||||
$this->ipsclass->admin->error( "No file was uploaded" );
|
||||
}
|
||||
else
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Get uploaded schtuff
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$tmp_name = $_FILES['FILE_UPLOAD']['name'];
|
||||
$tmp_name = preg_replace( "#\.gz$#", "", $tmp_name );
|
||||
|
||||
|
||||
$content = $this->ipsclass->admin->import_xml( $tmp_name );
|
||||
}
|
||||
|
||||
|
||||
if( !$content )
|
||||
{
|
||||
$this->ipsclass->admin->error( "There was no content in the file to process" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get number missing template bits
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$total_bits = $this->ipsclass->DB->build_and_exec_query( array( 'select' => 'COUNT(*) as count', 'from' => 'skin_templates', 'where' => 'set_id=1' ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Create session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->allow_sub_select = 1;
|
||||
|
||||
|
||||
$this->ipsclass->DB->do_insert( 'template_diff_session', array( 'diff_session_togo' => intval( $total_bits['count'] ),
|
||||
'diff_session_done' => 0,
|
||||
'diff_session_title' => $this->ipsclass->input['diff_session_title'],
|
||||
'diff_session_updated' => time(),
|
||||
'diff_session_ignore_missing' => intval( $this->ipsclass->input['diff_session_ignore_missing'] ) ) );
|
||||
|
||||
|
||||
$diff_session_id = $this->ipsclass->DB->get_insert_id();
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get xml mah-do-dah
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
require_once( KERNEL_PATH.'class_xml.php' );
|
||||
$xml = new class_xml();
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Check to see if its an archive...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( preg_match( "#<xmlarchive generator=\"IPB\"#si", $content ) )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// It is an archive... expand...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
require( KERNEL_PATH.'class_xmlarchive.php' );
|
||||
$xmlarchive = new class_xmlarchive( KERNEL_PATH );
|
||||
|
||||
|
||||
$xmlarchive->xml_read_archive_data( $content );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get the XML documents
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$import_xml = array();
|
||||
|
||||
|
||||
foreach( $xmlarchive->file_array as $f )
|
||||
{
|
||||
$import_xml[ $f['filename'] ] = $f['content'];
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Import Templates
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content = $import_xml['ipb_templates.xml'];
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Parse document
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$xml->xml_parse_document( $content );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Import template bits...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( ! is_array( $xml->xml_array['templateexport']['templategroup']['template'] ) )
|
||||
{
|
||||
$this->ipsclass->admin->error("Îøèáêà ñ ipb_templates.xml - ïðîäîëæèòü íåâîçìîæíî");
|
||||
$this->ipsclass->admin->error("Error with ipb_templates.xml - could not process XML properly");
|
||||
}
|
||||
|
||||
|
||||
foreach( $xml->xml_array['templateexport']['templategroup']['template'] as $entry )
|
||||
{
|
||||
$diff_key = $diff_session_id.':'.$entry[ 'group_name' ]['VALUE'].':'.$entry[ 'func_name' ]['VALUE'];
|
||||
|
||||
|
||||
if ( ! $seen[ $diff_key ] )
|
||||
{
|
||||
$this->ipsclass->DB->allow_sub_select = 1;
|
||||
|
||||
|
||||
$this->ipsclass->DB->do_insert( 'templates_diff_import', array( 'diff_key' => $diff_session_id.':'.$entry[ 'group_name' ]['VALUE'].':'.$entry[ 'func_name' ]['VALUE'],
|
||||
'diff_func_group' => $entry[ 'group_name' ]['VALUE'],
|
||||
'diff_func_data' => $entry[ 'func_data' ]['VALUE'],
|
||||
'diff_func_name' => $entry[ 'func_name' ]['VALUE'],
|
||||
'diff_func_content' => $entry[ 'section_content' ]['VALUE'],
|
||||
'diff_session_id' => $diff_session_id ) );
|
||||
|
||||
|
||||
$seen[ $diff_key ] = 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$this->ipsclass->admin->output_multiple_redirect_init( $this->ipsclass->base_url.'&'.$this->ipsclass->form_code_js."&code=skin_diff_process&diff_session_id={$diff_session_id}&pergo=10" );
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [PROCESS]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -623,43 +615,43 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// INIT
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$pergo = intval( $this->ipsclass->input['pergo'] ) ? intval( $this->ipsclass->input['pergo'] ) : 10;
|
||||
$diff_session_id = intval( $this->ipsclass->input['diff_session_id'] );
|
||||
$done = 0;
|
||||
$img = '<img src="'.$this->ipsclass->skin_acp_url.'/images/aff_tick_small.png" border="0" alt="-" /> ';
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get current session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$current_session = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*', 'from' => 'template_diff_session', 'where' => 'diff_session_id='.$diff_session_id ) );
|
||||
|
||||
|
||||
if ( ! $current_session['diff_session_id'] )
|
||||
{
|
||||
$this->ipsclass->admin->error("Íåâîçìîæíî ïîëó÷èòü òåêóùóþ ñåññèþ øàáëîíà.");
|
||||
$this->ipsclass->admin->error("Could not get the current template compare session.");
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get Diff library
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
require_once( KERNEL_PATH . 'class_difference.php' );
|
||||
$class_difference = new class_difference();
|
||||
$class_difference->method = 'PHP';
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get template bits to check
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => '*',
|
||||
'from' => 'skin_templates',
|
||||
'where' => 'set_id=1',
|
||||
'order' => 'suid ASC',
|
||||
'limit' => array( intval( $current_session['diff_session_done'] ), intval( $pergo ) ) ) );
|
||||
|
||||
|
||||
$outer = $this->ipsclass->DB->exec_query();
|
||||
|
||||
|
||||
if ( ! $this->ipsclass->DB->get_num_rows( $outer ) )
|
||||
{
|
||||
$done = 1;
|
||||
@@ -671,34 +663,34 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Get corresponding row from diff table
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_row = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*',
|
||||
'from' => 'templates_diff_import',
|
||||
'where' => "diff_func_group='{$row['group_name']}' AND diff_func_name='{$row['func_name']}' AND diff_session_id=".$diff_session_id ) );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Got anything?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $diff_row['diff_key'] )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Get difference
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$difference = $class_difference->get_differences( $row['section_content'], $diff_row['diff_func_content'] );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Got any differences?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $class_difference->diff_found )
|
||||
{
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get corresponding row from diff table
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$diff_check = $this->ipsclass->DB->build_and_exec_query( array( 'select' => 'diff_change_key',
|
||||
'from' => 'template_diff_changes',
|
||||
'where' => "diff_change_key='" . $diff_session_id.':'.$row['group_name'].':'.$row['func_name'] . "'" ) );
|
||||
@@ -735,36 +727,36 @@ class ad_skin_diff
|
||||
'diff_session_id' => $diff_session_id ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Increment
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$current_session['diff_session_done']++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Update current session
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->do_update( 'template_diff_session', array( 'diff_session_done' => intval( $current_session['diff_session_done'] ) ), 'diff_session_id='.$diff_session_id );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Done or more?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( ! $done )
|
||||
{
|
||||
$this->ipsclass->admin->output_multiple_redirect_hit( $this->ipsclass->base_url.'&'.$this->ipsclass->form_code_js."&code=skin_diff_process&diff_session_id={$diff_session_id}&pergo=".$pergo,
|
||||
$img.' '.$current_session['diff_session_done'].' èç '. $current_session['diff_session_togo'] .' øàáëîíîâ îáðàáîòàíî...' );
|
||||
$img.' '.$current_session['diff_session_done'].' of '. $current_session['diff_session_togo'] .' template bits processed...' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ipsclass->admin->output_multiple_redirect_done( "<a href='{$this->ipsclass->base_url}&{$this->ipsclass->form_code}&code=skin_diff_view&diff_session_id={$diff_session_id}' target='_top'>Ðåçóëüòàòû</a>");
|
||||
$this->ipsclass->admin->output_multiple_redirect_done( "<a href='{$this->ipsclass->base_url}&{$this->ipsclass->form_code}&code=skin_diff_view&diff_session_id={$diff_session_id}' target='_top'>View the differences results</a>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Compare skin differences [START]
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -778,40 +770,40 @@ class ad_skin_diff
|
||||
//-----------------------------------------
|
||||
// Init
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content = '';
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Get sessions
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => '*',
|
||||
'from' => 'template_diff_session',
|
||||
'order' => 'diff_session_updated DESC' ) );
|
||||
|
||||
|
||||
|
||||
|
||||
$this->ipsclass->DB->exec_query();
|
||||
|
||||
|
||||
while( $row = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// Gen data
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$row['_date'] = $this->ipsclass->get_date( $row['diff_session_updated'], 'TINY' );
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Culmulate
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
$content .= $this->html->skin_diff_main_row( $row );
|
||||
}
|
||||
|
||||
|
||||
$this->ipsclass->html = $this->html->skin_diff_main_overview( $content );
|
||||
|
||||
|
||||
$this->ipsclass->admin->output();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user