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);
         }
     }
 }
Exemple #2
0
 public function onDeleteBoard()
 {
     if (false === $this->board->deleteBoard()) {
         return GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__);
     }
     return $this->module->message('msg_board_deleted');
 }
Exemple #3
0
 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;
 }
Exemple #4
0
 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');
 }
Exemple #5
0
 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');
 }
Exemple #6
0
 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;
 }
Exemple #8
0
 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()));
     }
 }
Exemple #9
0
 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 '';
 }
Exemple #10
0
 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();
 }
Exemple #11
0
 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);
 }
Exemple #12
0
 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()));
 }
Exemple #13
0
 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;
 }
Exemple #14
0
 /**
  * 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;
 }
Exemple #15
0
 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);
 }
Exemple #16
0
 public static function includeForums()
 {
     if (false !== GWF_Module::loadModuleDB('Forum', true)) {
         GWF_ForumBoard::init(true);
     }
 }
Exemple #17
0
<?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++;
Exemple #18
0
        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);
 }
Exemple #20
0
 /**
  * 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;
 }
Exemple #21
0
 public function validate_parentid($arg)
 {
     if (false === ($board = GWF_ForumBoard::getBoard($arg))) {
         return $this->lang('err_parentid');
     }
     return false;
 }
Exemple #22
0
 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;
 }
Exemple #23
0
 /**
  * @return GWF_ForumBoard
  */
 public function getBoard()
 {
     return GWF_ForumBoard::getBoard($this->getBoardID());
 }
Exemple #24
0
 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;
 }
Exemple #25
0
 $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)) {
Exemple #26
0
 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')));
 }