$forum_form->addElement(new XoopsFormHidden('topic_id', $topic_id)); $forum_form->addElement(new XoopsFormHidden('forum', $forum_id)); $forum_form->addElement(new XoopsFormHidden('viewmode', $viewmode)); $forum_form->addElement(new XoopsFormHidden('order', $order)); $forum_form->addElement(new XoopsFormHidden('start', $start)); // backward compatible if(!class_exists("XoopsSecurity")){ $post_valid = 1; $_SESSION['submit_token'] = $post_valid; $forum_form->addElement(new XoopsFormHidden('post_valid', $post_valid)); } $forum_form->addElement(new XoopsFormHidden('notify', -1)); $forum_form->addElement(new XoopsFormHidden('contents_submit', 1)); $submit_button = new XoopsFormButton('', 'quick_submit', _SUBMIT, "submit"); $submit_button->setExtra('onclick="if(document.forms.quick_reply.message.value == \'RE\' || document.forms.quick_reply.message.value == \'\'){ alert(\''._MD_QUICKREPLY_EMPTY.'\'); return false;}else{ return true;}"'); $button_tray = new XoopsFormElementTray(''); $button_tray->addElement($submit_button); $forum_form->addElement($button_tray); $toggles = forum_getcookie('G', true); $display = (in_array('qr', $toggles)) ? 'none;' : 'block;'; $xoopsTpl->assign('quickreply', array( 'show' => 1, 'display'=>$display, 'icon'=>forum_displayImage($xforumImage['t_qr']), 'form' => $forum_form->render())); unset($forum_form); }else{ $xoopsTpl->assign('quickreply', array( 'show' => 0)); } include XOOPS_ROOT_PATH.'/footer.php'; ?>
function getTopicCount(&$xforum, $startdate, $type) { global $xoopsModuleConfig; include_once XOOPS_ROOT_PATH.'/modules/xforum/include/functions.php'; $criteria_extra = ''; $criteria_approve = ' AND t.approved = 1'; // any others? $leftjoin = ' LEFT JOIN ' . $this->db->prefix('xf_posts') . ' p ON p.post_id = t.topic_last_post_id'; $criteria_post = ' p.post_time > ' . $startdate; switch ($type) { case 'digest': $criteria_extra = ' AND topic_digest = 1'; break; case 'unreplied': $criteria_extra = ' AND topic_replies < 1'; break; case 'unread': if(empty($xoopsModuleConfig["read_mode"])){ }elseif($xoopsModuleConfig["read_mode"] ==2){ $leftjoin .= ' LEFT JOIN ' . $this->db->prefix('xf_reads_topic') . ' r ON r.read_item = t.topic_id'; $criteria_post .= ' AND (r.read_id IS NULL OR r.post_id < t.topic_last_post_id)'; }elseif($xoopsModuleConfig["read_mode"] == 1){ $criteria_post = ' p.post_time > ' . max($GLOBALS['last_visit'], $startdate); $topics = array(); $topic_lastread = forum_getcookie('LT', true); if(count($topic_lastread)>0) foreach($topic_lastread as $id=>$time){ if($time > $time_criterion) $topics[] = $id; } if(count($topics)>0){ $criteria_extra = ' AND t.topic_id NOT IN ('.implode(",", $topics).')'; } } break; case 'pending': $criteria_approve = ' AND t.approved = 0'; break; case 'deleted': $criteria_approve = ' AND t.approved = -1'; break; case 'all': break; default: $criteria_post = ' (p.post_time > ' . $startdate . ' OR t.topic_sticky=1)'; break; } if (is_object($xforum)) $criteria_forum = ' AND t.forum_id = ' . $xforum->getVar('forum_id'); else { if (is_array($xforum) && count($xforum) > 0){ $criteria_forum = ' AND t.forum_id IN (' . implode(',', array_keys($xforum)) . ')'; }elseif(!empty($xforum)){ $criteria_forum = ' AND t.forum_id ='.intval($xforum); }else{ $criteria_forum = ''; } } $sql = 'SELECT COUNT(*) as count FROM ' . $this->db->prefix("xf_topics") . ' t '.$leftjoin; $sql .= ' WHERE '.$criteria_post . $criteria_forum . $criteria_extra . $criteria_approve; if (!$result = $this->db->query($sql)) { return null; } $myrow = $this->db->fetchArray($result); $count = $myrow['count']; return $count; }
include_once '../../mainfile.php'; error_reporting(E_ALL); include_once XOOPS_ROOT_PATH."/modules/".$xoopsModule->getVar("dirname")."/include/vars.php"; include_once XOOPS_ROOT_PATH."/modules/".$xoopsModule->getVar("dirname")."/include/functions.php"; include_once XOOPS_ROOT_PATH."/Frameworks/art/functions.php"; $myts =& MyTextSanitizer::getInstance(); // menumode cookie if(isset($_REQUEST['menumode'])){ $menumode = intval($_REQUEST['menumode']); forum_setcookie("M", $menumode, $forumCookie['expire']); }else{ $cookie_M = intval(forum_getcookie("M")); $menumode = ($cookie_M === null || !isset($valid_menumodes[$cookie_M]))?$xoopsModuleConfig['menu_mode']:$cookie_M; } $menumode_other = array(); $menu_url = htmlSpecialChars(preg_replace("/&menumode=[^&]/", "", $_SERVER[ 'REQUEST_URI' ])); $menu_url .= (false === strpos($menu_url, "?"))?"?menumode=":"&menumode="; foreach($valid_menumodes as $key=>$val){ if($key != $menumode) $menumode_other[]=array("title"=>$val, "link"=>$menu_url.$key); } $forum_module_header = ''; $forum_module_header .= '<link rel="alternate" type="application/rss+xml" title="'.$xoopsModule->getVar('name').'" href="'.XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/rss.php" />'; if(!empty($xoopsModuleConfig['pngforie_enabled'])){ $forum_module_header .= '<style type="text/css">img {behavior:url("'.XOOPS_URL.'/modules/'.$xoopsModule->getVar('dirname').'/include/pngbehavior.htc");}</style>'; }
} */ break; default: $criteria_type_count = new Criteria("approved", 1); $criteria_type_post = new Criteria("p.approved", 1); break; } $criteria_count->add($criteria_type_count); $criteria_post->add($criteria_type_post); $karma_handler =& xoops_getmodulehandler('karma', 'xforum'); $user_karma = $karma_handler->getUserKarma(); $valid_modes = array("flat", "compact"); $viewmode_cookie = forum_getcookie("V"); if(isset($_GET['viewmode'])&&$_GET['viewmode']=="compact") forum_setcookie("V", "compact", $forumCookie['expire']); $viewmode = isset($_GET['viewmode'])? $_GET['viewmode']: ( !empty($viewmode_cookie)? $viewmode_cookie: ( /* is_object($xoopsUser)? $xoopsUser->getVar('umode'): */ @$valid_modes[$xoopsModuleConfig['view_mode']-1] ) ); $viewmode = in_array($viewmode, $valid_modes)?$viewmode:"flat";
function isRead_items_cookie(&$items) { $cookie_name = ($this->type == "forum")?"LF":"LT"; $cookie_vars = forum_getcookie($cookie_name, true); $ret = array(); foreach($items as $key => $last_update){ $ret[$key] = (max(@$GLOBALS['last_visit'], @$cookie_vars[$key]) >= $last_update); } return $ret; }
function setRead_items_cookie($status, $forum_id) { $cookie_name = "LT"; $cookie_vars = forum_getcookie($cookie_name, true); $item_handler =& xoops_getmodulehandler('topic', 'xforum'); $criteria =& new CriteriaCompo(new Criteria("forum_id", $forum_id)); $criteria->setSort("topic_last_post_id"); $criteria->setOrder("DESC"); $criteria->setLimit($this->items_per_forum); $items = $item_handler->getIds($criteria); foreach($items as $var){ if(empty($status)){ if(isset($cookie_vars[$var])) unset($cookie_vars[$var]); }else{ $cookie_vars[$var] = time() /*$items[$var]*/; } } forum_setcookie($cookie_name, $cookie_vars); return true; }
$forumCookie['secure'] = false; $forumCookie['expire'] = time() + 3600 * 24 * 30; // one month $forumCookie['prefix'] = ''; // set cookie name to avoid subsites confusion such as: domain.com, sub1.domain.com, sub2.domain.com, domain.com/xoopss, domain.com/xoops2 if(empty($forumCookie['prefix'])){ $cookie_prefix = preg_replace("/[^a-z_0-9]+/i", "_", preg_replace("/(http(s)?:\/\/)?(www.)?/i","",XOOPS_URL)); $cookie_userid = (is_object($xoopsUser))?$xoopsUser->getVar('uid'):0; $forumCookie['prefix'] = $cookie_prefix."_".$xoopsModule->dirname().'_'.$cookie_userid."_"; } // set LastVisitTemp cookie, which only gets the time from the LastVisit cookie if it does not exist yet // otherwise, it gets the time from the LastVisitTemp cookie //$last_visit = forum_getcookie("LVT"); $last_visit = forum_getsession("LV"); $last_visit = ($last_visit)?$last_visit:forum_getcookie("LV"); $last_visit = ($last_visit)?$last_visit:time(); // update LastVisit cookie. forum_setcookie("LV", time(), $forumCookie['expire']); // set cookie life time to one month //forum_setcookie("LVT", $last_visit); forum_setsession("LV", $last_visit); /* xforum cookie storage Long term cookie: (configurable, generally one month) LV - Last Visit M - Menu mode V - View mode G - Toggle Short term cookie: (same as session life time)
$required = !empty($xoopsModuleConfig["require_name"]); $forum_form->addElement(new XoopsFormText(_MD_NAMEMAIL, 'poster_name', 60, 255, ( !empty($isedit) && !empty($poster_name))?$poster_name:''), $required); } $icons_radio = new XoopsFormRadio(_MD_MESSAGEICON, 'icon', $icon); $subject_icons = XoopsLists::getSubjectsList(); foreach ($subject_icons as $iconfile) { $icons_radio->addOption($iconfile, '<img src="'.XOOPS_URL.'/images/subject/'.$iconfile.'" alt="" />'); } $forum_form->addElement($icons_radio); $nohtml = ($forum_obj->getVar('allow_html'))?false:true; if(!empty($editor)){ forum_setcookie("editor",$editor); }elseif(!$editor = forum_getcookie("editor")){ //$editor = forum_getcookie("editor"); if(is_object($xoopsUser)){ $editor =@ $xoopsUser->getVar("editor"); // Need set through user profile } if(empty($editor)){ $editor =@ $xoopsModuleConfig["editor_default"]; } } $forum_form->addElement(new XoopsFormSelectEditor($forum_form, "editor", $editor, $nohtml)); $editor_configs = array(); $editor_configs["name"] ="message"; $editor_configs["value"] = $message; $editor_configs["rows"] = empty($xoopsModuleConfig["editor_rows"])? 35 : $xoopsModuleConfig["editor_rows"]; $editor_configs["cols"] = empty($xoopsModuleConfig["editor_cols"])? 60 : $xoopsModuleConfig["editor_cols"];