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)); } } } } } }
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'); } $result = $story->store(); if ($result) { // Notification $notification_handler =& xoops_gethandler('notification'); $tags = array(); $tags['STORY_NAME'] = $subject; $tags['STORY_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/article.php?storyid=' . $story->storyid(); if ($xoopsModuleConfig['autoapprove'] == 1) {
/**/ $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); /**/ $story->setTopicdisplay(0); /**/ $story->setTopicalign('R'); /**/ $story->setIhome(0); /**/ $story->setBodytext(' '); /**/ $story->setExpired(0); /**/ $story->setPublished(0); /**/ $story->setApproved(0);
$editmode = false; } else { $story = new NewsStory($storyid); $editmode = true; } $story->setUid($uid); $story->setTitle($_POST['title']); $story->setHometext($_POST['hometext']); $story->setTopicId(intval($_POST['topic_id'])); $story->setHostname(xoops_getenv('REMOTE_ADDR')); $story->setNohtml($nohtml_db); $nosmiley = isset($_POST['nosmiley']) ? intval($_POST['nosmiley']) : 0; $story->setNosmiley($nosmiley); $notifypub = isset($_POST['notifypub']) ? intval($_POST['notifypub']) : 0; $story->setNotifyPub($notifypub); $story->setType($_POST['type']); if (!empty($_POST['autodate']) && $approveprivilege) { $publish_date = $_POST['publish_date']; $pubdate = strtotime($publish_date['date']) + $publish_date['time']; //$offset = $xoopsUser -> timezone() - $xoopsConfig['server_TZ']; //$pubdate = $pubdate - ( $offset * 3600 ); $story->setPublished($pubdate); } if (!empty($_POST['autoexpdate']) && $approveprivilege) { $expiry_date = $_POST['expiry_date']; $expiry_date = strtotime($expiry_date['date']) + $expiry_date['time']; $offset = $xoopsUser->timezone() - $xoopsConfig['server_TZ']; $expiry_date = $expiry_date - $offset * 3600; $story->setExpired($expiry_date); } else { $story->setExpired(0);
$pubdate = mktime($autohour, $automin, 0, $automonth, $autoday, $autoyear); $offset = $xoopsUser->timezone() - $xoopsConfig['server_TZ']; $pubdate = $pubdate - $offset * 3600; $story->setPublished($pubdate); } else { $story->setPublished(time()); } if (!empty($autoexpdate)) { $expdate = mktime($autoexphour, $autoexpmin, 0, $autoexpmonth, $autoexpday, $autoexpyear); $offset = $xoopsUser->timezone() - $xoopsConfig['server_TZ']; $expdate = $expdate - $offset * 3600; $story->setExpired($expdate); } else { $story->setExpired(0); } $story->setType($type); $story->setHostname(getenv("REMOTE_ADDR")); // $story->setNotifyPub($notifypub); } else { $story = new NewsStory($storyid); if (!empty($autodate)) { $pubdate = mktime($autohour, $automin, 0, $automonth, $autoday, $autoyear); $offset = $xoopsUser->timezone(); $offset = $offset - $xoopsConfig['server_TZ']; $pubdate = $pubdate - $offset * 3600; $story->setPublished($pubdate); } elseif ($story->published() == 0 && $approve) { $story->setPublished(time()); $isnew = 1; } else { if (!empty($movetotop)) {