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

/link_register.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 187 lines | 136 code | 28 blank | 23 comment | 25 complexity | e672e511e79504e62513d7cfdd573208 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. /**
  11. *
  12. * @Extra credits for this file
  13. * OOHOO < webdev@phpbb-tw.net >
  14. * Stefan2k1 and ddonker from www.portedmods.com
  15. * CRLin from http://mail.dhjh.tcc.edu.tw/~gzqbyr/
  16. *
  17. */
  18. define('IN_ICYPHOENIX', true);
  19. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
  20. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  21. include(IP_ROOT_PATH . 'common.' . PHP_EXT);
  22. include_once(IP_ROOT_PATH . 'includes/bbcode.' . PHP_EXT);
  23. include_once(IP_ROOT_PATH . 'includes/functions_post.' . PHP_EXT);
  24. // Start session management
  25. $user->session_begin();
  26. $auth->acl($user->data);
  27. $user->setup();
  28. // End session management
  29. setup_extra_lang(array('lang_main_link'));
  30. include_once(IP_ROOT_PATH . 'includes/functions_links.' . PHP_EXT);
  31. $links_config = get_links_config(true);
  32. $cms_page['page_id'] = 'links';
  33. $cms_page['page_nav'] = (!empty($cms_config_layouts[$cms_page['page_id']]['page_nav']) ? true : false);
  34. $cms_page['global_blocks'] = (!empty($cms_config_layouts[$cms_page['page_id']]['global_blocks']) ? true : false);
  35. $cms_auth_level = (isset($cms_config_layouts[$cms_page['page_id']]['view']) ? $cms_config_layouts[$cms_page['page_id']]['view'] : AUTH_ALL);
  36. check_page_auth($cms_page['page_id'], $cms_auth_level);
  37. // Users Authentication, members only area
  38. if(!$user->data['session_logged_in'])
  39. {
  40. header('Location: ' . append_sid(CMS_PAGE_LOGIN . '?redirect=links.' . PHP_EXT, true));
  41. exit;
  42. }
  43. $link_title = request_var('link_title', '', true);
  44. $link_desc = request_var('link_desc', '', true);
  45. $link_url = request_var('link_url', '', true);
  46. $link_logo_src = request_var('link_logo_src', '', true);
  47. $link_logo_src = ($link_logo_src == 'http://') ? '' : $link_logo_src;
  48. $link_category = request_var('link_category', 0);
  49. $link_joined = time();
  50. $user_id = $user->data['user_id'];
  51. // Check Link config
  52. if($links_config['lock_submit_site'] && $user->data['user_level'] != ADMIN)
  53. {
  54. $message = $lang['Link_lock_submit_site'];
  55. $message .= '<br /><br />' . sprintf($lang['Click_return_links'], '<a href="' . append_sid('links.' . PHP_EXT) . '">', '</a>');
  56. $redirect_url = append_sid('links.' . PHP_EXT);
  57. meta_refresh(3, $redirect_url);
  58. message_die(GENERAL_MESSAGE, $message);
  59. }
  60. if(!$links_config['allow_no_logo'] && !$link_logo_src)
  61. {
  62. $message = $lang['Link_incomplete'];
  63. $message .= '<br /><br />' . sprintf($lang['Click_return_links'], '<a href="' . append_sid('links.' . PHP_EXT) . '">', '</a>');
  64. $message .= '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid(CMS_PAGE_FORUM) . '">', '</a>');
  65. $redirect_url = append_sid('links.' . PHP_EXT);
  66. meta_refresh(3, $redirect_url);
  67. message_die(GENERAL_MESSAGE, $message);
  68. }
  69. // Add new link
  70. if(!empty($link_title) && !empty($link_desc) && !empty($link_category) && !empty($link_url))
  71. {
  72. // Check regiter interval
  73. $sql = "SELECT MAX(link_joined) AS last_link_joined FROM " . LINKS_TABLE . "
  74. WHERE " . (($user_id != ANONYMOUS) ? "user_id = '$user_id'" : "user_ip = '$user_ip'");
  75. $result = $db->sql_query($sql);
  76. if($row = $db->sql_fetchrow($result))
  77. {
  78. $last_link_joined = $row['last_link_joined'];
  79. }
  80. else
  81. {
  82. $last_link_joined = 0;
  83. }
  84. if(($link_joined - $last_link_joined) > 60)
  85. {
  86. $is_admin = ($user->data['user_level'] == ADMIN) ? true : 0;
  87. $sql = "INSERT INTO " . LINKS_TABLE . " (link_title, link_desc, link_category, link_url, link_logo_src, link_joined,link_active , user_id , user_ip)
  88. VALUES ('" . $db->sql_escape($link_title) . "', '" . $db->sql_escape($link_desc) . "', '$link_category', '" . $db->sql_escape($link_url) . "', '" . $db->sql_escape($link_logo_src) . "', '$link_joined', '$is_admin', '$user_id ', '$user_ip')";
  89. $db->sql_query($sql);
  90. if ($user->data['user_level'] != ADMIN)
  91. {
  92. $sql = "SELECT user_id, username, user_notify_pm, user_allow_pm, user_email, user_lang, user_active
  93. FROM " . USERS_TABLE . "
  94. WHERE user_level = " . ADMIN;
  95. $admin_result = $db->sql_query($sql);
  96. if ($links_config['email_notify'])
  97. {
  98. include(IP_ROOT_PATH . 'includes/emailer.' . PHP_EXT);
  99. while($to_userdata = $db->sql_fetchrow($admin_result))
  100. {
  101. if ($to_userdata['user_email'])
  102. {
  103. $emailer = new emailer();
  104. $emailer->use_template('link_add', $to_userdata['user_lang']);
  105. $emailer->to($to_userdata['user_email']);
  106. $emailer->assign_vars(array(
  107. 'LINK_URL' => $link_url,
  108. 'SITENAME' => $config['sitename']
  109. )
  110. );
  111. $emailer->send();
  112. $emailer->reset();
  113. unset($emailer);
  114. }
  115. }
  116. }
  117. if (empty($config['privmsg_disable']) && $links_config['pm_notify'])
  118. {
  119. include_once(IP_ROOT_PATH . 'includes/class_pm.' . PHP_EXT);
  120. $html_on = 0;
  121. $acro_auto_on = 0;
  122. $bbcode_on = 0;
  123. $smilies_on = 0;
  124. $attach_sig = 0;
  125. while($to_userdata = $db->sql_fetchrow($admin_result))
  126. {
  127. // Has admin prevented user from sending PM's?
  128. if ($to_userdata['user_allow_pm'])
  129. {
  130. $privmsg_sender = ($user->data['user_id'] != ANONYMOUS) ? $user->data['user_id'] : $to_userdata['user_id'];
  131. $privmsg_recipient = $to_userdata['user_id'];
  132. $privmsg_subject = $lang['Link_pm_notify_subject'];
  133. $privmsg_message = sprintf($lang['Link_pm_notify_message'], $link_url);
  134. $privmsg_message = stripslashes(prepare_message($privmsg_message, $html_on, $bbcode_on, $smilies_on));
  135. $privmsg = new class_pm();
  136. $privmsg->delete_older_message('PM_INBOX', $privmsg_recipient);
  137. $privmsg->send($privmsg_sender, $privmsg_recipient, $privmsg_subject, $privmsg_message);
  138. unset($privmsg);
  139. }
  140. }
  141. }
  142. }
  143. $message = $lang['Link_update_success'];
  144. }
  145. else
  146. {
  147. $message = $lang['Link_intval_warning'];
  148. }
  149. }
  150. else
  151. {
  152. $message = $lang['Link_incomplete'];
  153. }
  154. $message .= '<br /><br />' . sprintf($lang['Click_return_links'], '<a href="' . append_sid('links.' . PHP_EXT) . '">', '</a>');
  155. $message .= '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid(CMS_PAGE_FORUM) . '">', '</a>');
  156. $redirect_url = append_sid('links.' . PHP_EXT);
  157. meta_refresh(3, $redirect_url);
  158. message_die(GENERAL_MESSAGE, $message);
  159. ?>