<?php /* * e107 website system * * Copyright (C) 2008-2013 e107 Inc (e107.org) * Released under the terms and conditions of the * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * */ require_once("class2.php"); include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE); if (!$pref['upload_enabled'] || $pref['upload_class'] == 255) { header("location: ".e_BASE."index.php"); exit; } if (!defined("USER_WIDTH") && defset('BOOTSTRAP')==false){ define("USER_WIDTH","width:97%"); } require_once(e_HANDLER.'upload_handler.php'); class userUpload { function __construct() { /* e107::css('inline', " input[type=file] { } "); e107::js('inline', " function frmVerify() { var message = ''; var spacer = ''; var testObjects = new Array(\"download_category\", \"user_email\", \"file_name\", \"file_realpath\", \"file_description\"); var errorMessages = new Array('".LAN_UL_032."', '".LAN_UL_033."', '".LAN_UL_034."', '".LAN_UL_036."', '".LAN_UL_035."'); var temp; var i; for (i = 0; i < 5; i++) { temp = document.getElementById(testObjects[i]); if (temp && (temp.value == \"\")) { message = message + spacer + errorMessages[i]; spacer = '\\n'; } } if (message) { alert(message); return false; } } "); */ } public function init() { $ns = e107::getRender(); $uploadAccess = e107::pref('core','upload_class'); if(!check_class($uploadAccess)) { $text = "<div style='text-align:center'>".LAN_UL_002."</div>"; $ns->tablerender(LAN_UL_020, $text); return; } if (isset($_POST['upload'])) { $this->processUpload(); return; } $this->renderForm(); } function processUpload() { $ns = e107::getRender(); $sql = e107::getDb(); $mes = e107::getMessage(); $tp = e107::getParser(); $error = false; $postemail =''; if (($_POST['file_email'] || USER == TRUE) && $_POST['file_name'] && $_POST['file_description'] && $_POST['download_category']) { // $uploaded = file_upload(e_FILE."public/", "unique"); $fl = e107::getFile(); $uploaded = $fl->getUploaded(e_UPLOAD, "unique", array('max_file_count' => 2, 'extra_file_types' => TRUE)); // $uploaded = process_uploaded_files(e_UPLOAD, "unique", array('max_file_count' => 2, 'extra_file_types' => TRUE)); // First, see what errors the upload handler picked up if ($uploaded === FALSE) { $error = true; $mes->addError(LAN_UL_021); } // Now see if we have a code file if (count($uploaded) > 0) { if ($uploaded[0]['error'] == 0) { $file = $uploaded[0]['name']; $filesize = $uploaded[0]['size']; } else { $error = true; $mes->addError($uploaded[0]['message']); } } // Now see if we have an image file if (count($uploaded) > 1) { if ($uploaded[1]['error'] == 0) { $image = $uploaded[1]['name']; } else { $error = true; $mes->addError($uploaded[1]['message']); } } // The upload handler checks max file size $downloadCategory = intval($_POST['download_category']); if (!$downloadCategory) { $error = true; $mes->addError(LAN_UL_037); } // an error - delete the files to keep things tidy if ($error) { @unlink($file); @unlink($image); } else { if (USER) { $poster = USERID; $row = e107::getUser()->toArray(); if ($row['user_hideemail']) { $postemail = '-witheld-'; } else { $postemail = USEREMAIL; } } else { $poster = "0";//.$tp -> toDB($_POST['file_poster']); $postemail = $tp->toDB($_POST['file_email']); } if (($postemail != '-witheld-') && !check_email($postemail)) { $error = true; $mes->addError(LAN_UL_001); } else { if ($postemail == '-witheld-') $postemail = ''; $_POST['file_description'] = $tp->toDB($_POST['file_description']); $file_time = time(); $sql->insert("upload", "0, '".$poster."', '".$postemail."', '".$tp -> toDB($_POST['file_website'])."', '".$file_time."', '".$tp -> toDB($_POST['file_name'])."', '".$tp -> toDB($_POST['file_version'])."', '".$file."', '".$image."', '".$tp -> toDB($_POST['file_description'])."', '".$tp -> toDB($_POST['file_demo'])."', '".$filesize."', 0, '".$downloadCategory."'"); $edata_fu = array("upload_user" => $poster, "upload_email" => $postemail, "upload_name" => $tp -> toDB($_POST['file_name']),"upload_file" => $file, "upload_version" => $_POST['file_version'], "upload_description" => $tp -> toDB($_POST['file_description']), "upload_size" => $filesize, "upload_category" => $downloadCategory, "upload_website" => $tp -> toDB($_POST['file_website']), "upload_image" => $image, "upload_demo" => $tp -> toDB($_POST['file_demo']), "upload_time" => $file_time); e107::getEvent()->trigger("fileupload", $edata_fu); // BC e107::getEvent()->trigger("user_file_upload", $edata_fu); $mes->addSuccess(LAN_404); } } } else { // Error - missing data $mes->addError(LAN_ERROR_29); } echo e107::getMessage()->render(); } function renderForm() { /* $template = " <div class='form-group'> <label for='firstname' class='col-sm-3 control-label'>First Name:**</label> <div class='col-sm-9'> <input id='firstname' class=\"form-control tbox\" type=\"text\" name=\"FIRSTNAME\" size=\"20\" maxlength=\"20\" value=\"". $_POST['FIRSTNAME']. "\" required /> </div> </div> "; */ $ns = e107::getRender(); $tp = e107::getParser(); $text = "<div style='text-align:center'> <form enctype='multipart/form-data' method='post' onsubmit='return frmVerify()' action='".e_SELF."'> <table style='".USER_WIDTH."' class='table fborder'> <colgroup> <col style='width:30%' /> <col style='width:70%' /> </colgroup> <tr> <td class='forumheader3'>".DOWLAN_11.":</td> <td class='forumheader3'>"; require_once(e_CORE."shortcodes/batch/download_shortcodes.php"); $dlparm = (isset($download_category)) ? $download_category : ""; $text .= $tp->parseTemplate("{DOWNLOAD_CATEGORY_SELECT={$dlparm}}",true,$download_shortcodes); //FIXME - move to e_upload.php $text .= "</td> </tr> <tr> <td style='text-align:center' class='forumheader3'>".LAN_419."</td> <td class='forumheader3'>"; // $text .= "<b>".LAN_406."</b><br />".LAN_419.":"; $a_filetypes = get_filetypes(); if (count($a_filetypes) == 0) { $ns->tablerender(LAN_417, LAN_UL_025); return; } $max_upload_size = calc_max_upload_size(-1); // Find overriding maximum upload size $max_upload_size = set_max_size($a_filetypes, $max_upload_size); if (ADMIN) { $upper_limit = calc_max_upload_size(); $allowed_filetypes = "<table class='table table-striped table-bordered'><tr><th class='text-center'>".LAN_UL_023." </th><th style='text-align:right'>".LAN_UL_024."</th></tr>"; foreach ($a_filetypes as $type => $size) { $allowed_filetypes .= "<tr><td>{$type}</td><td style='text-align:right'>".eHelper::parseMemorySize($size,0)."</td></tr>"; } $allowed_filetypes .= "</table>"; } else { $a_filetypes = array_keys($a_filetypes); $allowed_filetypes = implode(' | ', $a_filetypes); } $text .= " ".$allowed_filetypes; $text .= "<div class='alert alert-block alert-danger'>".LAN_407."<br />".LAN_418.eHelper::parseMemorySize($max_upload_size,0)." (".LAN_UL_022.")<br />"; $text .= "<span style='text-decoration:underline'>".LAN_408."</span> ".LAN_420; $text .= "</div>"; $text .= "</td></tr>"; //TODO Replcae all form inputs with $frm methods. if (!USER) // Prompt for name, email { $text .= "<tr> <td class='forumheader3'>".LAN_61."</td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_poster' type='text' size='50' maxlength='100' value='{$poster}' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_112."</span></td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_email' id='user_email' type='text' size='50' maxlength='100' value='".$postemail."' required /></td> </tr>"; } $text .= " <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_409."</span></td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_name' id='file_name' type='text' size='50' maxlength='100' required /></td> </tr> <tr> <td class='forumheader3'>".LAN_410."</td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_version' type='text' size='10' maxlength='10' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_411."</span></td> <td class='forumheader3'><input class='tbox' style='width:90%' id='file_realpath' name='file_userfile[]' type='file' size='47' /></td> </tr> <tr> <td class='forumheader3'>".LAN_412."</td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_userfile[]' type='file' size='47' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_413."</span></td> <td class='forumheader3'><textarea class='tbox form-control' style='width:90%' name='file_description' id='file_description' cols='59' rows='6' required></textarea></td> </tr> <tr> <td class='forumheader3'>".LAN_144."</td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_website' type='text' size='50' maxlength='100' value='".(defined(USERURL) ? USERURL : "")."' /></td> </tr> <tr> <td class='forumheader3'>".LAN_414."<br /><span class='smalltext'>".LAN_415."</span></td> <td class='forumheader3'><input class='tbox form-control' style='width:90%' name='file_demo' type='text' size='50' maxlength='100' /></td> </tr> <tr> <td style='text-align:center' colspan='2' class='forumheader'><input class='btn btn-primary button' type='submit' name='upload' value='".LAN_416."' /></td> </tr> </table> </form> </div>"; $ns->tablerender(LAN_417, $text); } //TODO Shortcodes for the form elements above. function sc_author() { return "<input class='tbox' style='width:90%' name='file_poster' type='text' size='50' maxlength='100' value='{$poster}' />"; } } $up = new userUpload(); require_once(HEADERF); $up->init(); require_once(FOOTERF); exit; /* if (!check_class($pref['upload_class'])) { $text = "<div style='text-align:center'>".LAN_UL_002."</div>"; $ns->tablerender(LAN_UL_020, $text); require_once(FOOTERF); exit; } */ /* $text = "<div style='text-align:center'> <form enctype='multipart/form-data' method='post' onsubmit='return frmVerify()' action='".e_SELF."'> <table style='".USER_WIDTH."' class='table fborder'> <colgroup> <col style='width:30%' /> <col style='width:70%' /> </colgroup> <tr> <td class='forumheader3'>".DOWLAN_11.":</td> <td class='forumheader3'>"; require_once(e_CORE."shortcodes/batch/download_shortcodes.php"); $dlparm = (isset($download_category)) ? $download_category : ""; $text .= $tp->parseTemplate("{DOWNLOAD_CATEGORY_SELECT={$dlparm}}",true,$download_shortcodes); $text .= " </td> </tr> <tr> <td style='text-align:center' colspan='2' class='forumheader3'>"; $text .= "<b>".LAN_406."</b><br />".LAN_419.":"; require_once(e_HANDLER.'upload_handler.php'); $a_filetypes = get_filetypes(); if (count($a_filetypes) == 0) { $text .= LAN_UL_025."</td></tr></table> </form> </div>"; $ns->tablerender(LAN_417, $text); require_once(FOOTERF); } $max_upload_size = calc_max_upload_size(-1); // Find overriding maximum upload size $max_upload_size = set_max_size($a_filetypes, $max_upload_size); if (ADMIN) { $upper_limit = calc_max_upload_size(); $allowed_filetypes = "<table><tr><td>".LAN_UL_023." </td><td style='text-align:right'>".LAN_UL_024."</td></tr>"; foreach ($a_filetypes as $type => $size) { $allowed_filetypes .= "<tr><td>{$type}</td><td style='text-align:right'>".$e107->parseMemorySize($size,0)."</td></tr>"; } $allowed_filetypes .= "</table>"; } else { $a_filetypes = array_keys($a_filetypes); $allowed_filetypes = implode(' | ', $a_filetypes); } $text .= " ".$allowed_filetypes."<br />".LAN_407."<br /> ".LAN_418.$e107->parseMemorySize($max_upload_size,0)." (".LAN_UL_022.")<br />"; $text .= "<span style='text-decoration:underline'>".LAN_408."</span> ".LAN_420."</td> </tr>"; if (!USER) { // Prompt for name, email $text .= "<tr> <td class='forumheader3'>".LAN_61."</td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_poster' type='text' size='50' maxlength='100' value='{$poster}' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_112."</span></td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_email' id='user_email' type='text' size='50' maxlength='100' value='".$postemail."' /></td> </tr>"; } $text .= " <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_409."</span></td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_name' id='file_name' type='text' size='50' maxlength='100' /></td> </tr> <tr> <td class='forumheader3'>".LAN_410."</td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_version' type='text' size='10' maxlength='10' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_411."</span></td> <td class='forumheader3'><input class='tbox' style='width:90%' id='file_realpath' name='file_userfile[]' type='file' size='47' /></td> </tr> <tr> <td class='forumheader3'>".LAN_412."</td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_userfile[]' type='file' size='47' /></td> </tr> <tr> <td class='forumheader3'><span style='text-decoration:underline'>".LAN_413."</span></td> <td class='forumheader3'><textarea class='tbox' style='width:90%' name='file_description' id='file_description' cols='59' rows='6'></textarea></td> </tr> <tr> <td class='forumheader3'>".LAN_144."</td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_website' type='text' size='50' maxlength='100' value='".(defined(USERURL) ? USERURL : "")."' /></td> </tr> <tr> <td class='forumheader3'>".LAN_414."<br /><span class='smalltext'>".LAN_415."</span></td> <td class='forumheader3'><input class='tbox' style='width:90%' name='file_demo' type='text' size='50' maxlength='100' /></td> </tr> <tr> <td style='text-align:center' colspan='2' class='forumheader'><input class='btn btn-default button' type='submit' name='upload' value='".LAN_416."' /></td> </tr> </table> </form> </div>"; $ns->tablerender(LAN_417, $text); require_once(FOOTERF); */ ?>