예제 #1
0
 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));
                     }
                 }
             }
         }
     }
 }
예제 #2
0
     $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');
 }
예제 #3
0
파일: index.php 프로젝트: koki-h/xoops_utf8
     }
     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);
예제 #4
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);
예제 #5
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']);