PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/legacy/includes/forums/move.php

http://novaboard.googlecode.com/
PHP | 153 lines | 99 code | 42 blank | 12 comment | 14 complexity | f03f6a53b96155d3f655f49ce3561be2 MD5 | raw file
Possible License(s): AGPL-3.0
  1. <?php
  2. /*
  3. +--------------------------------------------------------------------------
  4. | NovaBoard
  5. | ========================================
  6. | By The NovaBoard team
  7. | Released under the Artistic License 2.0
  8. | http://www.novaboard.net
  9. | ======================================== |+--------------------------------------------------------------------------
  10. | move.php - move topic to another forum
  11. */
  12. if (!defined('NOVA_RUN')){
  13. echo "<h1>ACCESS DENIED</h1>You cannot access this file directly.";
  14. exit();
  15. }
  16. template_hook("forums/move.template.php", "start");
  17. if ($can_move_topics == 0)
  18. nova_redirect("index.php?page=error&error=8","error/8");
  19. if ($_POST['forum'] != '')
  20. {
  21. $topic = $_POST['topic'];
  22. $topic = escape_string($topic);
  23. $token_id = $_POST['token_id'];
  24. $token_id = escape_string($token_id);
  25. $token_name = "token_move_$topic$token_id";
  26. if ( isset($_POST[$token_name]) && isset($_SESSION[$token_name]) && $_SESSION[$token_name] == $_POST[$token_name])
  27. {
  28. $forum = $_POST['forum'];
  29. $forum = escape_string($forum);
  30. // create shadow topic
  31. if ($_POST['shadow_topic'])
  32. {
  33. $query_topic_id = "SELECT `topic_id` FROM `{$db_prefix}posts` WHERE `title` != '' ORDER BY `topic_id` DESC LIMIT 1";
  34. $result_topic_id = mysql_query($query_topic_id) or die("move.php - Error in query: {$query_topic_id}");
  35. $count_topics = mysql_num_rows($result_topic_id);
  36. $topic_id = mysql_result($result_topic_id, 0);
  37. $topic_id += 1;
  38. $topic_info_query = "SELECT title, description, forum_id FROM `{$db_prefix}posts` WHERE `topic_id` = '{$topic}' LIMIT 1";
  39. $topic_info_result = mysql_query($topic_info_query) or die("move.php - Error in query: {$topic_info_query}");
  40. $topic_info = mysql_fetch_assoc($topic_info_result);
  41. $forum_name_query = "SELECT `name` FROM `{$db_prefix}categories` WHERE `id` = '{$forum}' LIMIT 1";
  42. $forum_name_result = mysql_query($forum_name_query) or die("move.php - Error in query: {$forum_name_query}");
  43. $forum_name = mysql_result($forum_name_result, 0);
  44. $subject = '[moved] ' . $topic_info['title'];
  45. $time = time();
  46. $description = $topic_info['description'];
  47. $content = 'Topic has moved to [url='. nova_link('index.php?topic=' . $topic, 'topic/' . $topic_title-$topic) .']'. $forum_name.'[/url]';
  48. $shadow_forum = $topic_info['forum_id'];
  49. $sticky = 0;
  50. $locked = 1;
  51. $announce = 0;
  52. $ip = $_SERVER['REMOTE_ADDR'];
  53. $query_shadow = "INSERT INTO `{$db_prefix}posts`
  54. (`member`, `address`, `title`, `description`, `content`, `topic_id`, `forum_id`, `sticky`, `announce`, `locked`, `last_post_time`, `time`)
  55. VALUES
  56. ('{$my_id}', '{$ip}', '{$subject}', '{$description}', '{$content}', '{$topic_id}', '{$shadow_forum}', '{$sticky}', '{$announce}', '{$locked}', '{$time}', '{$time}')";
  57. mysql_query($query_shadow) or die();
  58. }
  59. mysql_query("UPDATE `{$db_prefix}posts` SET `forum_id`='{$forum}' WHERE `topic_id` = '{$topic}'");
  60. // perform auto-cache
  61. include "scripts/php/auto_cache.php";
  62. template_hook("forums/move.template.php", "form");
  63. $topic_title = topic_title($topic);
  64. nova_redirect("index.php?topic=$topic","topic/$topic_title-$topic");
  65. }
  66. else
  67. {
  68. nova_redirect("index.php?page=error&error=28","error/28");
  69. }
  70. }
  71. else
  72. {
  73. $token_id = md5(microtime());
  74. $token = md5(uniqid(rand(),true));
  75. $topic = $_GET['topic'];
  76. $topic = escape_string($topic);
  77. $token_name = "token_move_$topic$token_id";
  78. $_SESSION[$token_name] = $token;
  79. template_hook("forums/move.template.php", "2");
  80. $query211 = "select ID, NAME from {$db_prefix}categories WHERE PARENT='0' AND REDIRECT_URL = '' ORDER BY FORUM_ORDER asc, ID desc" ;
  81. $result211 = mysql_query($query211) or die("move.php - Error in query: $query211") ;
  82. while ($results211 = mysql_fetch_array($result211))
  83. {
  84. $id = $results211['ID'];
  85. $name = $results211['NAME'];
  86. $name = strip_slashes($name);
  87. template_hook("forums/move.template.php", "3");
  88. $query2 = "select ID, NAME from {$db_prefix}categories WHERE PARENT='{$id}' AND REDIRECT_URL = '' ORDER BY FORUM_ORDER asc, ID desc" ;
  89. $result2 = mysql_query($query2) or die("move.php - Error in query: $query2") ;
  90. while ($results2 = mysql_fetch_array($result2))
  91. {
  92. $forum_id = $results2['ID'];
  93. $forum_name = $results2['NAME'];
  94. $forum_name = strip_slashes($forum_name);
  95. template_hook("forums/move.template.php", "4");
  96. $query_sub = "select ID, NAME from {$db_prefix}categories WHERE PARENT='{$forum_id}' AND REDIRECT_URL = '' AND ID <> '{$current_forum}' ORDER BY FORUM_ORDER asc, ID desc" ;
  97. $result_sub = mysql_query($query_sub) or die("move.php - Error in query: $query2") ;
  98. while ($results_sub = mysql_fetch_array($result_sub))
  99. {
  100. $forum_id = $results_sub['ID'];
  101. $forum_name = $results_sub['NAME'];
  102. $forum_name = strip_slashes($forum_name);
  103. template_hook("forums/move.template.php", "5");
  104. }
  105. }
  106. template_hook("forums/move.template.php", "6");
  107. }
  108. template_hook("forums/move.template.php", "7");
  109. }
  110. template_hook("forums/move.template.php", "end");
  111. ?>