Пример #1
0
/**
* @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;
}
Пример #2
0
 /**
  * @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();
 }