Exemple #1
0
if (!isset($_SESSION['topics_viewed'])) {
    $topic->addView();
    $topic->save();
    $_SESSION['topics_viewed'] = array();
    $_SESSION['topics_viewed'][] = $topic->id();
} else {
    if (!in_array($topic->id(), $_SESSION['topics_viewed'])) {
        $topic->addView();
        $topic->save();
        $_SESSION['topics_viewed'][] = $topic->id();
    }
}
$xoopsOption['template_main'] = "bxpress-topic.tpl";
$xoopsOption['module_subpage'] = "topics";
include 'header.php';
bXFunctions::makeHeader();
$tpl->assign('forum', array('id' => $forum->id(), 'title' => $forum->name(), 'moderator' => $xoopsUser ? $forum->isModerator($xoopsUser->uid()) || $xoopsUser->isAdmin() : false));
$tpl->assign('topic', array('id' => $topic->id(), 'title' => $topic->title(), 'closed' => $topic->status(), 'sticky' => $topic->sticky(), 'approved' => $topic->approved()));
if ($forum->isAllowed($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS, 'reply')) {
    if ($topic->status()) {
        $canreply = $xoopsUser ? $forum->isModerator($xoopsUser->uid()) || $xoopsUser->isAdmin() : 0;
    } else {
        $canreply = true;
    }
    if ($forum->isAllowed($xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS, 'topic')) {
        $tpl->assign('lang_newtopic', __('New Topic', 'bxpress'));
        $tpl->assign('can_topic', 1);
    }
    $tpl->assign('can_reply', $canreply);
    $tpl->assign('lang_reply', __('Reply', 'bxpress'));
    $tpl->assign('lang_approved', __('Approved', 'bxpress'));
Exemple #2
0
/**
* @desc Mover temas de un foro a otro
*/
function moveTopics()
{
    global $db, $xoopsModuleConfig, $xoopsSecurity, $forum, $xoopsUser, $xoopsOption, $xoopsConfig;
    $topics = isset($_REQUEST['topics']) ? $_REQUEST['topics'] : null;
    $ok = isset($_POST['ok']) ? $_POST['ok'] : 0;
    $moveforum = rmc_server_var($_POST, 'moveforum', 0);
    if (empty($topics) || is_array($topics) && empty($topics)) {
        redirect_header('moderate.php?id=' . $moveforum, 2, __('Select at least a topic to moderate!', 'bxpress'));
        die;
    }
    $topics = !is_array($topics) ? array($topics) : $topics;
    if ($ok) {
        if (!$xoopsSecurity->check()) {
            redirect_header('moderate.php?id=' . $moveforum, 2, __('Session token expired!', 'bxpress'));
            die;
        }
        if ($moveforum <= 0) {
            redirect_header('moderate.php?id=' . $forum->id(), 2, __('Please select the target forum', 'bxpress'));
            die;
        }
        $mf = new bXForum($moveforum);
        if ($mf->isNew()) {
            redirect_header('moderate.php?id=' . $forum->id(), 2, __('Specified forum does not exists!', 'bxpress'));
            die;
        }
        $lastpost = false;
        foreach ($topics as $k) {
            $topic = new bXTopic($k);
            if ($topic->forum() != $forum->id()) {
                continue;
            }
            //Verificamos si el tema contiene el último mensaje del foro
            if (!$lastpost && array_key_exists($forum->lastPostId(), $topic->getPosts(0))) {
                $lastpost = true;
            }
            $topic->setForum($moveforum);
            if ($topic->save()) {
                //Decrementa el número de temas
                $forum->setTopics($forum->topics() - 1 > 0 ? $forum->topics() - 1 : 0);
                $forum->setPosts($forum->posts() - ($topic->replies() + 1) > 0 ? $forum->posts() - ($topic->replies() + 1) : 0);
                $forum->save();
                $mf->setPosts($mf->posts() + ($topic->replies() + 1));
                $mf->addTopic();
                $mf->save();
                //Cambiamos el foro de los mensajes del tema
                if ($topic->getPosts()) {
                    foreach ($topic->getPosts() as $k => $v) {
                        $v->setForum($moveforum);
                        $v->save();
                    }
                }
            }
        }
        //Actualizamos el último mensaje del foro
        if ($lastpost) {
            $post = $forum->getLastPost();
            $forum->setPostId($post);
            $forum->save();
        }
        //Actualizamos el último mensaje del foro al que fue movido el tema
        $post = $mf->getLastPost();
        $post ? $mf->setPostId($post) : '';
        $mf->save();
        redirect_header('moderate.php?id=' . $forum->id(), 1, __('Topics has been relocated!', 'bxpress'));
        die;
    } else {
        global $xoopsTpl;
        $tpl = $xoopsTpl;
        $xoopsOption['template_main'] = "bxpress_moderateforms.html";
        $xoopsOption['module_subpage'] = "moderate";
        include 'header.php';
        bXFunctions::makeHeader();
        $form = new RMForm(__('Move Topics', 'bxpress'), 'frmMove', 'moderate.php');
        $form->addElement(new RMFormHidden('id', $forum->id()));
        $form->addElement(new RMFormHidden('op', 'move'));
        $form->addElement(new RMFormHidden('ok', '1'));
        $i = 0;
        foreach ($topics as $k) {
            $form->addElement(new RMFormHidden('topics[' . $i . ']', $k));
            ++$i;
        }
        $form->addElement(new RMFormSubTitle('&nbsp', 1, ''));
        $form->addElement(new RMFormSubTitle(__('Select the forum where you wish to move selected topics', 'bxpress'), 1, 'even'));
        $ele = new RMFormSelect(__('Forum', 'bxpress'), 'moveforum');
        $ele->addOption(0, '', 1);
        $tbl1 = $db->prefix("bxpress_categories");
        $tbl2 = $db->prefix("bxpress_forums");
        $sql = "SELECT b.*, a.title FROM {$tbl1} a, {$tbl2} b WHERE b.cat=a.id_cat AND b.active='1' AND id_forum<>" . $forum->id() . " ORDER BY a.order, b.order";
        $result = $db->query($sql);
        $categories = array();
        while ($row = $db->fetchArray($result)) {
            $cforum = array('id' => $row['id_forum'], 'name' => $row['name']);
            if (isset($categores[$row['cat']])) {
                $categories[$row['cat']]['forums'][] = $cforum;
            } else {
                $categories[$row['cat']]['title'] = $row['title'];
                $categories[$row['cat']]['forums'][] = $cforum;
            }
        }
        foreach ($categories as $cat) {
            $ele->addOption(0, $cat['title'], 0, true, 'color: #000; font-weight: bold; font-style: italic; border-bottom: 1px solid #c8c8c8;');
            foreach ($cat['forums'] as $cforum) {
                $ele->addOption($cforum['id'], $cforum['name'], 0, false, 'padding-left: 10px;');
            }
        }
        $form->addElement($ele, true, "noselect:0");
        $ele = new RMFormButtonGroup();
        $ele->addButton('sbt', __('Move Topics Now!', 'bxpress'), 'submit');
        $ele->addButton('cancel', __('Cancel', 'bxpress'), 'button', 'onclick="history.go(-1);"');
        $form->addElement($ele);
        $tpl->assign('moderate_form', $form->render());
        include 'footer.php';
    }
}