Ejemplo n.º 1
0
/**
* @desc Formulario de características
**/
function dt_form_features($edit = 0)
{
    global $xoopsModule, $xoopsConfig, $functions, $tpl;
    define('RMCSUBLOCATION', 'newfeature');
    $id = rmc_server_var($_REQUEST, 'id', 0);
    $item = rmc_server_var($_REQUEST, 'item', 0);
    //Verificamos que el software sea válido
    if ($item <= 0) {
        redirectMsg('items.php', __('Download item ID not provided!', 'dtransport'), RMMSG_WARN);
    }
    //Verificamos que el software exista
    $sw = new DTSoftware($item);
    if ($sw->isNew()) {
        redirectMsg('items.php', __('Specified download item does not exists!', 'dtransport'), RMMSG_ERROR);
    }
    if ($edit) {
        if ($id <= 0) {
            redirectMsg('features.php?item=' . $item, __('Feature ID not specified!', 'dtransport'), RMMSG_WARN);
        }
        //Verificamos que la característica exista
        $ft = new DTFeature($id);
        if ($ft->isNew()) {
            redirectMsg('features.php?item=' . $item, __('Specified feature does not exists!', 'dtransport'), RMMSG_ERROR);
        }
    }
    $functions->toolbar();
    //styles
    $tpl->add_style('admin.css', 'dtransport');
    //scripts
    include_once DT_PATH . '/include/js_strings.php';
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; <a href='items.php'>" . __('Downloads', 'dtransport') . "</a> &raquo; " . ($edit ? __('Edit Feature', 'dtransport') : __('New Feature', 'dtransport')));
    xoops_cp_header();
    $form = new RMForm($edit ? sprintf(__('Editing feature of "%s"', 'dtransport'), $sw->getVar('name')) : sprintf(__('New feature for "%s"', 'dtransport'), $sw->getVar('name')), 'frmfeat', 'features.php');
    $form->addElement(new RMFormLabel(__('Download item', 'dtransport'), $sw->getVar('name')));
    $form->addElement(new RMFormText(__('Feature title', 'dtransport'), 'title', 50, 200, $edit ? $ft->title() : ''), true);
    $form->addElement(new RMFormText(__('Short name', 'dtransport'), 'nameid', 50, 200, $edit ? $ft->nameId() : ''));
    $form->addElement(new RMFormEditor(__('Feature content', 'dtransport'), 'content', '90%', '350px', $edit ? $ft->content() : ''), true);
    $functions->meta_form('feat', $edit ? $ft->id() : 0, $form);
    $form->addElement(new RMFormHidden('action', $edit ? 'saveedit' : 'save'));
    $form->addElement(new RMFormHidden('id', $id));
    $form->addElement(new RMFormHidden('item', $item));
    $buttons = new RMFormButtonGroup();
    $buttons->addButton('sbt', _SUBMIT, 'submit');
    $buttons->addButton('cancel', _CANCEL, 'button', 'onclick="window.location=\'features.php?item=' . $item . '\';"');
    $form->addElement($buttons);
    $form->display();
    xoops_cp_footer();
}
Ejemplo n.º 2
0
/**
* @desc Formulario de Pantallass
**/
function formScreens($edit = 0)
{
    global $xoopsModule, $xoopsConfig, $db, $xoopsModuleConfig;
    $id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0;
    $item = isset($_REQUEST['item']) ? intval($_REQUEST['item']) : 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 el limite de pantallas a almacenar
    if ($xoopsModuleConfig['limit_screen'] <= $sw->getVar('screens')) {
        redirectMsg('./screens.php?item=' . $item, _AS_DT_ERRCOUNT, 1);
        die;
    }
    if ($edit) {
        //Verificamos si pantalla es válida
        if ($id <= 0) {
            redirectMsg('./screens.php?item=' . $item, _AS_DT_ERR_SCVALID, 1);
            //
            die;
        }
        //Verificamos que la pantalla exista
        $sc = new DTScreenshot($id);
        if ($sc->isNew()) {
            redirectMsg('./screens.php?item=' . $item, _AS_DT_ERR_SCEXIST, 1);
            die;
        }
    }
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; <a href='./items.php'>" . _AS_DT_SW . "</a> &raquo; " . ($edit ? _AS_DT_EDITSCREEN : _AS_DT_NEWSCREEN));
    xoops_cp_header();
    $form = new RMForm($edit ? sprintf(_AS_DT_EDITSCREENS, $sw->getVar('name')) : sprintf(_AS_DT_NEWSCREENS, $sw->getVar('name')), 'frmscreen', 'screens.php');
    $form->setExtra("enctype='multipart/form-data'");
    $form->addElement(new RMFormLabel(_AS_DT_ITEM, $sw->getVar('name')));
    $form->addElement(new RMFormText(_AS_DT_TITLE, 'title', 50, 100, $edit ? $sc->title() : ''), true);
    $form->addElement(new RMFormEditor(_AS_DT_DESC, 'desc', '100%', '100px', $edit ? $sc->desc() : '', 'textarea'));
    $form->addElement(new RMFormFile(_AS_DT_IMAGE, 'image', 45, $xoopsModuleConfig['image'] * 1024), $edit ? '' : true);
    if ($edit) {
        $img = "<img src='" . XOOPS_URL . "/uploads/dtransport/ths/" . $sc->image() . "' border='0' />";
        $form->addElement(new RMFormLabel(_AS_DT_IMAGEACT, $img));
    }
    $form->addElement(new RMFormHidden('op', $edit ? 'saveedit' : 'save'));
    $form->addElement(new RMFormHidden('id', $id));
    $form->addElement(new RMFormHidden('item', $item));
    $buttons = new RMFormButtonGroup();
    $buttons->addButton('sbt', _SUBMIT, 'submit');
    $buttons->addButton('cancel', _CANCEL, 'button', 'onclick="window.location=\'screens.php?item=' . $item . '\';"');
    $form->addElement($buttons);
    $form->display();
    xoops_cp_footer();
}
Ejemplo n.º 3
0
/**
* @desc Formulario de Logs
**/
function dt_form_logs($edit = 0)
{
    global $xoopsModule, $xoopsConfig;
    define('RMCSUBLOCATION', 'newlog');
    $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('items.php', __('Download item ID has not been 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'), 1);
    }
    if ($edit) {
        //Verificamos si log es válido
        if ($id <= 0) {
            redirectMsg('logs.php?item=' . $item, __('Log item ID has not been provided!', 'dtransport'), RMMSG_WARN);
        }
        //Verificamos si log existe
        $log = new DTLog($id);
        if ($log->isNew()) {
            redirectMsg('logs.php?item=' . $item, __('Specified item log does not exists!', 'dtranport'), 1);
        }
    }
    $dtf = new DTFunctions();
    $dtf->toolbar();
    xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> &raquo; <a href='./items.php'>" . sprintf(__('"%s" Logs', 'dtransport'), $sw->getVar('name')) . "</a> &raquo; " . ($edit ? __('Edit Log', 'dtransport') : __('New Log', 'dtransport')));
    xoops_cp_header();
    $form = new RMForm($edit ? sprintf(__('Edit Change Log of "%s"', 'dtransport'), $sw->getVar('name')) : sprintf(__('New Log for "%s"', 'dtransport'), $sw->getVar('name')), 'frmlog', 'logs.php');
    $form->addElement(new RMFormLabel(__('Download Item', 'dtransport'), $sw->getVar('name')));
    $form->addElement(new RMFormText(__('Log title', 'dtransport'), 'title', 50, 100, $edit ? $log->title() : ''), true);
    $form->addElement(new RMFormEditor(__('Log content', 'dtransport'), 'log', '90%', '350px', $edit ? $log->getVar('log', 'e') : ''), true);
    $form->addElement(new RMFormHidden('action', $edit ? 'saveedit' : 'save'));
    $form->addElement(new RMFormHidden('item', $item));
    $form->addElement(new RMFormHidden('id', $id));
    $buttons = new RMFormButtonGroup();
    $buttons->addButton('sbt', _SUBMIT, 'submit');
    $buttons->addButton('cancel', _CANCEL, 'button', 'onclick="window.location=\'logs.php?item=' . $item . '\';"');
    $form->addElement($buttons);
    $form->display();
    xoops_cp_footer();
}
 public function get_item($params, $com)
 {
     static $items;
     $params = urldecode($params);
     parse_str($params);
     if (!isset($item) || $item <= 0) {
         return __('Not found', 'dtransport');
     }
     if (isset($items[$item])) {
         return $items[$item]->getVar('name') . ' ' . $items[$item]->getVar('version');
     }
     include_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php';
     $item = new DTSoftware($item);
     if ($item->isNew()) {
         return __('Not found', 'dtransport');
     }
     $items[$item->id()] = $item;
     return $item->getVar('name') . ' ' . $item->getVar('version');
 }
Ejemplo n.º 5
0
 $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();
 $form = new RMForm($edit ? __('Editing Download Item', 'dtransport') : __('Create New Download Item', 'dtransport'), 'frmsw', $mc['permalinks'] ? DT_URL . '/submit/' : DT_URL . '/?p=submit');
 $form->setExtra("enctype='multipart/form-data'");
 $form->addElement(new RMFormText(__('Download name', 'dtransport'), 'name', 50, 150, $edit ? $item->getVar('name') : ''), true);
 $form->addElement(new RMFormText(__('Download version', 'dtransport'), 'version', 10, 50, $edit ? $item->getVar('version') : ''), true);
Ejemplo n.º 6
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'));
    }
}
Ejemplo n.º 7
0
/**
* Author information
*/
function dt_widget_credits($edit = 0)
{
    global $xoopsUser;
    //$widget['title'] = __('Author Information','dtransport');
    //$widget['icon'] = '../images/author.png';
    if ($edit) {
        $sw = new DTSoftware(rmc_server_var($_GET, 'id', 0));
    } else {
        $sw = new DTSoftware();
    }
    $field = new RMFormUser('', 'user', 0, $edit ? array($sw->getVar('uid')) : $xoopsUser->uid(), 50);
    $user = $field->render();
    unset($field);
    ob_start();
    ?>
    <form name="frmCredits" id="frm-credits" method="post">
    <div id="tab-credits" class="widgets_forms">
        <div class="item">
            <label><?php 
    _e('Published by', 'dtransport');
    ?>
</label>
            <?php 
    echo $user;
    ?>
        </div>
        <div class="item">
            <label for="author"><?php 
    _e('Author name', 'dtransport');
    ?>
</label>
            <input type="text" name="author" id="author" value="<?php 
    echo $edit ? $sw->getVar('author_name') : '';
    ?>
" class="fullwidth" />
        </div>
        <div class="item">
            <label for="url"><?php 
    _e('Author URL', 'dtransport');
    ?>
</label>
            <input type="text" name="url" id="url" value="<?php 
    echo $edit ? $sw->getVar('author_url') : '';
    ?>
" class="fullwidth" />
        </div>
        <div class="item">
            <label for="email"><?php 
    _e('Author Email', 'dtransport');
    ?>
</label>
            <input type="text" name="email" id="email" value="<?php 
    echo $edit ? $sw->getVar('author_email') : $xoopsUser->email();
    ?>
" class="fullwidth" />
            <span class="description"><?php 
    _e('This email will not be visible for users', 'dtransport');
    ?>
</span>
        </div>
        <div class="item">
            <input type="checkbox" name="contact" id="contact" value="1"<?php 
    echo $sw->getVar('author_contact') ? ' checked="checked"' : '';
    ?>
 /> <?php 
    _e('Author can be contacted', 'dtransport');
    ?>
        </div>
    </div>
    </form>
    <?php 
    $content = ob_get_clean();
    return $content;
}
Ejemplo n.º 8
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);
}
Ejemplo n.º 9
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);
}
Ejemplo n.º 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;
}
Ejemplo n.º 11
0
$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'));
        }
    }
}
include RMCPATH . '/class/uploader.php';
Ejemplo n.º 12
0
 if ($tpages < $page && $tpages > 0) {
     header('location: ' . DT_URL . ($mc['permalinks'] ? '/cp/' : '/?p=cpanel'));
     die;
 }
 $p = $page > 0 ? $page - 1 : $page;
 $start = $num <= 0 ? 0 : $p * $limit;
 $nav = new RMPageNav($num, $limit, $page);
 $nav->target_url(DT_URL . ($mc['permalinks'] ? '/cp/page/{PAGE_NUM}/' : '/?p=cpanel&amp;page={PAGE_NUM}'));
 $xoopsTpl->assign('pagenav', $nav->render(true));
 $sql = str_replace("COUNT(*)", '*', $sql) . " LIMIT {$start}, {$limit}";
 $result = $db->query($sql);
 $tf = new RMTimeFormatter('', "%M%-%d%-%Y%");
 while ($row = $db->fetchArray($result)) {
     $item = new DTSoftware();
     $item->assignVars($row);
     $xoopsTpl->append('items', array('id' => $item->id(), 'name' => $item->getVar('name'), 'links' => array('permalink' => $item->permalink(), 'edit' => $mc['permalinks'] ? DT_URL . '/submit/edit/' . $item->id() : '/?p=submit&amp;action=edit&amp;id=' . $item->id(), 'delete' => $mc['permalinks'] ? DT_URL . '/cp/delete/' . $item->id() : '/?p=cpanel&amp;action=delete&amp;id=' . $item->id(), 'files' => $mc['permalinks'] ? DT_URL . '/cp/files/' . $item->id() : '/?p=cpanel&amp;action=files&amp;id=' . $item->id(), 'features' => $mc['permalinks'] ? DT_URL . '/cp/features/' . $item->id() : '/?p=cpanel&amp;action=features&amp;id=' . $item->id(), 'logs' => $mc['permalinks'] ? DT_URL . '/cp/logs/' . $item->id() : '/?p=cpanel&amp;action=logs&amp;id=' . $item->id(), 'screens' => $mc['permalinks'] ? DT_URL . '/cp/screens/' . $item->id() : '/?p=cpanel&amp;action=screens&amp;id=' . $item->id(), 'canceldel' => $mc['permalinks'] ? DT_URL . '/cp/canceldel/' . $item->id() : '/?p=cpanel&amp;action=canceldel&amp;id=' . $item->id()), 'secure' => $item->getVar('secure'), 'approved' => $item->getVar('approved'), 'created' => array('time' => $item->getVar('created'), 'formated' => $tf->format($item->getVar('created'))), 'modified' => array('time' => $item->getVar('modified'), 'formated' => $tf->format($item->getVar('modified'))), 'hits' => $item->getVar('hits'), 'deletion' => $item->getVar('delete')));
 }
 // Idioma
 $xoopsTpl->assign('lang_id', __('ID', 'dtransport'));
 $xoopsTpl->assign('lang_name', __('Name', 'dtransport'));
 $xoopsTpl->assign('lang_protected', __('Protected', 'dtransport'));
 $xoopsTpl->assign('lang_approved', __('Approved', 'dtransport'));
 $xoopsTpl->assign('lang_created', __('Created', 'dtransport'));
 $xoopsTpl->assign('lang_modified', __('Modified', 'dtransport'));
 $xoopsTpl->assign('lang_hits', __('Hits', 'dtransport'));
 $xoopsTpl->assign('lang_edit', __('Edit', 'dtransport'));
 $xoopsTpl->assign('lang_delete', __('Delete', 'dtransport'));
 $xoopsTpl->assign('lang_todelete', __('Waiting Deletion', 'dtransport'));
 $xoopsTpl->assign('lang_files', __('Files', 'dtransport'));
 $xoopsTpl->assign('lang_features', __('Features', 'dtransport'));
 $xoopsTpl->assign('lang_logs', __('Logs', 'dtransport'));
Ejemplo n.º 13
0
 /**
  * @desc Determina el tiempo transcurrido del envio de una alerta al tiempo actual
  **/
 function checkAlert()
 {
     global $xoopsModuleConfig, $db, $xoopsConfig;
     $db = XoopsDatabaseFactory::getDatabaseConnection();
     $file = XOOPS_ROOT_PATH . "/cache/alerts.php";
     $datelast = file_get_contents($file);
     if ($datelast <= time() - $xoopsModuleConfig['hrs_alerts'] * 86400) {
         //Ejecutamos verificación de alertas
         $sql = "SELECT * FROM " . $db->prefix('dtrans_alerts');
         $result = $db->query($sql);
         while ($rows = $db->fetchArray($result)) {
             $alert = new DTAlert();
             $alert->assignVars($rows);
             //Obtenemos los datos de la descarga
             $sw = new DTSoftware($alert->software());
             if (!$sw->getVar('approved')) {
                 continue;
             }
             if (!$alert->lastActivity()) {
                 if ($sw->getVar('created') >= time() - $alert->limit() * 86400) {
                     continue;
                 }
             }
             //Verificamos la fecha de la última descarga del modulo
             if ($alert->lastActivity() <= time() - $alert->limit() * 86400) {
                 if ($alert->alerted() && $alert->alerted() < $alert->lastActivity() + $alert->limit() * 86400) {
                     continue;
                 }
                 $errors = '';
                 //Enviamos alerta al autor de la descarga
                 $xoopsMailer =& getMailer();
                 $alert->mode() ? $xoopsMailer->useMail() : $xoopsMailer->usePM();
                 $xoopsMailer->setTemplate('alert.tpl');
                 $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
                 $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
                 $xoopsMailer->assign('SITEURL', XOOPS_URL . "/");
                 $xoopsMailer->assign('DOWNLOAD', $sw->name());
                 if ($xoopsModuleConfig['urlmode']) {
                     $url = DT_URL . "/item/" . $sw->nameId();
                 } else {
                     $url = DT_URL . "/item.php?id=" . $sw->id();
                 }
                 $xoopsMailer->assign('LINK_RESOURCE', $url);
                 $xoopsMailer->assign('DAYS', $alert->limit());
                 $xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH . "/modules/dtransport/language/" . $xoopsConfig['language'] . "/mail_template/");
                 $xu = new XoopsUser($sw->uid());
                 $xoopsMailer->setToUsers($xu);
                 $xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
                 $xoopsMailer->setFromName($xoopsConfig['sitename']);
                 $xoopsMailer->setSubject(sprintf(_MS_DT_SUBJECTALERT, $sw->name()));
                 $xoopsMailer->send(true);
             }
         }
         //Almacenamos la fecha de la última verificación de alertas
         file_put_contents($file, time());
     } else {
         return false;
     }
 }
Ejemplo n.º 14
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);
}
Ejemplo n.º 15
0
<?php

// $Id$
// --------------------------------------------------------------
// D-Transport
// 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) {
Ejemplo n.º 16
0
/**
* @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> &raquo; <a href='items.php'>" . $sw->getVar('name') . "</a> &raquo; <a href='files.php?item=" . $sw->id() . "'>" . __('Files', 'dtransport') . "</a> &raquo; " . ($edit ? __('Edit file', 'dtransport') : __('New file', 'dtransport')));
    $tpl->assign('xoops_pagetitle', $xoopsModule->name() . " &raquo; " . $sw->getVar('name') . " &raquo; " . __('Files', 'dtransport') . " &raquo; " . ($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();
}
Ejemplo n.º 17
0
function dt_block_items($options)
{
    global $db, $xoopsModule;
    include_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php';
    include_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtfunctions.class.php';
    $tpl = RMTemplate::get();
    $tpl->add_xoops_style('blocks.css', 'dtransport');
    $dtfunc = new DTFunctions();
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    $tbls = $db->prefix("dtrans_software");
    $tblc = $db->prefix("dtrans_catsoft");
    if ($options[1] > 0) {
        $sql = "SELECT s.* FROM {$tbls} as s, {$tblc} as c WHERE c.cat='" . $options[1] . "' AND s.id_soft=c.soft AND s.approved=1 AND s.`delete`=0";
    } else {
        $sql = "SELECT s.* FROM {$tbls} as s WHERE s.`approved`=1 AND s.`delete`=0 ";
    }
    if (trim($options[10]) > 0) {
        $user = new RMUser(trim($options[10]));
        if ($user->isNew()) {
            return;
        }
        $sql .= " AND s.uid='" . $user->id() . "' ";
    }
    if ($options[11] > 0) {
        $sql .= "AND id_cat='{$options['11']}'";
    }
    switch ($options[0]) {
        case 'all':
            $sql .= ' ORDER BY RAND() ';
            break;
        case 'recent':
            $sql .= " ORDER BY s.modified DESC, created DESC ";
            break;
        case 'popular':
            $sql .= " ORDER BY s.hits DESC ";
            break;
        case 'rated':
            $sql .= " ORDER BY s.`rating`/s.`votes` DESC ";
            break;
        case 'featured':
            $sql .= " AND featured=1 ORDER BY RAND() ";
            break;
        case 'daily':
            $sql = " AND daily=1 ORDER BY RAND() ";
            break;
    }
    $options[2] = $options[2] > 0 ? $options[2] : 5;
    $sql .= " LIMIT 0, {$options['2']}";
    $result = $db->query($sql);
    $block = array();
    while ($row = $db->fetchArray($result)) {
        $item = new DTSoftware();
        $item->assignVars($row);
        $rtn = array();
        $rtn['name'] = $item->getVar('name');
        $rtn['version'] = $item->getVar('version');
        if ($options[3]) {
            $img = new RMImage();
            $img->load_from_params($item->getVar('image'));
            $rtn['image'] = $img->get_version($options[11]);
        }
        if ($options[4]) {
            $rtn['description'] = $item->getVar('shortdesc');
        }
        if ($options[5]) {
            $rtn['hits'] = sprintf(__('Downloaded %s times.', 'dtransport'), '<strong>' . $item->getVar('hits') . '</strong>');
        }
        if ($options[6]) {
            $rtn['urate'] = @number_format($item->getVar('rate') / $item->getVar('votes'), 1);
        }
        if ($options[7]) {
            $rtn['siterate'] = DTFunctions::ratingStars($item->getVar('siterate'));
        }
        $rtn['link'] = $item->permalink();
        $rtn['metas'] = $dtfunc->get_metas('down', $item->id());
        if ($options[9]) {
            $rtn['author'] = array('name' => $item->getVar('author_name'), 'url' => $item->getVar('author_url'));
        }
        $block['downs'][] = $rtn;
    }
    $block['showbutton'] = $options[8];
    $block['downlang'] = __('Download', 'dtransport');
    $block['lang_urate'] = __('User rating: %s', 'dtransport');
    $block['lang_author'] = __('Author: %s', 'dtransport');
    $block['langhits'] = _BK_DT_HITSTEXT;
    $block['langurate'] = _BK_DT_URATETEXT;
    $block['languser'] = _BK_DT_USERBY;
    return $block;
}
Ejemplo n.º 18
0
 public function delete(DTSoftware $sw = null)
 {
     global $xoopsModuleConfig;
     if ($this->remote()) {
         return $this->deleteFromTable();
     }
     if (!is_a($sw, 'DTSoftware')) {
         $sw = new DTSoftware($this->software());
     }
     $rmu = RMUtilities::get();
     $mc = $rmu->module_config('dtransport');
     if ($sw->getVar('secure')) {
         unlink(rtrim($mc['directory_secure'], '/') . '/' . $this->file());
     } else {
         unlink(rtrim($mc['directory_insecure'], '/') . '/' . $this->file());
     }
     return $this->deleteFromTable();
 }