/** * Delete files */ function dt_delete_file() { global $mc, $item, $file; $fl = new DTFile($file); if ($fl->isNew()) { redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/files/' . $item->id() : '/?p=cpanel&action=files&id=' . $item->id()), 1, __('Specified file is not valid!', 'dtransport')); } if (!$fl->delete()) { redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/files/' . $item->id() : '/?p=cpanel&action=files&id=' . $item->id()), 1, __('File could not be deleted! Please try again.', 'dtransport')); } if ($item->getVar('secure')) { $dir = rtrim($mc['directory_secure'], '/'); } else { $dir = rtrim($mc['directory_insecure'], '/'); } if (!$fl->remote()) { unlink($dir . '/' . $fl->file()); } redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/files/' . $item->id() : '/?p=cpanel&action=files&id=' . $item->id()), 1, __('File deleted successfully!', 'dtransport')); }
/** * @desc Formulario de archivos **/ function formFiles($edit = 0) { global $tpl, $xoopsModule, $xoopsModuleConfig, $xoopsUser, $xoopsSecurity; define("RMCSUBLOCATION", 'newfile'); $id = rmc_server_var($_GET, 'id', 0); $item = rmc_server_var($_GET, 'item', 0); //Verificamos si el software es válido if ($item <= 0) { redirectMsg('files.php', __('No download item ID has been provided!', 'dtransport'), RMMSG_WARN); } //Verificamos si existe el software $sw = new DTSoftware($item); if ($sw->isNew()) { redirectMsg('files.php', __('Specified download item does not exists!', 'dtransport'), RMMSG_ERROR); } $file_exists = true; if ($edit) { //Verificamos si archivo es válido if ($id <= 0) { redirectMsg('./files.php?item=' . $item, __('No file ID has been specified!', 'dtransport'), RMMSG_WARN); } //Verificamos si existe archivo $fl = new DTFile($id); if ($fl->isNew()) { redirectMsg('files.php?item=' . $item, __('Specified file does not exists!', 'dtransport'), RMMSG_ERROR); } if ($sw->getVar('secure')) { $dir = $xoopsModuleConfig['directory_secure']; } else { $dir = $xoopsModuleConfig['directory_insecure']; } if (!$fl->remote()) { if (!is_file($dir . '/' . $fl->file())) { $file_exists = false; showMessage(sprintf(__('File %s does not exists! You need to upload this file again.', 'dtransport'), $dir . '/' . $fl->file()), RMMSG_WARN); } } } xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » <a href='items.php'>" . $sw->getVar('name') . "</a> » <a href='files.php?item=" . $sw->id() . "'>" . __('Files', 'dtransport') . "</a> » " . ($edit ? __('Edit file', 'dtransport') : __('New file', 'dtransport'))); $tpl->assign('xoops_pagetitle', $xoopsModule->name() . " » " . $sw->getVar('name') . " » " . __('Files', 'dtransport') . " » " . ($edit ? __('Edit file', 'dtransport') : __('New file', 'dtransport'))); $db = XoopsDatabaseFactory::getDatabaseConnection(); $func = new DTFunctions(); $func->toolbar(); $rmf = RMFunctions::get(); $rmu = RMUtilities::get(); // Uploader $tc = TextCleaner::getInstance(); $uploader = new RMFlashUploader('dtfiles-uploader', DT_URL . '/ajax/upload.php'); $token = $xoopsSecurity->createToken(); $uploader->add_setting('onUploadStart', 'function(file){ $("#dtfiles-uploader").uploadify("settings", "formData", { action: "upload", item: $("#item").val(), XOOPS_TOKEN_REQUEST: $("#XOOPS_TOKEN_REQUEST").val(), data: "' . $tc->encrypt($_SERVER['HTTP_USER_AGENT'] . '|' . session_id() . '|' . $xoopsUser->uid() . '|' . $rmf->current_url()) . '" }); }'); $uploader->add_setting('multi', false); $uploader->add_setting('fileExt', '*.' . implode(";*.", $xoopsModuleConfig['type_file'])); $uploader->add_setting('fileDesc', sprintf(__('Allowed files (%s)', 'dtransport'), implode(";*.", $xoopsModuleConfig['type_file']) . ')')); $uploader->add_setting('sizeLimit', $xoopsModuleConfig['size_file'] * 1024 * 1024); $uploader->add_setting('buttonText', __('Select File...', 'rmcommon')); $uploader->add_setting('queueSizeLimit', 1); $uploader->add_setting('auto', true); $uploader->add_setting('onUploadSuccess', "function(file, resp, data){\n eval('ret = '+resp);\n if (ret.error==1){\n \$('.dt-errors').html(ret.message).slideDown('fast');\n upload_error = 1;\n } else {\n upload_error = 0;\n getFilesToken();\n \$('#dtfiles-preview .name').html(ret.file);\n \$('#dtfiles-preview .size').html(ret.size);\n \$('#size').val(ret.fullsize);\n \$('#dtfiles-preview .type').html(ret.type);\n \$('#dtfiles-preview .secure').html(ret.secure);\n }\n return true;\n }"); $uploader->add_setting('onQueueComplete', "function(event, data){\n if(upload_error==1) return;\n \$('.dt-errors').slideUp('fast');\n \$('#dtfiles-uploader').fadeOut('fast');\n \$('#dtfiles-preview').fadeIn('fast');\n }"); $uploader->add_setting('onSelectOnce', "function(event, data){\n \$('#upload-errors').html('');\n }"); if ($edit && $file_exists) { $uploader->add_setting('onInit', 'function(instance){ $("#dtfiles-uploader").hide(); }'); } $groups = array(); //Lista de grupos $sql = "SELECT * FROM " . $db->prefix('dtrans_groups') . " WHERE id_soft={$item}"; $result = $db->queryF($sql); while ($rows = $db->fetchArray($result)) { $group = new DTFileGroup(); $group->assignVars($rows); $groups[] = array('id' => $group->id(), 'name' => $group->name()); } $tpl->add_head($uploader->render()); $tpl->add_style('admin.css', 'dtransport'); $tpl->add_style('files.css', 'dtransport'); $tpl->add_local_script('admin.js', 'dtransport'); $tpl->add_local_script('files.js', 'dtransport'); $tpl->add_head_script('var upload_error = 0;'); include DT_PATH . '/include/js_strings.php'; xoops_cp_header(); include $tpl->get_template("admin/dtrans_filesform.php", 'module', 'dtransport'); xoops_cp_footer(); }
$img->load_from_params($item->getVar('image')); $xoopsTpl->assign('item', array('title' => $item->getVar('name'), 'image' => $img->get_smallest(), 'link' => $item->permalink())); $xoopsTpl->assign('lang_message', sprintf(__('Your %s download will start shortly...', 'dtransport'), '<a href="' . $item->permalink() . '">' . $item->getVar('name') . '</a>')); $xoopsTpl->assign('lang_problems', sprintf(__('Problems with the download? Please %s to download immediately.', 'dtransport'), '<a href="' . $file->permalink() . '">' . __('use this link', 'dtransport') . '</a>')); $tpl->add_style('main.css', 'dtransport'); $tpl->add_local_script('main.js', 'dtransport'); $tpl->add_head_script('var down_message = "' . sprintf(__('Your %s download will start in {x} seconds...', 'dtransport'), '<a href=\'' . $item->permalink() . '\'>' . $item->getVar('name') . '</a>') . '";'); $tpl->add_head_script('var timeCounter = ' . $mc['pause'] . ";\nvar dlink = '" . $file->permalink() . "';"); $dtfunc->makeHeader(); include 'footer.php'; die; } // Comprobamos si el archivo es seguro o no if (!$item->getVar('secure')) { // Comprobamos si es un archivo remoto o uno local if ($file->remote()) { // Almacenamos las estadísticas $st = new DTStatistics(); $st->setDate(time()); $st->setFile($file->id()); $st->setSoftware($item->id()); $st->setUid($xoopsUser ? $xoopsUser->uid() : 0); $st->setIp($_SERVER['REMOTE_ADDR']); $st->save(); $item->addHit(); $file->addHit(); unset($_SESSION['dttoken']); header('location: ' . $file->file()); die; } else { $dir = str_replace(XOOPS_ROOT_PATH, XOOPS_URL, $mc['directory_insecure']);
/** * Save a new or edited file to database */ function dt_save_file($edit = 0) { global $xoopsSecurity, $functions, $db; foreach ($_POST as $k => $v) { ${$k} = $v; } if (!$xoopsSecurity->check()) { $functions->dt_send_message(__('Session token not valid!', 'dtransport'), 1, 0); } //Verificamos si el software es válido if ($item <= 0) { $functions->dt_send_message(__('Item download ID not provided!', 'dtransport'), 1, 1); } //Verificamos si existe el software $sw = new DTSoftware($item); if ($sw->isNew()) { $functions->dt_send_message(__('Specified item download does nto exists!', 'dtransport'), 1, 1); } if ($edit) { //Verificamos si archivo es válido if ($id <= 0) { $functions->dt_send_message(__('File ID has not been provided!', 'dtransport'), 1, 1); } //Verificamos si existe archivo $fl = new DTFile($id); if ($fl->isNew()) { $functions->dt_send_message(__('Specified file does not exists!', 'dtransport'), 1, 1); } // Si es un archivo remoto eliminamos el archivo actual if (!$fl->remote() && $remote) { $rmu = RMUtilities::get(); $mc = $rmu->module_config('dtransport'); $dir = $sw->getVar('secure') ? $mc['directory_secure'] : $mc['directory_insecure']; if (file_exists($dir . '/' . $fl->file())) { unlink($dir . '/' . $fl->file()); } unset($dir, $mc, $rmu); } } else { $fl = new DTFile(); } $fl->setSoftware($item); $fl->setRemote($remote); $fl->setFile($file); $fl->setDefault($default); $fl->setGroup($group); $fl->setDate(time()); $fl->setTitle(trim($title)); $fl->setMime($mime); $fl->setSize($size); if (!$fl->save()) { $functions->dt_send_message(__('File could not be saved!', 'dtransport') . '<br />' . $fl->errors(), 1, 1); } else { if ($fl->isDefault()) { $db->queryF("UPDATE " . $db->prefix("dtrans_files") . " SET `default`=0 WHERE id_soft=" . $sw->id() . " AND id_file !=" . $fl->id()); } $ret = array('message' => __('File saved successfully!', 'dtransport')); showMessage(sprintf(__('File %s saved successfully!', 'dtransport'), $fl->title()), RMMSG_SAVED); $functions->dt_send_message($ret, 0, 1); } }