public function get_item_url($params, $com)
 {
     static $items;
     $params = urldecode($params);
     parse_str($params);
     if (!isset($item) || $item <= 0) {
         return '';
     }
     if (isset($items[$item])) {
         $ret = $items[$item]->permalink();
         return $ret;
     }
     include_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php';
     $item = new DTSoftware($item);
     if ($item->isNew()) {
         return '';
     }
     $items[$item->id()] = $item;
     return $item->permalink();
 }
示例#2
0
/**
* @desc Elimina pantallas de la base de datos
**/
function deleteScreens()
{
    global $xoopsModule, $util;
    $ids = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0;
    $item = isset($_REQUEST['item']) ? intval($_REQUEST['item']) : 0;
    $ok = isset($_POST['ok']) ? intval($_POST['ok']) : 0;
    //Verificamos que el software sea válido
    if ($item <= 0) {
        redirectMsg('./screens.php', _AS_DT_ERR_ITEMVALID, 1);
        die;
    }
    //Verificamos que el software exista
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        redirectMsg('./screens.php', _AS_DT_ERR_ITEMEXIST, 1);
        die;
    }
    //Verificamos si nos proporcionaron alguna pantalla
    if (!is_array($ids) && $ids <= 0) {
        redirectMsg('./screens.php?item=' . $item, _AS_DT_NOTSCREEN, 1);
        die;
    }
    $num = 0;
    if (!is_array($ids)) {
        $scr = new DTScreenshot($ids);
        $ids = array($ids);
        $num = 1;
    }
    if ($ok) {
        if (!$util->validateToken()) {
            redirectMsg('./screens.php?item=' . $item, _AS_DT_SESSINVALID, 1);
            die;
        }
        $errors = '';
        foreach ($ids as $k) {
            //Verificamos si pantalla es válida
            if ($k <= 0) {
                $errors .= sprintf(_AS_DT_ERRSCVAL, $k);
                continue;
            }
            //Verificamos que la pantalla exista
            $sc = new DTScreenshot($k);
            if ($sc->isNew()) {
                $errors .= sprintf(_AS_DT_ERRSCEX, $k);
                continue;
            }
            if (!$sc->delete()) {
                $errors .= sprintf(_AS_DT_ERRSCDEL, $k);
            }
        }
        if ($errors != '') {
            redirectMsg('./screens.php?item=' . $item, _AS_DT_ERRORS . $errors, 1);
            die;
        } else {
            redirectMsg('./screens.php?item=' . $item, _AS_DT_DBOK, 0);
            die;
        }
    } else {
        optionsBar($sw);
        xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; <a href='./items.php'>" . _AS_DT_SW . "</a> &raquo; " . _AS_DT_DELETESCREEN);
        xoops_cp_header();
        $hiddens['ok'] = 1;
        $hiddens['id[]'] = $ids;
        $hiddens['item'] = $item;
        $hiddens['op'] = 'delete';
        $buttons['sbt']['type'] = 'submit';
        $buttons['sbt']['value'] = _DELETE;
        $buttons['cancel']['type'] = 'button';
        $buttons['cancel']['value'] = _CANCEL;
        $buttons['cancel']['extra'] = 'onclick="window.location=\'screens.php?item=' . $item . '\';"';
        $util->msgBox($hiddens, 'screens.php', ($num ? sprintf(_AS_DT_DELETECONF, $scr->title()) : _AS_DT_DELCONF) . '<br /><br />' . _AS_DT_ALLPERM, XOOPS_ALERT_ICON, $buttons, true, '400px');
        xoops_cp_footer();
    }
}
示例#3
0
     }
     break;
 case 'edit':
 default:
     $edit = $action == 'edit' && $id > 0 ? 1 : 0;
     // MOSTRAR FORMULARIO
     $xoopsOption['template_main'] = 'dtrans_submit.html';
     $xoopsOption['module_subpage'] = 'submit';
     if ($edit) {
         //Verificamos si el elemento es válido
         if ($id <= 0) {
             redirect_header(DT_URL, 2, __('Item not found. Please try again!', 'dtransport'));
         }
         //Verificamos si el elemento existe
         $item = new DTSoftware($id);
         if ($item->isNew()) {
             redirect_header(DT_URL, 2, __('Item not found. Please try again!', 'dtransport'));
         }
         //Verificamos si se aprueba la edicion
         if (!$mc['aprove_edit'] && $item->getVar('approved')) {
             // Si no se aprueba almacenaremos los datos en
             // la tabla para elementos editados
             $item = new DTSoftwareEdited($id);
             $item->setSoftware($id);
         }
         if ($item->getVar('uid') != $xoopsUser->uid()) {
             redirect_header(DT_URL, 1, __('You can not edit this download item!', 'dtransport'));
         }
     }
     include 'header.php';
     $dtfunc->makeHeader();
示例#4
0
/**
* @desc Elimina el Log especificado
**/
function dt_delete_log()
{
    global $xoopsModule, $xoopsSecurity;
    $ids = rmc_server_var($_POST, 'ids', array());
    $item = rmc_server_var($_POST, 'item', 0);
    //Verificamos si el software es válido
    if ($item <= 0) {
        redirectMsg('items.php', __('Download item ID not provided!', 'dtransport'), RMMSG_WARN);
    }
    //Verificamos si existe el software
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        redirectMsg('items.php', __('Specified download item does not exists!', 'dtransport'), RMMSG_WARN);
    }
    //Verificamos si nos proporcionaron algun log
    if (empty($ids)) {
        redirectMsg('logs.php?item=' . $item, __('You must select at least one log!', 'dtransport'), RMMSG_ERROR);
    }
    if (!$xoopsSecurity->check()) {
        redirectMsg('logs.php?item=' . $item, __('Session token not valid!', 'dtransport'), RMMSG_ERROR);
    }
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    $sql = "DELETE FROM " . $db->prefix("dtrans_logs") . " WHERE id_log IN(" . implode(",", $ids) . ");";
    if ($db->queryF($sql)) {
        redirectMsg('logs.php?item=' . $item, __('Item logs deleted successfully!', 'dtransport'), RMMSG_SUCCESS);
    } else {
        redirectMsg('logs.php?item=' . $item, __('Logs could not be deleted!', 'dtransport') . '<br />' . $db->error(), RMMSG_ERROR);
    }
}
示例#5
0
// Author: Eduardo Cortés <*****@*****.**>
// Email: i.bitcero@gmail.com
// License: GPL 2.0
// --------------------------------------------------------------
if ($id <= 0) {
    header('location: ' . DT_URL);
    die;
}
$file = new DTFile($id);
if ($file->isNew() && $mc['permalinks']) {
    $dtfunc->error_404();
} elseif ($file->isNew()) {
    redirect_header(DT_URL, 1, __('File not found!', 'dtransport'));
}
$item = new DTSoftware($file->software());
if ($item->isNew() || !$item->getVar('approved')) {
    if ($mc['permalinks']) {
        $dtfunc->error_404();
    } else {
        redirect_header(DT_URL, 1, __('Software does not exists!', 'dtransport'));
    }
}
if (!$item->canDownload($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS)) {
    redirect_header($item->permalink(), 1, __('Sorry, you don\'t have permission to download this file!', 'dtransport'));
}
// Comprobamos los límites
if ($item->getVar('limits') > 0) {
    if ($item->downloadsCount() >= $item->getVar('limits')) {
        redirect_header($item->permalink(), 1, __('You have reached your download limit for this file!', 'dtransport'));
    }
}
示例#6
0
/**
 * Show fields for default image
 */
function dt_widget_defimg($edit = 0)
{
    $id = intval(rmc_server_var($_REQUEST, 'id', 0));
    $type = rmc_server_var($_REQUEST, 'type', '');
    $action = rmc_server_var($_REQUEST, 'action', '');
    $widget = array();
    $widget['title'] = __('Default Image', 'dtransport');
    $widget['icon'] = '../images/shots.png';
    $util = new RMUtilities();
    if ($edit) {
        //Verificamos que el software sea válido
        if ($id <= 0) {
            $params = '';
        }
        //Verificamos que el software exista
        if ($type == 'edit') {
            $sw = new DTSoftwareEdited($id);
        } else {
            $sw = new DTSoftware($id);
        }
        if ($sw->isNew()) {
            $params = '';
        } else {
            $params = $sw->getVar('image');
        }
    } else {
        $params = '';
    }
    $widget['content'] = '<form name="frmDefimage" id="frm-defimage" method="post">';
    $widget['content'] .= $util->image_manager('image', $params);
    $widget['content'] .= '</form>';
    return $widget;
}
示例#7
0
/**
 * Change secure status for items
 */
function dt_change_data($type, $value = 0)
{
    global $xoopsSecurity;
    if (!$xoopsSecurity->check()) {
        dt_send_message(__('Session token not valid!', 'dtransport'), 1, 0);
    }
    $id = rmc_server_var($_POST, 'id', 0);
    if ($id <= 0) {
        dt_send_message(__('No item ID has been provided!', 'dtransport'), 1, 1);
    }
    $sw = new DTSoftware($id);
    if ($sw->isNew()) {
        dt_send_message(__('Provided item ID is not valid!', 'dtransport'), 1, 1);
    }
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    $sql = "UPDATE " . $db->prefix("dtrans_software") . " SET {$type}={$value} WHERE id_soft={$id}";
    if (!$db->queryF($sql)) {
        dt_send_message(__('Data could not be changed!', 'dtransport') . '<br />' . $db->error(), 1, 1);
    }
    dt_send_message(array('message' => __('Data changed successfully!', 'dtransport'), 'value' => $value, 'name' => $sw->getVar('name'), 'id' => $sw->id(), 'link' => $sw->permalink()), 0, 1);
}
示例#8
0
/**
* desc Elimina de la base de datos los elementos
**/
function dt_delete_items()
{
    global $xoopsModuleConfig, $xoopsConfig, $xoopsModule, $xoopsSecurity, $rmc_config, $xoopsUser;
    $ids = rmc_server_var($_POST, 'ids', array());
    $page = rmc_server_var($_POST, 'page', 1);
    $search = rmc_server_var($_POST, 'search', '');
    $sort = rmc_server_var($_POST, 'sort', 'id_soft');
    $mode = rmc_server_var($_POST, 'mode', 1);
    $cat = rmc_server_var($_POST, 'cat', 0);
    $type = rmc_server_var($_POST, 'type', '');
    $params = '?pag=' . $page . '&search=' . $search . '&sort=' . $sort . '&mode=' . $mode . '&cat=' . $cat . '&type=' . $type;
    //Verificamos que el software sea válido
    if (!is_array($ids) && $ids <= 0) {
        redirectMsg('items.php' . $params, __('You must select at least one download item to delete!', 'dtransport'), RMMSG_WARN);
    }
    if (!is_array($ids)) {
        $ids = array($ids);
    }
    if (!$xoopsSecurity->check()) {
        redirectMsg('items.php' . $params, __('Session token expired!', 'dtransport'), RMMSG_ERROR);
    }
    $errors = '';
    $mailer = new RMMailer('text/html');
    $etpl = DT_PATH . '/lang/deletion_' . $rmc_config['lang'] . '.php';
    if (!file_exists($etpl)) {
        $etpl = DT_PATH . '/lang/deletion_en.php';
    }
    $mailer->template($etpl);
    $mailer->assign('siteurl', XOOPS_URL);
    $mailer->assign('dturl', $xoopsModuleConfig['permalinks'] ? XOOPS_URL . '/' . trim($xoopsModuleConfig['htbase'], '/') : DT_URL);
    $mailer->assign('downcp', $xoopsModuleConfig['permalinks'] ? XOOPS_URL . '/' . trim($xoopsModuleConfig['htbase'], '/') . '/cp/' : DT_URL . '/?p=cpanel');
    $mailer->assign('dtname', $xoopsModule->name());
    $mailer->assign('sitename', $xoopsConfig['sitename']);
    foreach ($ids as $id) {
        $sw = new DTSoftware($id);
        if ($sw->isNew()) {
            continue;
        }
        if (!$sw->delete()) {
            $errors .= $sw->errors();
            continue;
        }
        $xu = new XoopsUser($sw->getVar('uid'));
        $mailer->add_users(array($xu));
        $mailer->assign('uname', $xu->name() != '' ? $xu->name() : $xu->uname());
        $mailer->assign('download', $sw->getVar('name'));
        $mailer->assign('email', $xu->getVar('email'));
        $mailer->assign('method', $xu->getVar('notify_method'));
        $mailer->set_subject(sprintf(__('Your download %s has been deleted!', 'dtransport'), $sw->getVar('name')));
        if ($xu->getVar('notify_method') == 1) {
            $mailer->set_from_xuser($xoopsUser);
            $mailer->send_pm();
        } else {
            $mailer->send();
        }
    }
    if ($errors != '') {
        redirectMsg('items.php' . $params, __('Errors ocurred while trying to delete selected downloads!', 'dtransport') . '<br />' . $errors, RMMSG_ERROR);
    }
    redirectMsg('items.php' . $params, __('Downloads deleted successfully!', 'dtransport'), RMMSG_SUCCESS);
}
示例#9
0
/**
* @desc Elimina el grupo especificado
**/
function deleteGroups()
{
    global $xoopsModule, $util, $xoopsSecurity;
    $id = rmc_server_var($_REQUEST, 'id', array());
    $item = rmc_server_var($_REQUEST, 'item', 0);
    if (!$xoopsSecurity->check()) {
        redirectMsg('files.php?item=' . $item, __('Session token not valid!', 'dtransport'), RMMSG_WARN);
        die;
    }
    //Verificamos si el software es válido
    if ($item <= 0) {
        redirectMsg('files.php', __('Download item ID not provided!', 'dtransport'), RMMSG_WARN);
        die;
    }
    //Verificamos si existe el software
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        redirectMsg('files.php', __('Specified download item does not exists!', 'dtransport'), RMMSG_WARN);
        die;
    }
    //Verificamos si grupo es válido
    if ($id <= 0) {
        redirectMsg('files.php?item=' . $item, __('Group id not provided!', 'dtransport'), RMMSG_ERROR);
        die;
    }
    //Verificamos si el grupo existe
    $group = new DTFileGroup($id);
    if ($group->isNew()) {
        redirectMsg('files.php?item=' . $item, __('Specified group does not exists!', 'dtransport'), RMMSG_ERROR);
        die;
    }
    if (!$group->delete()) {
        redirectMsg('files.php?item=' . $item, sprintf(__('Group %s could not be deleted!', 'dtransport'), '<strong>' . $group->name() . '</strong>') . '<br />' . $group->errors(), 1);
        die;
    } else {
        redirectMsg('files.php?item=' . $item, sprintf(__('Group %s deleted successfully!', 'dtransport'), '<strong>' . $group->name() . '</strong>'), 0);
        die;
    }
}
示例#10
0
function dt_upload_screenshots()
{
    global $xoopsSecurity;
    $item = rmc_server_var($_REQUEST, 'item', 0);
    $data = rmc_server_var($_REQUEST, 'data', '');
    $rmu = RMUtilities::get();
    $mc = $rmu->module_config('dtransport');
    $tc = TextCleaner::getInstance();
    $data = explode("|", $tc->decrypt($data));
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    $ses = new XoopsSessionHandler($db);
    session_decode($ses->read($data[1]));
    $_SERVER['HTTP_USER_AGENT'] = trim($data[0]);
    if (!$xoopsSecurity->check(false)) {
        error(__('Session token not valid!', 'dtransport'));
    }
    if ($item <= 0) {
        error(__('Download item ID not provided!', 'dtransport'));
    }
    require_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php';
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        error(__('Specified download item does not exists!', 'dtransport'));
    }
    if ($sw->getVar('screens') >= $mc['limit_screen']) {
        error(__('You have reached the limit screens number for this download item!', 'dtransport'));
    }
    // Directorio de almacenamiento
    $dir = XOOPS_UPLOAD_PATH . '/screenshots';
    if (!is_dir($dir)) {
        mkdir($dir, 511);
    }
    $dir .= '/' . date('Y', time());
    if (!is_dir($dir)) {
        mkdir($dir, 511);
    }
    $dir .= '/' . date('m', time());
    if (!is_dir($dir)) {
        mkdir($dir, 511);
    }
    if (!is_dir($dir . '/ths')) {
        mkdir($dir . '/ths', 511);
    }
    if (!is_dir($dir)) {
        error(__('Directory for store screenshots does not exists!', 'dtransport'));
    }
    include RMCPATH . '/class/uploader.php';
    $uploader = new RMFileUploader($dir, $mc['image'] * 1024, array('jpg', 'gif', 'png'));
    $err = array();
    if (!$uploader->fetchMedia('Filedata')) {
        error($uploader->getErrors());
    }
    if (!$uploader->upload()) {
        error($uploader->getErrors());
    }
    // Saving image
    require_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtscreenshot.class.php';
    $img = new DTScreenshot();
    $img->setDesc('');
    $img->setTitle($uploader->getSavedFileName());
    $img->setImage($uploader->getSavedFileName());
    $img->setDate(time());
    $img->setSoftware($item);
    if (!$img->save()) {
        unlink($dir . '/' . $img->image());
        error(__('Screenshot could not be saved!', 'dtransport'));
    }
    // Resize image
    $thumb = explode(":", $mc['size_ths']);
    $big = explode(":", $mc['size_image']);
    $sizer = new RMImageResizer($dir . '/' . $img->getVar('image'), $dir . '/ths/' . $img->getVar('image'));
    // Thumbnail
    if (!isset($thumb[2]) || $thumb[2] == 'crop') {
        $sizer->resizeAndCrop($thumb[0], $thumb[1]);
    } else {
        $sizer->resizeWidthOrHeight($thumb[0], $thumb[1]);
    }
    // Full size image
    $sizer->setTargetFile($dir . '/' . $img->image());
    if (!isset($big[2]) || $big[2] == 'crop') {
        $sizer->resizeAndCrop($big[0], $big[1]);
    } else {
        $sizer->resizeWidthOrHeight($big[0], $big[1]);
    }
    $ret = array('image' => $uploader->getSavedFileName(), 'dir' => str_replace(XOOPS_UPLOAD_PATH, XOOPS_UPLOAD_URL, $dir), 'token' => $xoopsSecurity->createToken(), 'type' => $uploader->getMediaType(), 'error' => 0, 'id' => $img->id());
    echo json_encode($ret);
    die;
}
示例#11
0
$mc = $rmu->module_config('dtransport');
$tc = TextCleaner::getInstance();
$data = explode("|", $tc->decrypt($data));
$db = XoopsDatabaseFactory::getDatabaseConnection();
$ses = new XoopsSessionHandler($db);
session_decode($ses->read($data[1]));
$_SERVER['HTTP_USER_AGENT'] = trim($data[0]);
if (!$xoopsSecurity->check()) {
    error(__('Session token not valid!', 'dtransport'));
}
if ($item <= 0) {
    error(__('Download item ID not provided!', 'dtransport'));
}
require_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php';
$sw = new DTSoftware($item);
if ($sw->isNew()) {
    error(__('Specified download item does not exists!', 'dtransport'));
}
if ($sw->getVar('secure')) {
    $dir = $mc['directory_secure'];
    if (!is_dir($dir)) {
        if (!mkdir($dir, 511)) {
            error(__('Directory for protected downloads does not exists!', 'dtransport'));
        }
    }
} else {
    $dir = $mc['directory_insecure'];
    if (!is_dir($dir)) {
        if (!mkdir($dir, 511)) {
            error(__('Directory for downloads does not exists!', 'dtransport'));
        }
示例#12
0
/**
 * Elimina archivos de la base de datos y el disco duro
 */
function dt_delete_file()
{
    global $xoopsSecurity, $functions;
    if (!$xoopsSecurity->check()) {
        $functions->dt_send_message(__('Session token not valid!', 'dtransport'), 1, 0);
    }
    $id = rmc_server_var($_POST, 'id', 0);
    $item = rmc_server_var($_POST, 'item', 0);
    $file = new DTFile($id);
    if ($file->isNew()) {
        $functions->dt_send_message(__('Specified file does not exists!', 'dtransport'), 1, 1);
    }
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        $functions->dt_send_message(__('Specified item download does nto exists!', 'dtransport'), 1, 1);
    }
    if ($file->software() != $item) {
        $functions->dt_send_message(__('This file seems not belong to specified download item!', 'dtransport'), 1, 1);
    }
    if (!$file->delete()) {
        $functions->dt_send_message(__('File could not be deleted!', 'dtransport'), 1, 1);
    }
    $rmu = RMUtilities::get();
    $mc = $rmu->module_config('dtransport');
    $dir = $sw->getVar('secure') ? $mc['directory_secure'] : $mc['directory_insecure'];
    unlink($dir . '/' . $file->file());
    $functions->dt_send_message(__('File deleted successfully!', 'dtransport'), 0, 1);
}
示例#13
0
// Manage files for download in XOOPS
// Author: Eduardo Cortés <*****@*****.**>
// Email: i.bitcero@gmail.com
// License: GPL 2.0
// --------------------------------------------------------------
if ($id == '') {
    header('location: ' . DT_URL);
    die;
}
$item = new DTSoftware($id);
if ($item->getVar('approved')) {
    $canview = true;
} else {
    $canview = $xoopsUser->isAdmin() || $xoopsUser->uid() == $item->getVar('uid');
}
if ($item->isNew() || !$canview) {
    redirect_header(DT_URL, 2, __('Specified item does not exists!', 'dtransport'));
    die;
}
if ($item->getVar('delete')) {
    redirect_header(DT_URL, 2, __('This item is not available for download at this moment!', 'dtransport'));
}
// Download default file
if ($action == 'download') {
    $file = $item->file();
    if (!$file) {
        redirect_header($item->permalink(), 0, __('Internal Error! Please try again later', 'dtransport'));
    }
    header("location: " . $file->permalink());
    die;
}