function addTopic() { global $xoopsDB, $xoopsModule, $xoopsModuleConfig; $topicpid = isset($_POST['topic_pid']) ? intval($_POST['topic_pid']) : 0; $xt = new nw_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_NW_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 nw_sFiles(); $dstpath = NW_TOPICS_FILES_PATH; $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_NW_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('nw_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('nw_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('nw_view', $xt->topic_id(), $onegroup_id, $xoopsModule->getVar('mid')); } } nw_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_NW_DBUPDATED); } else { redirect_header('index.php?op=topicsmanager', 2, _AM_NW_ADD_TOPIC_ERROR); } exit(); }
$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) { nw_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 nw_NewsStory( $storyid ); if(!$storytemp->published() && $storytemp->uid()>0) { // the article has been submited but not approved $tmpuser=new xoopsUser($storytemp->uid());