function newPost() { if (!$this->_checkUser($this->params[1], $this->params[2])) { $this->response->add(new XoopsXmlRpcFault(104)); } else { if (!($fields =& $this->_getPostFields(null, $this->params[0]))) { $this->response->add(new XoopsXmlRpcFault(106)); } else { $missing = array(); foreach ($fields as $tag => $detail) { if (!isset($this->params[3][$tag])) { $data = $this->_getTagCdata($this->params[3]['xoops_text'], $tag, true); if (trim($data) == '') { if ($detail['required']) { $missing[] = $tag; } } else { $post[$tag] =& $data; } } else { $post[$tag] =& $this->params[3][$tag]; } } if (count($missing) > 0) { $msg = ''; foreach ($missing as $m) { $msg .= '<' . $m . '> '; } $this->response->add(new XoopsXmlRpcFault(109, $msg)); } else { // will be removed... don't worry if this looks bad include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; $story = new NewsStory(); $error = false; if (intval($this->params[4]) > 0) { if (!$this->_checkAdmin()) { // non admin users cannot publish $error = true; $this->response->add(new XoopsXmlRpcFault(111)); } else { $story->setType('admin'); $story->setApproved(true); $story->setPublished(time()); } } else { if (!$this->_checkAdmin()) { $story->setType('user'); } else { $story->setType('admin'); } } if (!$error) { if (isset($post['categories']) && !empty($post['categories'][0])) { $story->setTopicId(intval($post['categories'][0]['categoryId'])); } else { $story->setTopicId(1); } $story->setTitle(addslashes(trim($post['title']))); if (isset($post['moretext'])) { $story->setBodytext(addslashes(trim($post['moretext']))); } if (!isset($post['hometext'])) { $story->setHometext(addslashes(trim($this->params[3]['xoops_text']))); } else { $story->setHometext(addslashes(trim($post['hometext']))); } $story->setUid($this->user->getVar('uid')); $story->setHostname($_SERVER['REMOTE_ADDR']); if (!$this->_checkAdmin()) { $story->setNohtml(1); } else { $story->setNohtml(0); } $story->setNosmiley(0); $story->setNotifyPub(1); $story->setTopicalign('R'); $ret = $story->store(); if (!$ret) { $this->response->add(new XoopsXmlRpcFault(106)); } else { $this->response->add(new XoopsXmlRpcString($ret)); } } } } } }
$uid = $xoopsUser->getVar('uid'); if ($xoopsUser->isAdmin($xoopsModule->mid())) { $nohtml_db = empty($nohtml) ? 0 : 1; } } else { if ($xoopsModuleConfig['anonpost'] == 1) { $uid = 0; } else { redirect_header("index.php", 3, _NOPERM); exit; } } $story = new NewsStory(); $story->setTitle($subject); $story->setHometext($message); $story->setUid($uid); $story->setTopicId($topic_id); $story->setHostname(xoops_getenv('REMOTE_ADDR')); $story->setNohtml($nohtml_db); $nosmiley = isset($nosmiley) ? intval($nosmiley) : 0; $notifypub = isset($notifypub) ? intval($notifypub) : 0; $story->setNosmiley($nosmiley); $story->setNotifyPub($notifypub); $story->setType('user'); if ($xoopsModuleConfig['autoapprove'] == 1) { $approve = 1; $story->setApproved($approve); $story->setPublished(time()); $story->setExpired(0); $story->setTopicalign('R'); }
} echo $warning; echo "</td></tr></table><br />"; echo "<table width='100%' border='0' cellspacing='1' class='outer'><tr><td class=\"odd\">"; foreach (array('autodate', 'autohour', 'automin', 'automonth', 'autoday', 'autoyear', 'autoexpdate', 'autoexphour', 'autoexpmin', 'autoexpmonth', 'autoexpday', 'autoexpyear', 'publiches', 'approve', 'nohtml', 'nosmiley', 'ihome', 'topicdisplay', 'topicid', 'movetotop', 'isedit') as $k) { ${$k} = !empty($_POST[$k]) ? intval($_POST[$k]) : 0; } $type = $_POST['type']; $topicalign = $_POST['topicalign']; include "storyform.inc.php"; echo "</td></tr></table>"; break; case "save": if (empty($storyid)) { $story = new NewsStory(); $story->setUid($xoopsUser->uid()); if (!empty($_POST['autodate'])) { $pubdate = mktime($_POST['autohour'], $_POST['automin'], 0, $_POST['automonth'], $_POST['autoday'], $_POST['autoyear']); $offset = $xoopsUser->timezone() - $xoopsConfig['server_TZ']; $pubdate = $pubdate - $offset * 3600; $story->setPublished($pubdate); } else { $story->setPublished(time()); } if (!empty($_POST['autoexpdate'])) { $expdate = mktime($_POST['autoexphour'], $_POST['autoexpmin'], 0, $_POST['autoexpmonth'], $_POST['autoexpday'], $_POST['autoexpyear']); $offset = $xoopsUser->timezone() - $xoopsConfig['server_TZ']; $expdate = $expdate - $offset * 3600; $story->setExpired($expdate); } else { $story->setExpired(0);
$op = 'post'; $post_id = intval($_POST['post_id']); } else { redirect_header('index.php', 3, _MD_ERRORPOST); } switch ($op) { case 'post': //get the post $post_handler =& xoops_getmodulehandler('post', 'newbb'); $post = $post_handler->get($post_id); $story = new NewsStory(); $story->setTitle($post->getVar('subject', 'e')); /**/ $story->setHometext($post->getVar('post_text', 'e')); /**/ $story->setUid($post->getVar('uid')); /**/ $story->setTopicId(1); /**/ $story->setHostname(xoops_getenv('REMOTE_ADDR')); /**/ $dohtml = $post->getVar('dohtml'); $nohtml = empty($dohtml) ? 1 : 0; $story->setNohtml($nohtml); /**/ $story->setNosmiley(0); /**/ $story->setNotifyPub(0); /**/ $story->setType('admin'); $story->setExpired(0);
$result7 = $db->query('SELECT * FROM ' . $ams_links . ' WHERE storyid=' . $ams_newsid . ' ORDER BY linkid'); while ($link = $db->fetchArray($result7)) { if (trim($links) == '') { $links = "\n\n" . _AMS_NW_RELATEDARTICLES . "\n\n"; } $links .= _AMS_NW_EXTERNALLINK . ' [url=' . $link['link_link'] . ']' . $link['link_title'] . '[/url]' . "\n"; } } // The forum $forum = ''; if ($use_forum && $one_amstopic['forum_id'] != 0) { $forum = "\n\n" . '[url=' . XOOPS_URL . '/modules/newbb/viewforum.php?forum=' . $one_amstopic['forum_id'] . ']' . _AMS_AM_LINKEDFORUM . '[/url]' . "\n"; } // We create the story $news = new NewsStory(); $news->setUid($text_lastversion['uid']); $news->setTitle($article['title']); $news->created = $article['created']; $news->setPublished($article['published']); $news->setExpired($article['expired']); $news->setHostname($article['hostname']); $news->setNohtml($article['nohtml']); $news->setNosmiley($article['nosmiley']); $news->setHometext($text_lastversion['hometext']); $news->setBodytext($text_lastversion['bodytext'] . $links . $forum); $news->Setkeywords(''); $news->Setdescription(''); $news->counter = $article['counter']; $news->setTopicId($news_topicid); $news->setIhome($article['ihome']); $news->setNotifyPub($article['notifypub']);