示例#1
0
        $isreply = 0;
        $isnew = 1;
        if ( !is_object($xoopsUser) || ( !empty($_POST['noname']) && !empty($xoopsModuleConfig['allow_user_anonymous']) ) ) {
            $uid = 0;
        }
        else {
            $uid = $xoopsUser->getVar("uid");
        }
        if (isset($pid) && $pid != "") {
            $forumpost->setVar('pid', $pid);
        }
        if (!empty($topic_id)) {
            $forumpost->setVar('topic_id', $topic_id);
            $isreply = 1;
        }
        $forumpost->setVar('poster_ip', forum_getIP());
        $forumpost->setVar('uid', $uid);
        $forumpost->setVar('post_time', time());
    }

	if($topic_handler->getPermission($forum_obj, $topic_status, 'noapprove')) $approved = 1;
	else $approved = 0;
	$forumpost->setVar('approved', $approved);

    $forumpost->setVar('forum_id', $forum_obj->getVar('forum_id'));

    $subject = xoops_trim($_POST['subject']);
    $subject = ($subject == '') ? _NOTITLE : $subject;
    $poster_name = !empty($_POST['poster_name'])?xoops_trim($_POST['poster_name']):'';
    $dohtml = !empty($_POST['dohtml']) ? 1 : 0;
    $dosmiley = !empty($_POST['dosmiley']) ? 1 : 0;
示例#2
0
		||
		(empty($_POST["uid"]) && empty($_POST["ip"]))
	){
	}else{
		$moderate_obj =& $moderate_handler->create();
		$moderate_obj->setVar("uid", @$_POST["uid"]);
		$moderate_obj->setVar("ip", @$_POST["ip"]);
		$moderate_obj->setVar("forum_id", $forum_id);
		$moderate_obj->setVar("mod_start", time());
		$moderate_obj->setVar("mod_end", time()+$_POST["expire"]*3600*24);
		$moderate_obj->setVar("mod_desc", @$_POST["desc"]);
		if($res = $moderate_handler->insert($moderate_obj) && !empty($forum_id) && !empty($_POST["uid"]) ){
			$uname = XoopsUser::getUnameFromID($_POST["uid"]);
			$post_handler =& xoops_getmodulehandler("post", "xforum");
			$xforumpost =& $post_handler->create();
		    $xforumpost->setVar("poster_ip", forum_getIP());
		    $xforumpost->setVar("uid", empty($GLOBALS["xoopsUser"])?0:$GLOBALS["xoopsUser"]->getVar("uid"));
		    $xforumpost->setVar("forum_id", $forum_id);
			$xforumpost->setVar("subject", sprintf(_MD_SUSPEND_SUBJECT, $uname, $_POST["expire"]));
			$xforumpost->setVar("post_text", sprintf(_MD_SUSPEND_TEXT, '<a href="' . XOOPS_URL . '/userinfo.php?uid='.$_POST["uid"].'">'.$uname.'</a>', $_POST["expire"], @$_POST["desc"], formatTimestamp(time()+$_POST["expire"]*3600*24) ));
		    $xforumpost->setVar("dohtml", 1);
		    $xforumpost->setVar("dosmiley", 1);
		    $xforumpost->setVar("doxcode", 1);
		    $xforumpost->setVar("post_time", time());
			$post_handler->insert($xforumpost);
			unset($xforumpost);
		}
		if($_POST["uid"]>0){
			$online_handler =& xoops_gethandler('online');
			$onlines =& $online_handler->getAll(new Criteria("online_uid", $_POST["uid"]));
			if (false != $onlines) {
示例#3
0
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //
//  Author: wishcraft (S.F.C., sales@chronolabs.org.au)                      //
//  URL: http://www.chronolabs.org.au/forums/X-Forum/0,17,0,0,100,0,DESC,0   //
//  Project: X-Forum 4                                                       //
//  ------------------------------------------------------------------------ //

include 'header.php';

$ratinguser = is_object($xoopsUser)?$xoopsUser -> getVar('uid'):0;
$anonwaitdays = 1;
$ip = forum_getIP(true);
foreach(array("topic_id", "rate", "forum") as $var){
	${$var} = isset($_POST[$var]) ? intval($_POST[$var]) : (isset($_GET[$var])?intval($_GET[$var]):0);
}

$topic_handler =& xoops_getmodulehandler('topic', 'xforum');
$topic_obj =& $topic_handler->get($topic_id);
if (!$topic_handler->getPermission($topic_obj->getVar("forum_id"), $topic_obj->getVar('topic_status'), "post")
	&&
	!$topic_handler->getPermission($topic_obj->getVar("forum_id"), $topic_obj->getVar('topic_status'), "reply")
){
	redirect_header("javascript:history.go(-1);", 2, _NOPERM);
}

if (empty($rate)){
	redirect_header("viewtopic.php?topic_id=".$topic_id."&amp;forum=".$xforum."", 4, _MD_NOVOTERATE);
示例#4
0
    /**
     * Get a forum list that a user is suspended, according to his uid and ip
     * Store the list into session if module cache is enabled
     * 
     * 
     * @param	int 	$uid user id
     * @param	string 	$ip user ip
     */
    function forumList($uid=-1, $ip=""){
	    static $xforums = array();
	    $uid = ($uid<0)?(is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uid"):0):$uid;
	    $ip = empty($ip)?forum_getIP(true):$ip;
	    if(isset($xforums[$uid][$ip])){
		    return $xforums[$uid][$ip];
	    }
		if(!empty($GLOBALS["xoopsModuleConfig"]['cache_enabled'])){
			$xforums[$uid][$ip] = forum_getsession("sf".$uid."_".ip2long($ip), true);
			if(is_array($xforums[$uid][$ip]) && count($xforums[$uid][$ip])){
		    	return $xforums[$uid][$ip];
			}
		}
	    $uid_criteria = empty($uid)?"1=1":"uid=".intval($uid);
	    if(!empty($ip)){
		    $ip_segs = explode(".", $ip);
		    for($i=1; $i<=4; $i++){
			    $ips[] = $this->db->quoteString(implode(".", array_slice($ip_segs, 0, $i)));
		    }
	    	$ip_criteria = "ip IN(".implode(",", $ips).")";
	    }else{
	    	$ip_criteria = "1=1";
    	}
	    $expire_criteria = "mod_end > ".time();
		$sql = sprintf("SELECT forum_id, COUNT(*) AS count FROM %s WHERE (%s OR %s) AND (%s) GROUP BY forum_id", $this->db->prefix('xf_moderates'), $uid_criteria, $ip_criteria, $expire_criteria);
        if (!$result = $this->db->query($sql)) {
            return $xforums[$uid][$ip] = array();
        }
        $_forums = array();
        while($row = $this->db->fetchArray($result)){
	        if($row["count"]>0){
	        	$_forums[$row["forum_id"]] = 1; 
        	}
        }
        $xforums[$uid][$ip] = count($_forums)?array_keys($_forums):array(-1);
		if(!empty($GLOBALS["xoopsModuleConfig"]['cache_enabled'])){
			forum_setsession("sf".$uid."_".ip2long($ip), $xforums[$uid][$ip]);
		}
        
		return $xforums[$uid][$ip];
    }
示例#5
0
function xoops_module_install_xforum(&$module)
{
	/* Create a test category */
	$category_handler =& xoops_getmodulehandler('category', 'xforum');
	$category =& $category_handler->create();
    $category->setVar('cat_title', _MI_XFORUM_INSTALL_CAT_TITLE, true);
    $category->setVar('cat_image', "", true);
    $category->setVar('cat_order', 1);
    $category->setVar('cat_description', _MI_XFORUM_INSTALL_CAT_DESC, true);
    $category->setVar('cat_url', "http://xoops.org XOOPS", true);
    if (!$cat_id = $category_handler->insert($category)) {
        return true;
    }

    /* Create a forum for test */
	$forum_handler =& xoops_getmodulehandler('forum', 'xforum');
    $xforum =& $forum_handler->create();
    $xforum->setVar('forum_name', _MI_XFORUM_INSTALL_FORUM_NAME, true);
    $xforum->setVar('forum_desc', _MI_XFORUM_INSTALL_FORUM_DESC, true);
    $xforum->setVar('forum_order', 1);
    $xforum->setVar('forum_moderator', array());
    $xforum->setVar('parent_forum', 0);
    $xforum->setVar('cat_id', $cat_id);
    $xforum->setVar('forum_type', 0);
    $xforum->setVar('allow_html', 0);
    $xforum->setVar('allow_sig', 1);
    $xforum->setVar('allow_polls', 0);
    $xforum->setVar('allow_subject_prefix', 1);
    //$xforum->setVar('allow_attachments', 1);
    $xforum->setVar('attach_maxkb', 100);
    $xforum->setVar('attach_ext', "zip|jpg|gif");
    $xforum->setVar('hot_threshold', 20);
    $forum_id = $forum_handler->insert($xforum);
	
    /* Set corresponding permissions for the category and the forum */
    $module_id = $module->getVar("mid") ;
    $gperm_handler =& xoops_gethandler("groupperm");
    $groups_view = array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS);
    $groups_post = array(XOOPS_GROUP_ADMIN, XOOPS_GROUP_USERS);
	$post_items = array('post', 'reply', 'edit', 'delete', 'addpoll', 'vote', 'attach', 'noapprove');
    foreach ($groups_view as $group_id) {
        $gperm_handler->addRight("category_access", $cat_id, $group_id, $module_id);
        $gperm_handler->addRight("forum_access", $forum_id, $group_id, $module_id);
        $gperm_handler->addRight("forum_view", $forum_id, $group_id, $module_id);
    }
    foreach ($groups_post as $group_id) {
	    foreach($post_items as $item){
        	$gperm_handler->addRight("forum_".$item, $forum_id, $group_id, $module_id);
    	}
    }
    
    /* Create a test post */
	$post_handler =& xoops_getmodulehandler('post', 'xforum');
	$xforumpost =& $post_handler->create();
    $xforumpost->setVar('poster_ip', forum_getIP());
    $xforumpost->setVar('uid', $GLOBALS["xoopsUser"]->getVar("uid"));
	$xforumpost->setVar('approved', 1);
    $xforumpost->setVar('forum_id', $forum_id);
    $xforumpost->setVar('subject', _MI_XFORUM_INSTALL_POST_SUBJECT, true);
    $xforumpost->setVar('dohtml', 0);
    $xforumpost->setVar('dosmiley', 1);
    $xforumpost->setVar('doxcode', 1);
    $xforumpost->setVar('dobr', 1);
    $xforumpost->setVar('icon', "", true);
    $xforumpost->setVar('attachsig', 1);
    $xforumpost->setVar('post_time', time());
    $xforumpost->setVar('post_text', _MI_XFORUM_INSTALL_POST_TEXT, true);
    $postid = $post_handler->insert($xforumpost);
        
    return true;
}
示例#6
0
$email_to = $myts->stripSlashesGPC($_POST["email"]);
if(!checkEmail($email_to)) {
	include XOOPS_ROOT_PATH."/header.php";
	echo "<div class=\"resultMsg\">"."Invalid email";
	echo "<br clear=\"all\" /><br /><input type=\"button\" value=\""._CLOSE."\" onclick=\"window.close()\"></div>";
	
	include XOOPS_ROOT_PATH."/footer.php";
    exit();
}
$title = $myts->stripSlashesGPC($_POST["title"]);
$content = $myts->stripSlashesGPC($_POST["content"]);
$xoopsMailer =& getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setToEmails($email_to);
if(is_object($xoopsUser)){
	$xoopsMailer->setFromEmail($xoopsUser->getVar("email", "E"));
	$xoopsMailer->setFromName($xoopsUser->getVar("uname", "E"));
}else{
	$xoopsMailer->setFromName(forum_getIP(true));				
}
$xoopsMailer->setSubject($title);
$xoopsMailer->setBody($content);
$xoopsMailer->send();

include XOOPS_ROOT_PATH."/header.php";
echo "<div class=\"resultMsg\">".$config["title"];
echo "<br clear=\"all\" /><br /><input type=\"button\" value=\""._CLOSE."\" onclick=\"window.close()\"></div>";

include XOOPS_ROOT_PATH."/footer.php";
?>
示例#7
0
    function checkIdentity($uid = -1)
    {
        global $xoopsUser;

        $uid = ($uid > -1)?$uid:(is_object($xoopsUser)? $xoopsUser->getVar('uid'):0);
        if ($this->getVar('uid') > 0) {
            $user_ok = ($uid == $this->getVar('uid'))?true:false;
        } else {
            static $user_ip;
            if (!isset($user_ip)) {
                $user_ip = forum_getIP();
            }
            $user_ok = ($user_ip == $this->getVar('poster_ip'))?true:false;
        }
        return $user_ok;
    }
示例#8
0
    function getPermissions($type = "forum", $id = 0)
    {
        global $xoopsUser;
        static $permissions = array(), $suspension = array();

        $type = (strtolower($type) !="category")?"forum":"category";
        
	    if(is_object($GLOBALS["xoopsModule"]) && $GLOBALS["xoopsModule"]->getVar("dirname")=="xforum"){
        	$modid = $GLOBALS["xoopsModule"]->getVar("mid");
	    }else{
    		$module_handler =& xoops_gethandler('module');
			$xoopsxforum =& $module_handler->getByDirname('xforum');
			$modid = $xoopsxforum->getVar("mid");
			unset($xoopsxforum);
	    }
        
	    $uid = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uid"):0;
		$ip = forum_getIP(true);
		if (($type == "forum") && !forum_isAdmin($id) && !isset($suspension[$uid][$id]) && !empty($GLOBALS["xoopsModuleConfig"]['enable_usermoderate'])){
			$moderate_handler =& xoops_getmodulehandler('moderate', 'xforum');
			if($moderate_handler->verifyUser($uid,"",$id)){
				$suspension[$uid][$ip][$id] = 1;
			}else{
				$suspension[$uid][$ip][$id] = 0;
			}
		}

        if (!isset($permissions[$type]) || ($id && !isset($permissions[$type][$id]))) {
            // Get group permissions handler
            $gperm_handler =& xoops_gethandler('groupperm');
            // Get user's groups
            $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
            // Create string of groupid's separated by commas, inserted in a set of brackets
            if (count($groups) < 1) return false;
            $groupstring = "(" . implode(',', $groups) . ")";
            // Create criteria for getting only the permissions regarding this module and this user's groups
            $criteria = new CriteriaCompo(new Criteria('gperm_modid', $modid));
            $criteria->add(new Criteria('gperm_groupid', $groupstring, 'IN'));
            if ($id) {
                if (is_array($id)) {
                    $counter = 0;
                    $idstring = "(" . implode(',', $id) . ")";
                    $criteria->add(new Criteria('gperm_itemid', $idstring, 'IN'));
                } else {
                    $criteria->add(new Criteria('gperm_itemid', intval($id)));
                }
            }

            switch ($type) {
                case "forum":
                    $items = array_map("trim",explode(',', FORUM_PERM_ITEMS));

                    $full_items = array();
                    foreach($items as $item) {
	                    /* skip access for suspended users */
						if( !empty($suspension[$uid][$ip][$id]) && in_array($item,array("post", "reply", "edit", "delete", "addpoll", "vote", "attach", "noapprove")) ) continue;
                        $full_items[] = "'forum_" . $item . "'";
                    }
                    $gperm_names = implode(',', $full_items);
                    break;

                case "category":
                    $gperm_names = "'category_access'";
                    break;
            }
            // Add criteria for gpermnames
            $criteria->add(new Criteria('gperm_name', "(" . $gperm_names . ")", 'IN'));
            // Get all permission objects in this module and for this user's groups
            $userpermissions =& $gperm_handler->getObjects($criteria, true);
                        
            // Set the granted permissions to 1
            foreach ($userpermissions as $gperm_id => $gperm) {
                $permissions[$type][$gperm->getVar('gperm_itemid')][$gperm->getVar('gperm_name')] = 1;
            }
            unset($userpermissions);
        }
        // Return the permission array
        return isset($permissions[$type]) ? $permissions[$type] : array();
    }
示例#9
0
if ($xoopsModuleConfig['wol_enabled']){
	$online_handler =& xoops_getmodulehandler('online', 'xforum');
	$online_handler->init($forum);
}

$myts =& MyTextSanitizer::getInstance();

if ( isset($_POST['submit']) ) {
	$report_handler =& xoops_getmodulehandler('report', 'xforum');
	$report =& $report_handler->create();
	$report->setVar('report_text', $_POST['report_text']);
	$report->setVar('post_id', $post_id);
	$report->setVar('report_time', time());
	$report->setVar('reporter_uid', is_object($xoopsUser)?$xoopsUser->getVar('uid'):0);
	$report->setVar('reporter_ip', forum_getIP());
	$report->setVar('report_result', 0);
	$report->setVar('report_memo', "");

    if ($report_id = $report_handler->insert($report)) {
	    $message = _MD_REPORTED;
    }else{
	    $message = _MD_REPORT_ERROR;
    }
	redirect_header("viewtopic.php?forum=$forum&amp;topic_id=$topic_id&amp;post_id=$post_id&amp;order=$order&amp;viewmode=$viewmode",2,$message);
    exit();
}else{

	// Disable cache
	$xoopsConfig["module_cache"][$xoopsModule->getVar("mid")] = 0;
    include XOOPS_ROOT_PATH.'/header.php';