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

/drafts.php

https://github.com/igorw-forks/icy_phoenix
PHP | 245 lines | 208 code | 25 blank | 12 comment | 25 complexity | 00cec5dea89959cf03812add18c2de3a MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. define('IN_ICYPHOENIX', true);
  11. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
  12. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  13. include(IP_ROOT_PATH . 'common.' . PHP_EXT);
  14. // Start session management
  15. $userdata = session_pagestart($user_ip);
  16. init_userprefs($userdata);
  17. // End session management
  18. if (!$config['allow_drafts'])
  19. {
  20. message_die(GENERAL_MESSAGE, $lang['Not_Auth_View']);
  21. }
  22. $mode = request_var('mode', '', true);
  23. $mode = check_var_value($mode, array('loadr', 'loadn', 'loadp', 'delete'), '');
  24. if (!empty($_POST['kill_drafts']))
  25. {
  26. $mode = 'delete';
  27. }
  28. $start = request_var('start', 0);
  29. $start = ($start < 0) ? 0 : $start;
  30. if (!$userdata['session_logged_in'])
  31. {
  32. $redirect = (isset($start)) ? ('&start=' . $start) : '';
  33. redirect(append_sid(CMS_PAGE_LOGIN . '?redirect=drafts.' . PHP_EXT . $redirect, true));
  34. }
  35. $draft_id = request_var('d', 0);
  36. $draft_id = ($draft_id < 0) ? 0 : $draft_id;
  37. if (($draft_id > 0) || !empty($_POST['kill_drafts']))
  38. {
  39. if ($mode == 'loadr')
  40. {
  41. redirect(append_sid(CMS_PAGE_POSTING . '?d=' . $draft_id . '&mode=reply' . '&draft_mode=draft_load', true));
  42. }
  43. elseif ($mode == 'loadn')
  44. {
  45. redirect(append_sid(CMS_PAGE_POSTING . '?d=' . $draft_id . '&mode=newtopic' . '&draft_mode=draft_load', true));
  46. }
  47. elseif ($mode == 'loadp')
  48. {
  49. redirect(append_sid(CMS_PAGE_PRIVMSG . '?d=' . $draft_id . '&mode=post' . '&draft_mode=draft_load', true));
  50. }
  51. elseif ($mode == 'delete')
  52. {
  53. if(!isset($_POST['confirm']))
  54. {
  55. $nav_server_url = create_server_url();
  56. $breadcrumbs_address = $lang['Nav_Separator'] . '<a href="' . $nav_server_url . append_sid(CMS_PAGE_PROFILE) . '">' . $lang['Profile'] . '</a>' . $lang['Nav_Separator'] . '<a class="nav-current" href="' . $nav_server_url . append_sid('drafts.' . PHP_EXT) . '">' . $lang['Drafts'] . '</a>';
  57. $ref_url = explode('/', $_SERVER['HTTP_REFERER']);
  58. $s_hidden_fields = '';
  59. if (is_array($_POST['drafts_list']))
  60. {
  61. for ($i = 0; $i < sizeof($_POST['drafts_list']); $i++)
  62. {
  63. $s_hidden_fields .= '<input type="hidden" name="drafts_list[]" value="' . $_POST['drafts_list'][$i] . '" />';
  64. }
  65. $s_hidden_fields .= '<input type="hidden" name="kill_drafts" value="true" />';
  66. }
  67. $s_hidden_fields .= '<input type="hidden" name="ref_url" value="' . htmlspecialchars($ref_url[sizeof($ref_url) - 1]) . '" />';
  68. $s_hidden_fields .= '<input type="hidden" name="d" value="' . $draft_id . '" />';
  69. $s_hidden_fields .= '<input type="hidden" name="mode" value="' . $mode . '" />';
  70. $template->assign_vars(array(
  71. 'MESSAGE_TITLE' => $lang['Confirm'],
  72. 'MESSAGE_TEXT' => $lang['Drafts_Delete_Question'],
  73. 'L_YES' => $lang['Yes'],
  74. 'L_NO' => $lang['No'],
  75. 'S_CONFIRM_ACTION' => append_sid('drafts.' . PHP_EXT),
  76. 'S_HIDDEN_FIELDS' => $s_hidden_fields
  77. )
  78. );
  79. full_page_generation('confirm_body.tpl', $lang['Drafts'], '', '');
  80. }
  81. else
  82. {
  83. if (is_array($_POST['drafts_list']))
  84. {
  85. $draft_ids = implode(',', $_POST['drafts_list']);
  86. $sql_del = "DELETE FROM " . DRAFTS_TABLE . " WHERE draft_id IN (" . $draft_ids . ")";
  87. $result_del = $db->sql_query($sql_del);
  88. }
  89. else
  90. {
  91. $sql_del = "DELETE FROM " . DRAFTS_TABLE . " WHERE draft_id = '" . $draft_id . "'";
  92. $result_del = $db->sql_query($sql_del);
  93. }
  94. }
  95. }
  96. }
  97. // Generate the page
  98. $nav_server_url = create_server_url();
  99. $breadcrumbs_address = $lang['Nav_Separator'] . '<a href="' . $nav_server_url . append_sid(CMS_PAGE_PROFILE_MAIN) . '">' . $lang['Profile'] . '</a>' . $lang['Nav_Separator'] . '<a class="nav-current" href="' . $nav_server_url . append_sid('drafts.' . PHP_EXT) . '">' . $lang['Drafts'] . '</a>';
  100. $breadcrumbs_links_right = '<a href="#" onclick="setCheckboxes(\'drafts_form\', \'drafts_list[]\', true); return false;">' . $lang['Mark_all'] . '</a>&nbsp;&bull;&nbsp;<a href="#" onclick="setCheckboxes(\'drafts_form\', \'drafts_list[]\', false); return false;">' . $lang['Unmark_all'] . '</a>';
  101. include_once(IP_ROOT_PATH . 'includes/users_zebra_block.' . PHP_EXT);
  102. $template->assign_vars(array(
  103. 'S_FORM_ACTION' => append_sid('drafts.' . PHP_EXT),
  104. 'L_NO_DRAFTS' => $lang['Drafts_No_Drafts'],
  105. 'L_DRAFTS_CATEGORY' => $lang['Category'],
  106. 'L_DRAFTS_TYPE' => $lang['Drafts_Type'],
  107. 'L_DRAFTS_SUBJECT' => $lang['Drafts_Subject'],
  108. 'L_DRAFTS_ACTION' => $lang['Drafts_Action'],
  109. 'L_DRAFTS_DELETE_SEL' => $lang['Drafts_Delete_Sel'],
  110. 'L_DRAFTS_LOAD' => $lang['Drafts_Load'],
  111. 'L_DRAFTS_DELETE' => $lang['Delete'],
  112. 'L_CHECK_ALL' => $lang['Check_All'],
  113. 'L_UNCHECK_ALL' => $lang['UnCheck_All'],
  114. )
  115. );
  116. $sql = "SELECT COUNT(*) as drafts_count FROM " . DRAFTS_TABLE . " d WHERE d.user_id = " . $userdata['user_id'];
  117. $result = $db->sql_query($sql);
  118. $row = $db->sql_fetchrow($result);
  119. $drafts_count = ($row['drafts_count']) ? $row['drafts_count'] : 0;
  120. $db->sql_freeresult($result);
  121. $no_drafts = ($drafts_count == 0) ? true : false;
  122. //die(($no_drafts == false) ? 'FALSE' : 'TRUE');
  123. if ($no_drafts == false)
  124. {
  125. $sql = "SELECT d.*
  126. FROM " . DRAFTS_TABLE . " d
  127. WHERE d.user_id = '" . $userdata['user_id'] . "'
  128. ORDER BY d.save_time DESC
  129. LIMIT $start, " . $config['topics_per_page'];
  130. $result = $db->sql_query($sql);
  131. $draft_row = $db->sql_fetchrowset($result);
  132. $db->sql_freeresult($result);
  133. for ($i = 0; $i < sizeof($draft_row); $i++)
  134. {
  135. if ($i == 0)
  136. {
  137. $template->assign_block_vars('switch_drafts', array());
  138. }
  139. $draft_row[$i]['draft_cat'] = '';
  140. $draft_row[$i]['draft_title'] = '';
  141. $draft_load = '';
  142. $draft_type = '';
  143. $draft_cat_link = '';
  144. $draft_title_link = '';
  145. if ($draft_row[$i]['topic_id'] != 0)
  146. {
  147. $sql_d = "SELECT t.*, f.*
  148. FROM " . TOPICS_TABLE . " t,
  149. " . FORUMS_TABLE . " f
  150. WHERE t.topic_id = '" . $draft_row[$i]['topic_id'] . "'
  151. AND f.forum_id = t.forum_id
  152. LIMIT 1";
  153. $result_d = $db->sql_query($sql_d);
  154. $draft_row_data = $db->sql_fetchrow($result_d);
  155. $db->sql_freeresult($result_d);
  156. $draft_image = '<img src="' . $images['topic_nor_read'] . '" alt="" />';
  157. $draft_type = $lang['Drafts_NM'];
  158. $draft_load = 'loadr';
  159. $draft_cat_link = append_sid(IP_ROOT_PATH . CMS_PAGE_VIEWFORUM . '?' . POST_FORUM_URL . '=' . $draft_row_data['forum_id']);
  160. $draft_title_link = append_sid(IP_ROOT_PATH . CMS_PAGE_VIEWTOPIC . '?' . POST_TOPIC_URL . '=' . $draft_row[$i]['topic_id']);
  161. $draft_row[$i]['draft_cat'] = '<a href="' . $draft_cat_link . '">' . $draft_row_data['forum_name'] . '</a>';
  162. $draft_row[$i]['draft_title'] = '<a href="' . $draft_title_link . '">' . $draft_row_data['topic_title'] . '</a>';
  163. }
  164. elseif ($draft_row[$i]['forum_id'] != 0)
  165. {
  166. $sql_d = "SELECT f.*
  167. FROM " . FORUMS_TABLE . " f
  168. WHERE f.forum_id = '" . $draft_row[$i]['forum_id'] . "'
  169. LIMIT 1";
  170. $result_d = $db->sql_query($sql_d);
  171. $draft_row_data = $db->sql_fetchrow($result_d);
  172. $db->sql_freeresult($result_d);
  173. $draft_image = '<img src="' . $images['topic_nor_unread'] . '" alt="" />';
  174. $draft_type = $lang['Drafts_NT'];
  175. $draft_load = 'loadn';
  176. $draft_cat_link = append_sid(IP_ROOT_PATH . CMS_PAGE_VIEWFORUM . '?' . POST_FORUM_URL . '=' . $draft_row_data['forum_id']);
  177. $draft_title_link = append_sid(IP_ROOT_PATH . 'drafts.' . PHP_EXT . '?mode=' . $draft_load . '&amp;d=' . $draft_row[$i]['draft_id']);
  178. $draft_row[$i]['draft_cat'] = '<a href="' . $draft_cat_link . '">' . $draft_row_data['forum_name'] . '</a>';
  179. $draft_row[$i]['draft_title'] = '<a href="' . $draft_title_link . '">' . $draft_row[$i]['draft_subject'] . '</a>';
  180. }
  181. else
  182. {
  183. $draft_image = '<img src="' . $images['topic_nor_read'] . '" alt="" />';
  184. $draft_type = $lang['Drafts_NPM'];
  185. $draft_load = 'loadp';
  186. $draft_cat_link = append_sid(IP_ROOT_PATH . CMS_PAGE_PRIVMSG);
  187. $draft_title_link = append_sid(IP_ROOT_PATH . 'drafts.' . PHP_EXT . '?mode=' . $draft_load . '&amp;d=' . $draft_row[$i]['draft_id']);
  188. $draft_row[$i]['draft_cat'] = '<a href="' . $draft_cat_link . '">' . $lang['Drafts_NPM'] . '</a>';
  189. $draft_row[$i]['draft_title'] = '<a href="' . $draft_title_link . '">' . $draft_row[$i]['draft_subject'] . '</a>';
  190. }
  191. $row_class = (!($i % 2)) ? $theme['td_class1'] : $theme['td_class2'];
  192. $template->assign_block_vars('draft_row', array(
  193. 'ROW_CLASS' => $row_class,
  194. 'S_DRAFT_ID' => $draft_row[$i]['draft_id'],
  195. 'DRAFT_IMG' => $draft_image,
  196. 'DRAFT_TYPE' => $draft_type,
  197. 'DRAFT_CAT_LINK' => $draft_cat_link,
  198. 'DRAFT_CAT' => $draft_row[$i]['draft_cat'],
  199. 'DRAFT_TITLE_LINK' => $draft_title_link,
  200. 'DRAFT_TITLE' => $draft_row[$i]['draft_title'],
  201. 'DRAFT_TIME' => create_date_ip($config['default_dateformat'], $draft_row[$i]['save_time'], $config['board_timezone']),
  202. 'U_DRAFT_LOAD' => append_sid(IP_ROOT_PATH . 'drafts.' . PHP_EXT . '?mode=' . $draft_load . '&amp;d=' . $draft_row[$i]['draft_id']),
  203. 'U_DRAFT_DELETE' => append_sid(IP_ROOT_PATH . 'drafts.' . PHP_EXT . '?mode=delete&amp;d=' . $draft_row[$i]['draft_id']),
  204. )
  205. );
  206. }
  207. $pagination = generate_pagination('drafts.' . PHP_EXT . '?mode=list', $drafts_count, $config['topics_per_page'], $start);
  208. $template->assign_vars(array(
  209. 'PAGINATION' => $pagination,
  210. 'PAGE_NUMBER' => sprintf($lang['Page_of'], (floor($start / $config['topics_per_page']) + 1), ceil($drafts_count / $config['topics_per_page'])),
  211. 'L_GOTO_PAGE' => $lang['Goto_page']
  212. )
  213. );
  214. }
  215. else
  216. {
  217. $template->assign_block_vars('switch_no_drafts', array());
  218. }
  219. full_page_generation('drafts_body.tpl', $lang['Drafts'], '', '');
  220. ?>