Exemple #1
0
/**
* @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();
 }