Changeset 470


Ignore:
Timestamp:
Apr 22, 2010, 8:44:59 AM (15 years ago)
Author:
george
Message:
  • Upraveno: V tabulce ShoutBox se nově uchovává pro pořádek a možnost kontroly a párování i ID uživatele.
  • Opraveno: Kontrola opakovaného vkládání stejné zprávy v ShoutBoxu.
  • Přidáno: Zamezení vkládání prázdné zprávy v ShoutBoxu.
  • Přidáno: V administraci přidán systém pro kontrolu integrity vazeb v databázi s možností zobrazení a následné opravy.
Files:
3 added
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • tools/wow_patcher/wowpatcher.lpi

    r406 r470  
    3939        <IsPartOfProject Value="True"/>
    4040        <UnitName Value="wowpatcher"/>
    41         <CursorPos X="1" Y="47"/>
     41        <CursorPos X="24" Y="39"/>
    4242        <TopLine Value="27"/>
    4343        <EditorIndex Value="0"/>
  • trunk/action.php

    r468 r470  
    6666    echo('</form><br />');
    6767
    68     if(array_key_exists('Type',$_POST))
     68    if(array_key_exists('Type', $_POST))
    6969    {
    7070      $sql = 'DELETE FROM `Log` WHERE `Type` = '.$_POST['Type'];
     
    152152      echo ('Začínám opravovat Take: <br />');       
    153153     
    154       $Tables = array ('global_strings', 'glue_strings'); 
     154      $Tables = array('TextGlobalString', 'TextGlueString'); 
    155155
    156156      foreach($Tables as $Table)
     
    174174      }
    175175    }
    176   }
     176  } else ShowMessage('Nemáte oprávnění.', MESSAGE_CRITICAL);   
    177177}
    178178
     
    212212      {
    213213        $Text = $_POST['text'];
    214         // Protection against mutiple post of same message
    215         $DbResult = $System->Database->query('SELECT `Text` FROM `ShoutBox` WHERE (`User` = "'.$User->Name.'") AND (`Text` = "'.$Text.'") ORDER BY `Date` DESC LIMIT 1');
    216         if($DbResult->num_rows > 0) ShowMessage('Nelze vložit stejnou zprávu vícekrát za sebou.', MESSAGE_WARNING);
    217         else
    218         {
    219           $System->Database->query('INSERT INTO `ShoutBox` ( `User` , `Text` , `Date` , `IP` ) '.
    220             ' VALUES ("'.$User->Name.'", "'.$Text.'", NOW(), "'.$_SERVER['REMOTE_ADDR'].'")');
    221           ShowMessage('Zpráva vložena.');   
     214        if(trim($Text) == '') ShowMessage('Nelze vložit prázdnou zprávu.', MESSAGE_WARNING);
     215        else
     216        {
     217          // Protection against mutiple post of same message
     218          $DbResult = $System->Database->query('SELECT `Text` FROM `ShoutBox` WHERE (`User` = "'.$User->Id.'") ORDER BY `Date` DESC LIMIT 1');
     219          if($DbResult->num_rows > 0)
     220          {
     221            $DbRow = $DbResult->fetch_assoc();         
     222          } else $DbRow['Text'] = '';
     223       
     224          if($DbRow['Text'] == $Text) ShowMessage('Nelze vložit stejnou zprávu vícekrát za sebou.', MESSAGE_WARNING);
     225          else
     226          {
     227            $System->Database->query('INSERT INTO `ShoutBox` ( `User`, `UserName` , `Text` , `Date` , `IP` ) '.
     228              ' VALUES ('.$User->Id.', "'.$User->Name.'", "'.$Text.'", NOW(), "'.$_SERVER['REMOTE_ADDR'].'")');
     229            ShowMessage('Zpráva vložena.');   
     230          }
    222231        }
    223232      } else ShowMessage('Nezadán text pro novou zprávu.', MESSAGE_CRITICAL);   
     
    242251  $DbResult = $System->Database->query('SELECT * FROM `ShoutBox` ORDER BY `ID` DESC '.$PageList['SQLLimit']);
    243252  while($Line = $DbResult->fetch_assoc())
    244     echo('<div><strong>'.$Line['User'].'</strong>: '.MakeActiveLinks($Line['Text']).'</div>');
     253    echo('<div><strong>'.$Line['UserName'].'</strong>: '.MakeActiveLinks($Line['Text']).'</div>');
    245254  echo('</div>');
    246255  echo($PageList['Output']);
  • trunk/admin/index.php

    r466 r470  
    11<?php
    22
    3 include_once('includes/global.php');
    4 include_once('img_level.php');
     3include_once('../includes/global.php');
     4include_once('../img_level.php');
    55
    66ShowPage();
     
    1919  echo('<a href="'.$System->Link('/log.php').'">Záznamy událostí</a><br/>'.
    2020  '<small>Procházení všech systémových záznamů akcí a událostí</small><br/><br/>');
    21   echo('<a href="'.$System->Link('/admin.php?action=img_level').'">Generování obrázků úrovní překladatelů</a><br/>'.
     21  echo('<a href="'.$System->Link('/admin/?action=img_level').'">Generování obrázků úrovní překladatelů</a><br/>'.
    2222  '<small>Ihned provede přegenerování všech obrázků úrovní překladatelů</small><br/><br/>');   
    23   echo('<a href="'.$System->Link('/admin.php?action=delerrlog').'">Vymázání chybových záznamů</a><br/>'.
     23  echo('<a href="'.$System->Link('/admin/?action=delerrlog').'">Vymázání chybových záznamů</a><br/>'.
    2424  '<small>Provede vymazání všech chybových záznamů v logu</small><br/><br/>');   
    25   echo('<a href="'.$System->Link('/admin.php?action=delolduser').'">Vymázání prázdných účtů</a><br/>'.
    26   '<small>Vymaže všechny účty překladatelů bez překladů starší třech měsíců</small><br/><br/>');   
    27   echo('<a href="'.$System->Link('/admin.php?action=addnew').'">Přidání aktuality</a><br/>'.
     25  echo('<a href="'.$System->Link('/admin/check.php').'">Kontrola integrity databáze</a><br/>'.
     26  '<small>Volby pro provádění údržby databáze</small><br/><br/>');   
     27  echo('<a href="'.$System->Link('/admin/?action=addnew').'">Přidání aktuality</a><br/>'.
    2828  '<small>Přidá aktulitu na hlavní stranu projektu</small><br/><br/>');   
    2929}
     
    5252}
    5353
    54 function DeleteOldUsers()
    55 {
    56   global $System;
    57  
    58   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `User`');
    59   $DbRow2 = $DbResult->fetch_row();
    60 
    61   $Condition = ' WHERE (`TranslatedCount`= 0)'. // Without translated texts
    62     ' AND (`ID` != 128)'. // Skip user Neznámý
    63     ' AND (`LastLogin` < DATE_SUB(NOW(), INTERVAL 3 MONTH))'. // Time limit
    64     ' AND (NOT EXISTS (SELECT `Id` FROM `Export` WHERE `User`.`ID` = `Export`.`User`))'. // Without exports
    65     ' AND (NOT EXISTS (SELECT `ID` FROM `Dictionary` WHERE `User`.`ID` = `Dictionary`.`User`))'. // Without dictionary words
    66     ' AND (NOT EXISTS (SELECT `Id` FROM `News` WHERE `User`.`ID` = `News`.`User`))'. // Without news
    67     ' AND (NOT EXISTS (SELECT `ID` FROM `ShoutBox` WHERE `User`.`Name` = `ShoutBox`.`User`))'. // Without shoutbox messages
    68     '';
    69   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `User`'.$Condition);
    70   $DbRow = $DbResult->fetch_row();
    71   $System->Database->query('DELETE FROM `User`'.$Condition);
    72   echo('Smazáno '.$DbRow[0].' účtů ze všech '.$DbRow2[0].'<br/>');
    73 
    74   // Delete logs without user
    75   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `Log`');
    76   $DbRow2 = $DbResult->fetch_row();
    77   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `Log` WHERE (NOT EXISTS (SELECT `ID` FROM `User` WHERE `User`.`ID` = `Log`.`User`)) AND (`User` != 0)');
    78   $DbRow = $DbResult->fetch_row();
    79   $System->Database->query('DELETE FROM `Log` WHERE (NOT EXISTS (SELECT `ID` FROM `User` WHERE `User`.`ID` = `Log`.`User`)) AND (`User` != 0)');
    80   echo('Smazáno '.$DbRow[0].' položek logu ze všech '.$DbRow2[0].'<br/>');     
    81      
    82   // Delete invalid ExportUser
    83   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `ExportUser`');
    84   $DbRow2 = $DbResult->fetch_row();
    85   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `ExportUser` WHERE (NOT EXISTS (SELECT `Id` FROM `User` WHERE `User`.`ID` = `ExportUser`.`User`))');
    86   $DbRow = $DbResult->fetch_row();
    87   $System->Database->query('DELETE FROM `ExportUser` WHERE (NOT EXISTS (SELECT `Id` FROM `User` WHERE `User`.`ID` = `ExportUser`.`User`))');
    88   echo('Smazáno '.$DbRow[0].' položek výběru překladatelů u exportů ze všech '.$DbRow2[0].'<br/>');     
    89 
    90   // Delete all teams without users
    91   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `Team`');
    92   $DbRow2 = $DbResult->fetch_row();
    93   $DbResult = $System->Database->query('SELECT COUNT(*) FROM `Team` WHERE (SELECT COUNT(*) FROM `User` WHERE `User`.`Team` = `Team`.`Id`) = 0');
    94   $DbRow = $DbResult->fetch_row();
    95   $System->Database->query('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `User` WHERE `User`.`team` = `Team`.`Id`) = 0');
    96   echo('Smazáno '.$DbRow[0].' týmů ze všech '.$DbRow2[0].'<br/>');     
    97        
    98   // Set new leader for teams where old leader went to other team
    99   $System->Database->query('UPDATE `Team` SET `Leader`=(SELECT `Id` FROM `User` WHERE `User`.`Team`=`Team`.`Id` ORDER BY `User`.`RegistrationTime` LIMIT 1) WHERE `Leader` NOT IN (SELECT `ID` FROM `User` WHERE `User`.`Team`=`Team`.`Id`);');
    100  
    101   WriteLog('Smazány staré uživatelské účty', LOG_TYPE_ADMINISTRATION);
    102 }
    103 
    10454function DeleteErrorLog()
    10555{
     
    12373    if($_GET['action'] == 'delerrlog') DeleteErrorLog();
    12474    else
    125     if($_GET['action'] == 'delolduser') DeleteOldUsers();
    126     else
    12775    if($_GET['action'] == 'addnew')
    12876    {
  • trunk/includes/global.php

    r469 r470  
    4949  $DbResult = $System->Database->query('SELECT * FROM `ShoutBox` ORDER BY `ID` DESC LIMIT 30');
    5050  while($Line = $DbResult->fetch_assoc())
    51     $Output .= '<tr><td><strong>'.$Line['User'].'</strong>: '.MakeActiveLinks($Line['Text']).'</td></tr>';
     51    $Output .= '<tr><td><strong>'.$Line['UserName'].'</strong>: '.MakeActiveLinks($Line['Text']).'</td></tr>';
    5252  $Output .= '</table></div>';
    5353  return($Output);
     
    144144    $System->Link('/server.php') => array(LICENCE_ANONYMOUS, 'Pomocný WoW server pro překladatele', 'Test server'),
    145145'http://embed.mibbit.com/?server=game.zdechov.net%3A6667&amp;channel=%23wowpreklad&amp;forcePrompt=true&amp;charset=utf-8' => array(LICENCE_ANONYMOUS, 'IRC chat pro překladatele', 'Chat'),
    146     $System->Link('/admin.php') => array(LICENCE_ADMIN, 'Volby pro správu', 'Administrace'),
     146    $System->Link('/admin/') => array(LICENCE_ADMIN, 'Volby pro správu', 'Administrace'),
    147147  );
    148148 
     
    296296    echo('<td class="menu2">');
    297297    ShowTranslatedMenu();
    298     //echo('<br />');
    299     //ShowShoutBox();
    300298    echo('</td>'.
    301299  '</tr><tr>'.
  • trunk/index.php

    r469 r470  
    121121      $Items[] = array
    122122      (
    123         'Title' => $DbRow['User'].': '.$Title,
     123        'Title' => $DbRow['UserName'].': '.$Title,
    124124        'Link' =>  'http://'.$Config['Web']['Host'].$System->Link('/'),
    125125        'Description' => $DbRow['Text'],
Note: See TracChangeset for help on using the changeset viewer.