Changeset 738 for trunk/Common


Ignore:
Timestamp:
Apr 14, 2015, 10:20:16 PM (10 years ago)
Author:
chronos
Message:
  • Removed: Spaces on end of line.
  • Modified: Tabs converted to spaces.
Location:
trunk/Common
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/AppModule.php

    r731 r738  
    11<?php
    22
    3 /* This implementation will not support installation from remote source. Just 
     3/* This implementation will not support installation from remote source. Just
    44 * installation of already presented modules mainly to persistence preparation.
    55 */
     
    77class ModuleType
    88{
    9         const System = 0;
    10         const Normal = 1;
    11         const Application = 2;
     9  const System = 0;
     10  const Normal = 1;
     11  const Application = 2;
    1212}
    1313
     
    4040  var $Title;
    4141  var $Version;
    42   var $License; 
     42  var $License;
    4343  var $Creator;
    4444  var $HomePage;
     
    5858  var $Manager;
    5959  var $OnChange;
    60  
     60
    6161  function __construct(System $System)
    6262  {
     
    7474    $this->Type = ModuleType::Normal;
    7575  }
    76  
     76
    7777  function Install()
    7878  {
     
    8282    $this->Manager->Perform($List, array(ModuleAction::Install), array(ModuleCondition::NotInstalled));
    8383    $this->DoInstall();
    84         $this->Installed = true;
    85         $this->InstalledVersion = $this->Version;
    86         $this->Manager->Modules[$this->Name] = $this;
    87   }
    88  
     84    $this->Installed = true;
     85    $this->InstalledVersion = $this->Version;
     86    $this->Manager->Modules[$this->Name] = $this;
     87  }
     88
    8989  function Uninstall()
    9090  {
     
    9797    $this->DoUninstall();
    9898  }
    99  
     99
    100100  function Upgrade()
    101101  {
     
    106106    $this->DoUpgrade();
    107107  }
    108  
     108
    109109  function Reinstall()
    110110  {
     
    113113    $this->Install();
    114114  }
    115  
     115
    116116  function Start()
    117117  {
    118118    if($this->Running) return;
    119     if(!$this->Installed) return; 
     119    if(!$this->Installed) return;
    120120    $List = array();
    121121    $this->Manager->EnumDependenciesCascade($this, $List, array(ModuleCondition::NotRunning));
    122122    $this->Manager->Perform($List, array(ModuleAction::Start), array(ModuleCondition::NotRunning));
    123123    $this->DoStart();
    124         $this->Running = true;
    125   }
    126  
     124    $this->Running = true;
     125  }
     126
    127127  function Stop()
    128128  {
    129         if(!$this->Running) return;
     129    if(!$this->Running) return;
    130130    $this->Running = false;
    131         $List = array();
    132         $this->Manager->EnumSuperiorDependenciesCascade($this, $List, array(ModuleCondition::Running));
     131    $List = array();
     132    $this->Manager->EnumSuperiorDependenciesCascade($this, $List, array(ModuleCondition::Running));
    133133    $this->Manager->Perform($List, array(ModuleAction::Stop), array(ModuleCondition::Running));
    134         $this->DoStop(); 
    135   }   
    136  
     134    $this->DoStop();
     135  }
     136
    137137  function Restart()
    138138  {
     
    140140    $this->Start();
    141141  }
    142  
     142
    143143  function Enable()
    144144  {
     
    150150    $this->Enabled = true;
    151151  }
    152  
     152
    153153  function Disable()
    154154  {
     
    160160    $this->Manager->Perform($List, array(ModuleAction::Disable), array(ModuleCondition::Enabled));
    161161  }
    162  
     162
    163163  protected function DoStart()
    164164  {
    165165  }
    166  
     166
    167167  protected function DoStop()
    168   {   
     168  {
    169169  }
    170170
     
    172172  {
    173173  }
    174  
     174
    175175  protected function DoUninstall()
    176176  {
     
    179179
    180180/* Manage installed modules */
    181 class AppModuleManager 
     181class AppModuleManager
    182182{
    183183  var $Modules;
     
    185185  var $FileName;
    186186  var $OnLoadModules;
    187  
     187
    188188  function __construct(System $System)
    189189  {
    190190    $this->Modules = array();
    191191    $this->System = &$System;
    192     $this->FileName = 'Config/Modules.php';     
    193   }
    194  
     192    $this->FileName = 'Config/Modules.php';
     193  }
     194
    195195  function Perform($List, $Actions, $Conditions = array(ModuleCondition::All))
    196196  {
     
    217217    }
    218218  }
    219  
     219
    220220  function EnumDependenciesCascade($Module, &$List, $Conditions = array(ModuleCondition::All))
    221221  {
     
    236236    }
    237237  }
    238  
     238
    239239  function EnumSuperiorDependenciesCascade($Module, &$List, $Conditions = array(ModuleCondition::All))
    240240  {
    241241    foreach($this->Modules as $RefModule)
    242242    {
    243       if(in_array($Module->Name, $RefModule->Dependencies) and 
     243      if(in_array($Module->Name, $RefModule->Dependencies) and
    244244          (in_array(ModuleCondition::All, $Conditions) or
    245245          ($Module->Running and in_array(ModuleCondition::Running, $Conditions)) or
     
    255255    }
    256256  }
    257  
     257
    258258  function Start()
    259259  {
     
    262262    $this->StartEnabled();
    263263  }
    264  
     264
    265265  function StartAll()
    266266  {
    267267    $this->Perform($this->Modules, array(ModuleAction::Start));
    268268  }
    269  
     269
    270270  function StartEnabled()
    271271  {
     
    277277    $this->Perform($this->Modules, array(ModuleAction::Stop));
    278278  }
    279  
     279
    280280  function UninstallAll()
    281281  {
     
    283283    $this->SaveState();
    284284  }
    285  
     285
    286286  function ModulePresent($Name)
    287287  {
    288288    return(array_key_exists($Name, $this->Modules));
    289289  }
    290  
     290
    291291  /* @return Module */
    292292  function SearchModuleById($Id)
     
    299299    return('');
    300300  }
    301  
     301
    302302  function LoadState()
    303303  {
    304         $ConfigModules = array();
     304    $ConfigModules = array();
    305305    include($this->FileName);
    306306    foreach($ConfigModules as $Mod)
     
    312312        $this->Modules[$Mod['Name']]->Installed = $Mod['Installed'];
    313313        $this->Modules[$Mod['Name']]->InstalledVersion = $Mod['Version'];
    314       } 
    315     }
    316   }
    317  
     314      }
     315    }
     316  }
     317
    318318  function SaveState()
    319319  {
     
    321321    foreach($this->Modules as $Module)
    322322    {
    323       $Data[] = array('Name' => $Module->Name, 'Enabled' => $Module->Enabled, 
     323      $Data[] = array('Name' => $Module->Name, 'Enabled' => $Module->Enabled,
    324324        'Version' => $Module->Version, 'Installed' => $Module->Installed);
    325325    }
    326326    file_put_contents($this->FileName, "<?php \n\n\$ConfigModules = ".var_export($Data, true).";\n");
    327327  }
    328  
     328
    329329  function RegisterModule(AppModule $Module)
    330330  {
     
    333333    $Module->OnChange = &$this->OnModuleChange;
    334334  }
    335  
     335
    336336  function UnregisterModule(AppModule $Module)
    337337  {
    338338    unset($this->Modules[array_search($Module, $this->Modules)]);
    339339  }
    340  
     340
    341341  function LoadModulesFromDir($Directory)
    342342  {
    343         $List = scandir($Directory);     
     343    $List = scandir($Directory);
    344344    foreach($List as $Item)
    345345    {
     
    352352    }
    353353  }
    354  
     354
    355355  function LoadModules()
    356356  {
    357         if(method_exists($this->OnLoadModules[0], $this->OnLoadModules[1]))
     357    if(method_exists($this->OnLoadModules[0], $this->OnLoadModules[1]))
    358358      $this->OnLoadModules();
    359359    else $this->LoadModulesFromDir(dirname(__FILE__).'/../Modules');
  • trunk/Common/Application.php

    r578 r738  
    33class Application
    44{
    5         var $Name;
    6         var $System;
    7        
    8         function Run()
    9         {
    10                
    11         }
     5  var $Name;
     6  var $System;
     7
     8  function Run()
     9  {
     10
     11  }
    1212}
  • trunk/Common/Base.php

    r565 r738  
    1111  {
    1212    $this->System = &$System;
    13     $this->Database = &$System->Database;   
     13    $this->Database = &$System->Database;
    1414  }
    1515}
     
    1717class Model extends Base
    1818{
    19  
     19
    2020}
    2121
    2222class View extends Base
    2323{
    24  
     24
    2525}
    2626
    2727class Controller extends Base
    2828{
    29  
     29
    3030}
  • trunk/Common/Config.php

    r593 r738  
    11<?php
    22
    3 class Config 
     3class Config
    44{
    55  var $Data;
    6  
     6
    77  function __construct()
    88  {
    9         $this->Data = array();
     9    $this->Data = array();
    1010  }
    11  
     11
    1212  function ReadValue($Name)
    1313  {
    14         if(!is_array($Name)) $Name = explode('/', $Name);
    15         $Last = array_pop($Name);
    16         $Data = &$this->Data;
    17         foreach($Name as $Item)
    18         {
    19                 $Data = &$Data[$Item];
    20         }
    21     return($Data[$Last]); 
     14    if(!is_array($Name)) $Name = explode('/', $Name);
     15    $Last = array_pop($Name);
     16    $Data = &$this->Data;
     17    foreach($Name as $Item)
     18    {
     19      $Data = &$Data[$Item];
     20    }
     21    return($Data[$Last]);
    2222  }
    23  
     23
    2424  function WriteValue($Name, $Value)
    2525  {
    26         if(!is_array($Name)) $Name = explode('/', $Name);
    27         $Last = array_pop($Name);
    28         $Data = &$this->Data;
    29         foreach($Name as $Item)
    30         {
    31                 $Data = &$Data[$Item];
    32         }
     26    if(!is_array($Name)) $Name = explode('/', $Name);
     27    $Last = array_pop($Name);
     28    $Data = &$this->Data;
     29    foreach($Name as $Item)
     30    {
     31      $Data = &$Data[$Item];
     32    }
    3333    $Data[$Item] = $Value;
    3434  }
    35  
     35
    3636  function LoadFromFile($FileName)
    3737  {
    38         $ConfigData = array();
     38    $ConfigData = array();
    3939    include $FileName;
    4040    foreach($this->Data as $Index => $Item)
    4141    {
    42         if(array_key_exits($Index, $ConfigData))
     42      if(array_key_exits($Index, $ConfigData))
    4343        $this->Data[$Index] = $ConfigData[$Index];
    4444    }
    45   } 
    46  
     45  }
     46
    4747  function SaveToFile($FileName)
    4848  {
    4949    file_put_contents($FileName, "<?php \n\n\$ConfigData = ".var_export($this->Data, true).";\n");
    5050  }
    51  
     51
    5252  function GetAsArray()
    5353  {
    54         return($this->Data);
     54    return($this->Data);
    5555  }
    5656}
  • trunk/Common/Form/Form.php

    r737 r738  
    5050    {
    5151      if(!array_key_exists($Index, $this->Values) and isset($Item['Default']))
    52         $this->Values[$Index] = $Item['Default'];
     52        $this->Values[$Index] = $Item['Default'];
    5353    }
    5454  }
     
    6262  function GetValue($Index, $Event = 'OnView')
    6363  {
    64         $Item = $this->Definition['Items'][$Index];
    65         if(array_key_exists($Item['Type'], $this->FormManager->FormTypes))
    66         {
    67                 if(!array_key_exists($Item['Type'], $this->FormManager->Type->TypeDefinitionList))
    68                         $this->FormManager->Type->RegisterType($Item['Type'], '', $this->FormManager->FormTypes[$Item['Type']]);
    69                 if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Reference')
    70                         $UseType = 'OneToMany';
    71                 else if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Enumeration')
    72                         $UseType = 'Enumeration';
    73         } else $UseType = $Item['Type'];
    74         return $this->FormManager->Type->ExecuteTypeEvent($UseType, $Event,
     64    $Item = $this->Definition['Items'][$Index];
     65    if(array_key_exists($Item['Type'], $this->FormManager->FormTypes))
     66    {
     67      if(!array_key_exists($Item['Type'], $this->FormManager->Type->TypeDefinitionList))
     68        $this->FormManager->Type->RegisterType($Item['Type'], '', $this->FormManager->FormTypes[$Item['Type']]);
     69      if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Reference')
     70        $UseType = 'OneToMany';
     71      else if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Enumeration')
     72        $UseType = 'Enumeration';
     73    } else $UseType = $Item['Type'];
     74    return $this->FormManager->Type->ExecuteTypeEvent($UseType, $Event,
    7575        array('Value' => $this->Values[$Index], 'Name' => $Index,
    7676        'Type' => $Item['Type'], 'Values' => $this->Values,
     
    163163      if(array_key_exists($Index, $this->ValuesValidate) and
    164164        $this->ValuesValidate[$Index]) {
    165                 $Format = $this->FormManager->Type->ExecuteTypeEvent($UseType, 'GetValidationFormat', array());
    166                 if($Format != '') $Caption .= '<br/><small>'.$Format.'</small>';
    167                 $Caption = '<span style="color:red;">'.$Caption.'</span>';
     165          $Format = $this->FormManager->Type->ExecuteTypeEvent($UseType, 'GetValidationFormat', array());
     166          if($Format != '') $Caption .= '<br/><small>'.$Format.'</small>';
     167          $Caption = '<span style="color:red;">'.$Caption.'</span>';
    168168        }
    169169      if(!$this->FormManager->Type->IsHidden($UseType))
     
    305305    {
    306306      if(isset($Item['Default'])) {
    307         if(isset($Item['Null']) and ($Item['Null'] == true))
    308                 $Values[$Index] = null;
    309         else $Values[$Index] = $Item['Default'];
     307        if(isset($Item['Null']) and ($Item['Null'] == true))
     308          $Values[$Index] = null;
     309        else $Values[$Index] = $Item['Default'];
    310310      }
    311311    }
     
    342342        if(!$this->FormManager->Type->ExecuteTypeEvent($UseType, 'Validate',
    343343          $Parameters)) {
    344                 $this->ValuesValidate[$Index] = true;
    345                 $Valid = false;
     344            $this->ValuesValidate[$Index] = true;
     345            $Valid = false;
    346346          }
    347347    }
  • trunk/Common/Form/Types/Base.php

    r606 r738  
    4444    return(addslashes($Value));
    4545  }
    46  
     46
    4747  function OnFilterName($Item)
    4848  {
    49     if(array_key_exists('SQL', $Item) and ($Item['SQL'] != '')) 
     49    if(array_key_exists('SQL', $Item) and ($Item['SQL'] != ''))
    5050      $SQL = '('.$Item['SQL'].') AS ';
    5151      else $SQL = '';
     
    5555  function OnFilterNameQuery($Item)
    5656  {
    57     if(array_key_exists('SQL', $Item) and ($Item['SQL'] != '')) 
     57    if(array_key_exists('SQL', $Item) and ($Item['SQL'] != ''))
    5858      $Output = '('.$Item['SQL'].') AS `'.$Item['Name'].'`, ('.$Item['SQL'].') AS `'.$Item['Name'].'_Filter`';
    5959      else $Output = '`'.$Item['Name'].'`, `'.$Item['Name'].'` AS `'.$Item['Name'].'_Filter`';
    6060    return($Output);
    6161  }
    62  
     62
    6363  function Validate($Item)
    6464  {
    65         return(true);
     65    return(true);
    6666  }
    6767
    6868  function GetValidationFormat()
    6969  {
    70         return('');
     70    return('');
    7171  }
    7272}
  • trunk/Common/Form/Types/Boolean.php

    r548 r738  
    2121  function OnLoad($Item)
    2222  {
    23     if(array_key_exists($Item['Name'], $_POST)) return(1); 
     23    if(array_key_exists($Item['Name'], $_POST)) return(1);
    2424      else return(0);
    2525  }
  • trunk/Common/Form/Types/Enumeration.php

    r548 r738  
    1818    $Type = $this->FormManager->Type->GetTypeDefinition($Item['Type']);
    1919    $Output = '<select name="'.$Item['Name'].'">';
    20       if(array_key_exists('Null', $Item) and $Item['Null']) 
     20      if(array_key_exists('Null', $Item) and $Item['Null'])
    2121    {
    2222      if($Item['Value'] == NULL) $Selected = ' selected="1"'; else $Selected = '';
     
    3737    return($_POST[$Item['Name']]);
    3838  }
    39  
     39
    4040  function OnLoadDb($Item)
    4141  {
  • trunk/Common/Form/Types/Hidden.php

    r548 r738  
    1010    $this->Hidden = true;
    1111  }
    12  
     12
    1313  function OnView($Item)
    1414  {
  • trunk/Common/Form/Types/IPv4Address.php

    r606 r738  
    2121    return($_POST[$Item['Name']]);
    2222  }
    23  
     23
    2424  function Validate($Item)
    2525  {
    26         if($Item['Null'] and ($Item['Value'] == '')) return(true);
    27         return(filter_var($Item['Value'], FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)));
     26    if($Item['Null'] and ($Item['Value'] == '')) return(true);
     27    return(filter_var($Item['Value'], FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)));
    2828  }
    29  
     29
    3030  function GetValidationFormat()
    3131  {
    32         return('x.x.x.x kde x je hodnota 0..255');
    33   } 
     32    return('x.x.x.x kde x je hodnota 0..255');
     33  }
    3434}
  • trunk/Common/Form/Types/IPv6Address.php

    r606 r738  
    2121    return($_POST[$Item['Name']]);
    2222  }
    23  
     23
    2424  function Validate($Item)
    2525  {
    26         if($Item['Null'] and ($Item['Value'] == '')) return(true);
    27         return(filter_var($Item['Value'], FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV6)));
     26    if($Item['Null'] and ($Item['Value'] == '')) return(true);
     27    return(filter_var($Item['Value'], FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV6)));
    2828  }
    2929
    3030  function GetValidationFormat()
    3131  {
    32         return('xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx kde x je hexa hodnota 0..f');
     32    return('xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx kde x je hexa hodnota 0..f');
    3333  }
    3434}
  • trunk/Common/Form/Types/Image.php

    r631 r738  
    22
    33class TypeImage extends TypeString
    4 { 
     4{
    55  function OnView($Item)
    66  {
    77    global $System;
    8    
     8
    99    return('<img src="'.$System->Link('/images/favicons/'.$Item['Value']).'"/> '.$Item['Value']);
    1010  }
  • trunk/Common/Form/Types/Integer.php

    r611 r738  
    2323    return($_POST[$Item['Name']]);
    2424  }
    25  
     25
    2626  function Validate($Item)
    2727  {
    28         if($Item['Null'] and ($Item['Value'] == '')) return(true);
    29         return(preg_match('/^\-*[0-9\.]+$/', $Item['Value']));
     28    if($Item['Null'] and ($Item['Value'] == '')) return(true);
     29    return(preg_match('/^\-*[0-9\.]+$/', $Item['Value']));
    3030  }
    31  
     31
    3232  function GetValidationFormat()
    3333  {
    34         return('číselná hodnota');
    35   } 
     34    return('číselná hodnota');
     35  }
    3636}
  • trunk/Common/Form/Types/MacAddress.php

    r683 r738  
    3232  function Validate($Item)
    3333  {
    34         if($Item['Null'] and ($Item['Value'] == '')) return(true);
    35         return(preg_match('/^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$/', $Item['Value']));
     34    if($Item['Null'] and ($Item['Value'] == '')) return(true);
     35    return(preg_match('/^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$/', $Item['Value']));
    3636  }
    3737
    3838  function GetValidationFormat()
    3939  {
    40         return('XX:XX:XX:XX:XX:XX kde X je hexa hodnota 0..F');
     40    return('XX:XX:XX:XX:XX:XX kde X je hexa hodnota 0..F');
    4141  }
    4242}
  • trunk/Common/Form/Types/Password.php

    r548 r738  
    2727    $Result = $_POST[$Item['Name']];
    2828    /*
    29     if(!array_key_exists('SourceItemId', $Item)) $Result = sha1($_POST[$Item['Name']]);   
     29    if(!array_key_exists('SourceItemId', $Item)) $Result = sha1($_POST[$Item['Name']]);
    3030    else
    3131    {
     
    4141    return($Result);
    4242  }
    43  
     43
    4444  function OnSaveDb($Item)
    4545  {
    46     if($Item['Value'] == '') return(''); 
     46    if($Item['Value'] == '') return('');
    4747    else {
    4848      $PasswordHash = new PasswordHash();
     
    5050    }
    5151  }
    52    
     52
    5353  function OnLoadDb($Item)
    5454  {
  • trunk/Common/Form/Types/RandomHash.php

    r548 r738  
    1010    $this->Hidden = true;
    1111  }
    12  
     12
    1313  function OnView($Item)
    1414  {
  • trunk/Common/Global.php

    r729 r738  
    2525
    2626$MonthNames = array('', 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen',
    27         'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
     27  'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
    2828
    2929$UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');
     
    5858function HumanDate($Time)
    5959{
    60         if($Time != '') {
     60  if($Time != '') {
    6161    $Date = explode(' ', $Time);
    6262    $Parts = explode('-', $Date[0]);
    6363    if($Date != '0000-00-00') return(($Parts[2]*1).'.'.($Parts[1]*1).'.'.$Parts[0]);
    6464    else return('&nbsp;');
    65         } else return('&nbsp;');
     65  } else return('&nbsp;');
    6666}
    6767
     
    106106{
    107107  return(array(
    108         'Year' => date('Y', $Time),
    109         'Month' => date('n', $Time),
    110         'Day' => date('j', $Time),
    111         'Hour' => date('h', $Time),
    112         'Minute' => date('i', $Time),
    113         'Second' => date('s', $Time)
     108    'Year' => date('Y', $Time),
     109    'Month' => date('n', $Time),
     110    'Day' => date('j', $Time),
     111    'Hour' => date('h', $Time),
     112    'Minute' => date('i', $Time),
     113    'Second' => date('s', $Time)
    114114  ));
    115115}
     
    143143class Paging
    144144{
    145         var $TotalCount;
    146         var $ItemPerPage;
    147         var $Around;
    148         var $SQLLimit;
    149         var $Page;
    150 
    151         function __construct()
    152         {
    153                 global $System;
    154 
    155                 $this->ItemPerPage = $System->Config['Web']['ItemsPerPage'];
    156                 $this->Around = $System->Config['Web']['VisiblePagingItems'];
    157         }
     145  var $TotalCount;
     146  var $ItemPerPage;
     147  var $Around;
     148  var $SQLLimit;
     149  var $Page;
     150
     151  function __construct()
     152  {
     153    global $System;
     154
     155    $this->ItemPerPage = $System->Config['Web']['ItemsPerPage'];
     156    $this->Around = $System->Config['Web']['VisiblePagingItems'];
     157  }
    158158
    159159  function Show()
     
    356356function IsInternetAddr()
    357357{
    358         global $Config;
    359 
    360         $Result = true;
     358  global $Config;
     359
     360  $Result = true;
    361361  $RemoteAddr = GetRemoteAddress();
    362362  foreach($Config['Web']['IntranetSubnets'] as $Subnet)
     
    364364    if(substr($RemoteAddr, 0, strlen($Subnet)) == $Subnet)
    365365    {
    366         $Result = false;
    367         break;
     366      $Result = false;
     367      break;
    368368    }
    369369  }
     
    467467function pack_array($v, $a)
    468468{
    469         return call_user_func_array('pack', array_merge(array($v), (array)$a));
    470 }
    471 
     469  return call_user_func_array('pack', array_merge(array($v), (array)$a));
     470}
     471
  • trunk/Common/Image.php

    r548 r738  
    1212  var $FileName;
    1313  var $Color;
    14  
    15   function __construct() 
     14
     15  function __construct()
    1616  {
    1717    $this->Color = COLOR_BLACK;
     
    2727  var $Y;
    2828
    29   function __construct() 
     29  function __construct()
    3030  {
    3131    $this->Color = COLOR_BLACK;
     
    4040  var $Color;
    4141
    42   function __construct() 
     42  function __construct()
    4343  {
    4444    $this->Color = COLOR_BLACK;
     
    4747}
    4848
    49 class Image 
     49class Image
    5050{
    51   var $Image; 
     51  var $Image;
    5252  var $Type;
    5353  var $Font;
    5454  var $Pen;
    55  
     55
    5656  function __construct()
    5757  {
     
    5959    $this->Type = IMAGETYPE_PNG;
    6060    $this->Pen = new Pen();
    61     $this->Font = new Font();   
    62     $this->Brush = new Brush();   
     61    $this->Font = new Font();
     62    $this->Brush = new Brush();
    6363  }
    64  
     64
    6565  function SaveToFile($FileName)
    6666  {
    67     if($this->Type == IMAGETYPE_JPEG) 
     67    if($this->Type == IMAGETYPE_JPEG)
    6868    {
    6969      imagejpeg($this->Image, $FileName);
    7070    } else
    71     if($this->Type == IMAGETYPE_GIF) 
     71    if($this->Type == IMAGETYPE_GIF)
    7272    {
    7373      imagegif($this->Image, $FileName);
    7474    } else
    75     if($this->Type == IMAGETYPE_PNG) 
     75    if($this->Type == IMAGETYPE_PNG)
    7676    {
    7777      imagepng($this->Image, $FileName);
    7878    }
    7979  }
    80  
     80
    8181  function LoadFromFile($FileName)
    8282  {
    8383    $ImageInfo = getimagesize($FileName);
    8484    $this->Type = $ImageInfo[2];
    85     if($this->Type == IMAGETYPE_JPEG) 
     85    if($this->Type == IMAGETYPE_JPEG)
    8686    {
    8787      $this->Image = imagecreatefromjpeg($FileName);
    8888    } else
    89     if($this->Type == IMAGETYPE_GIF) 
     89    if($this->Type == IMAGETYPE_GIF)
    9090    {
    9191      $this->Image = imagecreatefromgif($FileName);
    9292    } else
    93     if( $this->Type == IMAGETYPE_PNG) 
     93    if( $this->Type == IMAGETYPE_PNG)
    9494    {
    9595      $this->Image = imagecreatefrompng($FileName);
    96     } 
     96    }
    9797  }
    98  
     98
    9999  function Output()
    100100  {
     
    103103
    104104  function SetSize($Width, $Height)
    105   {     
     105  {
    106106    $NewImage = imagecreatetruecolor($Width, $Height);
    107     imagecopy($NewImage, $this->Image, 0, 0, 0, 0, $this->GetWidth(), $this->GetHeight());     
     107    imagecopy($NewImage, $this->Image, 0, 0, 0, 0, $this->GetWidth(), $this->GetHeight());
    108108    imagedestroy($this->Image);
    109109    $this->Image = $NewImage;
    110110  }
    111111
    112   function GetWidth() 
    113   { 
     112  function GetWidth()
     113  {
    114114    return(imagesx($this->Image));
    115115  }
    116  
    117   function GetHeight() 
     116
     117  function GetHeight()
    118118  {
    119119    return(imagesy($this->Image));
    120120  }
    121  
     121
    122122  function TextOut($X, $Y, $Text)
    123123  {
    124124    imagettftext($this->Image, $this->Font->Size, 0, $X, $Y, $this->ConvertColor($this->Font->Color), $this->Font->FileName, $Text);
    125125  }
    126  
     126
    127127  function ConvertColor($Color)
    128128  {
    129129    return(imagecolorallocate($this->Image, ($Color >> 16) & 0xff, ($Color >> 8) & 0xff, $Color & 0xff));
    130130  }
    131  
     131
    132132  function FillRect($X1, $Y1, $X2, $Y2)
    133133  {
    134134    imagefilledrectangle($this->Image, $X1, $Y1, $X2, $Y2, $this->ConvertColor($this->Brush->Color));
    135135  }
    136  
     136
    137137  function Line($X1, $Y1, $X2, $Y2)
    138138  {
  • trunk/Common/Mail.php

    r579 r738  
    1313  var $From;
    1414  var $Recipients;
    15   var $Bodies; 
     15  var $Bodies;
    1616  var $Attachments;
    1717  var $AgentIdent;
     
    1919  var $ReplyTo;
    2020  var $Headers;
    21  
     21
    2222  function __construct()
    2323  {
    24     $this->Priorities = array('1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)');           
     24    $this->Priorities = array('1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)');
    2525    $this->Boundary = md5(date('r', time()));
    2626    $this->AgentIdent = 'PHP/Mail';
    2727    $this->Clear();
    2828  }
    29  
     29
    3030  function Clear()
    3131  {
     
    6363  function AddBody($Content, $MimeType = 'text/plain', $Charset = 'utf-8')
    6464  {
    65     $this->Bodies[] = array('Content' => $Content, 'Type' => strtolower($MimeType), 
     65    $this->Bodies[] = array('Content' => $Content, 'Type' => strtolower($MimeType),
    6666      'Charset' => strtolower($Charset));
    6767  }
     
    7575  {
    7676    if(!intval($Priority)) return(false);
    77                
     77
    7878    if(!isset($this->priorities[$Priority - 1])) return(false);
    7979
    80     $this->xheaders['X-Priority'] = $this->priorities[$Priority - 1];   
     80    $this->xheaders['X-Priority'] = $this->priorities[$Priority - 1];
    8181    return(true);
    8282  }
    8383
    8484  function AttachFile($FileName, $FileType, $Disposition = DISPOSITION_ATTACHMENT)
    85   {     
    86     $this->Attachments[] = array('FileName' => $FileName, 'FileType' => $FileType, 
     85  {
     86    $this->Attachments[] = array('FileName' => $FileName, 'FileType' => $FileType,
    8787      'Disposition' => $Disposition, 'Type' => 'File');
    8888  }
     
    9090  function AttachData($FileName, $FileType, $Data, $Disposition = DISPOSITION_ATTACHMENT)
    9191  {
    92     $this->Attachments[] = array('FileName' => $FileName, 'FileType' => $FileType, 
     92    $this->Attachments[] = array('FileName' => $FileName, 'FileType' => $FileType,
    9393      'Disposition' => $Disposition, 'Type' => 'Data', 'Data' => $Data);
    9494  }
     
    9797  {
    9898    if(count($this->Bodies) == 0) throw new Exception('Mail: Need at least one text body');
    99    
     99
    100100    $Body = $this->BuildAttachment($this->BuildBody());
    101    
     101
    102102    $To = '';
    103103    $this->Headers['CC'] = '';
    104104    $this->Headers['BCC'] = '';
    105     foreach($this->Recipients as $Index => $Recipient)     
     105    foreach($this->Recipients as $Index => $Recipient)
    106106    {
    107107      if($Recipient['Type'] == 'SendCombined')
     
    127127    }
    128128    if($To == '') throw new Exception('Mail: Need at least one recipient address');
    129    
     129
    130130    $this->Headers['Mime-Version'] = '1.0';
    131    
     131
    132132    if($this->AgentIdent != '') $this->Headers['X-Mailer'] = $this->AgentIdent;
    133133    if($this->ReplyTo != '') $this->Headers['Reply-To'] = $this->ReplyTo;
     
    135135
    136136    $Headers = '';
    137     foreach($this->Headers as $Header => $Value) 
     137    foreach($this->Headers as $Header => $Value)
    138138    {
    139139      if(($Header != 'Subject') and ($Value != '')) $Headers .= $Header.': '.$Value."\n";
    140     }   
     140    }
    141141
    142142    $this->Subject = strtr($this->Subject, "\r\n", '  ');
    143143
    144144    if($this->Subject == '') throw new Exception('Mail: Missing Subject');
    145    
     145
    146146
    147147    $res = mail($To, $this->Subject, $Body, $Headers);
     
    152152  {
    153153    if(ereg(".*<(.+)>", $Address, $regs)) $Address = $regs[1];
    154     if(ereg("^[^@  ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$", $Address)) 
     154    if(ereg("^[^@  ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$", $Address))
    155155      return(true);
    156156      else return(false);
     
    159159  function CheckAdresses($Addresses)
    160160  {
    161     foreach($Addresses as $Address) 
    162     {
    163       if(!$this->ValidEmail($Address)) 
    164         throw new Exception('Mail: Invalid address '.$Address);
    165     }
    166   } 
    167  
     161    foreach($Addresses as $Address)
     162    {
     163      if(!$this->ValidEmail($Address))
     164  throw new Exception('Mail: Invalid address '.$Address);
     165    }
     166  }
     167
    168168  private function ContentEncoding($Charset)
    169169  {
     
    175175  {
    176176    if(count($this->Attachments) > 0)
    177     {       
     177    {
    178178      $this->Headers['Content-Type'] = "multipart/mixed;\n boundary=\"PHP-mixed-".$this->Boundary."\"";
    179179      $Result = "This is a multi-part message in MIME format.\n".
    180         "--PHP-mixed-".$this->Boundary."\n";   
     180        "--PHP-mixed-".$this->Boundary."\n";
    181181      $Result .= $Body;
    182    
    183       foreach($this->Attachments as $Attachment) 
     182
     183      foreach($this->Attachments as $Attachment)
    184184      {
    185185        $FileName = $Attachment['FileName'];
     
    189189        if($Attachment['Type'] == 'File')
    190190        {
    191           if(!file_exists($FileName)) 
     191          if(!file_exists($FileName))
    192192            throw new Exception('Mail: Attached file '.$FileName.' can\'t be found');
    193193          $Data = file_get_contents($FileName);
    194         } else 
     194        } else
    195195        if($Attachment['Type'] == 'Data') $Data = $Attachment['Data'];
    196196          else $Data = '';
    197                
     197
    198198        $Result .= "\n".'--PHP-mixed-'.$this->Boundary."\n".
    199199          "Content-Type: ".$ContentType."; name=\"".$BaseName."\"\n".
     
    203203      }
    204204    } else $Result = $Body;
    205     return($Result);   
    206   }
    207  
     205    return($Result);
     206  }
     207
    208208  private function BuildBody()
    209209  {
    210210    $Result = '';
    211     if(count($this->Bodies) > 1) 
     211    if(count($this->Bodies) > 1)
    212212    {
    213213      $this->Headers['Content-Type'] = 'multipart/alternative; boundary="PHP-alt-'.$this->Boundary.'"';
    214214      $Result .= 'Content-Type: multipart/alternative; boundary="PHP-alt-'.$this->Boundary.'"'.
    215215        "\n\n";
    216     } else 
     216    } else
    217217    {
    218218      $this->Headers['Content-Type'] = $this->Bodies[0]['Type'].'; charset='.$this->Bodies[0]['Charset'];
     
    220220    }
    221221
    222        
     222
    223223    foreach($this->Bodies as $Body)
    224224    {
    225       if(count($this->Bodies) > 1) $Result .= "\n\n".'--PHP-alt-'.$this->Boundary."\n";           
     225      if(count($this->Bodies) > 1) $Result .= "\n\n".'--PHP-alt-'.$this->Boundary."\n";
    226226      $Result .= 'Content-Type: '.$Body['Type'].'; charset='.$Body['Charset'].
    227         "\nContent-Transfer-Encoding: ".$this->ContentEncoding($Body['Charset'])."\n\n".$Body['Content']."\n";         
     227        "\nContent-Transfer-Encoding: ".$this->ContentEncoding($Body['Charset'])."\n\n".$Body['Content']."\n";
    228228    }
    229229    return($Result);
    230   } 
     230  }
    231231}
    232232
  • trunk/Common/NetworkAddress.php

    r705 r738  
    6060class NetworkAddressIPv6
    6161{
    62         var $Address;
    63         var $Prefix;
     62  var $Address;
     63  var $Prefix;
    6464
    65         function __construct()
    66         {
    67                 $this->Address = 0;
    68                 $this->Prefix = 0;
    69         }
     65  function __construct()
     66  {
     67    $this->Address = 0;
     68    $this->Prefix = 0;
     69  }
    7070
    7171  function AddressToString()
    7272  {
    73         return(inet_ntop($this->Address));
     73    return(inet_ntop($this->Address));
    7474  }
    7575
    7676  function AddressFromString($Value)
    7777  {
    78         $this->Address = inet_pton($Value);
     78    $this->Address = inet_pton($Value);
    7979  }
    8080
    8181  function GetOctets()
    8282  {
    83         $Result = array();
    84         $Data = array_reverse(unpack('C*', $this->Address));
    85         foreach($Data as $Item)
    86         {
     83    $Result = array();
     84    $Data = array_reverse(unpack('C*', $this->Address));
     85    foreach($Data as $Item)
     86    {
    8787
    88                 $Result[] = dechex($Item & 15);
    89                 $Result[] = dechex(($Item >> 4) & 15);
    90         }
    91         return($Result);
     88      $Result[] = dechex($Item & 15);
     89      $Result[] = dechex(($Item >> 4) & 15);
     90    }
     91    return($Result);
    9292  }
    9393
    9494  function EncodeMAC($MAC)
    9595  {
    96         $MAC = explode(':', $MAC);
    97         $Data = unpack('C*', $this->Address);
    98         $Data[9] = hexdec($MAC[0]) ^ 0x02;
    99         $Data[10] = hexdec($MAC[1]);
    100         $Data[11] = hexdec($MAC[2]);
    101         $Data[12] = 0xff;
    102         $Data[13] = 0xfe;
    103         $Data[14] = hexdec($MAC[3]);
    104         $Data[15] = hexdec($MAC[4]);
    105         $Data[16] = hexdec($MAC[5]);
    106         $this->Address = pack_array('C*', $Data);
     96    $MAC = explode(':', $MAC);
     97    $Data = unpack('C*', $this->Address);
     98    $Data[9] = hexdec($MAC[0]) ^ 0x02;
     99    $Data[10] = hexdec($MAC[1]);
     100    $Data[11] = hexdec($MAC[2]);
     101    $Data[12] = 0xff;
     102    $Data[13] = 0xfe;
     103    $Data[14] = hexdec($MAC[3]);
     104    $Data[15] = hexdec($MAC[4]);
     105    $Data[16] = hexdec($MAC[5]);
     106    $this->Address = pack_array('C*', $Data);
    107107  }
    108108
  • trunk/Common/Page.php

    r729 r738  
    1515  var $Encoding;
    1616  var $Style;
    17  
     17
    1818  function __construct($System)
    1919  {
    2020    parent::__construct($System);
    21    
     21
    2222    $this->FormatHTML = false;
    2323    $this->ShowRuntimeInfo = false;
    2424    $this->Encoding = 'utf-8';
    2525    $this->Style = 'new';
    26    
     26
    2727    // TODO: Move to external code
    2828    if(isset($this->System->Config['Web']['FormatHTML']))
     
    3535      $this->Style = $this->System->Config['Web']['Style'];
    3636  }
    37  
     37
    3838  function Show()
    3939  {
    40         return('');
     40    return('');
    4141  }
    4242
    4343  function SystemMessage($Title, $Text)
    44   { 
     44  {
    4545    return('<table align="center"><tr><td><div class="SystemMessage"><h3>'.$Title.'</h3><div>'.$Text.'</div></div></td></tr></table>');
    4646    //ShowFooter();
     
    5050  function ShowHeader($Title, $Path)
    5151  {
    52         if(array_key_exists('REQUEST_URI', $_SERVER))
     52    if(array_key_exists('REQUEST_URI', $_SERVER))
    5353      $ScriptName = $_SERVER['REQUEST_URI'];
    54           else $ScriptName = '';
     54      else $ScriptName = '';
    5555    while(strpos($ScriptName, '//') !== false)
    5656      $ScriptName = str_replace('//', '/', $ScriptName);
     
    6262    $Navigation = '';
    6363    while($Page)
    64     { 
     64    {
    6565      $Navigation = ' &gt; <a href="'.$this->System->Link($ScriptName).'/">'.$Page->ShortTitle.'</a>'.$Navigation;
    66      
     66
    6767      if(class_exists($Page->ParentClass))
    6868      {
     
    7171        $ScriptName = substr($ScriptName, 0, strrpos($ScriptName, '/'));
    7272      } else $Page = null;
    73     } 
     73    }
    7474    $Navigation = substr($Navigation, 6);
    7575
     
    8989      //$Output .= '<div class="MainTitle">'.$Title.'</div>';
    9090      $Output .= '<div class="MainTitle"><span class="MenuItem"><strong>Navigace :: </strong> '.$Navigation.'</span><div class="MenuItem2">';
    91         foreach($this->System->Bars['Top'] as $BarItem)
    92         $Output .= call_user_func($BarItem);
     91      foreach($this->System->Bars['Top'] as $BarItem)
     92        $Output .= call_user_func($BarItem);
    9393      $Output .= '</div></div>';
    9494    }
     
    9999  {
    100100    global $ScriptTimeStart, $Revision, $ReleaseTime;
    101    
     101
    102102    $Time = round(GetMicrotime() - $ScriptTimeStart, 2);
    103103    $Output = '';
     
    112112    }
    113113    $Output .= '</body></html>';
    114     return($Output); 
     114    return($Output);
    115115  }
    116116
     
    122122    //  $Output = 'Chyba: '.$E->getMessage();
    123123    //}
    124     if($this->ClearPage == false) 
     124    if($this->ClearPage == false)
    125125    {
    126126      $Output = $this->ShowHeader($this->FullTitle, $this->ShortTitle).$Output;
     
    130130    echo($Output);
    131131  }
    132  
     132
    133133  function NewPage($ClassName)
    134134  {
     
    156156      }
    157157      $line = trim(substr($s, $start, $end + 1));
    158       if(strlen($line) > 0) 
     158      if(strlen($line) > 0)
    159159      if($line[0] == '<')
    160160      {
    161         if($s[$start + 1] == '/') 
     161        if($s[$start + 1] == '/')
    162162        {
    163163          $n = $n - 2;
    164164          $nn = $n;
    165         } else 
     165        } else
    166166        {
    167167          if(strpos($line, ' ')) $cmd = substr($line, 1, strpos($line, ' ') - 1);
     
    169169          //echo('['.$cmd.']');
    170170          if(strpos($s, '</'.$cmd.'>')) $n = $n + 2;
    171         }   
     171        }
    172172      }// else $line = '['.$line.']';
    173173      //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n"));
  • trunk/Common/RSS.php

    r548 r738  
    11<?php
    22
    3 class RSS 
     3class RSS
    44{
    55  var $Charset;
     
    99  var $WebmasterEmail;
    1010  var $Items;
    11  
     11
    1212  function __construct()
    1313  {
     
    1717
    1818  function Generate()
    19   { 
     19  {
    2020    $Result = '<?xml version="1.0" encoding="'.$this->Charset.'" ?>'."\n". //<?
    2121  '<rss version="2.0">'."\n".
     
    2626  "    <language>cs</language>\n".
    2727  "    <webMaster>".$this->WebmasterEmail."</webMaster>\n".
    28   "    <pubDate>".date('r')."</pubDate>\n". 
     28  "    <pubDate>".date('r')."</pubDate>\n".
    2929  "    <ttl>20</ttl>\n";
    3030    foreach($this->Items as $Item)
     
    3333        '      <title>'.htmlspecialchars($Item['Title'])."</title>\n".
    3434        '      <description>'.htmlspecialchars($Item['Description'])."</description>\n".
    35         '      <pubDate>'.date('r',$Item['Time'])."</pubDate>\n".
    36         '      <link>'.$Item['Link']."</link>\n".
     35  '      <pubDate>'.date('r',$Item['Time'])."</pubDate>\n".
     36  '      <link>'.$Item['Link']."</link>\n".
    3737        "    </item>\n";
    3838    }
  • trunk/Common/Setup/FullInstall.php

    r592 r738  
    99CREATE DEFINER=`centrala`@`localhost` FUNCTION `CompareNetworkPrefix`(Address1 INT(11) UNSIGNED, Address2 INT(11) UNSIGNED, Size INT(11)) RETURNS tinyint(1)
    1010RETURN Address1 & (-1 << (32 - Size)) = Address2 & (-1 << (32 - Size));
    11      
     11
    1212--
    1313-- Struktura tabulky `ChatHistory`
     
    20332033  $Manager->Execute("INSERT INTO `SystemVersion` (`Id`, `Revision`) VALUES
    20342034(1, 495);");
    2035  
     2035
    20362036}
    20372037
  • trunk/Common/Setup/Setup.php

    r737 r738  
    6969  function Show()
    7070  {
    71           global $ConfigDefinition, $DatabaseRevision, $Config, $Updates;
    72 
    73           $this->UpdateManager = $this->System->Setup->UpdateManager;
    74           $DefaultConfig = new DefaultConfig();
    75           $this->ConfigDefinition = $DefaultConfig->Get();
    76           $this->DatabaseRevision = $DatabaseRevision;
    77           $this->Config = &$Config;
    78 
    79           $Output = '';
     71    global $ConfigDefinition, $DatabaseRevision, $Config, $Updates;
     72
     73    $this->UpdateManager = $this->System->Setup->UpdateManager;
     74    $DefaultConfig = new DefaultConfig();
     75    $this->ConfigDefinition = $DefaultConfig->Get();
     76    $this->DatabaseRevision = $DatabaseRevision;
     77    $this->Config = &$Config;
     78
     79    $Output = '';
    8080    if(isset($this->Config))
    8181    {
     
    105105            $Output .= $this->System->Setup->Upgrade();
    106106          } catch (Exception $E) {
    107                   $Output .= $this->SystemMessage('Chyba aktualizace', 'Došlo k chybě v SQL dotazu při aktualizaci: <br/>'.$E->getMessage());
    108             }
    109                 $Output .= $this->ControlPanel();
     107            $Output .= $this->SystemMessage('Chyba aktualizace', 'Došlo k chybě v SQL dotazu při aktualizaci: <br/>'.$E->getMessage());
     108          }
     109          $Output .= $this->ControlPanel();
    110110        } else
    111111        if($Action == 'install')
     
    353353class PageSetupRedirect extends Page
    354354{
    355         function Show()
    356         {
    357           $Output = '';
    358           if(!$this->Database->Connected()) $Output .= 'Nelze se připojit k databázi.<br>';
    359           else {
    360             if(!$this->System->Setup->UpdateManager->IsInstalled())
    361               $Output .= 'Systém vyžaduje instalaci databáze.<br>';
    362             else
    363             if(!$this->System->Setup->UpdateManager->IsUpToDate())
    364               $Output .= 'Systém vyžaduje aktualizaci databáze.<br>';
    365           }
    366           $Output .= 'Pokračujte <a href="'.$this->System->Link('/setup/').'">zde</a>';
    367                 return($Output);
    368         }
     355  function Show()
     356  {
     357    $Output = '';
     358    if(!$this->Database->Connected()) $Output .= 'Nelze se připojit k databázi.<br>';
     359    else {
     360      if(!$this->System->Setup->UpdateManager->IsInstalled())
     361        $Output .= 'Systém vyžaduje instalaci databáze.<br>';
     362      else
     363      if(!$this->System->Setup->UpdateManager->IsUpToDate())
     364        $Output .= 'Systém vyžaduje aktualizaci databáze.<br>';
     365    }
     366    $Output .= 'Pokračujte <a href="'.$this->System->Link('/setup/').'">zde</a>';
     367    return($Output);
     368  }
    369369}
    370370
     
    404404  function Install()
    405405  {
    406         global $DatabaseRevision;
     406    global $DatabaseRevision;
    407407
    408408    $this->Database->query('CREATE TABLE IF NOT EXISTS `SystemVersion` (
  • trunk/Common/Setup/Update.php

    r725 r738  
    99  var $Database;
    1010  var $InstallMethod;
    11  
     11
    1212  function __construct()
    1313  {
    14           $this->Revision = 0;
    15           $this->Trace = array();
    16           $this->VersionTable = 'SystemVersion';
    17           $this->InstallMethod = 'FullInstall';
    18           $this->InsertSampleDataMethod = 'InsertSampleData';
     14    $this->Revision = 0;
     15    $this->Trace = array();
     16    $this->VersionTable = 'SystemVersion';
     17    $this->InstallMethod = 'FullInstall';
     18    $this->InsertSampleDataMethod = 'InsertSampleData';
    1919  }
    20  
     20
    2121  function GetDbVersion()
    2222  {
    23           $DbResult = $this->Database->select($this->VersionTable, '*', 'Id=1');
    24           $Version = $DbResult->fetch_assoc();   
     23    $DbResult = $this->Database->select($this->VersionTable, '*', 'Id=1');
     24    $Version = $DbResult->fetch_assoc();
    2525    return($Version['Revision']);
    2626  }
    27  
     27
    2828  function IsInstalled()
    29   {     
     29  {
    3030    debug_backtrace();
    31           $DbResult = $this->Database->query('SHOW TABLES LIKE "'.$this->VersionTable.'"');
    32     return($DbResult->num_rows > 0);   
     31    $DbResult = $this->Database->query('SHOW TABLES LIKE "'.$this->VersionTable.'"');
     32    return($DbResult->num_rows > 0);
    3333  }
    3434
    3535  function IsUpToDate()
    3636  {
    37           return($this->Revision <= $this->GetDbVersion());
     37    return($this->Revision <= $this->GetDbVersion());
    3838  }
    39  
     39
    4040  function Upgrade()
    4141  {
    42           $DbRevision = $this->GetDbVersion();
    43         $Output = 'Počáteční revize databáze: '.$DbRevision.'<br/>';
    44           while($this->Revision > $DbRevision)
     42    $DbRevision = $this->GetDbVersion();
     43    $Output = 'Počáteční revize databáze: '.$DbRevision.'<br/>';
     44    while($this->Revision > $DbRevision)
    4545    {
    46             $TraceItem = $this->Trace[$DbRevision];
    47             $Output .= 'Aktualizace na verzi '.$TraceItem['Revision'].':<br/>';
    48             // Show applied SQL queries immediatelly
    49             echo($Output);
    50             $Output = '';
    51             $RevUpdate = $TraceItem['Function'];
     46      $TraceItem = $this->Trace[$DbRevision];
     47      $Output .= 'Aktualizace na verzi '.$TraceItem['Revision'].':<br/>';
     48      // Show applied SQL queries immediatelly
     49      echo($Output);
     50      $Output = '';
     51      $RevUpdate = $TraceItem['Function'];
    5252      $RevUpdate($this);
    53             $DbRevision = $TraceItem['Revision'];
    54             $this->Database->query('UPDATE `'.$this->VersionTable.'` SET `Revision`= '.
    55                 $TraceItem['Revision'].' WHERE `Id`=1');
    56           }
    57           return($Output);       
     53      $DbRevision = $TraceItem['Revision'];
     54      $this->Database->query('UPDATE `'.$this->VersionTable.'` SET `Revision`= '.
     55        $TraceItem['Revision'].' WHERE `Id`=1');
     56    }
     57    return($Output);
    5858  }
    59  
     59
    6060  function Install()
    61   {     
    62         $InstallMethod = $this->InstallMethod;
    63         $InstallMethod($this);
    64         $this->Update();
     61  {
     62    $InstallMethod = $this->InstallMethod;
     63    $InstallMethod($this);
     64    $this->Update();
    6565  }
    66  
     66
    6767  function Uninstall()
    6868  {
    69    
     69
    7070  }
    71  
     71
    7272  function InsertSampleData()
    73   {     
    74         $InstallMethod = $this->InsertSampleDataMethod;
    75         $InstallMethod($this);
     73  {
     74    $InstallMethod = $this->InsertSampleDataMethod;
     75    $InstallMethod($this);
    7676  }
    77  
     77
    7878  function Execute($Query)
    7979  {
    80           echo($Query.';<br/>');
    81           flush();
    82           return($this->Database->query($Query));
     80    echo($Query.';<br/>');
     81    flush();
     82    return($this->Database->query($Query));
    8383  }
    8484}
  • trunk/Common/Setup/Updates.php

    r736 r738  
    538538function UpdateTo627($Manager)
    539539{
    540         $Manager->Execute('ALTER TABLE `FinanceInvoice` CHANGE `TimeCreation` `Time` DATETIME NOT NULL DEFAULT "0000-00-00 00:00:00";');
    541         $Manager->Execute('ALTER TABLE `FinanceYear` ADD `Closed` INT NOT NULL ;');
     540  $Manager->Execute('ALTER TABLE `FinanceInvoice` CHANGE `TimeCreation` `Time` DATETIME NOT NULL DEFAULT "0000-00-00 00:00:00";');
     541  $Manager->Execute('ALTER TABLE `FinanceYear` ADD `Closed` INT NOT NULL ;');
    542542}
    543543
    544544function UpdateTo632($Manager)
    545545{
    546         $Manager->Execute('CREATE TABLE IF NOT EXISTS `FinanceInvoiceOperationRel` (
     546  $Manager->Execute('CREATE TABLE IF NOT EXISTS `FinanceInvoiceOperationRel` (
    547547  `Id` int(11) NOT NULL AUTO_INCREMENT,
    548548  `Invoice` int(11) NOT NULL,
     
    559559function UpdateTo633($Manager)
    560560{
    561         $Manager->Execute('ALTER TABLE `UserOnline` ADD `StayLoggedHash` VARCHAR( 40 ) NOT NULL ;');
     561  $Manager->Execute('ALTER TABLE `UserOnline` ADD `StayLoggedHash` VARCHAR( 40 ) NOT NULL ;');
    562562}
    563563
    564564function UpdateTo645($Manager)
    565565{
    566         $Manager->Execute('CREATE TABLE IF NOT EXISTS `FinanceVATType` (
     566  $Manager->Execute('CREATE TABLE IF NOT EXISTS `FinanceVATType` (
    567567  `Id` int(11) NOT NULL,
    568568  `Name` varchar(255) NOT NULL,
     
    578578function UpdateTo646($Manager)
    579579{
    580         $Manager->Execute('CREATE TABLE IF NOT EXISTS `Contract` (
     580  $Manager->Execute('CREATE TABLE IF NOT EXISTS `Contract` (
    581581  `Id` int(11) NOT NULL AUTO_INCREMENT,
    582582  `BillCode` varchar(255) NOT NULL,
     
    614614function UpdateTo647($Manager)
    615615{
    616         $Manager->Execute('ALTER TABLE `EmployeeSalary` ADD FOREIGN KEY ( `Employee` ) REFERENCES `Employee` (
     616  $Manager->Execute('ALTER TABLE `EmployeeSalary` ADD FOREIGN KEY ( `Employee` ) REFERENCES `Employee` (
    617617`Id`
    618618) ON DELETE RESTRICT ON UPDATE RESTRICT ;');
     
    649649function UpdateTo656($Manager)
    650650{
    651         $Manager->Execute('CREATE TABLE IF NOT EXISTS `Measure` (
     651  $Manager->Execute('CREATE TABLE IF NOT EXISTS `Measure` (
    652652  `Id` int(11) NOT NULL AUTO_INCREMENT,
    653653  `Name` varchar(255) NOT NULL,
     
    708708function UpdateTo657($Manager)
    709709{
    710         $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkInterfaceUpDown` (
     710  $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkInterfaceUpDown` (
    711711  `Id` int(11) NOT NULL AUTO_INCREMENT,
    712712  `Time` datetime NOT NULL,
     
    873873  if($DbResult->num_rows > 0)
    874874  {
    875         $DbRow = $DbResult->fetch_assoc();
     875    $DbRow = $DbResult->fetch_assoc();
    876876    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    877877      "VALUES (NULL , 'Oblíbené položky nabídky', ".$DbRow['Id'].", '".$ActionId."', '1');");
     
    887887function UpdateTo688($Manager)
    888888{
    889         // Convert monthly plus payment for consumption to regular service
     889  // Convert monthly plus payment for consumption to regular service
    890890  $DbResult = $Manager->Execute('SELECT `MonthlyPlus`, `Member` FROM `MemberPayment` WHERE `MonthlyPlus` > 0');
    891891  while($DbRow = $DbResult->fetch_assoc)
     
    935935
    936936function UpdateTo710($Manager)
    937 {       
     937{
    938938  $Manager->Execute('RENAME TABLE `StockItem` TO `StockSerialNumber`;');
    939939  $Manager->Execute('UPDATE `Action` SET `URL`="/is/?t=StockSerialNumber&a=list",`Title`="Sériová čísla" WHERE `URL`="/is/?t=StockItem&a=list";');
    940  
     940
    941941  // StockMove
    942942  $Manager->Execute('CREATE TABLE IF NOT EXISTS `StockMove` (
     
    949949  `File` int(11) DEFAULT NULL
    950950  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');
    951    
     951
    952952  $Manager->Execute('ALTER TABLE `StockMove`
    953953  ADD PRIMARY KEY (`Id`), ADD KEY `DocumentLine` (`DocumentLine`), ADD KEY `StockFrom` (`StockFrom`), ADD KEY `StockTo` (`StockTo`), ADD KEY `File` (`File`);');
    954    
     954
    955955  $Manager->Execute('ALTER TABLE `StockMove`
    956956  MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
    957  
     957
    958958  $Manager->Execute('ALTER TABLE `StockMove`
    959959  ADD CONSTRAINT `StockMove_ibfk_1` FOREIGN KEY (`StockFrom`) REFERENCES `Stock` (`Id`),
    960960  ADD CONSTRAINT `StockMove_ibfk_2` FOREIGN KEY (`StockTo`) REFERENCES `Stock` (`Id`),
    961961  ADD CONSTRAINT `StockMove_ibfk_3` FOREIGN KEY (`DocumentLine`) REFERENCES `DocumentLine` (`Id`);');
    962  
     962
    963963  // StockMoveItem
    964964  $Manager->Execute('CREATE TABLE IF NOT EXISTS `StockMoveItem` (
     
    970970  `UnitPrice` int(11) NOT NULL
    971971  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');
    972  
     972
    973973  $Manager->Execute('ALTER TABLE `StockMoveItem`
    974974  ADD PRIMARY KEY (`Id`), ADD KEY `Product` (`Product`), ADD KEY `StockMove` (`StockMove`);');
    975  
     975
    976976  $Manager->Execute('ALTER TABLE `StockMoveItem`
    977977  MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
     
    979979  $Manager->Execute('ALTER TABLE `StockMoveItem`
    980980  ADD CONSTRAINT `StockMoveItem_ibfk_2` FOREIGN KEY (`Product`) REFERENCES `Product` (`Id`),
    981   ADD CONSTRAINT `StockMoveItem_ibfk_1` FOREIGN KEY (`StockMove`) REFERENCES `StockMove` (`Id`);'); 
     981  ADD CONSTRAINT `StockMoveItem_ibfk_1` FOREIGN KEY (`StockMove`) REFERENCES `StockMove` (`Id`);');
    982982
    983983  // IS menu item
     
    989989  if($DbResult->num_rows > 0)
    990990  {
    991         $DbRow = $DbResult->fetch_assoc();
     991    $DbRow = $DbResult->fetch_assoc();
    992992    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    993993      "VALUES (NULL , 'Skladové pohyby', ".$DbRow['Id'].", '".$ActionId."', '1');");
     
    997997function UpdateTo715($Manager)
    998998{
    999         $Manager->Execute('ALTER TABLE `StockSerialNumber` DROP FOREIGN KEY `StockSerialNumber_ibfk_6`;');
    1000         $Manager->Execute('ALTER TABLE `StockSerialNumber` DROP `Segment`');
    1001         $Manager->Execute('ALTER TABLE `Member` DROP `NetworkSegment`');
    1002         $Manager->Execute('DROP TABLE `NetworkSegment`');
    1003         $Manager->Execute('DELETE FROM `MenuItem` WHERE `Name`="Úseky sítě"');
    1004         $Manager->Execute('DELETE FROM `Action` WHERE `Title`="Úseky sítě"');
     999  $Manager->Execute('ALTER TABLE `StockSerialNumber` DROP FOREIGN KEY `StockSerialNumber_ibfk_6`;');
     1000  $Manager->Execute('ALTER TABLE `StockSerialNumber` DROP `Segment`');
     1001  $Manager->Execute('ALTER TABLE `Member` DROP `NetworkSegment`');
     1002  $Manager->Execute('DROP TABLE `NetworkSegment`');
     1003  $Manager->Execute('DELETE FROM `MenuItem` WHERE `Name`="Úseky sítě"');
     1004  $Manager->Execute('DELETE FROM `Action` WHERE `Title`="Úseky sítě"');
    10051005}
    10061006
    10071007function UpdateTo718($Manager)
    1008 {       
     1008{
    10091009  $Manager->Execute('CREATE TABLE IF NOT EXISTS `Company` (
    10101010`Id` int(11) NOT NULL,
     
    10271027  if($DbResult->num_rows > 0)
    10281028  {
    1029         $DbRow = $DbResult->fetch_assoc();
     1029    $DbRow = $DbResult->fetch_assoc();
    10301030    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    10311031      "VALUES (NULL , 'Firmy', ".$DbRow['Id'].", '".$ActionId."', '1');");
     
    10341034
    10351035function UpdateTo719($Manager)
    1036 {       
     1036{
    10371037  $Manager->Execute('ALTER TABLE `FinanceOperation` ADD `Direction` INT NOT NULL AFTER `Cash`;');
    10381038  $Manager->Execute('UPDATE `FinanceOperation` SET `Direction` = 1 WHERE `Value` >= 0 ;');
    10391039  $Manager->Execute('UPDATE `FinanceOperation` SET `Direction` = -1 WHERE `Value` < 0 ;');
    10401040  $Manager->Execute('UPDATE `FinanceOperation` SET `Value` = -`Value` WHERE `Value` < 0 ;');
    1041   // Set missing FinanceOperation DocumentLine according BillCode 
     1041  // Set missing FinanceOperation DocumentLine according BillCode
    10421042  $Manager->Execute('UPDATE `FinanceOperation` SET `DocumentLine` = 1 WHERE (`BillCode` LIKE "PP%") AND (`DocumentLine` IS NULL)');
    10431043  $Manager->Execute('UPDATE `FinanceOperation` SET `DocumentLine` = 2 WHERE (`BillCode` LIKE "VP%") AND (`DocumentLine` IS NULL)');
    10441044  $Manager->Execute('UPDATE `FinanceOperation` SET `DocumentLine` = 3 WHERE (`BillCode` LIKE "BV%") AND (`DocumentLine` IS NULL)');
    10451045  $Manager->Execute('UPDATE `FinanceOperation` SET `DocumentLine` = 4 WHERE (`BillCode` LIKE "PR%") AND (`DocumentLine` IS NULL)');
    1046  
     1046
    10471047  // IS menu item
    10481048  $DbResult = $Manager->Execute('SELECT `Id` FROM `MenuItem` WHERE `Name`="Příjmy a výdaje"');
    10491049  if($DbResult->num_rows > 0)
    10501050  {
    1051         $DbRow = $DbResult->fetch_assoc();
     1051    $DbRow = $DbResult->fetch_assoc();
    10521052    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
    10531053    `Group` ,`Icon` ,`PermissionOperation` ,`Enable`) VALUES (
    10541054    NULL , "", "Příjem do pokladny", "1", "/is/?t=FinanceTreasuryIn&a=list", NULL , NULL , NULL , "1");');
    10551055    $ActionId = $Manager->Database->insert_id;
    1056         $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1056    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    10571057      "VALUES (NULL , 'Příjem do pokladny', ".$DbRow['Id'].", '".$ActionId."', '1');");
    10581058    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
     
    10601060    NULL , "", "Výdej z pokladny", "1", "/is/?t=FinanceTreasuryOut&a=list", NULL , NULL , NULL , "1");');
    10611061    $ActionId = $Manager->Database->insert_id;
    1062         $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1062    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    10631063      "VALUES (NULL , 'Výdej z pokladny', ".$DbRow['Id'].", '".$ActionId."', '1');");
    10641064    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
     
    10661066    NULL , "", "Příjem na účet", "1", "/is/?t=FinanceAccountIn&a=list", NULL , NULL , NULL , "1");');
    10671067    $ActionId = $Manager->Database->insert_id;
    1068         $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1068    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    10691069      "VALUES (NULL , 'Příjem na účet', ".$DbRow['Id'].", '".$ActionId."', '1');");
    10701070    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
     
    10721072    NULL , "", "Výdej z účtu", "1", "/is/?t=FinanceAccountOut&a=list", NULL , NULL , NULL , "1");');
    10731073    $ActionId = $Manager->Database->insert_id;
    1074         $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1074    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    10751075      "VALUES (NULL , 'Výdej z účtu', ".$DbRow['Id'].", '".$ActionId."', '1');");
    10761076  }
     
    10791079function UpdateTo720($Manager)
    10801080{
    1081         $Manager->Execute('ALTER TABLE `FinanceInvoice` ADD `Direction` INT NOT NULL AFTER `TimePayment`;');
    1082         $Manager->Execute('UPDATE `FinanceInvoice` SET `Direction` = 1 WHERE `Value` >= 0 ;');
    1083         $Manager->Execute('UPDATE `FinanceInvoice` SET `Direction` = -1 WHERE `Value` < 0 ;');
    1084         $Manager->Execute('UPDATE `FinanceInvoice` SET `Value` = -`Value` WHERE `Value` < 0 ;');
    1085         // Set missing FinanceInvoice DocumentLine according BillCode
    1086         $Manager->Execute('UPDATE `FinanceInvoice` SET `DocumentLine` = 5 WHERE (`BillCode` LIKE "PF%") AND (`DocumentLine` IS NULL)');
    1087         $Manager->Execute('UPDATE `FinanceInvoice` SET `DocumentLine` = 6 WHERE (`BillCode` LIKE "VF%") AND (`DocumentLine` IS NULL)');
    1088        
    1089         // IS menu item
    1090         $DbResult = $Manager->Execute('SELECT `Id` FROM `MenuItem` WHERE `Name`="Závazky a pohledávky"');
    1091         if($DbResult->num_rows > 0)
    1092         {
    1093                 $DbRow = $DbResult->fetch_assoc();
    1094                 $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
     1081  $Manager->Execute('ALTER TABLE `FinanceInvoice` ADD `Direction` INT NOT NULL AFTER `TimePayment`;');
     1082  $Manager->Execute('UPDATE `FinanceInvoice` SET `Direction` = 1 WHERE `Value` >= 0 ;');
     1083  $Manager->Execute('UPDATE `FinanceInvoice` SET `Direction` = -1 WHERE `Value` < 0 ;');
     1084  $Manager->Execute('UPDATE `FinanceInvoice` SET `Value` = -`Value` WHERE `Value` < 0 ;');
     1085  // Set missing FinanceInvoice DocumentLine according BillCode
     1086  $Manager->Execute('UPDATE `FinanceInvoice` SET `DocumentLine` = 5 WHERE (`BillCode` LIKE "PF%") AND (`DocumentLine` IS NULL)');
     1087  $Manager->Execute('UPDATE `FinanceInvoice` SET `DocumentLine` = 6 WHERE (`BillCode` LIKE "VF%") AND (`DocumentLine` IS NULL)');
     1088
     1089  // IS menu item
     1090  $DbResult = $Manager->Execute('SELECT `Id` FROM `MenuItem` WHERE `Name`="Závazky a pohledávky"');
     1091  if($DbResult->num_rows > 0)
     1092  {
     1093    $DbRow = $DbResult->fetch_assoc();
     1094    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
    10951095    `Group` ,`Icon` ,`PermissionOperation` ,`Enable`) VALUES (
    10961096    NULL , "", "Příjaté", "1", "/is/?t=FinanceInvoiceIn&a=list", NULL , NULL , NULL , "1");');
    1097                 $ActionId = $Manager->Database->insert_id;
    1098                 $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    1099                                 "VALUES (NULL , 'Přijaté', ".$DbRow['Id'].", '".$ActionId."', '1');");
    1100                
    1101                 $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
     1097    $ActionId = $Manager->Database->insert_id;
     1098    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1099        "VALUES (NULL , 'Přijaté', ".$DbRow['Id'].", '".$ActionId."', '1');");
     1100
     1101    $Manager->Execute('INSERT INTO `Action` (`Id` ,`Name` ,`Title` ,`Type` ,`URL` ,
    11021102    `Group` ,`Icon` ,`PermissionOperation` ,`Enable`) VALUES (
    11031103    NULL , "", "Vydané", "1", "/is/?t=FinanceInvoiceOut&a=list", NULL , NULL , NULL , "1");');
    1104                 $ActionId = $Manager->Database->insert_id;
    1105                 $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    1106                                 "VALUES (NULL , 'Vydané', ".$DbRow['Id'].", '".$ActionId."', '1');");
    1107         }
     1104    $ActionId = $Manager->Database->insert_id;
     1105    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1106        "VALUES (NULL , 'Vydané', ".$DbRow['Id'].", '".$ActionId."', '1');");
     1107  }
    11081108}
    11091109
    11101110function UpdateTo722($Manager)
    11111111{
    1112         $Manager->Execute('ALTER TABLE `Service` DROP `CustomerCount`;');
     1112  $Manager->Execute('ALTER TABLE `Service` DROP `CustomerCount`;');
    11131113}
    11141114
    11151115function UpdateTo725($Manager)
    11161116{
    1117         // Text column of invoices is not used. Text from invoice items is taken instead.
    1118         $DbResult = $Manager->Execute('ALTER TABLE `FinanceInvoice` DROP `Text`;');
    1119        
    1120         $SearchText = 'Připojení k síti';
    1121         $DbResult = $Manager->Execute('SELECT * FROM `FinanceInvoiceItem` WHERE `Description` LIKE "'.$SearchText.' za období%";');
    1122         while($DbRow = $DbResult->fetch_assoc())
    1123         {
    1124                 $Text = trim(substr($DbRow['Description'], strlen($SearchText.' za období') + 1));
    1125                 $Text = explode('-', $Text);           
    1126                 $PeriodFrom = explode('.', trim($Text[0]));
    1127                 $PeriodFrom = $PeriodFrom[2].'-'.$PeriodFrom[1].'-'.$PeriodFrom[0];
    1128                 $PeriodTo = explode('.', trim($Text[1]));
    1129                 $PeriodTo = $PeriodTo[2].'-'.$PeriodTo[1].'-'.$PeriodTo[0];
    1130                 $Manager->Execute('UPDATE `FinanceInvoice` SET `PeriodFrom`="'.$PeriodFrom.'", `PeriodTo`="'.$PeriodTo.'" WHERE `Id`='.$DbRow['FinanceInvoice']);
    1131         }
    1132         $DbResult = $Manager->Execute('UPDATE `FinanceInvoiceItem` SET `Description` = "'.$SearchText.'" WHERE `Description` LIKE "'.$SearchText.' za období%";');
    1133        
    1134         $SearchText = 'Připojení k Internetu';
    1135         $DbResult = $Manager->Execute('SELECT * FROM `FinanceInvoiceItem` WHERE `Description` LIKE "'.$SearchText.' za období%";');
    1136         while($DbRow = $DbResult->fetch_assoc())
    1137         {
    1138                 $Text = trim(substr($DbRow['Description'], strlen($SearchText.' za období') + 1));
    1139                 $Text = explode('-', $Text);           
    1140                 $PeriodFrom = explode('.', trim($Text[0]));
    1141                 $PeriodFrom = $PeriodFrom[2].'-'.$PeriodFrom[1].'-'.$PeriodFrom[0];
    1142                 $Text[1] = trim($Text[1]);
    1143                 if(strpos($Text[1], ' ') !== false) $Text[1] = substr($Text[1], 0, strpos($Text[1], ' '));
    1144                 $PeriodTo = explode('.', trim($Text[1]));
    1145                 $PeriodTo = $PeriodTo[2].'-'.$PeriodTo[1].'-'.$PeriodTo[0];
    1146                 $Manager->Execute('UPDATE `FinanceInvoice` SET `PeriodFrom`="'.$PeriodFrom.'", `PeriodTo`="'.$PeriodTo.'" WHERE `Id`='.$DbRow['FinanceInvoice']);
    1147         }
    1148         $DbResult = $Manager->Execute('UPDATE `FinanceInvoiceItem` SET `Description` = "'.$SearchText.'" WHERE `Description` LIKE "'.$SearchText.' za období%";');
     1117  // Text column of invoices is not used. Text from invoice items is taken instead.
     1118  $DbResult = $Manager->Execute('ALTER TABLE `FinanceInvoice` DROP `Text`;');
     1119
     1120  $SearchText = 'Připojení k síti';
     1121  $DbResult = $Manager->Execute('SELECT * FROM `FinanceInvoiceItem` WHERE `Description` LIKE "'.$SearchText.' za období%";');
     1122  while($DbRow = $DbResult->fetch_assoc())
     1123  {
     1124    $Text = trim(substr($DbRow['Description'], strlen($SearchText.' za období') + 1));
     1125    $Text = explode('-', $Text);
     1126    $PeriodFrom = explode('.', trim($Text[0]));
     1127    $PeriodFrom = $PeriodFrom[2].'-'.$PeriodFrom[1].'-'.$PeriodFrom[0];
     1128    $PeriodTo = explode('.', trim($Text[1]));
     1129    $PeriodTo = $PeriodTo[2].'-'.$PeriodTo[1].'-'.$PeriodTo[0];
     1130    $Manager->Execute('UPDATE `FinanceInvoice` SET `PeriodFrom`="'.$PeriodFrom.'", `PeriodTo`="'.$PeriodTo.'" WHERE `Id`='.$DbRow['FinanceInvoice']);
     1131  }
     1132  $DbResult = $Manager->Execute('UPDATE `FinanceInvoiceItem` SET `Description` = "'.$SearchText.'" WHERE `Description` LIKE "'.$SearchText.' za období%";');
     1133
     1134  $SearchText = 'Připojení k Internetu';
     1135  $DbResult = $Manager->Execute('SELECT * FROM `FinanceInvoiceItem` WHERE `Description` LIKE "'.$SearchText.' za období%";');
     1136  while($DbRow = $DbResult->fetch_assoc())
     1137  {
     1138    $Text = trim(substr($DbRow['Description'], strlen($SearchText.' za období') + 1));
     1139    $Text = explode('-', $Text);
     1140    $PeriodFrom = explode('.', trim($Text[0]));
     1141    $PeriodFrom = $PeriodFrom[2].'-'.$PeriodFrom[1].'-'.$PeriodFrom[0];
     1142    $Text[1] = trim($Text[1]);
     1143    if(strpos($Text[1], ' ') !== false) $Text[1] = substr($Text[1], 0, strpos($Text[1], ' '));
     1144    $PeriodTo = explode('.', trim($Text[1]));
     1145    $PeriodTo = $PeriodTo[2].'-'.$PeriodTo[1].'-'.$PeriodTo[0];
     1146    $Manager->Execute('UPDATE `FinanceInvoice` SET `PeriodFrom`="'.$PeriodFrom.'", `PeriodTo`="'.$PeriodTo.'" WHERE `Id`='.$DbRow['FinanceInvoice']);
     1147  }
     1148  $DbResult = $Manager->Execute('UPDATE `FinanceInvoiceItem` SET `Description` = "'.$SearchText.'" WHERE `Description` LIKE "'.$SearchText.' za období%";');
    11491149}
    11501150
    11511151function UpdateTo726($Manager)
    11521152{
    1153         $Manager->Execute('ALTER TABLE `ServiceCustomerRel` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
    1154         $Manager->Execute('ALTER TABLE `ServiceCustomerRel` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
    1155         $Manager->Execute('ALTER TABLE `ServiceCustomerRel` DROP FOREIGN KEY `ServiceCustomerRel_ibfk_4`;');
    1156         $Manager->Execute('ALTER TABLE `ServiceCustomerRel` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
    1157         $Manager->Execute('ALTER TABLE `ServiceCustomerRel` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `ServiceCustomerRel`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
    1158 
    1159         $Manager->Execute('ALTER TABLE `Service` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
    1160         $Manager->Execute('ALTER TABLE `Service` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
    1161         $Manager->Execute('ALTER TABLE `Service` DROP FOREIGN KEY `Service_ibfk_2`;');
    1162         $Manager->Execute('ALTER TABLE `Service` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
    1163         $Manager->Execute('ALTER TABLE `Service` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `Service`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
    1164 
    1165         $Manager->Execute('ALTER TABLE `FinanceCharge` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
    1166         $Manager->Execute('ALTER TABLE `FinanceCharge` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
    1167         $Manager->Execute('ALTER TABLE `FinanceCharge` DROP FOREIGN KEY `FinanceCharge_ibfk_1`;');
    1168         $Manager->Execute('ALTER TABLE `FinanceCharge` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
    1169         $Manager->Execute('ALTER TABLE `FinanceCharge` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `FinanceCharge`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
    1170        
    1171         $Manager->Execute('ALTER TABLE `MemberPayment` DROP `NetworkDevice`;');
     1153  $Manager->Execute('ALTER TABLE `ServiceCustomerRel` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
     1154  $Manager->Execute('ALTER TABLE `ServiceCustomerRel` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
     1155  $Manager->Execute('ALTER TABLE `ServiceCustomerRel` DROP FOREIGN KEY `ServiceCustomerRel_ibfk_4`;');
     1156  $Manager->Execute('ALTER TABLE `ServiceCustomerRel` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
     1157  $Manager->Execute('ALTER TABLE `ServiceCustomerRel` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `ServiceCustomerRel`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
     1158
     1159  $Manager->Execute('ALTER TABLE `Service` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
     1160  $Manager->Execute('ALTER TABLE `Service` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
     1161  $Manager->Execute('ALTER TABLE `Service` DROP FOREIGN KEY `Service_ibfk_2`;');
     1162  $Manager->Execute('ALTER TABLE `Service` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
     1163  $Manager->Execute('ALTER TABLE `Service` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `Service`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
     1164
     1165  $Manager->Execute('ALTER TABLE `FinanceCharge` CHANGE `Action` `ChangeAction` ENUM("add","modify","remove") CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
     1166  $Manager->Execute('ALTER TABLE `FinanceCharge` ADD `ChangeTime` DATETIME NULL AFTER `ChangeAction`;');
     1167  $Manager->Execute('ALTER TABLE `FinanceCharge` DROP FOREIGN KEY `FinanceCharge_ibfk_1`;');
     1168  $Manager->Execute('ALTER TABLE `FinanceCharge` CHANGE `ReplaceId` `ChangeReplaceId` INT(11) NULL DEFAULT NULL;');
     1169  $Manager->Execute('ALTER TABLE `FinanceCharge` ADD FOREIGN KEY (`ChangeReplaceId`) REFERENCES `FinanceCharge`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;');
     1170
     1171  $Manager->Execute('ALTER TABLE `MemberPayment` DROP `NetworkDevice`;');
    11721172}
    11731173
     
    11751175{
    11761176 $Manager->Execute('ALTER TABLE `FinanceBankAccount` ADD `AutoImport` INT NOT NULL ;');
    1177  
     1177
    11781178  $Manager->Execute('CREATE TABLE IF NOT EXISTS `Scheduler` (
    11791179  `Id` int(11) NOT NULL,
     
    11891189  $Manager->Execute('ALTER TABLE `Scheduler`
    11901190 ADD PRIMARY KEY (`Id`);');
    1191  
     1191
    11921192  $Manager->Execute('ALTER TABLE `Scheduler`
    11931193MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
     
    12011201  if($DbResult->num_rows > 0)
    12021202  {
    1203         $DbRow = $DbResult->fetch_assoc();
     1203    $DbRow = $DbResult->fetch_assoc();
    12041204    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    12051205      "VALUES (NULL , 'Plánovač', ".$DbRow['Id'].", '".$ActionId."', '1');");
    12061206  }
    1207  
     1207
    12081208  $Manager->Execute('INSERT INTO `Module` (`Id`, `Name`, `Title`) VALUES (NULL, "Plánovač", "Scheduler");');
    12091209}
     
    12111211function UpdateTo730($Manager)
    12121212{
    1213         $Manager->Execute('CREATE TABLE IF NOT EXISTS `SchedulerAction` (
     1213  $Manager->Execute('CREATE TABLE IF NOT EXISTS `SchedulerAction` (
    12141214  `Id` int(11) NOT NULL AUTO_INCREMENT,
    12151215  `Name` varchar(255) NOT NULL,
    12161216  `Class` varchar(255) NOT NULL,
    1217         PRIMARY KEY (`Id`)
    1218 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');     
     1217  PRIMARY KEY (`Id`)
     1218) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');
    12191219  $Manager->Execute('ALTER TABLE `Scheduler` CHANGE `Class` `Action` INT(11) NOT NULL;');
    12201220  $Manager->Execute("ALTER TABLE `Scheduler` ADD INDEX ( `Action` ) ");
     
    12261226function UpdateTo731($Manager)
    12271227{
    1228         // NetworkDomain
    1229         $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkDomain` (
     1228  // NetworkDomain
     1229  $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkDomain` (
    12301230`Id` int(11) NOT NULL,
    12311231`Name` varchar(255) NOT NULL,
     
    12521252  if($DbResult->num_rows > 0)
    12531253  {
    1254         $DbRow = $DbResult->fetch_assoc();
    1255         $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
    1256                 "VALUES (NULL , 'Síťová doména', ".$DbRow['Id'].", '".$ActionId."', '1');");
    1257   } 
    1258        
    1259         // Model additions
    1260         $Manager->Execute('ALTER TABLE `Model` ADD `Title` VARCHAR(255) NOT NULL , '.
    1261                 'ADD `Query` VARCHAR(255) NOT NULL , '.
    1262                 'ADD `DefaultSortColumn` VARCHAR(255) NOT NULL , '.
    1263                 'ADD `DefaultSortOrder` INT NOT NULL ;');
    1264        
    1265         // ModelField
    1266         $Manager->Execute('CREATE TABLE IF NOT EXISTS `ModelField` (
    1267         `Id` int(11) NOT NULL,
    1268         `Name` varchar(255) NOT NULL,
    1269         `Model` int(11) NOT NULL,
    1270         `Query` varchar(255) NOT NULL,
    1271         `Type` varchar(255) NOT NULL,
    1272         `Title` varchar(255) NOT NULL,
    1273         `DefaultValue` varchar(255) NOT NULL,
    1274         `IsNull` int(11) NOT NULL,
    1275         `Suffix` varchar(255) NOT NULL
    1276         ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');
    1277        
    1278         $Manager->Execute('ALTER TABLE `ModelField`
    1279         ADD PRIMARY KEY (`Id`), ADD KEY `Model` (`Model`);');
    1280        
    1281         $Manager->Execute('ALTER TABLE `ModelField`
    1282         MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
    1283        
    1284         $Manager->Execute('ALTER TABLE `ModelField`
    1285         ADD CONSTRAINT `ModelField_ibfk_1` FOREIGN KEY (`Model`) REFERENCES `Model` (`Id`);');
    1286        
    1287         // Module additions
    1288         $Manager->Execute('ALTER TABLE `Module` ADD `Version` VARCHAR(255) NOT NULL , '.
    1289                 'ADD `Creator` VARCHAR(255) NOT NULL , '.
    1290                 'ADD `License` VARCHAR(255) NOT NULL , '.
    1291                 'ADD `Installed` INT NOT NULL , '.
    1292                 'ADD `HomePage` VARCHAR(255) NOT NULL , '.
    1293                 'ADD `Description` TEXT NOT NULL ;');
    1294        
    1295         // ModuleLink
    1296         $Manager->Execute('CREATE TABLE IF NOT EXISTS `ModuleLink` (
     1254    $DbRow = $DbResult->fetch_assoc();
     1255    $Manager->Execute("INSERT INTO `MenuItem` (`Id` ,`Name` ,`Parent` ,`Action` ,`Menu`) ".
     1256      "VALUES (NULL , 'Síťová doména', ".$DbRow['Id'].", '".$ActionId."', '1');");
     1257  }
     1258
     1259  // Model additions
     1260  $Manager->Execute('ALTER TABLE `Model` ADD `Title` VARCHAR(255) NOT NULL , '.
     1261    'ADD `Query` VARCHAR(255) NOT NULL , '.
     1262    'ADD `DefaultSortColumn` VARCHAR(255) NOT NULL , '.
     1263    'ADD `DefaultSortOrder` INT NOT NULL ;');
     1264
     1265  // ModelField
     1266  $Manager->Execute('CREATE TABLE IF NOT EXISTS `ModelField` (
     1267  `Id` int(11) NOT NULL,
     1268  `Name` varchar(255) NOT NULL,
     1269  `Model` int(11) NOT NULL,
     1270  `Query` varchar(255) NOT NULL,
     1271  `Type` varchar(255) NOT NULL,
     1272  `Title` varchar(255) NOT NULL,
     1273  `DefaultValue` varchar(255) NOT NULL,
     1274  `IsNull` int(11) NOT NULL,
     1275  `Suffix` varchar(255) NOT NULL
     1276  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;');
     1277
     1278  $Manager->Execute('ALTER TABLE `ModelField`
     1279  ADD PRIMARY KEY (`Id`), ADD KEY `Model` (`Model`);');
     1280
     1281  $Manager->Execute('ALTER TABLE `ModelField`
     1282  MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
     1283
     1284  $Manager->Execute('ALTER TABLE `ModelField`
     1285  ADD CONSTRAINT `ModelField_ibfk_1` FOREIGN KEY (`Model`) REFERENCES `Model` (`Id`);');
     1286
     1287  // Module additions
     1288  $Manager->Execute('ALTER TABLE `Module` ADD `Version` VARCHAR(255) NOT NULL , '.
     1289    'ADD `Creator` VARCHAR(255) NOT NULL , '.
     1290    'ADD `License` VARCHAR(255) NOT NULL , '.
     1291    'ADD `Installed` INT NOT NULL , '.
     1292    'ADD `HomePage` VARCHAR(255) NOT NULL , '.
     1293    'ADD `Description` TEXT NOT NULL ;');
     1294
     1295  // ModuleLink
     1296  $Manager->Execute('CREATE TABLE IF NOT EXISTS `ModuleLink` (
    12971297`Id` int(11) NOT NULL,
    12981298  `Module` int(11) NOT NULL,
     
    13051305
    13061306  $Manager->Execute('ALTER TABLE `ModuleLink`
    1307         MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
     1307    MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;');
    13081308}
    13091309
    13101310function UpdateTo735($Manager)
    13111311{
    1312         $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkFreeAccess` (
     1312  $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkFreeAccess` (
    13131313`Id` int(11) NOT NULL,
    13141314`IPAddress` varchar(255) NOT NULL,
    13151315`Time` datetime NOT NULL
    13161316) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
    1317        
    1318         $Manager->Execute('ALTER TABLE `NetworkFreeAccess`
    1319         ADD PRIMARY KEY (`Id`);');
    1320        
    1321         $Manager->Execute('ALTER TABLE `NetworkFreeAccess`
    1322         MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=1;');
    1323        
    1324         $Manager->Execute('ALTER TABLE `NetworkFreeAccess` ADD `Configured` INT NOT NULL ;');
    1325         $DbResult = $Manager->Execute('INSERT INTO `SchedulerAction` (`Id`, `Name`, `Class`) VALUES '.
    1326                 '(NULL, "Konfigurace internetu zdarma", "ScheduleConfigureFreeAccess");');
    1327         $ActionId = $Manager->Database->insert_id;
    1328         $Manager->Execute('INSERT INTO `Scheduler` (`Id`, `Name`, `Enabled`, `Action`,
    1329                 `Log`, `LastExecutedTime`, `ScheduledTime`, `Period`) VALUES (NULL, "Internet zdarma",
    1330                 1, '.$ActionId.', "", NULL, "", 5);');
    1331         $Manager->Execute('ALTER TABLE `Scheduler` CHANGE `ScheduledTime` `ScheduledTime` DATETIME NULL;');
     1317
     1318  $Manager->Execute('ALTER TABLE `NetworkFreeAccess`
     1319  ADD PRIMARY KEY (`Id`);');
     1320
     1321  $Manager->Execute('ALTER TABLE `NetworkFreeAccess`
     1322  MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=1;');
     1323
     1324  $Manager->Execute('ALTER TABLE `NetworkFreeAccess` ADD `Configured` INT NOT NULL ;');
     1325  $DbResult = $Manager->Execute('INSERT INTO `SchedulerAction` (`Id`, `Name`, `Class`) VALUES '.
     1326    '(NULL, "Konfigurace internetu zdarma", "ScheduleConfigureFreeAccess");');
     1327  $ActionId = $Manager->Database->insert_id;
     1328  $Manager->Execute('INSERT INTO `Scheduler` (`Id`, `Name`, `Enabled`, `Action`,
     1329    `Log`, `LastExecutedTime`, `ScheduledTime`, `Period`) VALUES (NULL, "Internet zdarma",
     1330    1, '.$ActionId.', "", NULL, "", 5);');
     1331  $Manager->Execute('ALTER TABLE `Scheduler` CHANGE `ScheduledTime` `ScheduledTime` DATETIME NULL;');
    13321332}
    13331333
    13341334function UpdateTo736($Manager)
    13351335{
    1336         $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkLinkType` (
     1336  $Manager->Execute('CREATE TABLE IF NOT EXISTS `NetworkLinkType` (
    13371337`Id` int(11) NOT NULL,
    13381338`Name` varchar(255) NOT NULL
     
    13991399      697 => array('Revision' => 707, 'Function' => 'UpdateTo707'),
    14001400      707 => array('Revision' => 710, 'Function' => 'UpdateTo710'),
    1401         710 => array('Revision' => 715, 'Function' => 'UpdateTo715'),
     1401      710 => array('Revision' => 715, 'Function' => 'UpdateTo715'),
    14021402      715 => array('Revision' => 718, 'Function' => 'UpdateTo718'),
    14031403      718 => array('Revision' => 719, 'Function' => 'UpdateTo719'),
    1404         719 => array('Revision' => 720, 'Function' => 'UpdateTo720'),
    1405         720 => array('Revision' => 722, 'Function' => 'UpdateTo722'),
    1406         722 => array('Revision' => 725, 'Function' => 'UpdateTo725'),
    1407         725 => array('Revision' => 726, 'Function' => 'UpdateTo726'),
    1408         726 => array('Revision' => 729, 'Function' => 'UpdateTo729'),
    1409         729 => array('Revision' => 730, 'Function' => 'UpdateTo730'),
    1410         730 => array('Revision' => 731, 'Function' => 'UpdateTo731'),
    1411         731 => array('Revision' => 735, 'Function' => 'UpdateTo735'),
    1412         735 => array('Revision' => 736, 'Function' => 'UpdateTo736'),
     1404      719 => array('Revision' => 720, 'Function' => 'UpdateTo720'),
     1405      720 => array('Revision' => 722, 'Function' => 'UpdateTo722'),
     1406      722 => array('Revision' => 725, 'Function' => 'UpdateTo725'),
     1407      725 => array('Revision' => 726, 'Function' => 'UpdateTo726'),
     1408      726 => array('Revision' => 729, 'Function' => 'UpdateTo729'),
     1409      729 => array('Revision' => 730, 'Function' => 'UpdateTo730'),
     1410      730 => array('Revision' => 731, 'Function' => 'UpdateTo731'),
     1411      731 => array('Revision' => 735, 'Function' => 'UpdateTo735'),
     1412      735 => array('Revision' => 736, 'Function' => 'UpdateTo736'),
    14131413    ));
    14141414  }
  • trunk/Common/Table.php

    r636 r738  
    11<?php
    22
    3 class Control 
     3class Control
    44{
    5         var $Name;
    6        
     5  var $Name;
     6
    77  function Show()
    88  {
    9           return('');
     9    return('');
    1010  }
    1111}
     
    1313class Table
    1414{
    15         function GetCell($Y, $X)
    16         {
    17                 return('');
    18         }
     15  function GetCell($Y, $X)
     16  {
     17    return('');
     18  }
    1919
    20         function BeginRead()
    21         {
    22         }
    23        
    24         function EndRead()
    25         {
    26         }
    27        
     20  function BeginRead()
     21  {
     22  }
     23
     24  function EndRead()
     25  {
     26  }
     27
    2828  function RowsCount()
    2929  {
    30         return(0);
     30    return(0);
    3131  }
    3232}
     
    3434class TableMemory extends Table
    3535{
    36         var $Cells;
    37        
    38         function GetCell($Y, $X)
    39         {
    40                 return($this->Cells[$Y][$X]);
    41         }
     36  var $Cells;
     37
     38  function GetCell($Y, $X)
     39  {
     40    return($this->Cells[$Y][$X]);
     41  }
    4242
    4343  function RowsCount()
    4444  {
    45         return(count($this->Cells));
     45    return(count($this->Cells));
    4646  }
    4747}
     
    4949class TableSQL extends Table
    5050{
    51         var $Query;
    52         var $Database;
    53         var $Cells;     
    54        
    55         function GetCell($Y, $X)
    56         {
    57                 return($this->Cells[$Y][$X]);
    58         }
    59        
    60         function BeginRead()
    61         {
    62                 $this->Cells = array();
    63                 $DbResult = $this->Database->query($this->Query);
    64                 while($DbRow = $DbResult->fetch_row())
    65                 {
    66                         $this->Cells[] = $DbRow;
    67                 }
    68         }
    69        
    70         function EndRead()
    71         {
    72                 $this->Cells = array();
    73         }
     51  var $Query;
     52  var $Database;
     53  var $Cells;
     54
     55  function GetCell($Y, $X)
     56  {
     57    return($this->Cells[$Y][$X]);
     58  }
     59
     60  function BeginRead()
     61  {
     62    $this->Cells = array();
     63    $DbResult = $this->Database->query($this->Query);
     64    while($DbRow = $DbResult->fetch_row())
     65    {
     66      $this->Cells[] = $DbRow;
     67    }
     68  }
     69
     70  function EndRead()
     71  {
     72    $this->Cells = array();
     73  }
    7474
    7575  function RowsCount()
    7676  {
    77         return(count($this->Cells));
     77    return(count($this->Cells));
    7878  }
    7979}
     
    8181class TableColumn
    8282{
    83         var $Name;
    84         var $Title;
     83  var $Name;
     84  var $Title;
    8585}
    8686
     
    9696  var $DefaultOrder;
    9797  var $Table;
    98  
     98
    9999  function __construct()
    100100  {
    101         global $System;
    102        
    103         $this->Columns = array();
    104         $this->Table = new TableMemory();
     101    global $System;
     102
     103    $this->Columns = array();
     104    $this->Table = new TableMemory();
    105105    $this->OrderDirSQL = array('ASC', 'DESC');
    106     $this->OrderArrowImage = array($System->Link('/images/sort_asc.png'), 
     106    $this->OrderArrowImage = array($System->Link('/images/sort_asc.png'),
    107107      $System->Link('/images/sort_desc.png'));
    108108    $this->DefaultOrder = 0;
    109109  }
    110  
     110
    111111  function SetColumns($Columns)
    112112  {
    113         $this->Columns = array();
    114         foreach($Columns as $Column)
    115         {
    116                 $NewCol = new TableColumn();
    117                 $NewCol->Name = $Column['Name'];
    118                 $NewCol->Title = $Column['Title'];
    119                 $this->Columns[] = $NewCol;
    120         }
    121         if(count($this->Columns) > 0)
    122           $this->DefaultColumn = $this->Columns[0]->Name;
    123           else $this->DefaultColumn = '';
     113    $this->Columns = array();
     114    foreach($Columns as $Column)
     115    {
     116      $NewCol = new TableColumn();
     117      $NewCol->Name = $Column['Name'];
     118      $NewCol->Title = $Column['Title'];
     119      $this->Columns[] = $NewCol;
     120    }
     121    if(count($this->Columns) > 0)
     122      $this->DefaultColumn = $this->Columns[0]->Name;
     123      else $this->DefaultColumn = '';
    124124  }
    125  
     125
    126126  function Show()
    127127  {
    128           $Output = '<table class="WideTable">';
    129           $Output .= $this->GetOrderHeader();
    130           $this->Table->BeginRead();
    131         for($Y = 0; $Y < $this->Table->RowsCount(); $Y++)
    132         {
    133             $Output .= '<tr>';
    134            
    135             for($X = 0; $X < count($this->Columns); $X++)
    136             {
    137                 $Cell = $this->Table->GetCell($Y, $X);
    138                 if($Cell == '') $Output .= '<td>&nbsp;</td>';
    139                     else $Output .= '<td>'.$Cell.'</td>';
    140             }       
    141             $Output .= '</tr>';
    142           }
    143           $this->Table->EndRead();
    144           $Output .= '</table>';
     128    $Output = '<table class="WideTable">';
     129    $Output .= $this->GetOrderHeader();
     130    $this->Table->BeginRead();
     131    for($Y = 0; $Y < $this->Table->RowsCount(); $Y++)
     132    {
     133      $Output .= '<tr>';
     134
     135      for($X = 0; $X < count($this->Columns); $X++)
     136      {
     137        $Cell = $this->Table->GetCell($Y, $X);
     138        if($Cell == '') $Output .= '<td>&nbsp;</td>';
     139          else $Output .= '<td>'.$Cell.'</td>';
     140      }
     141      $Output .= '</tr>';
     142    }
     143    $this->Table->EndRead();
     144    $Output .= '</table>';
    145145    return($Output);
    146146  }
    147  
     147
    148148  function GetOrderHeader()
    149149  {
     
    152152    if(!array_key_exists('OrderCol', $_SESSION)) $_SESSION['OrderCol'] = $this->DefaultColumn;
    153153    if(!array_key_exists('OrderDir', $_SESSION)) $_SESSION['OrderDir'] = $this->DefaultOrder;
    154  
     154
    155155    // Check OrderCol
    156156    $Found = false;
     
    159159      if($Column->Name == $_SESSION['OrderCol'])
    160160      {
    161         $Found = true;   
     161        $Found = true;
    162162        break;
    163163      }
     
    169169    }
    170170    // Check OrderDir
    171     if(($_SESSION['OrderDir'] != 0) and ($_SESSION['OrderDir'] != 1)) 
     171    if(($_SESSION['OrderDir'] != 0) and ($_SESSION['OrderDir'] != 1))
    172172      $_SESSION['OrderDir'] = 0;
    173  
     173
    174174    $Result = '';
    175175    $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
     
    178178      $QueryItems['OrderCol'] = $Column->Name;
    179179      $QueryItems['OrderDir'] = 1 - $_SESSION['OrderDir'];
    180       if($Column->Name == $_SESSION['OrderCol']) 
     180      if($Column->Name == $_SESSION['OrderCol'])
    181181        $ArrowImage = '<img style="vertical-align: middle; border: 0px;" src="'.$this->OrderArrowImage[$_SESSION['OrderDir']].'" alt="order arrow">';
    182182        else $ArrowImage = '';
     
    187187    $this->OrderColumn = $_SESSION['OrderCol'];
    188188    $this->OrderDirection = $_SESSION['OrderDir'];
    189  
     189
    190190    return($Result);
    191191  }
  • trunk/Common/UTF8.php

    r635 r738  
    2121  ISO8859-1: iso1
    2222  Windows1257: win1257
    23  
     23
    2424  example:  $new_string=to_utf8($some_string,"win1250");
    2525*/
     
    2828/*
    2929  translation table - actually, it's array where key is hexadecimal number of
    30   character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8 
     30  character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8
    3131*/
    3232
    33 class Encoding 
     33class Encoding
    3434{
    3535  function __construct()
    3636  {
    37         $this->CharTable = array(
     37    $this->CharTable = array(
    3838  'iso2' => array(
    39         0x80=>"\xc2\x80",
    40         0x81=>"\xc2\x81",
    41         0x82=>"\xc2\x82",
    42         0x83=>"\xc2\x83",
    43         0x84=>"\xc2\x84",
    44         0x85=>"\xc2\x85",
    45         0x86=>"\xc2\x86",
    46         0x87=>"\xc2\x87",
    47         0x88=>"\xc2\x88",
    48         0x89=>"\xc2\x89",
    49         0x8A=>"\xc2\x8a",
    50         0x8B=>"\xc2\x8b",
    51         0x8C=>"\xc2\x8c",
    52         0x8D=>"\xc2\x8d",
    53         0x8E=>"\xc2\x8e",
    54         0x8F=>"\xc2\x8f",
    55         0x90=>"\xc2\x90",
    56         0x91=>"\xc2\x91",
    57         0x92=>"\xc2\x92",
    58         0x93=>"\xc2\x93",
    59         0x94=>"\xc2\x94",
    60         0x95=>"\xc2\x95",
    61         0x96=>"\xc2\x96",
    62         0x97=>"\xc2\x97",
    63         0x98=>"\xc2\x98",
    64         0x99=>"\xc2\x99",
    65         0x9A=>"\xc2\x9a",
    66         0x9B=>"\xc2\x9b",
    67         0x9C=>"\xc2\x9c",
    68         0x9D=>"\xc2\x9d",
    69         0x9E=>"\xc2\x9e",
    70         0x9F=>"\xc2\x9f",
    71         0xA0=>"\xc2\xa0",
    72         0xA1=>"\xc4\x84",
    73         0xA2=>"\xcb\x98",
    74         0xA3=>"\xc5\x81",
    75         0xA4=>"\xc2\xa4",
    76         0xA5=>"\xc4\xbd",
    77         0xA6=>"\xc5\x9a",
    78         0xA7=>"\xc2\xa7",
    79         0xA8=>"\xc2\xa8",
    80         0xA9=>"\xc5\xa0",
    81         0xAA=>"\xc5\x9e",
    82         0xAB=>"\xc5\xa4",
    83         0xAC=>"\xc5\xb9",
    84         0xAD=>"\xc2\xad",
    85         0xAE=>"\xc5\xbd",
    86         0xAF=>"\xc5\xbb",
    87         0xB0=>"\xc2\xb0",
    88         0xB1=>"\xc4\x85",
    89         0xB2=>"\xcb\x9b",
    90         0xB3=>"\xc5\x82",
    91         0xB4=>"\xc2\xb4",
    92         0xB5=>"\xc4\xbe",
    93         0xB6=>"\xc5\x9b",
    94         0xB7=>"\xcb\x87",
    95         0xB8=>"\xc2\xb8",
    96         0xB9=>"\xc5\xa1",
    97         0xBA=>"\xc5\x9f",
    98         0xBB=>"\xc5\xa5",
    99         0xBC=>"\xc5\xba",
    100         0xBD=>"\xcb\x9d",
    101         0xBE=>"\xc5\xbe",
    102         0xBF=>"\xc5\xbc",
    103         0xC0=>"\xc5\x94",
    104         0xC1=>"\xc3\x81",
    105         0xC2=>"\xc3\x82",
    106         0xC3=>"\xc4\x82",
    107         0xC4=>"\xc3\x84",
    108         0xC5=>"\xc4\xb9",
    109         0xC6=>"\xc4\x86",
    110         0xC7=>"\xc3\x87",
    111         0xC8=>"\xc4\x8c",
    112         0xC9=>"\xc3\x89",
    113         0xCA=>"\xc4\x98",
    114         0xCB=>"\xc3\x8b",
    115         0xCC=>"\xc4\x9a",
    116         0xCD=>"\xc3\x8d",
    117         0xCE=>"\xc3\x8e",
    118         0xCF=>"\xc4\x8e",
    119         0xD0=>"\xc4\x90",
    120         0xD1=>"\xc5\x83",
    121         0xD2=>"\xc5\x87",
    122         0xD3=>"\xc3\x93",
    123         0xD4=>"\xc3\x94",
    124         0xD5=>"\xc5\x90",
    125         0xD6=>"\xc3\x96",
    126         0xD7=>"\xc3\x97",
    127         0xD8=>"\xc5\x98",
    128         0xD9=>"\xc5\xae",
    129         0xDA=>"\xc3\x9a",
    130         0xDB=>"\xc5\xb0",
    131         0xDC=>"\xc3\x9c",
    132         0xDD=>"\xc3\x9d",
    133         0xDE=>"\xc5\xa2",
    134         0xDF=>"\xc3\x9f",
    135         0xE0=>"\xc5\x95",
    136         0xE1=>"\xc3\xa1",
    137         0xE2=>"\xc3\xa2",
    138         0xE3=>"\xc4\x83",
    139         0xE4=>"\xc3\xa4",
    140         0xE5=>"\xc4\xba",
    141         0xE6=>"\xc4\x87",
    142         0xE7=>"\xc3\xa7",
    143         0xE8=>"\xc4\x8d",
    144         0xE9=>"\xc3\xa9",
    145         0xEA=>"\xc4\x99",
    146         0xEB=>"\xc3\xab",
    147         0xEC=>"\xc4\x9b",
    148         0xED=>"\xc3\xad",
    149         0xEE=>"\xc3\xae",
    150         0xEF=>"\xc4\x8f",
    151         0xF0=>"\xc4\x91",
    152         0xF1=>"\xc5\x84",
    153         0xF2=>"\xc5\x88",
    154         0xF3=>"\xc3\xb3",
    155         0xF4=>"\xc3\xb4",
    156         0xF5=>"\xc5\x91",
    157         0xF6=>"\xc3\xb6",
    158         0xF7=>"\xc3\xb7",
    159         0xF8=>"\xc5\x99",
    160         0xF9=>"\xc5\xaf",
    161         0xFA=>"\xc3\xba",
    162         0xFB=>"\xc5\xb1",
    163         0xFC=>"\xc3\xbc",
    164         0xFD=>"\xc3\xbd",
    165         0xFE=>"\xc5\xa3",
    166         0xFF=>"\xcb\x99"
     39  0x80=>"\xc2\x80",
     40  0x81=>"\xc2\x81",
     41  0x82=>"\xc2\x82",
     42  0x83=>"\xc2\x83",
     43  0x84=>"\xc2\x84",
     44  0x85=>"\xc2\x85",
     45  0x86=>"\xc2\x86",
     46  0x87=>"\xc2\x87",
     47  0x88=>"\xc2\x88",
     48  0x89=>"\xc2\x89",
     49  0x8A=>"\xc2\x8a",
     50  0x8B=>"\xc2\x8b",
     51  0x8C=>"\xc2\x8c",
     52  0x8D=>"\xc2\x8d",
     53  0x8E=>"\xc2\x8e",
     54  0x8F=>"\xc2\x8f",
     55  0x90=>"\xc2\x90",
     56  0x91=>"\xc2\x91",
     57  0x92=>"\xc2\x92",
     58  0x93=>"\xc2\x93",
     59  0x94=>"\xc2\x94",
     60  0x95=>"\xc2\x95",
     61  0x96=>"\xc2\x96",
     62  0x97=>"\xc2\x97",
     63  0x98=>"\xc2\x98",
     64  0x99=>"\xc2\x99",
     65  0x9A=>"\xc2\x9a",
     66  0x9B=>"\xc2\x9b",
     67  0x9C=>"\xc2\x9c",
     68  0x9D=>"\xc2\x9d",
     69  0x9E=>"\xc2\x9e",
     70  0x9F=>"\xc2\x9f",
     71  0xA0=>"\xc2\xa0",
     72  0xA1=>"\xc4\x84",
     73  0xA2=>"\xcb\x98",
     74  0xA3=>"\xc5\x81",
     75  0xA4=>"\xc2\xa4",
     76  0xA5=>"\xc4\xbd",
     77  0xA6=>"\xc5\x9a",
     78  0xA7=>"\xc2\xa7",
     79  0xA8=>"\xc2\xa8",
     80  0xA9=>"\xc5\xa0",
     81  0xAA=>"\xc5\x9e",
     82  0xAB=>"\xc5\xa4",
     83  0xAC=>"\xc5\xb9",
     84  0xAD=>"\xc2\xad",
     85  0xAE=>"\xc5\xbd",
     86  0xAF=>"\xc5\xbb",
     87  0xB0=>"\xc2\xb0",
     88  0xB1=>"\xc4\x85",
     89  0xB2=>"\xcb\x9b",
     90  0xB3=>"\xc5\x82",
     91  0xB4=>"\xc2\xb4",
     92  0xB5=>"\xc4\xbe",
     93  0xB6=>"\xc5\x9b",
     94  0xB7=>"\xcb\x87",
     95  0xB8=>"\xc2\xb8",
     96  0xB9=>"\xc5\xa1",
     97  0xBA=>"\xc5\x9f",
     98  0xBB=>"\xc5\xa5",
     99  0xBC=>"\xc5\xba",
     100  0xBD=>"\xcb\x9d",
     101  0xBE=>"\xc5\xbe",
     102  0xBF=>"\xc5\xbc",
     103  0xC0=>"\xc5\x94",
     104  0xC1=>"\xc3\x81",
     105  0xC2=>"\xc3\x82",
     106  0xC3=>"\xc4\x82",
     107  0xC4=>"\xc3\x84",
     108  0xC5=>"\xc4\xb9",
     109  0xC6=>"\xc4\x86",
     110  0xC7=>"\xc3\x87",
     111  0xC8=>"\xc4\x8c",
     112  0xC9=>"\xc3\x89",
     113  0xCA=>"\xc4\x98",
     114  0xCB=>"\xc3\x8b",
     115  0xCC=>"\xc4\x9a",
     116  0xCD=>"\xc3\x8d",
     117  0xCE=>"\xc3\x8e",
     118  0xCF=>"\xc4\x8e",
     119  0xD0=>"\xc4\x90",
     120  0xD1=>"\xc5\x83",
     121  0xD2=>"\xc5\x87",
     122  0xD3=>"\xc3\x93",
     123  0xD4=>"\xc3\x94",
     124  0xD5=>"\xc5\x90",
     125  0xD6=>"\xc3\x96",
     126  0xD7=>"\xc3\x97",
     127  0xD8=>"\xc5\x98",
     128  0xD9=>"\xc5\xae",
     129  0xDA=>"\xc3\x9a",
     130  0xDB=>"\xc5\xb0",
     131  0xDC=>"\xc3\x9c",
     132  0xDD=>"\xc3\x9d",
     133  0xDE=>"\xc5\xa2",
     134  0xDF=>"\xc3\x9f",
     135  0xE0=>"\xc5\x95",
     136  0xE1=>"\xc3\xa1",
     137  0xE2=>"\xc3\xa2",
     138  0xE3=>"\xc4\x83",
     139  0xE4=>"\xc3\xa4",
     140  0xE5=>"\xc4\xba",
     141  0xE6=>"\xc4\x87",
     142  0xE7=>"\xc3\xa7",
     143  0xE8=>"\xc4\x8d",
     144  0xE9=>"\xc3\xa9",
     145  0xEA=>"\xc4\x99",
     146  0xEB=>"\xc3\xab",
     147  0xEC=>"\xc4\x9b",
     148  0xED=>"\xc3\xad",
     149  0xEE=>"\xc3\xae",
     150  0xEF=>"\xc4\x8f",
     151  0xF0=>"\xc4\x91",
     152  0xF1=>"\xc5\x84",
     153  0xF2=>"\xc5\x88",
     154  0xF3=>"\xc3\xb3",
     155  0xF4=>"\xc3\xb4",
     156  0xF5=>"\xc5\x91",
     157  0xF6=>"\xc3\xb6",
     158  0xF7=>"\xc3\xb7",
     159  0xF8=>"\xc5\x99",
     160  0xF9=>"\xc5\xaf",
     161  0xFA=>"\xc3\xba",
     162  0xFB=>"\xc5\xb1",
     163  0xFC=>"\xc3\xbc",
     164  0xFD=>"\xc3\xbd",
     165  0xFE=>"\xc5\xa3",
     166  0xFF=>"\xcb\x99"
    167167  ),
    168168  'win1250' => array(
    169         0x80=>"\xc2\x80",
    170         0x81=>"\xc2\x81",
    171         0x82=>"\xe2\x80\x9a",
    172         0x83=>"\xc2\x83",
    173         0x84=>"\xe2\x80\x9e",
    174         0x85=>"\xe2\x80\xa6",
    175         0x86=>"\xe2\x80\xa0",
    176         0x87=>"\xe2\x80\xa1",
    177         0x88=>"\xc2\x88",
    178         0x89=>"\xe2\x80\xb0",
    179         0x8a=>"\xc5\xa0",
    180         0x8b=>"\xe2\x80\xb9",
    181         0x8c=>"\xc5\x9a",
    182         0x8d=>"\xc5\xa4",
    183         0x8e=>"\xc5\xbd",
    184         0x8f=>"\xc5\xb9",
    185         0x90=>"\xc2\x90",
    186         0x91=>"\xe2\x80\x98",
    187         0x92=>"\xe2\x80\x99",
    188         0x93=>"\xe2\x80\x9c",
    189         0x94=>"\xe2\x80\x9d",
    190         0x95=>"\xe2\x80\xa2",
    191         0x96=>"\xe2\x80\x93",
    192         0x97=>"\xe2\x80\x94",
    193         0x98=>"\xe2\x80\x98",
    194         0x99=>"\xe2\x84\xa2",
    195         0x9a=>"\xc5\xa1",
    196         0x9b=>"\xe2\x80\xba",
    197         0x9c=>"\xc5\x9b",
    198         0x9d=>"\xc5\xa5",
    199         0x9e=>"\xc5\xbe",
    200         0x9f=>"\xc5\xba",
    201         0xa0=>"\xc2\xa0",
    202         0xa1=>"\xcb\x87",
    203         0xa2=>"\xcb\x98",
    204         0xa3=>"\xc5\x81",
    205         0xa4=>"\xc2\xa4",
    206         0xa5=>"\xc4\x84",
    207         0xa6=>"\xc2\xa6",
    208         0xa7=>"\xc2\xa7",
    209         0xa8=>"\xc2\xa8",
    210         0xa9=>"\xc2\xa9",
    211         0xaa=>"\xc5\x9e",
    212         0xab=>"\xc2\xab",
    213         0xac=>"\xc2\xac",
    214         0xad=>"\xc2\xad",
    215         0xae=>"\xc2\xae",
    216         0xaf=>"\xc5\xbb",
    217         0xb0=>"\xc2\xb0",
    218         0xb1=>"\xc2\xb1",
    219         0xb2=>"\xcb\x9b",
    220         0xb3=>"\xc5\x82",
    221         0xb4=>"\xc2\xb4",
    222         0xb5=>"\xc2\xb5",
    223         0xb6=>"\xc2\xb6",
    224         0xb7=>"\xc2\xb7",
    225         0xb8=>"\xc2\xb8",
    226         0xb9=>"\xc4\x85",
    227         0xba=>"\xc5\x9f",
    228         0xbb=>"\xc2\xbb",
    229         0xbc=>"\xc4\xbd",
    230         0xbd=>"\xcb\x9d",
    231         0xbe=>"\xc4\xbe",
    232         0xbf=>"\xc5\xbc",
    233         0xc0=>"\xc5\x94",
    234         0xc1=>"\xc3\x81",
    235         0xc2=>"\xc3\x82",
    236         0xc3=>"\xc4\x82",
    237         0xc4=>"\xc3\x84",
    238         0xc5=>"\xc4\xb9",
    239         0xc6=>"\xc4\x86",
    240         0xc7=>"\xc3\x87",
    241         0xc8=>"\xc4\x8c",
    242         0xc9=>"\xc3\x89",
    243         0xca=>"\xc4\x98",
    244         0xcb=>"\xc3\x8b",
    245         0xcc=>"\xc4\x9a",
    246         0xcd=>"\xc3\x8d",
    247         0xce=>"\xc3\x8e",
    248         0xcf=>"\xc4\x8e",
    249         0xd0=>"\xc4\x90",
    250         0xd1=>"\xc5\x83",
    251         0xd2=>"\xc5\x87",
    252         0xd3=>"\xc3\x93",
    253         0xd4=>"\xc3\x94",
    254         0xd5=>"\xc5\x90",
    255         0xd6=>"\xc3\x96",
    256         0xd7=>"\xc3\x97",
    257         0xd8=>"\xc5\x98",
    258         0xd9=>"\xc5\xae",
    259         0xda=>"\xc3\x9a",
    260         0xdb=>"\xc5\xb0",
    261         0xdc=>"\xc3\x9c",
    262         0xdd=>"\xc3\x9d",
    263         0xde=>"\xc5\xa2",
    264         0xdf=>"\xc3\x9f",
    265         0xe0=>"\xc5\x95",
    266         0xe1=>"\xc3\xa1",
    267         0xe2=>"\xc3\xa2",
    268         0xe3=>"\xc4\x83",
    269         0xe4=>"\xc3\xa4",
    270         0xe5=>"\xc4\xba",
    271         0xe6=>"\xc4\x87",
    272         0xe7=>"\xc3\xa7",
    273         0xe8=>"\xc4\x8d",
    274         0xe9=>"\xc3\xa9",
    275         0xea=>"\xc4\x99",
    276         0xeb=>"\xc3\xab",
    277         0xec=>"\xc4\x9b",
    278         0xed=>"\xc3\xad",
    279         0xee=>"\xc3\xae",
    280         0xef=>"\xc4\x8f",
    281         0xf0=>"\xc4\x91",
    282         0xf1=>"\xc5\x84",
    283         0xf2=>"\xc5\x88",
    284         0xf3=>"\xc3\xb3",
    285         0xf4=>"\xc3\xb4",
    286         0xf5=>"\xc5\x91",
    287         0xf6=>"\xc3\xb6",
    288         0xf7=>"\xc3\xb7",
    289         0xf8=>"\xc5\x99",
    290         0xf9=>"\xc5\xaf",
    291         0xfa=>"\xc3\xba",
    292         0xfb=>"\xc5\xb1",
    293         0xfc=>"\xc3\xbc",
    294         0xfd=>"\xc3\xbd",
    295         0xfe=>"\xc5\xa3",
    296         0xff=>"\xcb\x99"
     169  0x80=>"\xc2\x80",
     170  0x81=>"\xc2\x81",
     171  0x82=>"\xe2\x80\x9a",
     172  0x83=>"\xc2\x83",
     173  0x84=>"\xe2\x80\x9e",
     174  0x85=>"\xe2\x80\xa6",
     175  0x86=>"\xe2\x80\xa0",
     176  0x87=>"\xe2\x80\xa1",
     177  0x88=>"\xc2\x88",
     178  0x89=>"\xe2\x80\xb0",
     179  0x8a=>"\xc5\xa0",
     180  0x8b=>"\xe2\x80\xb9",
     181  0x8c=>"\xc5\x9a",
     182  0x8d=>"\xc5\xa4",
     183  0x8e=>"\xc5\xbd",
     184  0x8f=>"\xc5\xb9",
     185  0x90=>"\xc2\x90",
     186  0x91=>"\xe2\x80\x98",
     187  0x92=>"\xe2\x80\x99",
     188  0x93=>"\xe2\x80\x9c",
     189  0x94=>"\xe2\x80\x9d",
     190  0x95=>"\xe2\x80\xa2",
     191  0x96=>"\xe2\x80\x93",
     192  0x97=>"\xe2\x80\x94",
     193  0x98=>"\xe2\x80\x98",
     194  0x99=>"\xe2\x84\xa2",
     195  0x9a=>"\xc5\xa1",
     196  0x9b=>"\xe2\x80\xba",
     197  0x9c=>"\xc5\x9b",
     198  0x9d=>"\xc5\xa5",
     199  0x9e=>"\xc5\xbe",
     200  0x9f=>"\xc5\xba",
     201  0xa0=>"\xc2\xa0",
     202  0xa1=>"\xcb\x87",
     203  0xa2=>"\xcb\x98",
     204  0xa3=>"\xc5\x81",
     205  0xa4=>"\xc2\xa4",
     206  0xa5=>"\xc4\x84",
     207  0xa6=>"\xc2\xa6",
     208  0xa7=>"\xc2\xa7",
     209  0xa8=>"\xc2\xa8",
     210  0xa9=>"\xc2\xa9",
     211  0xaa=>"\xc5\x9e",
     212  0xab=>"\xc2\xab",
     213  0xac=>"\xc2\xac",
     214  0xad=>"\xc2\xad",
     215  0xae=>"\xc2\xae",
     216  0xaf=>"\xc5\xbb",
     217  0xb0=>"\xc2\xb0",
     218  0xb1=>"\xc2\xb1",
     219  0xb2=>"\xcb\x9b",
     220  0xb3=>"\xc5\x82",
     221  0xb4=>"\xc2\xb4",
     222  0xb5=>"\xc2\xb5",
     223  0xb6=>"\xc2\xb6",
     224  0xb7=>"\xc2\xb7",
     225  0xb8=>"\xc2\xb8",
     226  0xb9=>"\xc4\x85",
     227  0xba=>"\xc5\x9f",
     228  0xbb=>"\xc2\xbb",
     229  0xbc=>"\xc4\xbd",
     230  0xbd=>"\xcb\x9d",
     231  0xbe=>"\xc4\xbe",
     232  0xbf=>"\xc5\xbc",
     233  0xc0=>"\xc5\x94",
     234  0xc1=>"\xc3\x81",
     235  0xc2=>"\xc3\x82",
     236  0xc3=>"\xc4\x82",
     237  0xc4=>"\xc3\x84",
     238  0xc5=>"\xc4\xb9",
     239  0xc6=>"\xc4\x86",
     240  0xc7=>"\xc3\x87",
     241  0xc8=>"\xc4\x8c",
     242  0xc9=>"\xc3\x89",
     243  0xca=>"\xc4\x98",
     244  0xcb=>"\xc3\x8b",
     245  0xcc=>"\xc4\x9a",
     246  0xcd=>"\xc3\x8d",
     247  0xce=>"\xc3\x8e",
     248  0xcf=>"\xc4\x8e",
     249  0xd0=>"\xc4\x90",
     250  0xd1=>"\xc5\x83",
     251  0xd2=>"\xc5\x87",
     252  0xd3=>"\xc3\x93",
     253  0xd4=>"\xc3\x94",
     254  0xd5=>"\xc5\x90",
     255  0xd6=>"\xc3\x96",
     256  0xd7=>"\xc3\x97",
     257  0xd8=>"\xc5\x98",
     258  0xd9=>"\xc5\xae",
     259  0xda=>"\xc3\x9a",
     260  0xdb=>"\xc5\xb0",
     261  0xdc=>"\xc3\x9c",
     262  0xdd=>"\xc3\x9d",
     263  0xde=>"\xc5\xa2",
     264  0xdf=>"\xc3\x9f",
     265  0xe0=>"\xc5\x95",
     266  0xe1=>"\xc3\xa1",
     267  0xe2=>"\xc3\xa2",
     268  0xe3=>"\xc4\x83",
     269  0xe4=>"\xc3\xa4",
     270  0xe5=>"\xc4\xba",
     271  0xe6=>"\xc4\x87",
     272  0xe7=>"\xc3\xa7",
     273  0xe8=>"\xc4\x8d",
     274  0xe9=>"\xc3\xa9",
     275  0xea=>"\xc4\x99",
     276  0xeb=>"\xc3\xab",
     277  0xec=>"\xc4\x9b",
     278  0xed=>"\xc3\xad",
     279  0xee=>"\xc3\xae",
     280  0xef=>"\xc4\x8f",
     281  0xf0=>"\xc4\x91",
     282  0xf1=>"\xc5\x84",
     283  0xf2=>"\xc5\x88",
     284  0xf3=>"\xc3\xb3",
     285  0xf4=>"\xc3\xb4",
     286  0xf5=>"\xc5\x91",
     287  0xf6=>"\xc3\xb6",
     288  0xf7=>"\xc3\xb7",
     289  0xf8=>"\xc5\x99",
     290  0xf9=>"\xc5\xaf",
     291  0xfa=>"\xc3\xba",
     292  0xfb=>"\xc5\xb1",
     293  0xfc=>"\xc3\xbc",
     294  0xfd=>"\xc3\xbd",
     295  0xfe=>"\xc5\xa3",
     296  0xff=>"\xcb\x99"
    297297  ),
    298298  'iso1' => array(
    299         0xA0=>"\xc2\xa0",
    300         0xA1=>"\xc2\xa1",
    301         0xA2=>"\xc2\xa2",
    302         0xA3=>"\xc2\xa3",
    303         0xA4=>"\xc2\xa4",
    304         0xA5=>"\xc2\xa5",
    305         0xA6=>"\xc2\xa6",
    306         0xA7=>"\xc2\xa7",
    307         0xA8=>"\xc2\xa8",
    308         0xA9=>"\xc2\xa9",
    309         0xAA=>"\xc2\xaa",
    310         0xAB=>"\xc2\xab",
    311         0xAC=>"\xc2\xac",
    312         0xAD=>"\xc2\xad",
    313         0xAE=>"\xc2\xae",
    314         0xAF=>"\xc2\xaf",
    315         0xB0=>"\xc2\xb0",
    316         0xB1=>"\xc2\xb1",
    317         0xB2=>"\xc2\xb2",
    318         0xB3=>"\xc2\xb3",
    319         0xB4=>"\xc2\xb4",
    320         0xB5=>"\xc2\xb5",
    321         0xB6=>"\xc2\xb6",
    322         0xB7=>"\xc2\xb7",
    323         0xB8=>"\xc2\xb8",
    324         0xB9=>"\xc2\xb9",
    325         0xBA=>"\xc2\xba",
    326         0xBB=>"\xc2\xbb",
    327         0xBC=>"\xc2\xbc",
    328         0xBD=>"\xc2\xbd",
    329         0xBE=>"\xc2\xbe",
    330         0xBF=>"\xc2\xbf",
    331         0xC0=>"\xc3\x80",
    332         0xC1=>"\xc3\x81",
    333         0xC2=>"\xc3\x82",
    334         0xC3=>"\xc3\x83",
    335         0xC4=>"\xc3\x84",
    336         0xC5=>"\xc3\x85",
    337         0xC6=>"\xc3\x86",
    338         0xC7=>"\xc3\x87",
    339         0xC8=>"\xc3\x88",
    340         0xC9=>"\xc3\x89",
    341         0xCA=>"\xc3\x8a",
    342         0xCB=>"\xc3\x8b",
    343         0xCC=>"\xc3\x8c",
    344         0xCD=>"\xc3\x8d",
    345         0xCE=>"\xc3\x8e",
    346         0xCF=>"\xc3\x8f",
    347         0xD0=>"\xc3\x90",
    348         0xD1=>"\xc3\x91",
    349         0xD2=>"\xc3\x92",
    350         0xD3=>"\xc3\x93",
    351         0xD4=>"\xc3\x94",
    352         0xD5=>"\xc3\x95",
    353         0xD6=>"\xc3\x96",
    354         0xD7=>"\xc3\x97",
    355         0xD8=>"\xc3\x98",
    356         0xD9=>"\xc3\x99",
    357         0xDA=>"\xc3\x9a",
    358         0xDB=>"\xc3\x9b",
    359         0xDC=>"\xc3\x9c",
    360         0xDD=>"\xc3\x9d",
    361         0xDE=>"\xc3\x9e",
    362         0xDF=>"\xc3\x9f",
    363         0xE0=>"\xc3\xa0",
    364         0xE1=>"\xc3\xa1",
    365         0xE2=>"\xc3\xa2",
    366         0xE3=>"\xc3\xa3",
    367         0xE4=>"\xc3\xa4",
    368         0xE5=>"\xc3\xa5",
    369         0xE6=>"\xc3\xa6",
    370         0xE7=>"\xc3\xa7",
    371         0xE8=>"\xc3\xa8",
    372         0xE9=>"\xc3\xa9",
    373         0xEA=>"\xc3\xaa",
    374         0xEB=>"\xc3\xab",
    375         0xEC=>"\xc3\xac",
    376         0xED=>"\xc3\xad",
    377         0xEE=>"\xc3\xae",
    378         0xEF=>"\xc3\xaf",
    379         0xF0=>"\xc3\xb0",
    380         0xF1=>"\xc3\xb1",
    381         0xF2=>"\xc3\xb2",
    382         0xF3=>"\xc3\xb3",
    383         0xF4=>"\xc3\xb4",
    384         0xF5=>"\xc3\xb5",
    385         0xF6=>"\xc3\xb6",
    386         0xF7=>"\xc3\xb7",
    387         0xF8=>"\xc3\xb8",
    388         0xF9=>"\xc3\xb9",
    389         0xFA=>"\xc3\xba",
    390         0xFB=>"\xc3\xbb",
    391         0xFC=>"\xc3\xbc",
    392         0xFD=>"\xc3\xbd",
    393         0xFE=>"\xc3\xbe"
     299  0xA0=>"\xc2\xa0",
     300  0xA1=>"\xc2\xa1",
     301  0xA2=>"\xc2\xa2",
     302  0xA3=>"\xc2\xa3",
     303  0xA4=>"\xc2\xa4",
     304  0xA5=>"\xc2\xa5",
     305  0xA6=>"\xc2\xa6",
     306  0xA7=>"\xc2\xa7",
     307  0xA8=>"\xc2\xa8",
     308  0xA9=>"\xc2\xa9",
     309  0xAA=>"\xc2\xaa",
     310  0xAB=>"\xc2\xab",
     311  0xAC=>"\xc2\xac",
     312  0xAD=>"\xc2\xad",
     313  0xAE=>"\xc2\xae",
     314  0xAF=>"\xc2\xaf",
     315  0xB0=>"\xc2\xb0",
     316  0xB1=>"\xc2\xb1",
     317  0xB2=>"\xc2\xb2",
     318  0xB3=>"\xc2\xb3",
     319  0xB4=>"\xc2\xb4",
     320  0xB5=>"\xc2\xb5",
     321  0xB6=>"\xc2\xb6",
     322  0xB7=>"\xc2\xb7",
     323  0xB8=>"\xc2\xb8",
     324  0xB9=>"\xc2\xb9",
     325  0xBA=>"\xc2\xba",
     326  0xBB=>"\xc2\xbb",
     327  0xBC=>"\xc2\xbc",
     328  0xBD=>"\xc2\xbd",
     329  0xBE=>"\xc2\xbe",
     330  0xBF=>"\xc2\xbf",
     331  0xC0=>"\xc3\x80",
     332  0xC1=>"\xc3\x81",
     333  0xC2=>"\xc3\x82",
     334  0xC3=>"\xc3\x83",
     335  0xC4=>"\xc3\x84",
     336  0xC5=>"\xc3\x85",
     337  0xC6=>"\xc3\x86",
     338  0xC7=>"\xc3\x87",
     339  0xC8=>"\xc3\x88",
     340  0xC9=>"\xc3\x89",
     341  0xCA=>"\xc3\x8a",
     342  0xCB=>"\xc3\x8b",
     343  0xCC=>"\xc3\x8c",
     344  0xCD=>"\xc3\x8d",
     345  0xCE=>"\xc3\x8e",
     346  0xCF=>"\xc3\x8f",
     347  0xD0=>"\xc3\x90",
     348  0xD1=>"\xc3\x91",
     349  0xD2=>"\xc3\x92",
     350  0xD3=>"\xc3\x93",
     351  0xD4=>"\xc3\x94",
     352  0xD5=>"\xc3\x95",
     353  0xD6=>"\xc3\x96",
     354  0xD7=>"\xc3\x97",
     355  0xD8=>"\xc3\x98",
     356  0xD9=>"\xc3\x99",
     357  0xDA=>"\xc3\x9a",
     358  0xDB=>"\xc3\x9b",
     359  0xDC=>"\xc3\x9c",
     360  0xDD=>"\xc3\x9d",
     361  0xDE=>"\xc3\x9e",
     362  0xDF=>"\xc3\x9f",
     363  0xE0=>"\xc3\xa0",
     364  0xE1=>"\xc3\xa1",
     365  0xE2=>"\xc3\xa2",
     366  0xE3=>"\xc3\xa3",
     367  0xE4=>"\xc3\xa4",
     368  0xE5=>"\xc3\xa5",
     369  0xE6=>"\xc3\xa6",
     370  0xE7=>"\xc3\xa7",
     371  0xE8=>"\xc3\xa8",
     372  0xE9=>"\xc3\xa9",
     373  0xEA=>"\xc3\xaa",
     374  0xEB=>"\xc3\xab",
     375  0xEC=>"\xc3\xac",
     376  0xED=>"\xc3\xad",
     377  0xEE=>"\xc3\xae",
     378  0xEF=>"\xc3\xaf",
     379  0xF0=>"\xc3\xb0",
     380  0xF1=>"\xc3\xb1",
     381  0xF2=>"\xc3\xb2",
     382  0xF3=>"\xc3\xb3",
     383  0xF4=>"\xc3\xb4",
     384  0xF5=>"\xc3\xb5",
     385  0xF6=>"\xc3\xb6",
     386  0xF7=>"\xc3\xb7",
     387  0xF8=>"\xc3\xb8",
     388  0xF9=>"\xc3\xb9",
     389  0xFA=>"\xc3\xba",
     390  0xFB=>"\xc3\xbb",
     391  0xFC=>"\xc3\xbc",
     392  0xFD=>"\xc3\xbd",
     393  0xFE=>"\xc3\xbe"
    394394  ),
    395395  'win1257' => array(
    396         0x80=>"\xe2\x82\xac",
    397         0x81=>"\xc0\x4",
    398         0x82=>"\xe2\x80\x9a",
    399         0x83=>"\xc0\x4",
    400         0x84=>"\xe2\x80\x9e",
    401         0x85=>"\xe2\x80\xa6",
    402         0x86=>"\xe2\x80\xa0",
    403         0x87=>"\xe2\x80\xa1",
    404         0x88=>"\xc0\x4",
    405         0x89=>"\xe2\x80\xb0",
    406         0x8A=>"\xc0\x4",
    407         0x8B=>"\xe2\x80\xb9",
    408         0x8C=>"\xc0\x4",
    409         0x8D=>"\xc2\xa8",
    410         0x8E=>"\xcb\x87",
    411         0x8F=>"\xc2\xb8",
    412         0x90=>"\xc0\x4",
    413         0x91=>"\xe2\x80\x98",
    414         0x92=>"\xe2\x80\x99",
    415         0x93=>"\xe2\x80\x9c",
    416         0x94=>"\xe2\x80\x9d",
    417         0x95=>"\xe2\x80\xa2",
    418         0x96=>"\xe2\x80\x93",
    419         0x97=>"\xe2\x80\x94",
    420         0x98=>"\xc0\x4",
    421         0x99=>"\xe2\x84\xa2",
    422         0x9A=>"\xc0\x4",
    423         0x9B=>"\xe2\x80\xba",
    424         0x9C=>"\xc0\x4",
    425         0x9D=>"\xc2\xaf",
    426         0x9E=>"\xcb\x9b",
    427         0x9F=>"\xc0\x4",
    428         0xA0=>"\xc2\xa0",
    429         0xA1=>"\xc0\x4",
    430         0xA2=>"\xc2\xa2",
    431         0xA3=>"\xc2\xa3",
    432         0xA4=>"\xc2\xa4",
    433         0xA5=>"\xc0\x4",
    434         0xA6=>"\xc2\xa6",
    435         0xA7=>"\xc2\xa7",
    436         0xA8=>"\xc3\x98",
    437         0xA9=>"\xc2\xa9",
    438         0xAA=>"\xc5\x96",
    439         0xAB=>"\xc2\xab",
    440         0xAC=>"\xc2\xac",
    441         0xAD=>"\xc2\xad",
    442         0xAE=>"\xc2\xae",
    443         0xAF=>"\xc3\x86",
    444         0xB0=>"\xc2\xb0",
    445         0xB1=>"\xc2\xb1",
    446         0xB2=>"\xc2\xb2",
    447         0xB3=>"\xc2\xb3",
    448         0xB4=>"\xc2\xb4",
    449         0xB5=>"\xc2\xb5",
    450         0xB6=>"\xc2\xb6",
    451         0xB7=>"\xc2\xb7",
    452         0xB8=>"\xc3\xb8",
    453         0xB9=>"\xc2\xb9",
    454         0xBA=>"\xc5\x97",
    455         0xBB=>"\xc2\xbb",
    456         0xBC=>"\xc2\xbc",
    457         0xBD=>"\xc2\xbd",
    458         0xBE=>"\xc2\xbe",
    459         0xBF=>"\xc3\xa6",
    460         0xC0=>"\xc4\x84",
    461         0xC1=>"\xc4\xae",
    462         0xC2=>"\xc4\x80",
    463         0xC3=>"\xc4\x86",
    464         0xC4=>"\xc3\x84",
    465         0xC5=>"\xc3\x85",
    466         0xC6=>"\xc4\x98",
    467         0xC7=>"\xc4\x92",
    468         0xC8=>"\xc4\x8c",
    469         0xC9=>"\xc3\x89",
    470         0xCA=>"\xc5\xb9",
    471         0xCB=>"\xc4\x96",
    472         0xCC=>"\xc4\xa2",
    473         0xCD=>"\xc4\xb6",
    474         0xCE=>"\xc4\xaa",
    475         0xCF=>"\xc4\xbb",
    476         0xD0=>"\xc5\xa0",
    477         0xD1=>"\xc5\x83",
    478         0xD2=>"\xc5\x85",
    479         0xD3=>"\xc3\x93",
    480         0xD4=>"\xc5\x8c",
    481         0xD5=>"\xc3\x95",
    482         0xD6=>"\xc3\x96",
    483         0xD7=>"\xc3\x97",
    484         0xD8=>"\xc5\xb2",
    485         0xD9=>"\xc5\x81",
    486         0xDA=>"\xc5\x9a",
    487         0xDB=>"\xc5\xaa",
    488         0xDC=>"\xc3\x9c",
    489         0xDD=>"\xc5\xbb",
    490         0xDE=>"\xc5\xbd",
    491         0xDF=>"\xc3\x9f",
    492         0xE0=>"\xc4\x85",
    493         0xE1=>"\xc4\xaf",
    494         0xE2=>"\xc4\x81",
    495         0xE3=>"\xc4\x87",
    496         0xE4=>"\xc3\xa4",
    497         0xE5=>"\xc3\xa5",
    498         0xE6=>"\xc4\x99",
    499         0xE7=>"\xc4\x93",
    500         0xE8=>"\xc4\x8d",
    501         0xE9=>"\xc3\xa9",
    502         0xEA=>"\xc5\xba",
    503         0xEB=>"\xc4\x97",
    504         0xEC=>"\xc4\xa3",
    505         0xED=>"\xc4\xb7",
    506         0xEE=>"\xc4\xab",
    507         0xEF=>"\xc4\xbc",
    508         0xF0=>"\xc5\xa1",
    509         0xF1=>"\xc5\x84",
    510         0xF2=>"\xc5\x86",
    511         0xF3=>"\xc3\xb3",
    512         0xF4=>"\xc5\x8d",
    513         0xF5=>"\xc3\xb5",
    514         0xF6=>"\xc3\xb6",
    515         0xF7=>"\xc3\xb7",
    516         0xF8=>"\xc5\xb3",
    517         0xF9=>"\xc5\x82",
    518         0xFA=>"\xc5\x9b",
    519         0xFB=>"\xc5\xab",
    520         0xFC=>"\xc3\xbc",
    521         0xFD=>"\xc5\xbc",
    522         0xFE=>"\xc5\xbe",
    523         0xFF=>"\xcb\x99"
     396  0x80=>"\xe2\x82\xac",
     397  0x81=>"\xc0\x4",
     398  0x82=>"\xe2\x80\x9a",
     399  0x83=>"\xc0\x4",
     400  0x84=>"\xe2\x80\x9e",
     401  0x85=>"\xe2\x80\xa6",
     402  0x86=>"\xe2\x80\xa0",
     403  0x87=>"\xe2\x80\xa1",
     404  0x88=>"\xc0\x4",
     405  0x89=>"\xe2\x80\xb0",
     406  0x8A=>"\xc0\x4",
     407  0x8B=>"\xe2\x80\xb9",
     408  0x8C=>"\xc0\x4",
     409  0x8D=>"\xc2\xa8",
     410  0x8E=>"\xcb\x87",
     411  0x8F=>"\xc2\xb8",
     412  0x90=>"\xc0\x4",
     413  0x91=>"\xe2\x80\x98",
     414  0x92=>"\xe2\x80\x99",
     415  0x93=>"\xe2\x80\x9c",
     416  0x94=>"\xe2\x80\x9d",
     417  0x95=>"\xe2\x80\xa2",
     418  0x96=>"\xe2\x80\x93",
     419  0x97=>"\xe2\x80\x94",
     420  0x98=>"\xc0\x4",
     421  0x99=>"\xe2\x84\xa2",
     422  0x9A=>"\xc0\x4",
     423  0x9B=>"\xe2\x80\xba",
     424  0x9C=>"\xc0\x4",
     425  0x9D=>"\xc2\xaf",
     426  0x9E=>"\xcb\x9b",
     427  0x9F=>"\xc0\x4",
     428  0xA0=>"\xc2\xa0",
     429  0xA1=>"\xc0\x4",
     430  0xA2=>"\xc2\xa2",
     431  0xA3=>"\xc2\xa3",
     432  0xA4=>"\xc2\xa4",
     433  0xA5=>"\xc0\x4",
     434  0xA6=>"\xc2\xa6",
     435  0xA7=>"\xc2\xa7",
     436  0xA8=>"\xc3\x98",
     437  0xA9=>"\xc2\xa9",
     438  0xAA=>"\xc5\x96",
     439  0xAB=>"\xc2\xab",
     440  0xAC=>"\xc2\xac",
     441  0xAD=>"\xc2\xad",
     442  0xAE=>"\xc2\xae",
     443  0xAF=>"\xc3\x86",
     444  0xB0=>"\xc2\xb0",
     445  0xB1=>"\xc2\xb1",
     446  0xB2=>"\xc2\xb2",
     447  0xB3=>"\xc2\xb3",
     448  0xB4=>"\xc2\xb4",
     449  0xB5=>"\xc2\xb5",
     450  0xB6=>"\xc2\xb6",
     451  0xB7=>"\xc2\xb7",
     452  0xB8=>"\xc3\xb8",
     453  0xB9=>"\xc2\xb9",
     454  0xBA=>"\xc5\x97",
     455  0xBB=>"\xc2\xbb",
     456  0xBC=>"\xc2\xbc",
     457  0xBD=>"\xc2\xbd",
     458  0xBE=>"\xc2\xbe",
     459  0xBF=>"\xc3\xa6",
     460  0xC0=>"\xc4\x84",
     461  0xC1=>"\xc4\xae",
     462  0xC2=>"\xc4\x80",
     463  0xC3=>"\xc4\x86",
     464  0xC4=>"\xc3\x84",
     465  0xC5=>"\xc3\x85",
     466  0xC6=>"\xc4\x98",
     467  0xC7=>"\xc4\x92",
     468  0xC8=>"\xc4\x8c",
     469  0xC9=>"\xc3\x89",
     470  0xCA=>"\xc5\xb9",
     471  0xCB=>"\xc4\x96",
     472  0xCC=>"\xc4\xa2",
     473  0xCD=>"\xc4\xb6",
     474  0xCE=>"\xc4\xaa",
     475  0xCF=>"\xc4\xbb",
     476  0xD0=>"\xc5\xa0",
     477  0xD1=>"\xc5\x83",
     478  0xD2=>"\xc5\x85",
     479  0xD3=>"\xc3\x93",
     480  0xD4=>"\xc5\x8c",
     481  0xD5=>"\xc3\x95",
     482  0xD6=>"\xc3\x96",
     483  0xD7=>"\xc3\x97",
     484  0xD8=>"\xc5\xb2",
     485  0xD9=>"\xc5\x81",
     486  0xDA=>"\xc5\x9a",
     487  0xDB=>"\xc5\xaa",
     488  0xDC=>"\xc3\x9c",
     489  0xDD=>"\xc5\xbb",
     490  0xDE=>"\xc5\xbd",
     491  0xDF=>"\xc3\x9f",
     492  0xE0=>"\xc4\x85",
     493  0xE1=>"\xc4\xaf",
     494  0xE2=>"\xc4\x81",
     495  0xE3=>"\xc4\x87",
     496  0xE4=>"\xc3\xa4",
     497  0xE5=>"\xc3\xa5",
     498  0xE6=>"\xc4\x99",
     499  0xE7=>"\xc4\x93",
     500  0xE8=>"\xc4\x8d",
     501  0xE9=>"\xc3\xa9",
     502  0xEA=>"\xc5\xba",
     503  0xEB=>"\xc4\x97",
     504  0xEC=>"\xc4\xa3",
     505  0xED=>"\xc4\xb7",
     506  0xEE=>"\xc4\xab",
     507  0xEF=>"\xc4\xbc",
     508  0xF0=>"\xc5\xa1",
     509  0xF1=>"\xc5\x84",
     510  0xF2=>"\xc5\x86",
     511  0xF3=>"\xc3\xb3",
     512  0xF4=>"\xc5\x8d",
     513  0xF5=>"\xc3\xb5",
     514  0xF6=>"\xc3\xb6",
     515  0xF7=>"\xc3\xb7",
     516  0xF8=>"\xc5\xb3",
     517  0xF9=>"\xc5\x82",
     518  0xFA=>"\xc5\x9b",
     519  0xFB=>"\xc5\xab",
     520  0xFC=>"\xc3\xbc",
     521  0xFD=>"\xc5\xbc",
     522  0xFE=>"\xc5\xbe",
     523  0xFF=>"\xcb\x99"
    524524  ),
    525525);
     
    529529  {
    530530    $Result = '';
    531     for($I = 0; $I < strlen($String); $I++) 
     531    for($I = 0; $I < strlen($String); $I++)
    532532    {
    533533       if(ord($String[$I]) < 128) $Result .= $String[$I];
  • trunk/Common/VCL/Database.php

    r666 r738  
    5858      if(method_exists($this->OnRowDraw[0], $this->OnRowDraw[1]))
    5959        $DbRow = call_user_func($this->OnRowDraw, $DbRow);
    60         $this->Rows[] = $DbRow;
     60      $this->Rows[] = $DbRow;
    6161      $VisibleItemCount = $VisibleItemCount + 1;
    6262    }
Note: See TracChangeset for help on using the changeset viewer.