/** * @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> » <a href='items.php'>" . __('Downloads', 'dtransport') . "</a> » " . ($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(); }
/** * @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> » <a href='./items.php'>" . _AS_DT_SW . "</a> » " . ($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(); }
/** * @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> » <a href='./items.php'>" . sprintf(__('"%s" Logs', 'dtransport'), $sw->getVar('name')) . "</a> » " . ($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'); }
$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);
// 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')); } }
/** * 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; }
/** * 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); }
/** * 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); }
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; }
$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';
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&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&action=edit&id=' . $item->id(), 'delete' => $mc['permalinks'] ? DT_URL . '/cp/delete/' . $item->id() : '/?p=cpanel&action=delete&id=' . $item->id(), 'files' => $mc['permalinks'] ? DT_URL . '/cp/files/' . $item->id() : '/?p=cpanel&action=files&id=' . $item->id(), 'features' => $mc['permalinks'] ? DT_URL . '/cp/features/' . $item->id() : '/?p=cpanel&action=features&id=' . $item->id(), 'logs' => $mc['permalinks'] ? DT_URL . '/cp/logs/' . $item->id() : '/?p=cpanel&action=logs&id=' . $item->id(), 'screens' => $mc['permalinks'] ? DT_URL . '/cp/screens/' . $item->id() : '/?p=cpanel&action=screens&id=' . $item->id(), 'canceldel' => $mc['permalinks'] ? DT_URL . '/cp/canceldel/' . $item->id() : '/?p=cpanel&action=canceldel&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'));
/** * @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; } }
/** * 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); }
<?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) {
/** * @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(); }
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; }
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(); }