PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/root/includes/acp/rivals/acp_rivals_edit_decerto.php

https://github.com/titanfallpug/phprivals
PHP | 288 lines | 225 code | 29 blank | 34 comment | 15 complexity | bcf3ef179153151a36cc558f62e3a40d MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. /**
  3. *
  4. * @package acp
  5. * @version $Id$
  6. * @copyright (c) 2011 Soshen <nipponart.org>
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. * @ignore
  12. */
  13. if(!defined('IN_PHPBB'))
  14. {
  15. exit;
  16. }
  17. /**
  18. * Configure Decerto and CPC mapset
  19. * Called from acp_rivals with mode == 'edit_decerto'
  20. */
  21. function acp_rivals_edit_decerto($id, $mode, $u_action)
  22. {
  23. global $db, $user, $template;
  24. global $phpbb_root_path, $phpbb_admin_path, $phpEx;
  25. $error = array();
  26. $game = array();
  27. $gameD = array();
  28. $delGame = (int) request_var('delg', 0);
  29. $delMap = (int) request_var('delm', 0);
  30. $submitg = (!empty($_POST['submit_game'])) ? true : false;
  31. $submitcpc = (!empty($_POST['submit_cpc'])) ? true : false;
  32. $submit_game_dettaglio = (!empty($_POST['submit_game_dettaglio'])) ? true : false;
  33. // TEMPLATE CATEGORIE
  34. $sql_g1 = "SELECT * FROM " . DECERTO_CAT . " ORDER BY nome_gioco ASC";
  35. $result_g1 = $db->sql_query($sql_g1);
  36. while ($row_g1 = $db->sql_fetchrow($result_g1))
  37. {
  38. $game['id'] = $row_g1['id_decerto'];
  39. $game['gamename'] = $row_g1['nome_gioco'];
  40. $game['shortname'] = $row_g1['nome_corto'];
  41. $game['decmode'] = $row_g1['decerto_mode'];
  42. $game['selector'] = $row_g1['nome_corto'] . $row_g1['decerto_interid'] . $row_g1['cpc'];
  43. $game['cpc'] = (int) $row_g1['cpc'];
  44. $game['interid'] = (int) $row_g1['decerto_interid'];
  45. $game['active'] = $row_g1['active'];
  46. $gameD[] = $game;
  47. }
  48. $db->sql_freeresult($result_g1);
  49. // Set template value
  50. foreach ($gameD AS $gID => $gamedata)
  51. {
  52. // For games or mode
  53. $template->assign_block_vars('categorie_decerto', array(
  54. 'ID_GIOCO' => $gamedata['id'],
  55. 'NOME_GIOCO' => $gamedata['gamename'],
  56. 'NOME_GIOCO_CORTO' => $gamedata['shortname'],
  57. 'U_DELETE' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto&amp;delg=" . $gamedata['id']),
  58. 'MODALITA' => $gamedata['decmode'],
  59. 'SELETTORE' => $gamedata['selector'],
  60. 'ACTIVE' => ($gamedata['active'] == 1) ? 'active' : 'inactive',
  61. 'CPC' => ($gamedata['cpc'] == 1) ? $user->lang['DECERTO'] : $user->lang['CPC'],
  62. ));
  63. // For relative maps
  64. $sql_g3 = "SELECT * FROM " . DECERTO_MAP . " WHERE nome_corto = '{$gamedata['shortname']}' AND decerto_interid = {$gamedata['interid']}
  65. AND decerto_cpc = {$gamedata['cpc']} ORDER BY decerto_mappa ASC";
  66. $result_g3 = $db->sql_query($sql_g3);
  67. while ($row_g3 = $db->sql_fetchrow($result_g3))
  68. {
  69. $template->assign_block_vars('categorie_decerto.mappe', array(
  70. 'MAPPA' => $row_g3['decerto_mappa'],
  71. 'ID_MAPPA' => $row_g3['id_mappa_decerto'],
  72. 'U_DELETE' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto&amp;delm=" . $row_g3['id_mappa_decerto'])
  73. ));
  74. }
  75. $db->sql_freeresult($result_g3);
  76. }
  77. // TEMPLATE GIOCHI PER DETTAGLIO
  78. $sql_g2 = "SELECT * FROM " . DECERTO_CAT . " ORDER BY nome_gioco ASC";
  79. $result_g2 = $db->sql_query($sql_g2);
  80. while ($row_g2 = $db->sql_fetchrow($result_g2))
  81. {
  82. $template->assign_block_vars('giochi', array(
  83. 'NOME_GIOCO' => $row_g2['nome_gioco'],
  84. 'LINKER' => $row_g2['nome_corto'] . "//" . $row_g2['decerto_interid'] . ".:." . $row_g2['cpc'],
  85. 'MODALITA' => $row_g2['decerto_mode'],
  86. 'CPC' => ($row_g2['cpc'] == 1) ? $user->lang['DECERTO'] : $user->lang['CPC']
  87. )
  88. );
  89. }
  90. $db->sql_freeresult($result_g2);
  91. /**
  92. * ACTIONS
  93. ********************/
  94. // Add a game with decerto mode
  95. if ($submitg)
  96. {
  97. $nome_gioco = utf8_normalize_nfc(request_var('decerto_gioco', '', true));
  98. $nome_gioco_corto_u = utf8_normalize_nfc(request_var('decerto_gioco_corto', '', true));
  99. $modalita1 = utf8_normalize_nfc(request_var('decerto_mode1', '', true));
  100. $modalita2 = utf8_normalize_nfc(request_var('decerto_mode2', '', true));
  101. $modalita3 = utf8_normalize_nfc(request_var('decerto_mode3', '', true));
  102. $badchara = array("'", " ", '"');
  103. $remplacer = array("", "", '');
  104. $nome_gioco_corto = str_replace($badchara, $remplacer, $nome_gioco_corto_u);
  105. //check shorty
  106. $sqlcc = "SELECT * FROM " . DECERTO_CAT . " WHERE nome_corto = '{$nome_gioco_corto}'";
  107. $resultcc = $db->sql_query_limit($sqlcc,1);
  108. $rowcc = $db->sql_fetchrow($resultcc);
  109. $db->sql_freeresult($resultcc);
  110. if (!empty($rowcc['nome_corto']))
  111. {
  112. $error[] = $user->lang['SHORTY_PRESENTE'];
  113. }
  114. if (!sizeof($error))
  115. {
  116. //1)
  117. $sql_array1 = array(
  118. 'nome_gioco' => $nome_gioco,
  119. 'nome_corto' => $nome_gioco_corto,
  120. 'decerto_interid' => 1,
  121. 'decerto_mode' => $modalita1,
  122. 'cpc' => 1
  123. );
  124. $sql = "INSERT INTO " . DECERTO_CAT . " " . $db->sql_build_array('INSERT', $sql_array1);
  125. $db->sql_query($sql);
  126. //2)
  127. $sql_array2 = array(
  128. 'nome_gioco' => $nome_gioco,
  129. 'nome_corto' => $nome_gioco_corto,
  130. 'decerto_interid' => 2,
  131. 'decerto_mode' => $modalita2,
  132. 'cpc' => 1
  133. );
  134. $sql = "INSERT INTO " . DECERTO_CAT . " " . $db->sql_build_array('INSERT', $sql_array2);
  135. $db->sql_query($sql);
  136. //3)
  137. $sql_array3 = array(
  138. 'nome_gioco' => $nome_gioco,
  139. 'nome_corto' => $nome_gioco_corto,
  140. 'decerto_interid' => 3,
  141. 'decerto_mode' => $modalita3,
  142. 'cpc' => 1
  143. );
  144. $sql = "INSERT INTO " . DECERTO_CAT . " " . $db->sql_build_array('INSERT', $sql_array3);
  145. $db->sql_query($sql);
  146. $redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto");
  147. redirect($redirect_url);
  148. }
  149. }
  150. // Add a game with cpc mode
  151. if ($submitcpc)
  152. {
  153. $nome_giocos = utf8_normalize_nfc(request_var('decerto_gioco', '', true));
  154. $nome_gioco_corto_s = utf8_normalize_nfc(request_var('decerto_gioco_corto', '', true));
  155. $modalita1s = utf8_normalize_nfc(request_var('decerto_mode1', '', true));
  156. $badchara = array("'", " ", '"');
  157. $remplacer = array("", "", '');
  158. $nome_gioco_cortos = str_replace($badchara, $remplacer, $nome_gioco_corto_s);
  159. //check shorty
  160. $sqlcc = "SELECT * FROM " . DECERTO_CAT . " WHERE nome_corto = '{$nome_gioco_cortos}'";
  161. $resultcc = $db->sql_query_limit($sqlcc,1);
  162. $rowcc = $db->sql_fetchrow($resultcc);
  163. $db->sql_freeresult($resultcc);
  164. if (!empty($rowcc['nome_corto']))
  165. {
  166. $error[] = $user->lang['SHORTY_PRESENTE'];
  167. }
  168. if (!sizeof($error))
  169. {
  170. $sql_array3 = array(
  171. 'nome_gioco' => $nome_giocos,
  172. 'nome_corto' => $nome_gioco_cortos,
  173. 'decerto_interid' => 1,
  174. 'decerto_mode' => $modalita1s,
  175. 'cpc' => 2
  176. );
  177. $sql = "INSERT INTO " . DECERTO_CAT . " " . $db->sql_build_array('INSERT', $sql_array3);
  178. $db->sql_query($sql);
  179. $redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto");
  180. redirect($redirect_url);
  181. }
  182. }
  183. // ADD map
  184. if ($submit_game_dettaglio)
  185. {
  186. $riferimenti_det = utf8_normalize_nfc(request_var('gioco_dec', '', true));
  187. $mappa = utf8_normalize_nfc(request_var('decerto_mappa', '', true));
  188. $got_interid = (int) substr(strrchr($riferimenti_det, '//'), 1, -4);
  189. $got_shorty = substr($riferimenti_det, 0, -7);
  190. $got_cpc = substr(strrchr($riferimenti_det, '.:.'), 1);
  191. $sql_array = array(
  192. 'nome_corto' => $got_shorty,
  193. 'decerto_interid' => $got_interid,
  194. 'decerto_mappa' => $mappa,
  195. 'decerto_cpc' => $got_cpc
  196. );
  197. $sql = "INSERT INTO " . DECERTO_MAP . " " . $db->sql_build_array('INSERT', $sql_array);
  198. $db->sql_query($sql);
  199. // Now check if is the game is active or not. Are needed at least 3 map for each mode to be active.
  200. $sql = "SELECT COUNT(id_mappa_decerto) AS status FROM " . DECERTO_MAP . " WHERE nome_corto = '{$got_shorty}'
  201. AND decerto_interid = {$got_interid} GROUP BY nome_corto";
  202. $result = $db->sql_query_limit($sql,1);
  203. $row = $db->sql_fetchrow($result);
  204. $db->sql_freeresult($result);
  205. if ($row['status'] == 3)
  206. {
  207. // Ok active the mode
  208. $sql_array1 = array(
  209. 'active' => 1,
  210. );
  211. $sql = "UPDATE " . DECERTO_CAT . " SET " . $db->sql_build_array('UPDATE', $sql_array1) . " WHERE nome_corto = '{$got_shorty}' AND decerto_interid = {$got_interid}";
  212. $db->sql_query($sql);
  213. }
  214. $redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto");
  215. redirect($redirect_url);
  216. }
  217. /* delete a game or mode
  218. //////////////////////////////*/
  219. if ($delGame > 0)
  220. {
  221. // Get all data wee need
  222. $sql = "SELECT * FROM " . DECERTO_CAT. " WHERE id_decerto = " . $delGame;
  223. $result = $db->sql_query_limit($sql,1);
  224. $row = $db->sql_fetchrow($result);
  225. $shortlav = $row['nome_corto'];
  226. $interlav = $row['decerto_interid'];
  227. $intercpc = $row['cpc'];
  228. $db->sql_freeresult($result);
  229. $sql = "DELETE FROM " . DECERTO_MAP . " WHERE nome_corto = '{$shortlav}' AND decerto_interid = {$interlav} AND decerto_cpc = {$intercpc} ";
  230. $db->sql_query($sql);
  231. $sql = "DELETE FROM " . DECERTO_CAT . " WHERE id_decerto = " . $delGame;
  232. $db->sql_query($sql);
  233. $redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto");
  234. redirect($redirect_url);
  235. }
  236. /* delete a map
  237. //////////////////////////////*/
  238. if ($delMap > 0)
  239. {
  240. $sql = "DELETE FROM " . DECERTO_MAP . " WHERE id_mappa_decerto = " . $delMap;
  241. $db->sql_query($sql);
  242. $redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=rivals&amp;mode=edit_decerto");
  243. redirect($redirect_url);
  244. }
  245. // General definition
  246. $template->assign_vars(array(
  247. 'U_ACTION' => $u_action,
  248. 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : ''
  249. ));
  250. }
  251. ?>