private static function singleB(GWF_ForumBoard $board, &$back, $level, $selected) { $rep = '+' . str_repeat('=', $level * 2); $back .= sprintf('<option value="%s"%s>%s</option>', $board->getID(), GWF_HTML::selected($selected === $board->getID()), $rep . $board->display('board_title')); $childs = $board->getChilds(); if (count($childs) > 0) { foreach ($childs as $child) { self::singleB($child, $back, $level + 1, $selected); } } }
public function onDeleteBoard() { if (false === $this->board->deleteBoard()) { return GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__); } return $this->module->message('msg_board_deleted'); }
private static function createForums(Module_WeChall $module, $dropTable) { $back = ''; // if (false === ($module_forum = GWF_Module::getModule('Forum'))) { // return GWF_HTML::err('ERR_MODULE_MISSING', 'Forum'); // } // $module_forum->onInclude(); $boards = GDO::table('GWF_ForumBoard'); $t = $boards->escape(Module_WeChall::BOARD_CHALLS); if (false === ($board = $boards->getBy('board_title', $t))) { if (false === ($board = GWF_ForumBoard::createBoard(Module_WeChall::BOARD_CHALLS, Module_WeChall::BOARD_CHALLS_DESCR, 1, GWF_ForumBoard::GUEST_VIEW | GWF_ForumBoard::ALLOW_THREADS, 0))) { $back .= GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } $boardid = $board === false ? 0 : $board->getID(); $module->saveModuleVar('wc_chall_board', $boardid); $t = $boards->escape(Module_WeChall::BOARD_SOLUTIONS); if (false === ($board = $boards->getBy('board_title', $t))) { if (false === ($board = GWF_ForumBoard::createBoard(Module_WeChall::BOARD_SOLUTIONS, Module_WeChall::BOARD_SOLUTIONS_DESCR, 1, GWF_ForumBoard::GUEST_VIEW | GWF_ForumBoard::ALLOW_THREADS, 0))) { $back .= GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } $boardid = $board === false ? 0 : $board->getID(); $module->saveModuleVar('wc_sol_board', $boardid); $t = $boards->escape(Module_WeChall::BOARD_SITES); if (false === ($board = $boards->getBy('board_title', $t))) { if (false === ($board = GWF_ForumBoard::createBoard(Module_WeChall::BOARD_SITES, Module_WeChall::BOARD_SITES_DESCR, 1, GWF_ForumBoard::GUEST_VIEW | GWF_ForumBoard::ALLOW_THREADS, 0))) { $back .= GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } $boardid = $board === false ? 0 : $board->getID(); $module->saveModuleVar('wc_site_board', $boardid); return $back; }
private function move($dir = -1, $bid) { if (false === ($board = GWF_ForumBoard::getBoard($bid))) { return $this->module->error('err_board'); } if ($board->isRoot()) { return GWF_HTML::err('ERR_PARAMETER', array(__FILE__, __LINE__, 'board_is_root')); } $myPos = $board->getVar('board_pos'); $pid = $board->getVar('board_pid'); $cmp = $dir === 1 ? '>' : '<'; $orderby = $dir === 1 ? 'board_pos ASC' : 'board_pos DESC'; if (false === ($swap = $board->selectFirstObject('*', "board_pid={$pid} AND board_pos{$cmp}{$myPos}", $orderby))) { return $this->module->requestMethodB('Forum'); } $swapPos = $swap->getVar('board_pos'); if (false === $board->saveVar('board_pos', $swapPos)) { return GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__); } if (false === $swap->saveVar('board_pos', $myPos)) { return GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__); } $this->cleanupPositions(); $this->module->setCurrentBoard(GWF_ForumBoard::getBoard($pid)); GWF_ForumBoard::init(true, true); return $this->module->requestMethodB('Forum'); }
public static function onCronjob(Module_Forum $module) { GWF_ForumBoard::init(false, true); self::start('Forum'); // self::autoModeration($module); self::emailSubscription($module); self::fixCounters($module); self::end('Forum'); }
private function sanitize($boardid) { if (false === ($this->board = GWF_ForumBoard::getBoard($boardid))) { return $this->module->error('err_board'); } if (!$this->board->hasPermissionS()) { return GWF_HTML::err('ERR_NO_PERMISSION'); } return false; }
public static function hasSubscribed($userid, $boardid) { $curr = GWF_ForumBoard::getBoard($boardid); while ($curr !== false) { if (self::hasSubscribedB($userid, $curr->getID())) { return true; } $curr = $curr->getParent(); } return false; }
private function onAddThread() { $form = $this->getForm(); if (false !== ($error = $form->validate($this->module))) { return $error . $this->templateAddThread(); } $user = GWF_Session::getUser(); $is_mod = $user === false && $this->module->isGuestPostModerated(); $title = $form->getVar('title'); $message = $form->getVar('message'); $bid = $this->board->getID(); $gid = $this->board->getGroupID(); $options = 0; $options |= $is_mod === false ? 0 : GWF_ForumThread::IN_MODERATION; $options |= $this->board->isGuestView() ? GWF_ForumThread::GUEST_VIEW : 0; // $options |= Common::getPost('guest_view') === false ? 0 : GWF_ForumThread::GUEST_VIEW; $date = GWF_Time::getDate(GWF_Time::LEN_SECOND); $thread = GWF_ForumThread::fakeThread($user, $title, $bid, $gid, 1, $options, $date); if (false === $thread->insert()) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } $tid = $thread->getID(); $gid = $thread->getGroupID(); $options = 0; $options |= Common::getPost('bbcode') === false ? 0 : GWF_ForumPost::DISABLE_BB; $options |= Common::getPost('smileys') === false ? 0 : GWF_ForumPost::DISABLE_SMILE; $options |= $is_mod === false ? 0 : GWF_ForumPost::IN_MODERATION; $options |= $this->board->isGuestView() ? GWF_ForumPost::GUEST_VIEW : 0; $post = GWF_ForumPost::fakePost($user, $title, $message, $options, $tid, $gid, $date); if (false === $post->insert()) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (!$is_mod) { $thread->onApprove(); // $this->module->cachePostcoun(); return $this->module->message('msg_posted', array($thread->getLastPageHREF())); } else { GWF_ForumSubscription::sendModerateThread($this->module, $thread, $message); return $this->module->message('msg_posted_mod', array($this->board->getShowBoardHREF())); } }
private static function createLangBoard(Module_Forum $module, GWF_Language $lang, $parent) { $iso = $lang->getISO(); $title = $module->langISO($iso, 'lang_board_title', array($lang->getVar('name'))); if (false !== ($board = GWF_ForumBoard::getByTitle($title))) { return ''; } $descr = $module->langISO($iso, 'lang_board_descr', array($lang->getVar('lang_nativename'))); $options = GWF_ForumBoard::GUEST_VIEW | GWF_ForumBoard::ALLOW_THREADS; if (false === ($board = GWF_ForumBoard::createBoard($title, $descr, $parent, $options, 0))) { return GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__); } return ''; }
public function execute() { GWF_ForumBoard::init(true); if (false !== ($error = $this->sanitize())) { return $error; } GWF_Website::addJavascript(GWF_WEB_ROOT . 'js/module/Forum/gwf_forum.js'); if ($this->module->cfgUseGTranslate()) { GWF_Website::addJavascript(Common::getProtocol() . '://www.google.com/jsapi'); GWF_Website::addJavascriptInline('google.load("language", "1");'); } GWF_Website::setPageTitle($this->module->lang('pt_thread', array($this->thread->getBoard()->getVar('board_title'), $this->thread->getVar('thread_title')))); return $this->templateThread(); }
public function templateForum() { $by = urlencode(Common::getGetString('tby', 'thread_lastdate')); $dir = urlencode(Common::getGetString('tdir', 'DESC')); $bby = urlencode(Common::getGetString('bby', 'board_pos')); $bdir = urlencode(Common::getGetString('bdir', 'ASC')); $orderby = GDO::table('GWF_ForumThread')->getMultiOrderby($by, $dir); $bid = $this->board->getVar('board_bid'); $bt = $this->board->urlencodeSEO('board_title'); $tVars = array('boards' => $this->board->getBoardPage($this->bPage, $this->tpp), 'board' => $this->board, 'pagemenu_boards' => GWF_PageMenu::display($this->bPage, $this->nBPages, sprintf(GWF_WEB_ROOT . 'forum-b%s/bby/%s/%s/%s-p%%PAGE%%.html', $bid, $bby, $bdir, $bt)), 'threads' => $this->board->getThreads($this->tpp, $this->page, $orderby), 'pagemenu_threads' => GWF_PageMenu::display($this->page, $this->nPages, sprintf(GWF_WEB_ROOT . 'forum-b%s/tby/%s/%s/%s-p%%PAGE%%.html', $bid, $by, $dir, $bt)), 'new_thread_allowed' => $this->board->isNewThreadAllowed(), 'unread_threads' => GWF_ForumThread::getUnreadThreadCount(GWF_Session::getUser()), 'latest_threads' => GWF_ForumThread::getLatestThreads($this->module->getNumLatestThreads()), 'href_options' => GWF_WEB_ROOT . 'forum/options', 'href_unread' => $this->module->getMethodURL('Unread'), 'href_search' => GWF_WEB_ROOT . 'forum/search', 'board_sort_url' => GWF_WEB_ROOT . sprintf('forum-b%s/bby/%%BY%%/%%DIR%%/%s-p1.html', $bid, $bt), 'thread_sort_url' => GWF_WEB_ROOT . sprintf('forum-b%s/bby/%s/%s/bp-%d/tby/%%BY%%/%%DIR%%/%s-p1.html', $bid, $bby, $bdir, $this->bPage, $bt), 'href_polls' => GWF_WEB_ROOT . 'poll_overview'); return $this->module->templatePHP('forum.php', $tVars); }
private function onAddBoard() { $form = $this->getForm(); if (false !== ($error = $form->validate($this->module))) { return $error . $this->templateAddBoard(); } $title = $form->getVar('title'); $descr = $form->getVar('descr'); $parentid = $form->getVar('parentid'); $groupid = $form->getVar('groupid'); $options = 0; $options |= Common::getPost('allow_threads') === false ? 0 : GWF_ForumBoard::ALLOW_THREADS; $options |= Common::getPost('is_locked') === false ? 0 : GWF_ForumBoard::LOCKED; $options |= Common::getPost('guests') === false ? 0 : GWF_ForumBoard::GUEST_POSTS; $options |= Common::getPost('guest_view') === false ? 0 : GWF_ForumBoard::GUEST_VIEW; if (false === ($board = GWF_ForumBoard::createBoard($title, $descr, $parentid, $options, $groupid))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } return $this->module->message('msg_board_added', array($board->getParent()->getShowBoardHREF())); }
private function createBoard(GWF_Group $group) { $name = $group->getName(); $pid = $this->module->getForumBoard()->getID(); // $pid = Common::clamp($this->module->cfgBID(), 1); if (false === GWF_ForumBoard::getByID($pid)) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } $groupid = $group->getID(); $options = GWF_ForumBoard::ALLOW_THREADS; if (false === ($board = GWF_ForumBoard::createBoard('Usergroup: ' . $name, 'Board for the ' . $name . ' group', $pid, $options, $groupid))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $group->saveVar('group_bid', $board->getID())) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false !== ($error = $this->module->adjustFlags($group))) { return $error; } return false; }
/** * Get a newsboard for a language. * @param GWF_Language $lang * @param int $pid rootid * @return GWF_ForumBoard */ private function getNewsForumLang(GWF_Language $lang, $pid) { $pid = (int) $pid; $title = $lang->escaped('lang_nativename'); // found old board if (false !== ($board = GDO::table('GWF_ForumBoard')->selectFirst("board_pid={$pid} AND board_title='{$title}'"))) { return $board; } /// Create new board $options = GWF_ForumBoard::GUEST_VIEW; $descr = $this->module->langISO($lang->getISO(), 'board_lang_descr', array($lang->displayName())); $board = GWF_ForumBoard::createBoard($title, $descr, $pid, $options); return $board; }
public function adjustFlags(GWF_Group $group) { if (false === ($mod_forum = GWF_Module::getModule('Forum'))) { return false; } $mod_forum->onInclude(); if (false === ($board = GWF_ForumBoard::getByID($group->getBoardID()))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } # Adjust Board and Thread Flags $gid = 0; $guestview = true; switch ($group->getVisibleMode()) { case GWF_Group::VISIBLE: // $board->saveVar('board_gid', 0); // $board->saveGuestView(true); // $board->saveOption(GWF_ForumBoard::GUEST_VIEW, true); // $this->adjustThreads($board, 0, true); // return false; break; case GWF_Group::COMUNITY: // $board->saveVar('board_gid', 0); // $board->saveGuestView(false); // $board->saveOption(GWF_ForumBoard::GUEST_VIEW, false); $guestview = false; break; case GWF_Group::HIDDEN: case GWF_Group::SCRIPT: // $board->saveVar('board_gid', $group->getID()); // $board->saveGuestView(false); // $board->saveOption(GWF_ForumBoard::GUEST_VIEW, false); $gid = $group->getID(); $guestview = false; break; default: return GWF_HTML::err('ERR_GENERAL', array(__FILE__, __LINE__)); } $board->saveGroupID($gid); $board->saveGuestView($guestview); }
public static function includeForums() { if (false !== GWF_Module::loadModuleDB('Forum', true)) { GWF_ForumBoard::init(true); } }
<?php GWF_Module::loadModuleDB('Forum', true); GWF_ForumBoard::init(true); $show_tags_and_filters = is_array($tVars['tags']); $solved_bits = $tVars['solved_bits']; $challs = array(); foreach ($tVars['challs'] as $chall) { if (isset($solved_bits[$chall->getID()])) { if (!$tVars['sel_unsolved']) { $challs[] = $chall; } } else { if (!$tVars['sel_solved']) { $challs[] = $chall; } } } $by = $tVars['by']; $dir = $tVars['dir']; if ($show_tags_and_filters) { $cloud = ''; $cloud .= '<div class="gwf_tags_outer">' . PHP_EOL; $cloud .= '<div class="gwf_tags">' . PHP_EOL; $cloud_tags = ''; foreach ($tVars['tags'] as $tag => $count) { $count = 0; foreach ($challs as $chall) { $chall instanceof WC_Challenge; if ($chall->hasTag($tag)) { $count++;
echo $tLang->lang('it_graph_sitechalls', array($name)); ?> " alt="<?php echo $tLang->lang('it_graph_sitechalls', array($name)); ?> "></img></div> <?php } ?> <?php #} ?> <div class="cl"></div> <?php } ?> <?php if ('0' !== ($tid = $site->getVar('site_threadid'))) { $_GET['tid'] = $tid; $_GET['last_page'] = true; if (false !== ($forum = GWF_Module::loadModuleDB('Forum', true, true))) { GWF_ForumBoard::init(true, false); echo $forum->requestMethodB('ShowThread'); } } $dtitle = $site->getVar('site_name'); $args = array($dtitle); GWF_Website::setPageTitle($tLang->lang('pt_site_detail', $args)); GWF_Website::setMetaTags($tLang->lang('mt_site_detail', $args)); GWF_Website::setMetaDescr($tLang->lang('md_site_detail', $args));
private static function getBoardTreeText(GWF_ForumBoard $board) { $tree = $board->getBoardTree(); $back = ''; foreach ($tree as $b) { list($reserved, $bid, $title) = $b; $back .= sprintf('->%s', GWF_HTML::display($title)); } return substr($back, 2); }
/** * Move this board to another. * @param GWF_ForumBoard $newParent * @return true|false */ public function move(GWF_ForumBoard $newParent) { $newpid = $newParent->getID(); if (false === $this->getParent()->adjustCounters(-$this->getThreadCount(), -$this->getPostCount())) { return false; } if (false === $this->saveVar('board_pid', $newParent->getID())) { return false; } if (false === $newParent->adjustCounters($this->getThreadCount(), $this->getPostCount())) { return false; } return true; }
public function validate_parentid($arg) { if (false === ($board = GWF_ForumBoard::getBoard($arg))) { return $this->lang('err_parentid'); } return false; }
public function onCreateSite(Module_WeChall $module, &$back = '') { if (!$this->insert()) { $back = GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } elseif (!self::onCreateVotes()) { $back = GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } elseif (!self::onCreateBoard()) { $back = GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } elseif (!GWF_ForumBoard::init(true, true) || !self::onCreateThread($module)) { $back = GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } else { return true; } return false; }
/** * @return GWF_ForumBoard */ public function getBoard() { return GWF_ForumBoard::getBoard($this->getBoardID()); }
private function changeGroupName(GWF_Group $group, $new_name) { if ($new_name === $group->getVar('group_name')) { return true; } if (false === ($mod_forum = GWF_Module::getModule('Forum'))) { return true; } $mod_forum->onInclude(); if (false === ($board = GWF_ForumBoard::getByID($group->getBoardID()))) { return false; } if (false === $group->saveVar('group_name', $new_name)) { return false; } if (false === $board->saveVars(array('board_title' => 'Usergroup: ' . $new_name, 'board_descr' => 'Board for the ' . $new_name . ' group'))) { return false; } return true; }
$founder = $group->getFounder(); $in_grp = $user->isInGroupName($groupname); if ($in_grp) { $ugopt = $user->getUserGroupOptions($group->getID()); #getGroupByName($groupname)->getInt('group_options'); // $ugopt = $user->getUserGroupOptions($groupname); } else { $ugopt = 0; } if (($ugopt & (GWF_UserGroup::LEADER | GWF_UserGroup::CO_LEADER)) > 0) { $edit = GWF_Button::edit(GWF_WEB_ROOT . 'edit_usergroup/' . $group->getID() . '/' . $group->urlencodeSEO('group_name')); } else { $edit = ''; } $parent_board = $tVars['module']->getForumBoard(); if (false !== ($board = GWF_ForumBoard::getByID($group->getVar('group_bid')))) { $href = $board->getShowBoardHREF(); $forum = GWF_HTML::anchor($href, $group->getVar('group_name')); } else { $forum = $group->display('group_name'); } $members = GWF_HTML::anchor(GWF_WEB_ROOT . 'users_in_group/' . $group->getID() . '/' . $group->urlencodeSEO('group_name'), $group->getVar('group_memberc')); echo GWF_Table::rowStart(); echo GWF_Table::column($edit . $forum, 'nowrap'); echo GWF_Table::column($members, 'gwf_num'); echo GWF_Table::column($founder->displayProfileLink()); if ($user->isGuest()) { echo '<td></td>' . PHP_EOL; } elseif ($in_grp) { echo GWF_Table::column(sprintf('<input type="submit" name="part[%s]" value="%s" />', $group->getVar('group_id'), $btn_part)); } elseif ($group->isOptionEnabled(GWF_Group::FREE)) {
private function onMove(GWF_ForumThread $t, GWF_ForumBoard $b) { // if (false === ($b->isThreadAllowed())) { // $_POST['move'] = $t->getBoardID(); // return $this->module->error('err_no_thread_allowed'); // } $pc = $t->getPostCount(); if (false === $t->getBoard()->adjustCounters(-1, -$pc)) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $b->adjustCounters(1, $pc)) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $t->saveVars(array('thread_bid' => $b->getID(), 'thread_gid' => $b->getGroupID()))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $t->saveVar('thread_bid', $b->getID())) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } return $this->module->message('msg_thread_moved', array($t->display('thread_title'), $b->display('board_title'))); }