/** * @desc Genera la información para mostrar la Sindicación * @param int Limite de resultados * @return Array */ function &exmbb_rssshow($limit) { global $util, $mc; $db = XoopsDatabaseFactory::getDatabaseConnection(); include_once XOOPS_ROOT_PATH . '/modules/exmbb/class/bbforum.class.php'; include_once XOOPS_ROOT_PATH . '/modules/exmbb/class/bbpost.class.php'; foreach ($_GET as $k => $v) { ${$k} = $v; } $feed = array(); // Información General $ret = array(); $mc =& $util->moduleConfig('exmbb'); if ($show == 'all') { $feed['title'] = htmlspecialchars(_MI_BB_RSSALL); $feed['link'] = XOOPS_URL . '/modules/exmbb'; $feed['description'] = htmlspecialchars($util->filterTags($mc['rssdesc'])); $sql = "SELECT a.*, b.title FROM " . $db->prefix("exmbb_posts") . " a," . $db->prefix("exmbb_topics") . " b WHERE \n\t\t\t\ta.approved='1' AND b.id_topic=a.id_topic ORDER BY a.post_time DESC LIMIT 0,{$limit}"; } else { if ($id <= 0) { return; } $forum = new BBForum($id); if ($forum->isNew()) { return; } $feed['title'] = htmlspecialchars(sprintf(_MI_BB_RSSNAMEFORUM, $forum->name())); $feed['link'] = XOOPS_URL . '/modules/exmbb/forum.php?id=' . $forum->id(); $feed['description'] = htmlspecialchars($forum->description()); $sql = "SELECT a.*, b.title FROM " . $db->prefix("mod_bxpress_posts") . " a," . $db->prefix("mod_bxpress_topics") . " b WHERE a.id_forum='{$id}' AND a.approved='1' AND b.id_topic=a.id_topic ORDER BY a.post_time DESC LIMIT 0,{$limit}"; } // Generamos los elementos $result = $db->query($sql); $posts = array(); while ($row = $db->fetchArray($result)) { $post = new BBPost(); $post->assignVars($row); $rtn = array(); $rtn['title'] = htmlspecialchars($row['title']); $rtn['link'] = htmlspecialchars(XOOPS_URL . '/modules/exmbb/topic.php?pid=' . $post->id() . "#p" . $post->id(), ENT_QUOTES); $rtn['description'] = utf8_encode($post->text()); $rtn['date'] = formatTimestamp($post->date()); $posts[] = $rtn; } $ret = array('feed' => $feed, 'items' => $posts); return $ret; }
/** * @desc Notifica al grupo de administradores la creación de un nuevo tema no aprobado * @param {@link } Objetos de Foro, Tema y mensaje * @param int edit indica si es la edición de un mensaje o un nuevo tema no aprobado **/ public function notifyAdmin($moderators, BBForum &$forum, BBTopic &$topic, BBPost &$post, $edit = 0) { global $db, $xoopsModule, $rmc_config; $bxf = bXFunctions::get(); $mhand = new XoopsMemberHandler($db); $configCat = new XoopsConfigCategory('mailer', 'mailer'); $config =& $configCat->getConfigs(3); $users = $moderators; if (!$edit) { if (file_exists(XOOPS_ROOT_PATH . '/modules/bxpress/lang/' . RMCLANG . '/admin_notify.tpl')) { $tpldir = XOOPS_ROOT_PATH . '/modules/bxpress/lang/' . RMCLANG; } else { $tpldir = XOOPS_ROOT_PATH . '/modules/bxpress/lang/en'; } } else { if (file_exists(XOOPS_ROOT_PATH . '/modules/bxpress/lang/' . RMCLANG . '/admin_notify_post.tpl')) { $tpldir = XOOPS_ROOT_PATH . '/modules/bxpress/lang/' . RMCLANG; } else { $tpldir = XOOPS_ROOT_PATH . '/modules/bxpress/lang/en'; } } foreach ($users as $k) { $xoopsMailer =& getMailer(); $xoopsMailer->setFromEmail($config['from']); $xoopsMailer->setFromName($config['fromname']); $xoopsMailer->setTemplateDir($tpldir); if (!$edit) { $xoopsMailer->setSubject(sprintf(__('New topic created', 'bxpress'), $forum->name())); $xoopsMailer->setTemplate('admin_notify.tpl'); } else { $xoopsMailer->setSubject(sprintf(__('A unapproved message has been edited', 'dtransport'), $topic->title())); $xoopsMailer->setTemplate('admin_notify_post.tpl'); } $xoopsMailer->assign('FORUM_NAME', $forum->name()); $xoopsMailer->assign('FORUM_MODNAME', $xoopsModule->name()); $xoopsMailer->assign('TOPIC_UNAME', $topic->posterName()); $xoopsMailer->assign('TOPIC_NAME', $topic->title()); $xoopsMailer->assign('TOPIC_APPROVED', $topic->approved() ? _YES : _NO); $xoopsMailer->assign('TOPIC_LINK', $bxf->url() . '/moderate.php?id=' . $forum->id()); $xoopsMailer->assign('POST_UNAME', $post->uname()); $xoopsMailer->assign('POST_LINK', $post->permalink()); $user = new XoopsUser($k); $xoopsMailer->setToUsers($user); $xoopsMailer->isMail = $user->getVar('notify_method') == 2; $xoopsMailer->isPM = $user->getVar('notify_method') == 1; $xoopsMailer->send(true); $xoopsMailer->clearAddresses(); } echo $xoopsMailer->getErrors(); }