Beispiel #1
0
     } else {
         $approve = isset($_POST['approve']) ? intval($_POST['approve']) : 0;
     }
     if ($approve) {
         $story->setPublished(time());
     } else {
         $story->setPublished(0);
     }
     $story->setExpired(0);
     $story->setTopicalign('R');
 } else {
     $approve = 0;
 }
 $story->setApproved($approve);
 if ($approve) {
     news_updateCache();
 }
 // Increment author's posts count (only if it's a new article)
 // First case, it's not an anonyous, the story is approved and it's a new story
 if ($uid && $approve && empty($storyid)) {
     $tmpuser = new xoopsUser($uid);
     $member_handler =& xoops_gethandler('member');
     $member_handler->updateUserByField($tmpuser, 'posts', $tmpuser->getVar('posts') + 1);
 }
 // Second case, it's not an anonymous, the story is NOT approved and it's NOT a new story (typical when someone is approving a submited story)
 if (is_object($xoopsUser) && $approve && !empty($storyid)) {
     $storytemp = new NewsStory($storyid);
     if (!$storytemp->published() && $storytemp->uid() > 0) {
         // the article has been submited but not approved
         $tmpuser = new xoopsUser($storytemp->uid());
         $member_handler =& xoops_gethandler('member');
Beispiel #2
0
function addTopic()
{
    global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
    $topicpid = isset($_POST['topic_pid']) ? intval($_POST['topic_pid']) : 0;
    $xt = new NewsTopic();
    if (!$xt->topicExists($topicpid, $_POST['topic_title'])) {
        $xt->setTopicPid($topicpid);
        if (empty($_POST['topic_title']) || xoops_trim($_POST['topic_title']) == '') {
            redirect_header('index.php?op=topicsmanager', 2, _AM_ERRORTOPICNAME);
        }
        $xt->setTopicTitle($_POST['topic_title']);
        //$xt->Settopic_rssurl($_POST['topic_rssfeed']);
        $xt->setTopic_color($_POST['topic_color']);
        if (isset($_POST['topic_imgurl']) && $_POST['topic_imgurl'] != '') {
            $xt->setTopicImgurl($_POST['topic_imgurl']);
        }
        $xt->setMenu(intval($_POST['submenu']));
        $xt->setTopicFrontpage(intval($_POST['topic_frontpage']));
        if (isset($_SESSION['items_count'])) {
            $_SESSION['items_count'] = -1;
        }
        if (isset($_POST['xoops_upload_file'])) {
            $fldname = $_FILES[$_POST['xoops_upload_file'][0]];
            $fldname = get_magic_quotes_gpc() ? stripslashes($fldname['name']) : $fldname['name'];
            if (xoops_trim($fldname != '')) {
                $sfiles = new sFiles();
                $dstpath = XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->dirname() . '/images/topics';
                $destname = $sfiles->createUploadName($dstpath, $fldname, true);
                $permittedtypes = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png');
                $uploader = new XoopsMediaUploader($dstpath, $permittedtypes, $xoopsModuleConfig['maxuploadsize']);
                $uploader->setTargetFileName($destname);
                if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
                    if ($uploader->upload()) {
                        $xt->setTopicImgurl(basename($destname));
                    } else {
                        echo _AM_UPLOAD_ERROR . ' ' . $uploader->getErrors();
                    }
                } else {
                    echo $uploader->getErrors();
                }
            }
        }
        if (isset($_POST['topic_description'])) {
            $xt->setTopicDescription($_POST['topic_description']);
        } else {
            $xt->setTopicDescription('');
        }
        $xt->store();
        // Permissions
        $gperm_handler =& xoops_gethandler('groupperm');
        if (isset($_POST['groups_news_can_approve'])) {
            foreach ($_POST['groups_news_can_approve'] as $onegroup_id) {
                $gperm_handler->addRight('news_approve', $xt->topic_id(), $onegroup_id, $xoopsModule->getVar('mid'));
            }
        }
        if (isset($_POST['groups_news_can_submit'])) {
            foreach ($_POST['groups_news_can_submit'] as $onegroup_id) {
                $gperm_handler->addRight('news_submit', $xt->topic_id(), $onegroup_id, $xoopsModule->getVar('mid'));
            }
        }
        if (isset($_POST['groups_news_can_view'])) {
            foreach ($_POST['groups_news_can_view'] as $onegroup_id) {
                $gperm_handler->addRight('news_view', $xt->topic_id(), $onegroup_id, $xoopsModule->getVar('mid'));
            }
        }
        news_updateCache();
        $notification_handler =& xoops_gethandler('notification');
        $tags = array();
        $tags['TOPIC_NAME'] = $_POST['topic_title'];
        $notification_handler->triggerEvent('global', 0, 'new_category', $tags);
        redirect_header('index.php?op=topicsmanager', 1, _AM_DBUPDATED);
    } else {
        redirect_header('index.php?op=topicsmanager', 2, _AM_ADD_TOPIC_ERROR);
    }
    exit;
}