Changeset 310


Ignore:
Timestamp:
Jan 31, 2010, 10:34:29 AM (14 years ago)
Author:
george
Message:
  • Přidáno: Funkce pro opuštění týmu.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Options.php

    r308 r310  
    7878    echo('  <fieldset><legend>Překladatelský tým</legend>');
    7979    $ID = $Database->SQLCommand('SELECT * FROM `Team`');
    80     echo('<a href="team.php?create">Vytvořit překladatelský tým</a><br /><br />
    81       <form action="team.php" method="get">'.
     80    echo('<a href="team.php?action=create">Vytvořit tým</a><br />'.
     81      '<a href="team.php?action=leave">Opustit tým</a><br />'.
     82      '<br /><form action="team.php" method="get">'.
    8283      '<input type="hidden" name="action" value="gointeam"/>'.
    8384      '<select name="id">');
  • trunk/team.php

    r307 r310  
    4545    if(!is_numeric($_SESSION['team'])) echo(' <a href="?Where">Zrušit filtr týmů</a><br />');
    4646    */
     47    $DbResult = $Database->SQLCommand('SELECT `Team` FROM `user` WHERE `ID`='.$_SESSION['UserID']);
     48    $User = mysql_fetch_assoc($DbResult);   
    4749
    4850    $ID = $Database->SQLCommand('SELECT *, (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) AS `NumberUser`, (SELECT `user` FROM `user` WHERE `user`.`ID`=`Team`.`Leader`) AS `LeaderName` FROM `Team` '.$_SESSION['search'].$Order['SQL'].$PageList['SQLLimit']);
     
    5961        if($Team['Leader'] == $_SESSION['UserID']) $Action = ' <a href="?action=modify&amp;id='.$Team['Id'].'">Upravit</a>';
    6062          else $Action = '';
     63        if($Team['Id'] == $User['Team']) $Action = ' <a href="?action=leave">Opustit</a>';
    6164        echo('<td><a href="?action=gointeam&amp;id='.$Team['Id'].'">Vstoupit</a>'.$Action.'</td>');
    6265      }
     
    6972}         
    7073
    71 if(array_key_exists('action', $_GET))
    72 {
    73   if($_GET['action'] == 'gointeam')
    74   {
    75     if(Licence(LICENCE_USER))
    76     {   
    77       if(array_key_exists('id', $_GET))
    78       {
    79         $ID = $Database->SQLCommand('UPDATE `user` SET `team` = '.$_GET['id'].' WHERE `ID` = '.$_SESSION['UserID']);
    80         echo('<strong>Vstoupil jsi do týmu</strong><br /><br />');   
    81         WriteLog('Uživatel vstoupil do týmu '.$_GET['id'], 3);
     74function TeamJoin()
     75{
     76  global $Database;
     77 
     78  if(Licence(LICENCE_USER))
     79  {   
     80    if(array_key_exists('id', $_GET))
     81    {
     82      $Database->SQLCommand('UPDATE `user` SET `team` = '.$_GET['id'].' WHERE `ID` = '.$_SESSION['UserID']);
     83      echo('<strong>Vstoupil jsi do týmu</strong><br /><br />');   
     84      WriteLog('Uživatel vstoupil do týmu '.$_GET['id'], 3);
     85
     86      // Delete all teams without users
     87      $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');
     88       
     89      // Set new leader for teams where old leader went to other team
     90      $Database->SQLCommand('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);');
     91       
     92      ShowTeamList();
     93    } else echo('Nutno zadat id týmu');
     94  } else echo('Nemáte oprávnění');
     95}
     96
     97function TeamCreateFinish()
     98{
     99  global $Database;
     100 
     101  if(Licence(LICENCE_USER))
     102  {   
     103    if(array_key_exists('Name', $_POST) and array_key_exists('Description', $_POST))
     104    {
     105      $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team` WHERE `Name` = "'.trim($_POST['Name']).'"'); 
     106      $DbRow = mysql_fetch_row($DbResult);
     107      $Count = $DbRow[0];
     108      if(($Count == 0) and ($_POST['Name'] != ''))
     109      {
     110        $Database->SQLCommand('INSERT INTO `Team` (`Name` ,`Description`, `URL`, `TimeCreate`,`Leader`) VALUES ("'.trim($_POST['Name']).'", "'.trim($_POST['Description']).'", "'.$_POST['URL'].'", NOW(), '.$_SESSION['UserID'].')'); 
     111        $Database->SQLCommand('UPDATE `user` SET `team` = '.mysql_insert_id().' WHERE `ID` = '.$_SESSION['UserID']);
     112        echo('<strong>Překladatelský tým vytvořen</strong><br /><br />');
     113        WriteLog('Překladatelský tým vytvořen '.$_POST['Name'], 3);
    82114
    83115        // Delete all teams without users
    84         $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');
    85        
    86         // Set new leader for teams where old leader went to other team
    87         $Database->SQLCommand('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);');
    88        
    89         ShowTeamList();
    90       } else echo('Nutno zadat id týmu');
    91     } else echo('Nemáte oprávnění');
    92   } else
    93   if($_GET['action'] == 'finish_create')
    94   {
    95     if(Licence(LICENCE_USER))
    96     {   
    97       if(array_key_exists('Name', $_POST) and array_key_exists('Description', $_POST))
    98       {
    99         $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team` WHERE `Name` = "'.trim($_POST['Name']).'"'); 
    100         $DbRow = mysql_fetch_row($DbResult);
    101         $Count = $DbRow[0];
    102         if(($Count == 0) and ($_POST['Name'] != ''))
    103         {
    104           $ID = $Database->SQLCommand('INSERT INTO `Team` (`Name` ,`Description`, `URL`, `TimeCreate`,`Leader`) VALUES ("'.trim($_POST['Name']).'", "'.trim($_POST['Description']).'", "'.$_POST['URL'].'", NOW(), '.$_SESSION['UserID'].')'); 
    105           $Database->SQLCommand('UPDATE `user` SET `team` = '.mysql_insert_id().' WHERE `ID` = '.$_SESSION['UserID']);
    106           echo('<strong>Překladatelský tým vytvořen</strong><br /><br />');
    107           WriteLog('Překladatelský tým vytvořen '.$_POST['Name'], 3);
    108 
    109           // Delete all teams without users
    110           $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');   
    111         } else echo('Již existuje tým se stejným jménem');
    112       } else echo('Chybí údaje formuláře');
    113     } else echo('Nemáte oprávnění');
    114     ShowTeamList();
    115   } else
    116   if($_GET['action'] == 'modify')
    117   {
    118     if(Licence(LICENCE_USER))
    119     {   
    120       if(array_key_exists('id', $_GET))
    121       {
    122         $DbResult = $Database->SQLCommand('SELECT * FROM `Team` WHERE `Id`='.$_GET['id'].' AND `Leader`='.$_SESSION['UserID']);
    123         if(mysql_num_rows($DbResult) > 0)
    124         {
    125           $Team = mysql_fetch_assoc($DbResult);
    126           echo('<form action="?action=finish_modify&amp;id='.$_GET['id'].'" method="post">'.
     116        $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');   
     117      } else echo('Již existuje tým se stejným jménem');
     118    } else echo('Chybí údaje formuláře');
     119  } else echo('Nemáte oprávnění');
     120  ShowTeamList();
     121}
     122
     123function TeamModify()
     124{
     125  global $Database;
     126 
     127  if(Licence(LICENCE_USER))
     128  {   
     129    if(array_key_exists('id', $_GET))
     130    {
     131      $DbResult = $Database->SQLCommand('SELECT * FROM `Team` WHERE `Id`='.$_GET['id'].' AND `Leader`='.$_SESSION['UserID']);
     132      if(mysql_num_rows($DbResult) > 0)
     133      {
     134        $Team = mysql_fetch_assoc($DbResult);
     135        echo('<form action="?action=finish_modify&amp;id='.$_GET['id'].'" method="post">'.
    127136      '<fieldset><legend>Nastavení týmu</legend>'.
    128137      '<table><tr><td>Jméno:</td><td><input type="text" name="Name" value="'.$Team['Name'].'"/></td></tr>'.
     
    131140      '<tr><td colspan="2"><input type="submit" value="Uložit" /></td></tr>'.
    132141      '</table></fieldset></form>');
    133         } else echo('Tým nenalezen nebo nemáte oprávnění');
    134       } else echo('Nezadáno id týmu');
    135     } else echo('Nemáte oprávnění');
    136   } else
    137   if($_GET['action'] == 'finish_modify')
    138   {
    139     if(Licence(LICENCE_USER))
    140     {   
    141       if(array_key_exists('id', $_GET) and array_key_exists('Name', $_POST) and array_key_exists('Description', $_POST) and array_key_exists('URL', $_POST))
    142       {
    143         $DbResult = $Database->SQLCommand('SELECT * FROM `Team` WHERE `Id`='.$_GET['id'].' AND `Leader`='.$_SESSION['UserID']);
    144         if(mysql_num_rows($DbResult) > 0)
    145         {
    146           $Team = mysql_fetch_assoc($DbResult);
    147           $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team` WHERE `Name` = "'.trim($_POST['Name']).'"'); 
    148           $DbRow = mysql_fetch_row($DbResult);
    149           $Count = $DbRow[0];
    150           if(($Count == 0) and ($_POST['Name'] != ''))
    151           {         
    152             $Database->SQLCommand('UPDATE `Team` SET `Name`="'.$_POST['Name'].'", `Description`="'.$_POST['Description'].'", `URL`="'.$_POST['URL'].'" WHERE Id='.$Team['Id']);
    153             echo('Nastavení týmu uloženo.<br/>');
    154             WriteLog('Překladatelský tým upraven '.$_POST['Name'], 3);
    155           } else echo('Již existuje tým se stejným jménem');
    156         } else echo('Tým nenalezen nebo nemáte oprávnění');
    157       } else echo('Nezadáno id týmu nebo některé položky formuláře');
    158     } else echo('Nemáte oprávnění');
    159     ShowTeamList();
    160   } else
    161   if($_GET['action'] == 'create')
    162   {
    163     if(Licence(LICENCE_USER))
    164     {   
    165       echo('<form action="?action=finish_create" method="post">'.
    166       '<fieldset><legend>Vytvoření nového týmu</legend>'.
    167       '<table><tr><td>Jméno:</td><td><input type="text" name="Name" /></td></tr>'.
    168       '<tr><td>Webové stránky:</td><td>http://<input type="text" name="URL" value=""/></td></tr>'.
    169       '<tr><td>Popis:</td><td><input type="text" name="Description" /></td></tr>'.
    170       '<tr><td colspan="2"><input type="submit" value="Vytvořit a vstoupit" /></td></tr>'.
    171       '</table></fieldset></form>');
    172     } else echo('Nemáte oprávnění');
    173   } else
    174   if($_GET['action'] == 'team') // Zobrazení týmu
    175   {
    176     if(array_key_exists('id', $_GET))
    177     {
    178       include('img_level.php');
    179       $Columns = '';
    180       $Joins = '';
    181       foreach($TranslationTree as $Group)
     142      } else echo('Tým nenalezen nebo nemáte oprávnění');
     143    } else echo('Nezadáno id týmu');
     144  } else echo('Nemáte oprávnění');
     145}
     146
     147function TeamModifyFinish()
     148{
     149  global $Database;
     150 
     151  if(Licence(LICENCE_USER))
     152  {   
     153    if(array_key_exists('id', $_GET) and array_key_exists('Name', $_POST) and array_key_exists('Description', $_POST) and array_key_exists('URL', $_POST))
     154    {
     155      $DbResult = $Database->SQLCommand('SELECT * FROM `Team` WHERE `Id`='.$_GET['id'].' AND `Leader`='.$_SESSION['UserID']);
     156      if(mysql_num_rows($DbResult) > 0)
     157      {
     158        $Team = mysql_fetch_assoc($DbResult);
     159        $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Team` WHERE `Name` = "'.trim($_POST['Name']).'"'); 
     160        $DbRow = mysql_fetch_row($DbResult);
     161        $Count = $DbRow[0];
     162        if(($Count == 0) and ($_POST['Name'] != ''))
     163        {         
     164          $Database->SQLCommand('UPDATE `Team` SET `Name`="'.$_POST['Name'].'", `Description`="'.$_POST['Description'].'", `URL`="'.$_POST['URL'].'" WHERE Id='.$Team['Id']);
     165          echo('Nastavení týmu uloženo.<br/>');
     166          WriteLog('Překladatelský tým upraven '.$_POST['Name'], 3);
     167        } else echo('Již existuje tým se stejným jménem');
     168      } else echo('Tým nenalezen nebo nemáte oprávnění');
     169    } else echo('Nezadáno id týmu nebo některé položky formuláře');
     170  } else echo('Nemáte oprávnění');
     171  ShowTeamList();
     172}
     173
     174function TeamCreate()
     175{
     176  if(Licence(LICENCE_USER))
     177  {   
     178    echo('<form action="?action=finish_create" method="post">'.
     179    '<fieldset><legend>Vytvoření nového týmu</legend>'.
     180    '<table><tr><td>Jméno:</td><td><input type="text" name="Name" /></td></tr>'.
     181    '<tr><td>Webové stránky:</td><td>http://<input type="text" name="URL" value=""/></td></tr>'.
     182    '<tr><td>Popis:</td><td><input type="text" name="Description" /></td></tr>'.
     183    '<tr><td colspan="2"><input type="submit" value="Vytvořit a vstoupit" /></td></tr>'.
     184    '</table></fieldset></form>');
     185  } else echo('Nemáte oprávnění');
     186}
     187
     188function TeamShow()
     189{
     190  global $Database;
     191 
     192  if(array_key_exists('id', $_GET))
     193  {
     194    include('img_level.php');
     195    $Columns = '';
     196    $Joins = '';
     197    foreach($TranslationTree as $Group)
    182198      if($Group['TablePrefix'] != '')
    183199      {
     
    186202      }
    187203     
    188       $Team = mysql_fetch_assoc($Database->SQLCommand('SELECT *, (SELECT count(*) FROM `user` WHERE `team` = `Team`.`Id`) as `NumberUser`, (SELECT SUM('.substr($Columns, 0, -3).') FROM user '.$Joins.' WHERE `team` = `Team`.`Id`) as `NumberTranslate` FROM `Team` WHERE `Id`='.$_GET['id']));
    189       $DbResult = $Database->SQLCommand('SELECT user FROM user WHERE ID='.$Team['Leader']);
    190       if(mysql_num_rows($DbResult) > 0)
    191       {
    192         $Leader = mysql_fetch_assoc($DbResult);
    193         $Leader = $Leader['user'];
    194       } else $Leader = '';
     204    $Team = mysql_fetch_assoc($Database->SQLCommand('SELECT *, (SELECT count(*) FROM `user` WHERE `team` = `Team`.`Id`) as `NumberUser`, (SELECT SUM('.substr($Columns, 0, -3).') FROM user '.$Joins.' WHERE `team` = `Team`.`Id`) as `NumberTranslate` FROM `Team` WHERE `Id`='.$_GET['id']));
     205    $DbResult = $Database->SQLCommand('SELECT user FROM user WHERE ID='.$Team['Leader']);
     206    if(mysql_num_rows($DbResult) > 0)
     207    {
     208      $Leader = mysql_fetch_assoc($DbResult);
     209      $Leader = $Leader['user'];
     210    } else $Leader = '';
    195211   
    196       echo('<strong>Překladatelský tým '.$Team['Name'].'</strong><br />'.
    197      'Webové stránky: <a href="http://'.$Team['URL'].'">'.$Team['URL'].'</a><br/>'.
    198      'Vedoucí: '.$Leader.'<br/>'.
    199       $Team['Description'].'<br /><br />'.
    200         '<a href="export/?team='.$Team['Id'].'">Exportovat překlad týmu</a> ');
    201       if(Licence(LICENCE_USER)) echo('<a href="?action=gointeam&amp;id='.$Team['Id'].'">Vstoupit do týmu</a><br /><br />');
    202       echo('<fieldset><legend>Statistika</legend>'.
     212    echo('<strong>Překladatelský tým '.$Team['Name'].'</strong><br />'.
     213      'Webové stránky: <a href="http://'.$Team['URL'].'">'.$Team['URL'].'</a><br/>'.
     214      'Vedoucí: '.$Leader.'<br/>'.
     215    $Team['Description'].'<br /><br />'.
     216      '<a href="export/?team='.$Team['Id'].'">Exportovat překlad týmu</a> ');
     217    if(Licence(LICENCE_USER)) echo('<a href="?action=gointeam&amp;id='.$Team['Id'].'">Vstoupit do týmu</a><br /><br />');
     218    echo('<fieldset><legend>Statistika</legend>'.
    203219      'Počet členů týmu: <a href="userlist.php?team='.$Team['Id'].'" title="Zobrazit členy týmu">'.$Team['NumberUser'].'</a><br />'.
    204220      'Počet přeložených textů týmu: <strong>'.$Team['NumberTranslate'].'</strong><br />'.
    205221      'Průměrná úroveň překladatelů v týmu: <img src="tmp/team/'.$Team['Name'].'/level.png" /><br /><br />'.
    206222      '<strong>Stav dokončení pro tým:</strong><br />');
    207       foreach($TranslationTree as $Group)
    208         if($Group['TablePrefix'] != '')
    209           echo('<div class="state-image"><img alt="'.$Group['TablePrefix'].'" src="img_statistic.php?group='.$Group['Id'].'&amp;team='.$Team['Id'].'" title="statistika překladů '.$Group['Name'].'"/></div>');
    210       echo('</fieldset>');   
    211     } else echo('Musíte zadat id týmu');
    212   } else ShowTeamList();
     223    foreach($TranslationTree as $Group)
     224      if($Group['TablePrefix'] != '')
     225        echo('<div class="state-image"><img alt="'.$Group['TablePrefix'].'" src="img_statistic.php?group='.$Group['Id'].'&amp;team='.$Team['Id'].'" title="statistika překladů '.$Group['Name'].'"/></div>');
     226    echo('</fieldset>');   
     227  } else echo('Musíte zadat id týmu');
     228}
     229
     230function TeamLeave()
     231{
     232  global $Database;
     233 
     234  if(Licence(LICENCE_USER))
     235  {   
     236    $Database->SQLCommand('UPDATE `user` SET `team` = 0 WHERE `ID` = '.$_SESSION['UserID']);
     237    echo('<strong>Nyní nejste členem žádného týmu</strong><br /><br />');   
     238    WriteLog('Uživatel vystoupil z týmu', 3);
     239
     240    // Delete all teams without users
     241    $Database->SQLCommand('DELETE FROM `Team` WHERE (SELECT COUNT(*) FROM `user` WHERE `user`.`team` = `Team`.`Id`) = 0');
     242       
     243    // Set new leader for teams where old leader went to other team
     244    $Database->SQLCommand('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);');
     245       
     246    ShowTeamList();
     247  } else echo('Nemáte oprávnění');
     248}
     249
     250if(array_key_exists('action', $_GET))
     251{
     252  if($_GET['action'] == 'gointeam') TeamJoin();
     253  else if($_GET['action'] == 'finish_create') TeamCreateFinish();
     254  else if($_GET['action'] == 'modify') TeamModify();
     255  else if($_GET['action'] == 'finish_modify') TeamModifyFinish();
     256  else if($_GET['action'] == 'create') TeamCreate();
     257  else if($_GET['action'] == 'team') TeamShow();
     258  else if($_GET['action'] == 'leave') TeamLeave();
     259  else ShowTeamList();
    213260} else ShowTeamList();
    214261
Note: See TracChangeset for help on using the changeset viewer.