Ignore:
Timestamp:
Jun 24, 2009, 10:30:42 PM (16 years ago)
Author:
maron
Message:

Import textů z dbc souborů, úprava importu: # změněn text + přidán text , nezměněn text ovlivněn sloupec VersionEnd . neovlivněn text
Přidání sloupců pro indexování dbc souborů u tabulky verzí hry
Možnos vypráznění logu

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/import_dbc.php

    r214 r216  
    11<?php
     2/*
     3DELETE FROM `gametips` WHERE ID > 266;
     4DELETE FROM `spell` WHERE ID > 43672;
     5UPDATE `gametips` SET VersionStart = 8606,VersionEnd = 8606;
     6UPDATE `spell` SET VersionStart = 8606,VersionEnd = 8606;
     7DELETE FROM `log` WHERE Type = 11;
     8*/ 
     9 
    210
    3 function ImportDBC()
     11
     12function ImportDBC($import_version)
    413{
    514  global $Database, $TranslationTree, $Config;
     15  $BuildNumber = GetBuildNumber($import_version);
    616
    717  echo('Načítání textů z DBC souborů...');
     
    1222      echo('<br />'.$Group['Name'].'<br />');   
    1323          $DBCFile = new DBCFile();
    14           $DBCFile->OpenFile('../source/'.$Config['Web']['GameVersion'].'/dbc/'.$Group['DBCFileName'].'.dbc', $Group['DBCColumns']);
     24          $DBCFile->OpenFile('../source/'.$import_version.'/dbc/'.$Group['DBCFileName'].'.dbc', GetDBCColumns($import_version,$Group['DBCFileName']));
    1525          $ItemCount = $DBCFile->GetRecordCount();
    1626          $NewCount = 0;
     
    1828          for($i = 0; $i < $ItemCount; $i++)
    1929      {
     30        foreach($Group['Items'] as $GroupItem)
     31        {
     32          $Value[$GroupItem['Column']] = addslashes($DBCFile->GetString($i, GetDBCColumnIndex($import_version,$Group['DBCFileName'],$GroupItem['Column'])));
     33        }
     34               
     35        $Columns = '';
     36        foreach($Group['Items'] as $GroupItem)
     37        {
     38          $Columns .= ', '.$GroupItem['Column'].' ';
     39        }
     40          $Columns = substr($Columns, 1);
     41               
    2042        $ItemId = $DBCFile->GetUint($i, 0); 
    21         $DbResult2 = $Database->SQLCommand('SELECT ID FROM '.$Group['TablePrefix'].' WHERE entry='.$ItemId.' AND Language=0');
     43        $DbResult2 = $Database->SQLCommand('SELECT VersionEnd, ID, entry, '.$Columns.' FROM '.$Group['TablePrefix'].' WHERE entry='.$ItemId.' AND Language=0 ORDER BY VersionStart DESC LIMIT 1');
    2244        if(isset($DbResult2) and (mysql_num_rows($DbResult2) > 0))
    2345            {
    24                   $DbRow2 = mysql_fetch_assoc($DbResult2);
    25                   //echo($DbRow2['ID']);
    26                   $ColumnsValues = '';
    27               foreach($Group['Items'] as $GroupItem)
    28                   {
    29                 $ColumnsValues .= ', `'.$GroupItem['Column'].'`="'.addslashes($DBCFile->GetString($i, $GroupItem['DBCColumnIndex'])).'"';
    30                   }
    31                   $ColumnsValues = substr($ColumnsValues, 2);
    32                   echo('. '); //'UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']."<br>");
    33                   //print_r($DbRow2);
    34                   $Database->SQLCommand('UPDATE `'.$Group['TablePrefix'].'` SET '.$ColumnsValues.' WHERE ID='.$DbRow2['ID']);
     46            // Update existed text
     47            $DbRow2 = mysql_fetch_assoc($DbResult2);
     48            if(HaveSameText($Group, $DbRow2, $Value))
     49            {
     50                          if ($DbRow2['VersionEnd'] <> $BuildNumber) {
     51                $Database->SQLCommand('UPDATE `'.$Group['TablePrefix'].'` SET VersionEnd = "'.$BuildNumber.'" WHERE ID='.$DbRow2['ID']);
     52                            echo(', ');
     53                          } else
     54                            echo('. ');
     55            } else
     56            {       
     57              $Columns = 'entry, language, VersionStart, VersionEnd';
     58              $Values = $DbRow2['entry'].', 0, '.$BuildNumber.', '.$BuildNumber;
     59              foreach($Group['Items'] as $GroupItem)
     60              {
     61                $Columns .= ', `'.$GroupItem['Column'].'`';
     62                $Values .= ', "'.$Value[$GroupItem['Column']].'"';
     63              }
     64              $Database->SQLCommand('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')');
     65              echo('# ');
     66              $NewCount++;
     67              WriteLog('Text <a href="form.php?group='.$Group['Id'].'&amp;ID='.$DbRow2['ID'].'">'.$DbRow2['ID'].'</a> ('.$DbRow2['entry'].') ze skupiny '.$Group['Name'].' byl v nové verzi '.$import_version.' změněn.', 11);
     68            }       
     69                       
    3570            } else
    36             {
    37                   $Columns = 'entry, language';
    38                   $Values = $ItemId.', 0';
    39               foreach($Group['Items'] as $GroupItem)
    40                   {
    41                 $Columns .= ', `'.$GroupItem['Column'].'`';
    42                     $Values .= ', "'.addslashes($DBCFile->GetString($i, $GroupItem['DBCColumnIndex'])).'"';
    43                   }
    44                   //$Columns = substr($Columns, 2);
    45                   //$Values = substr($Values, 2);
    46                   $Database->SQLCommand('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')');
    47                   echo('# ');
    48                   //echo('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')'."<br>");
    49               $NewCount++;
     71            {           
     72            // Insert new text
     73            $Columns = 'entry, language, VersionStart, VersionEnd';
     74            $Values = $ItemId.', 0, '.$BuildNumber.', '.$BuildNumber;
     75            foreach($Group['Items'] as $GroupItem)
     76            {
     77              $Columns .= ', `'.$GroupItem['Column'].'`';
     78              $Values .= ', "'.$Value[$GroupItem['Column']].'"';
     79            }
     80            $Database->SQLCommand('INSERT `'.$Group['TablePrefix'].'` ('.$Columns.') VALUES ('.$Values.')');
     81            echo('+ ');
     82            $NewCount++;
     83            WriteLog('Text <a href="form.php?group='.$Group['Id'].'&amp;ID='.mysql_insert_id().'">'.$DbRow2['ID'].'</a> ('.$ItemId.') ze skupiny '.$Group['Name'].' byl v nové verzi '.$import_version.' přidán.', 11);
     84               
    5085            }
    5186            $Count++;
Note: See TracChangeset for help on using the changeset viewer.