PageRenderTime 37ms CodeModel.GetById 7ms RepoModel.GetById 1ms app.codeStats 0ms

/infusions/addondb/submit.php

http://addondb.googlecode.com/
PHP | 240 lines | 207 code | 16 blank | 17 comment | 59 complexity | 80c962c42e969c7ecf5f14f51fa0a964 MD5 | raw file
  1. <?php
  2. /*-------------------------------------------------------+
  3. | PHP-Fusion Content Management System
  4. | Copyright (C) 2002 - 2010 Nick Jones
  5. | http://www.php-fusion.co.uk/
  6. +--------------------------------------------------------+
  7. | Filename: submit_addon.php
  8. | Author: PHP-Fusion Addons Team
  9. +--------------------------------------------------------+
  10. | This program is released as free software under the
  11. | Affero GPL license. You can redistribute it and/or
  12. | addonify it under the terms of this license which you
  13. | can read by viewing the included agpl.txt or online
  14. | at www.gnu.org/licenses/agpl.html. Removal of this
  15. | copyright header is strictly prohibited without
  16. | written permission from the original author(s).
  17. +--------------------------------------------------------*/
  18. require_once "../../maincore.php";
  19. require_once THEMES."templates/header.php";
  20. require_once INFUSIONS."addondb/inc/inc.functions.php";
  21. require_once ADDON."infusion_db.php";
  22. include ADDON_LOCALE.LOCALESET."submit_addon.php";
  23. if ($_REQUEST['addon_type'] != '') { $addon_sub_type = ($_REQUEST['addon_type']); } else { redirect("index.php"); }
  24. if (!iMEMBER) {
  25. opentable($locale['addondb600']);
  26. echo "<center><br />".$locale['addondb608']."<br /><br /></center>\n";
  27. closetable();
  28. } elseif (isset($_POST['btn_submit'])) {
  29. $error = "";
  30. $addon_ext = "";
  31. $addon_ext_img = "";
  32. $upload_id = "";
  33. $submit_info['addon_name'] = stripinput($_POST['addon_name']);
  34. $submit_info['addon_cat_id'] = stripinput($_POST['addon_cat_id']);
  35. $submit_info['addon_cat_type'] = stripinput($_POST['addon_cat_type']);
  36. $submit_info['addon_status'] = 1;
  37. $submit_info['addon_description'] = stripinput($_POST['addon_description']);
  38. $submit_info['addon_demo_url'] = stripinput($_POST['addon_demo_url']);
  39. $submit_info['addon_copyright'] = stripinput($_POST['addon_copyright']);
  40. $submit_info['addon_version'] = stripinput($_POST['addon_version']);
  41. $submit_info['addon_version_id'] = stripinput($_POST['addon_version_id']);
  42. $submit_info['addon_submitter_name'] = stripinput($_POST['addon_submitter_name']);
  43. $submit_info['addon_submitter_id'] = stripinput($_POST['addon_submitter_id']);
  44. $submit_info['addon_forum_status'] = stripinput($_POST['addon_forum_status']);
  45. $submit_info['addon_share_status'] = stripinput($_POST['addon_share_status']);
  46. $submit_info['addon_author_name'] = stripinput($_POST['addon_author_name']);
  47. $submit_info['addon_author_status'] = stripinput($_POST['addon_author_status']);
  48. $submit_info['addon_co_author_name'] = stripinput($_POST['addon_co_author_name']);
  49. $submit_info['addon_author_email'] = stripinput($_POST['addon_author_email']);
  50. $submit_info['addon_author_www'] = stripinput($_POST['addon_author_www']);
  51. $submit_info['addon_date'] = time();
  52. if ($submit_info['addon_name'] == "" || $submit_info['addon_description'] == "" || $submit_info['addon_version'] == "" || $submit_info['addon_author_name'] == "") {
  53. $error = $locale['addondb603'];
  54. } elseif ($submit_info['addon_author_email']<>"" && !preg_match("/^[-0-9A-Z_\.]+@([-0-9A-Z_\.]+\.)+([0-9A-Z]){2,4}$/i", $submit_info['addon_author_email'])) {
  55. $error = $locale['addondb607'];
  56. } else {
  57. $sql = dbquery("INSERT INTO ".DB_SUBMISSIONS." VALUES('', 'm', '".$userdata['user_id']."', '".time()."', '".addslashes(serialize($submit_info))."')");
  58. $upload_id = dbinsert_id();
  59. if (is_uploaded_file($_FILES['addon_download']['tmp_name'])) {
  60. if ($_FILES['addon_download']['size'] > $addon_upload_maxsize) {
  61. $error = sprintf($locale['addondb604'], $addon_upload_maxsize);
  62. }
  63. foreach (array_keys($addon_upload_exts) as $addon_upload_ext) {
  64. if (stristr($_FILES['addon_download']['name'], $addon_upload_ext) == $addon_upload_ext) $addon_ext = $addon_upload_ext;
  65. }
  66. if ($addon_ext != "") {
  67. $addon_ext = ".".$addon_ext;
  68. } else {
  69. $error = sprintf($locale['addondb605'],implode(", ",array_keys($addon_upload_exts)));
  70. }
  71. if ($error == "") {
  72. if (is_uploaded_file($_FILES['addon_screen']['tmp_name'])) {
  73. if ($_FILES['addon_screen']['size'] > $addon_upload_maxsize_img) {
  74. $error = sprintf($locale['addondb609'], $addon_upload_maxsize_img);
  75. }
  76. foreach (array_keys($addon_upload_exts_img) as $addon_upload_ext_img) {
  77. if (stristr($_FILES['addon_screen']['name'], $addon_upload_ext_img) == $addon_upload_ext_img) $addon_ext_img = $addon_upload_ext_img;
  78. }
  79. if ($addon_ext_img != "") {
  80. $addon_ext_img = ".".$addon_ext_img;
  81. } else {
  82. $error = sprintf($locale['addondb610'],implode(", ",array_keys($addon_upload_exts_img)));
  83. }
  84. }
  85. if ($error == "") {
  86. move_uploaded_file($_FILES['addon_download']['tmp_name'], $addon_upload_dir.$addon_upload_prefix.$upload_id.$addon_ext);
  87. $submit_info['addon_download'] = $addon_upload_prefix.$upload_id.$addon_ext;
  88. if (is_uploaded_file($_FILES['addon_screen']['tmp_name'])) {
  89. move_uploaded_file($_FILES['addon_screen']['tmp_name'], $addon_upload_dir_img.$upload_id.$addon_ext_img);
  90. $submit_info['addon_screen'] = $upload_id.$addon_ext_img;
  91. require_once INCLUDES."photo_functions_include.php";
  92. $fileext = $addon_ext_img;
  93. if ($fileext == ".gif") { $filetype = 1;
  94. } elseif ($fileext == ".jpg") { $filetype = 2;
  95. } elseif ($fileext == ".png") { $filetype = 3;
  96. } else { $filetype = false; }
  97. createthumbnail($filetype , $addon_upload_dir_img.$upload_id.$addon_ext_img, $addon_upload_dir_img."t_".$upload_id.$addon_ext_img, 200, 150);
  98. } elseif ($addon_sub_type == $locale['addondb425']) { $error = $locale['addondb614']; } else {
  99. $submit_info['addon_screen'] = "";
  100. }
  101. $sql = dbquery("UPDATE ".DB_SUBMISSIONS." SET submit_criteria='".addslashes(serialize($submit_info))."' WHERE submit_id='".$upload_id."'");
  102. }
  103. }
  104. } else { $error = $locale['addondb606'];
  105. }
  106. }
  107. if ($error != "") {
  108. opentable($locale['addondb600']);
  109. if (isNum($upload_id)) {
  110. if (file_exists($addon_upload_dir.$addon_upload_prefix.$upload_id.$addon_ext)) unlink($addon_upload_dir.$addon_upload_prefix.$upload_id.$addon_ext);
  111. $rm = dbquery("DELETE FROM ".DB_SUBMISSIONS." WHERE submit_id='".$upload_id."'");
  112. }
  113. echo "<center><br />".$locale['addondb601']."<br /><br />
  114. <span class='error'>".$error."</span><br /><br />
  115. <a href='javascript:history.back(-1);'>".$locale['addondb602']."</a><br /><br /></center>\n";
  116. closetable();
  117. } else {
  118. if ($addon_sub_type !='') {
  119. opentable($locale['addondb400'].$addon_sub_type);
  120. } else {
  121. opentable($locale['addondb421']); }
  122. echo "<center><br />
  123. ".$locale['addondb500']."<br /><br />
  124. ".$locale['addondb501']."<br /><br />
  125. ".$locale['addondb502'];
  126. echo "<form name='select' method='post' action='".FUSION_SELF."'>\n";
  127. $addon_type_list = "";
  128. foreach ($addon_types as $k=>$addon_type) {
  129. $addon_type_list .= "<option value='$addon_type'>".$addon_type."</option>\n";
  130. }
  131. echo "<select class='textbox' name='addon_type' style='width:300px;' onChange='submit()'><option value='0'>".$locale['addondb427']."</option>".$addon_type_list."</select>\n";
  132. echo "</form>\n";
  133. echo "<br /><br /><a href='".BASEDIR."index.php'>".$locale['addondb503']."</a><br />\n";
  134. echo "<br /><a href='".ADDON."index.php'>".$locale['addondb505']."</a><br />\n";
  135. echo "<br /><a href='".ADDON."dashboard.php'>".$locale['addondb506']."</a><br />\n";
  136. echo "<br />".(iADMIN ? "<a href='".ADDON_ADMIN."submissions.php".$aidlink."'>".$locale['addondb504']."</a><br /><br />" : "")."
  137. </center>\n";
  138. closetable();
  139. }
  140. } else {
  141. add_to_title($locale['addondb412'].$locale['addondb400'].$addon_sub_type.$locale['addondb420']);
  142. opentable($locale['addondb400'].$addon_sub_type.$locale['addondb420']);
  143. $addon_type_list = ""; $cat_list = ""; $opt = "";
  144. foreach ($addon_types as $k=>$addon_type) $addon_type_list .= "<option value='".$k."'>".$addon_type."</option>\n";
  145. // foreach ($addon_types as $k=>$addon_type) $addon_type_list .= $k;
  146. $q_addon_cats = dbquery("SELECT
  147. addon_cat_id,
  148. addon_cat_type,
  149. addon_cat_name
  150. FROM ".DB_ADDON_CATS."
  151. WHERE addon_cat_type =
  152. ".$get_type[$addon_sub_type]."
  153. ORDER BY addon_cat_type,
  154. addon_cat_order
  155. ");
  156. if (dbrows($q_addon_cats) != 0) {
  157. while ($d_addon_cats = dbarray($q_addon_cats)) {
  158. if (get_addon_type($d_addon_cats['addon_cat_type']) != $opt) {
  159. if ($opt != "") { $cat_list .= "</optgroup>\n"; }
  160. $opt = get_addon_type($d_addon_cats['addon_cat_type']);
  161. $cat_list .= "<optgroup label='".get_addon_type($d_addon_cats['addon_cat_type'])."'>\n";
  162. }
  163. $cat_list .= "<option value='".$d_addon_cats['addon_cat_id']."'>".$d_addon_cats['addon_cat_name']."</option>\n";
  164. }
  165. $cat_list .= "</optgroup>\n";
  166. echo "
  167. <form name='add_addon' method='post' action='".FUSION_SELF."' enctype='multipart/form-data'>
  168. <table align='center' cellpadding='0' cellspacing='0' class='tbl-border addonsubmitform' width='100%'>
  169. <tr>
  170. <td class='tbl1' colspan='2'><p>".$locale['addondb401']."</p></td>
  171. </tr>
  172. <tr>
  173. <td class='tbl1'><label for='addon_name'>".$addon_sub_type.$locale['addondb402']."</label><input type='text' class='textbox' id='addon_name' name='addon_name' /></td>
  174. <td class='tbl1'><label for='addon_cat_id'>".$locale['addondb403']."</label><select class='textbox' id='addon_cat_id' name='addon_cat_id'>".$cat_list."</select>
  175. <input type='hidden' class='textbox' name='addon_cat_type' value='".$get_type[$opt]."'></td>
  176. </tr>
  177. <tr>
  178. <td class='tbl1'><label for='addon_description'>".$locale['addondb404']."</label><textarea cols='63' rows='9' id='addon_description' class='textbox' id='addon_description' name='addon_description'></textarea>
  179. <label for='addon_demo_url'>".$locale['addondb431']."</label><input type='text' class='textbox' id='addon_demo_url' name='addon_demo_url' /></td>
  180. <td class='tbl1'><label for='addon_copyright'>".$locale['addondb405']."</label><textarea cols='63' rows='3' class='textbox' id='addon_copyright' name='addon_copyright'></textarea>
  181. <label for='addon_forum_status' style='margin-top:16px'>".$locale['addondb417']."</label><select id='addon_forum_status' name='addon_forum_status' class='textbox'>
  182. <option value='0'>".$locale['addondb418']."</option>
  183. <option value='1'>".$locale['addondb419']."</option></select>
  184. <label for='addon_share_status' style='margin-top:16px'>".$locale['addondb430']."&nbsp;<img src='".ADDON_IMG."facebook.png' alt='' />&nbsp;<img src='".ADDON_IMG."twitter.png' alt='' /></label>
  185. <select id='addon_share_status' name='addon_share_status' class='textbox'>
  186. <option value='1'>".$locale['addondb418']."</option>
  187. <option value='0'>".$locale['addondb419']."</option></select>
  188. </td>
  189. </tr>
  190. <tr>
  191. <td class='tbl1'><label for='addon_version'>".$locale['addondb406']."</label><input type='text' class='textbox' id='addon_version' name='addon_version' /></td>
  192. <td class='tbl1'><label for='addon_version_id'>".$locale['addondb407']."</label><select class='textbox' id='addon_version_id' name='addon_version_id'>".buildversionoptionlist(-1)."</select></td>
  193. </tr>
  194. <tr>
  195. <td class='tbl1'><label for='addon_download'>".$locale['addondb411']."</label><input type='file' class='textbox' id='addon_download' name='addon_download' /></td>
  196. <td class='tbl1'><label for='addon_screen'>".$locale['addondb415']."</label><input type='file' class='textbox' id='addon_screen' name='addon_screen' /></td>
  197. </tr>
  198. <tr>
  199. <td class='tbl1'><label for='addon_author_name'>".$locale['addondb408']."</label><input type='text' class='textbox' id='addon_author_name' name='addon_author_name' value='".$userdata['user_name']."' /></td>
  200. <td class='tbl1'><label for='addon_co_author_name'>".$locale['addondb613']."</label><input type='text' class='textbox' id='addon_co_author_name' name='addon_co_author_name' /></td>
  201. </tr>
  202. <tr>
  203. <td class='tbl1'><label for='addon_author_email'>".$locale['addondb409']."</label><input type='text' class='textbox' id='addon_author_email' name='addon_author_email' value='".$userdata['user_email']."' /></td>
  204. <td class='tbl1'><label for='addon_author_www'>".$locale['addondb410']."</label><input type='text' class='textbox' id='addon_author_www' name='addon_author_www' value='".$userdata['user_web']."' /></td>
  205. </tr>
  206. <tr>
  207. <td class='tbl1' colspan='2' align='center'><hr />
  208. <input type='submit' class='button' name='btn_submit' value='".$locale['addondb412']."' /></td>
  209. </tr>
  210. </table>\n";
  211. $status_check = dbarray(dbquery("SELECT addon_author_status FROM ".DB_ADDONS." WHERE addon_author_name = '".$userdata['user_name']."' AND addon_author_status !='0'"));
  212. if (isset($status_check['addon_author_status'])) { $status = $status_check['addon_author_status']; } else { $status = "0"; }
  213. echo "<input type='hidden' class='textbox' name='addon_author_status' value='".$status."' />\n";
  214. echo "<input type='hidden' class='textbox' name='addon_submitter_name' value='".$userdata['user_name']."' />\n
  215. <input type='hidden' class='textbox' name='addon_submitter_id' value='".$userdata['user_id']."' />\n
  216. <input type='hidden' class='textbox' name='addon_type' value='0' />\n
  217. </form>\n";
  218. } else {
  219. echo "<center><br />".$locale['addondb611']."<br /><br />".$locale['addondb612']."<br /><br /></center>\n";
  220. }
  221. closetable();
  222. }
  223. require_once THEMES."templates/footer.php";
  224. ?>