/** * @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; } }
if (!$mc['aprove_edit'] && $mc['edit_notif'] && $app) { $xoopsMailer =& getMailer(); $xoopsMailer->usePM(); $xoopsMailer->setTemplate('edit_download.tpl'); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $xoopsMailer->assign('LINK_RESOURCE', XOOPS_URL . "/modules/dtransport/admin/items.php?op=edit&type=edit&id=" . $item->software()); $xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH . "/modules/dtransport/language/" . $xoopsConfig['language'] . "/mail_template/"); foreach ($mc['groups_notif'] as $k) { $g[] = new XoopsGroup($k); } $xoopsMailer->setToGroups($g); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_MS_DT_SUBJECTEDIT, $item->name())); if (!$xoopsMailer->send(true)) { redirect_header(XOOPS_URL . '/modules/dtransport/mydownloads.php', 2, $xoopsMailer->getErrors()); } } } redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/' : '/?p=cp'), 2, $edit ? __('Changes saved successfully!', 'dtransport') : __('Download item created successfully')); } 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) {
/** * @desc Genera la información para mostrar la Sindicación * @param int Limite de resultados * @return Array */ function &dtrans_rssshow($limit) { global $util, $mc; $db =& XoopsDatabaseFactory::getDatabaseConnection(); include_once XOOPS_ROOT_PATH . '/modules/dtransport/class/dtsoftware.class.php'; foreach ($_GET as $k => $v) { ${$k} = $v; } $feed = array(); // Información General $ret = array(); $mc =& $util->moduleConfig('dtransport'); $sql = "SELECT * FROM " . $db->prefix("dtrans_software") . " WHERE approved='1'"; switch ($show) { case 'pops': $feed['title'] = htmlspecialchars(_MI_DT_RSSPOP); $feed['link'] = XOOPS_URL . '/modules/dtransport'; $feed['description'] = htmlspecialchars(_MI_DT_RSSPOPDESC); $sql .= " ORDER BY hits DESC"; break; case 'rate': $feed['title'] = htmlspecialchars(_MI_DT_RSSRATE); $feed['link'] = XOOPS_URL . '/modules/dtransport'; $feed['description'] = htmlspecialchars(_MI_DT_RSSRATEDESC); $sql .= " ORDER BY `rating`/`votes` DESC"; break; default: $feed['title'] = htmlspecialchars(_MI_DT_RSSRECENT); $feed['link'] = XOOPS_URL . '/modules/dtransport'; $feed['description'] = htmlspecialchars(_MI_DT_RSSRECENTDESC); $sql .= " ORDER BY created DESC, modified DESC"; break; } $sql .= " LIMIT 0, 15"; // Generamos los elementos $result = $db->query($sql); $items = array(); $link = XOOPS_URL . '/modules/dtransport/'; while ($row = $db->fetchArray($result)) { $item = new DTSoftware(); $item->assignVars($row); $rtn = array(); $rtn['title'] = htmlspecialchars($item->name()); $ilink = $link . ($mc['urlmode'] ? "item/" . $item->nameId() . "/" : "item.php?id=" . $item->id()); $rtn['link'] = htmlspecialchars($ilink, ENT_QUOTES); $rtn['description'] = $item->shortdesc(); $rtn['date'] = formatTimestamp($item->created()); $items[] = $rtn; } $ret = array('feed' => $feed, 'items' => $items); return $ret; }