$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;
|| (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) {
// 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."&forum=".$xforum."", 4, _MD_NOVOTERATE);
/** * 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]; }
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; }
$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"; ?>
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; }
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(); }
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&topic_id=$topic_id&post_id=$post_id&order=$order&viewmode=$viewmode",2,$message); exit(); }else{ // Disable cache $xoopsConfig["module_cache"][$xoopsModule->getVar("mid")] = 0; include XOOPS_ROOT_PATH.'/header.php';