/** * @desc Genera los datos para el envio de las notificaciones * @param string I de la categoría * @param int Id del elemento * @param string Id del Evento generado * @param array Parámetros adicionales * @return string */ function bxNotifications($category, $id, $event, $params = array()) { $bxf = bXFunctions::get(); if ($category == 'forum') { //Notificación de nuevo tema en foro if ($event == 'newtopic') { $forum = new bXForum($id); $info['name'] = $forum->name(); $info['url'] = $bxf->url() . "/topic.php?id={$params['topic']}"; //$info['desc']=$param['topic']; return $info; } //Notificación de nuevo mensaje en foro if ($event == 'postforum') { $forum = new bXForum($id); $info['name'] = $forum->name(); $info['url'] = $bxf->url() . "/topic.php?pid={$params['post']}#p{$params['post']}"; //$info['desc']=$param['topic']; return $info; } } //Notificación de nuevo mensaje en tema if ($category == 'topic') { $topic = new bXTopic($id); $info['name'] = $topic->title(); $info['url'] = $bxf->url() . "/topic.php?pid={$params['post']}#p{$params['post']}"; //$info['desc']=$param['topic']; return $info; } //Notificación de mensaje en cualquier foro if ($category == 'any_forum') { $forum = new bXForum($params['forum']); $info['name'] = $forum->name(); $info['url'] = $bxf->url() . "/topic.php?pid={$params['post']}#p{$params['post']}"; //$info['desc']=$param['topic']; return $info; } }
/** * @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(); }