global $portlist;
    $list = array();
    foreach ($portlist as $ifn => $ifinfo) {
        if (is_jumbo_capable($ifn)) {
            $list[$ifn] = $ifn . ' (' . $ifinfo['mac'] . ')';
        }
    }
    return $list;
}
include "head.inc";
if ($input_errors) {
    print_input_errors($input_errors);
}
$form = new Form(new Form_Button('Submit', gettext("Save")));
$section = new Form_Section('QinQ Configuration');
$section->addInput(new Form_Select('if', 'Parent interface', $pconfig['if'], build_parent_list()))->setHelp('Only QinQ capable interfaces will be shown.');
$section->addInput(new Form_Input('tag', 'First level tag', 'number', $pconfig['tag'], ['max' => '4094', 'min' => '1']))->setHelp('This is the first level VLAN tag. On top of this are stacked the member VLANs defined below.');
$section->addInput(new Form_Checkbox('autogroup', 'Option(s)', 'Adds interface to QinQ interface groups', $pconfig['autogroup']))->setHelp('Allows rules to be written more easily');
$section->addInput(new Form_Input('descr', 'Description', 'text', $pconfig['descr']))->setHelp('You may enter a description here for your reference (not parsed).');
$section->addInput(new Form_StaticText('Member(s)', 'You can specify ranges in the inputs below. Enter a range (2-3) or individual numbers.' . '<br />' . 'Click "Duplicate" as many times as needed to add new inputs'));
if (isset($id) && $a_qinqs[$id]) {
    $section->addInput(new Form_Input('id', null, 'hidden', $id));
}
$counter = 0;
$members = $pconfig['members'];
// List each of the member tags from the space-separated list
if ($members != "") {
    $item = explode(" ", $members);
} else {
    $item = array('');
}
Example #2
0
function build_parent_list()
{
    $parentlist = array();
    $portlist = get_possible_listen_ips();
    foreach ($portlist as $ifn => $ifinfo) {
        $parentlist[$ifn] = $ifinfo;
    }
    return $parentlist;
}
$pgtitle = array(gettext("Interfaces"), gettext("GRE"), gettext("Edit"));
$shortcut_section = "interfaces";
include "head.inc";
require_once 'classes/Form.class.php';
$form = new Form();
$section = new Form_Section('GRE Configuration');
$section->addInput(new Form_Select('if', 'Parent Interface', $pconfig['if'], build_parent_list()))->setHelp('This interface serves as the local address to be used for the GRE tunnel.');
$section->addInput(new Form_IpAddress('remote-addr', 'GRE Remote Address', $pconfig['remote-addr']))->setHelp('Peer address where encapsulated GRE packets will be sent.');
$section->addInput(new Form_IpAddress('tunnel-local-addr', 'GRE tunnel local address', $pconfig['tunnel-local-addr']))->setHelp('Local GRE tunnel endpoint.');
$section->addInput(new Form_IpAddress('tunnel-remote-addr', 'GRE tunnel remote address', $pconfig['tunnel-remote-addr']))->setHelp('Remote GRE address endpoint.');
$section->addInput(new Form_Select('tunnel-remote-net', 'GRE tunnel remote subnet', $pconfig['tunnel-remote-net'], array_combine(range(128, 1, -1), range(128, 1, -1))))->setHelp('The subnet is used for determining the network that is tunnelled');
$section->addInput(new Form_Checkbox('link0', 'Route Caching', 'Specify if route caching can be enabled. (Be careful with these settings on dynamic networks.)', $pconfig['link0']));
$section->addInput(new Form_Checkbox('link1', 'ECN friendly behavior', 'ECN friendly behavior violates RFC2893. This should be used in mutual agreement with the peer. ', $pconfig['link1']));
$section->addInput(new Form_Checkbox('link2', 'WCCP Version', 'Check this box for WCCP encapsulation version 2, or leave unchecked for version 1.', $pconfig['link2']));
$section->addInput(new Form_Input('descr', 'Description', 'text', $pconfig['descr']))->setHelp('You may enter a description here for your reference (not parsed).');
$section->addInput(new Form_Input('greif', null, 'hidden', $pconfig['greif']));
if (isset($id) && $a_gres[$id]) {
    $section->addInput(new Form_Input('id', null, 'hidden', $id));
}
$form->add($section);
print $form;
include "foot.inc";
    $portlist = get_possible_listen_ips();
    $count = 0;
    foreach ($portlist as $ifn => $ifinfo) {
        if (preg_match($g['wireless_regex'], $ifn)) {
            $parentlist[$ifn] = htmlspecialchars($ifn . '(' . $ifinfo['mac'] . ')');
            $count++;
        }
    }
    if ($count > 0) {
        return $parentlist;
    } else {
        return array('0' => gettext('None available'));
    }
}
$pgtitle = array(gettext("Interfaces"), gettext("Wireless"), gettext("Edit"));
include "head.inc";
if ($input_errors) {
    print_input_errors($input_errors);
}
$form = new Form();
$section = new Form_Section('Wireless Interface Configuration');
$section->addInput(new Form_Select('if', 'Parent Interface', $pconfig['if'], build_parent_list()));
$section->addInput(new Form_Select('mode', 'Mode', $pconfig['mode'], array('bss' => gettext('Infrastructure (BSS)'), 'adhoc' => gettext('Ad-hoc (IBSS)'), 'hostap' => gettext('Access Point'))));
$section->addInput(new Form_Input('descr', 'Description', 'text', $pconfig['descr']))->setHelp('You may enter a description here for your reference (not parsed).');
$section->addInput(new Form_Input('cloneif', null, 'hidden', $pconfig['cloneif']));
if (isset($id) && $a_clones[$id]) {
    $section->addInput(new Form_Input('id', null, 'hidden', $id));
}
$form->add($section);
print $form;
include "foot.inc";
function makeprintablenav($pid = "0", $depth = "--")
{
    global $db, $pforumcache, $fid, $forum, $lang;
    if (!is_array($pforumcache)) {
        $parlist = build_parent_list($fid, "fid", "OR", $forum['parentlist']);
        $query = $db->simple_select("forums", "name, fid, pid", "{$parlist}", array('order_by' => 'pid, disporder'));
        while ($forumnav = $db->fetch_array($query)) {
            $pforumcache[$forumnav['pid']][$forumnav['fid']] = $forumnav;
        }
        unset($forumnav);
    }
    if (is_array($pforumcache[$pid])) {
        foreach ($pforumcache[$pid] as $key => $forumnav) {
            $forums .= "+" . $depth . " {$lang->forum} {$forumnav['name']} (<i>" . $mybb->settings['bburl'] . "/" . get_forum_link($forumnav['fid']) . "</i>)<br />\n";
            if ($pforumcache[$forumnav['fid']]) {
                $newdepth = $depth . "-";
                $forums .= makeprintablenav($forumnav['fid'], $newdepth);
            }
        }
    }
    return $forums;
}
Example #5
0
 }
 // Show subforums.
 $query = $db->simple_select("forums", "COUNT(fid) AS subforums", "pid='{$id}' AND status='1'");
 $subforumcount = $db->fetch_field($query, "subforums");
 if ($subforumcount > 0) {
     echo "<div class=\"forumlist\">\n";
     echo "<h3>{$lang->subforums}</h3>\n";
     echo "<ol>\n";
     $forums = build_archive_forumbits($forum['fid']);
     echo $forums;
     echo "</ol>\n</div>\n";
 }
 archive_multipage($threadcount, $perpage, $page, "{$base_url}forum-{$id}");
 // Get the announcements if the forum is not a category.
 if ($forum['type'] == 'f') {
     $sql = build_parent_list($forum['fid'], "fid", "OR", $forum['parentlist']);
     $time = TIME_NOW;
     $query = $db->simple_select("announcements", "*", "startdate < '{$time}' AND (enddate > '{$time}' OR enddate=0) AND ({$sql} OR fid='-1')");
     if ($db->num_rows($query) > 0) {
         echo "<div class=\"announcementlist\">\n";
         echo "<h3>{$lang->forumbit_announcements}</h3>";
         echo "<ol>\n";
         while ($announcement = $db->fetch_array($query)) {
             $announcement['subject'] = $parser->parse_badwords($announcement['subject']);
             echo "<li><a href=\"{$base_url}announcement-{$announcement['aid']}.html\">" . htmlspecialchars_uni($announcement['subject']) . "</a></li>";
         }
         echo "</ol>\n</div>\n";
     }
 }
 // Get the stickies if the forum is not a category.
 if ($forum['type'] == 'f') {
Example #6
0
     $permission_data = $db->fetch_array($query);
     if (!$fid) {
         $fid = $permission_data['fid'];
     }
     if (!$gid) {
         $gid = $permission_data['gid'];
     }
     if (!$pid) {
         $pid = $permission_data['pid'];
     }
     $query = $db->simple_select("usergroups", "*", "gid='{$gid}'");
     $usergroup = $db->fetch_array($query);
     $query = $db->simple_select("forums", "*", "fid='{$fid}'");
     $forum = $db->fetch_array($query);
     $sperms = $permission_data;
     $sql = build_parent_list($fid);
     $query = $db->simple_select("forumpermissions", "*", "{$sql} AND gid='{$gid}'");
     $customperms = $db->fetch_array($query);
     if ($permission_data['pid']) {
         $permission_data['usecustom'] = 1;
         echo $form->generate_hidden_field("pid", $pid);
     } else {
         echo $form->generate_hidden_field("fid", $fid);
         echo $form->generate_hidden_field("gid", $gid);
         if (!$customperms['pid']) {
             $permission_data = usergroup_permissions($gid);
         } else {
             $permission_data = forum_permissions($fid, 0, $gid);
         }
     }
 }
Example #7
0
function get_announcement_list($foruminfo, $fid)
{
    // Gather forum stats
    global $db, $lang, $theme, $plugins, $mybb, $session, $settings, $time, $mybbgroups, $cache;
    $has_announcements = $has_modtools = false;
    $forum_stats = $cache->read("forumsdisplay");
    $parser = new postParser();
    if (is_array($forum_stats)) {
        if (!empty($forum_stats[-1]['modtools']) || !empty($forum_stats[$fid]['modtools'])) {
            // Mod tools are specific to forums, not parents
            $has_modtools = true;
        }
        if (!empty($forum_stats[-1]['announcements']) || !empty($forum_stats[$fid]['announcements'])) {
            // Global or forum-specific announcements
            $has_announcements = true;
        }
    }
    $parentlist = $foruminfo['parentlist'];
    $parentlistexploded = explode(",", $parentlist);
    foreach ($parentlistexploded as $mfid) {
        if (!empty($forum_stats[$mfid]['announcements'])) {
            $has_announcements = true;
        }
    }
    $announcementlist = $topic_list = array();
    if ($has_announcements == true) {
        $limit = '';
        $announcements = '';
        if ($mybb->settings['announcementlimit']) {
            $limit = "LIMIT 0, " . $mybb->settings['announcementlimit'];
        }
        $sql = build_parent_list($fid, "fid", "OR", $parentlist);
        $time = TIME_NOW;
        $query = $db->query("\n\t\t\tSELECT a.*, u.username\n\t\t\tFROM " . TABLE_PREFIX . "announcements a\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (u.uid=a.uid)\n\t\t\tWHERE a.startdate<='{$time}' AND (a.enddate>='{$time}' OR a.enddate='0') AND ({$sql} OR fid='-1')\n\t\t\tORDER BY a.startdate DESC {$limit}\n\t\t");
        // See if this announcement has been read in our announcement array
        $cookie = array();
        if (isset($mybb->cookies['mybb']['announcements'])) {
            $cookie = my_unserialize(stripslashes($mybb->cookies['mybb']['announcements']));
        }
        $announcementlist = '';
        $bgcolor = alt_trow(true);
        // Reset the trow colors
        while ($announcement = $db->fetch_array($query)) {
            if ($announcement['startdate'] > $mybb->user['lastvisit'] && !$cookie[$announcement['aid']]) {
                $new_class = ' class="subject_new"';
                $folder = "newfolder";
            } else {
                $new_class = ' class="subject_old"';
                $folder = "folder";
            }
            // Mmm, eat those announcement cookies if they're older than our last visit
            if (isset($cookie[$announcement['aid']]) && $cookie[$announcement['aid']] < $mybb->user['lastvisit']) {
                unset($cookie[$announcement['aid']]);
            }
            $announcement['announcementlink'] = get_announcement_link($announcement['aid']);
            $announcement['subject'] = $parser->parse_badwords($announcement['subject']);
            $announcement['subject'] = htmlspecialchars_uni($announcement['subject']);
            $postdate = my_date('relative', $announcement['startdate']);
            $announcement['profilelink'] = build_profile_link($announcement['username'], $announcement['uid']);
            $announcementlist[] = $announcement;
        }
        if (empty($cookie)) {
            // Clean up cookie crumbs
            my_setcookie('mybb[announcements]', 0, TIME_NOW - 60 * 60 * 24 * 365);
        } else {
            if (!empty($cookie)) {
                my_setcookie("mybb[announcements]", addslashes(serialize($cookie)), -1);
            }
        }
        foreach ($announcementlist as $announce) {
            $user_info = get_user($announce['uid']);
            $icon_url = absolute_url($user_info['avatar']);
            $xmlrpc_topic = new xmlrpcval(array('forum_id' => new xmlrpcval($fid, 'string'), 'topic_id' => new xmlrpcval('ann_' . $announce['aid'], 'string'), 'topic_title' => new xmlrpcval(basic_clean($announce['subject']), 'base64'), 'topic_author_id' => new xmlrpcval($announce['uid'], 'string'), 'topic_author_name' => new xmlrpcval(basic_clean($announce['username']), 'base64'), 'icon_url' => new xmlrpcval(absolute_url($icon_url), 'string'), 'reply_number' => new xmlrpcval(0, 'int'), 'view_number' => new xmlrpcval(0, 'int'), 'short_content' => new xmlrpcval(process_short_content($announce['message'], $parser), 'base64')), 'struct');
            $topic_list[] = $xmlrpc_topic;
        }
    }
    $response = new xmlrpcval(array('total_topic_num' => new xmlrpcval(count($announcementlist), 'int'), 'forum_id' => new xmlrpcval($fid), 'forum_name' => new xmlrpcval(basic_clean($foruminfo['name']), 'base64'), 'can_post' => new xmlrpcval(false, 'boolean'), 'can_upload' => new xmlrpcval(false, 'boolean'), 'topics' => new xmlrpcval($topic_list, 'array')), 'struct');
    return new xmlrpcresp($response);
}
Example #8
0
    $ratingadd = '';
    $lpbackground = "trow1";
    $colspan = "6";
}
if ($ismod) {
    ++$colspan;
}
// Get Announcements
$announcementlist = '';
if ($has_announcements == true) {
    $limit = '';
    $announcements = '';
    if ($mybb->settings['announcementlimit']) {
        $limit = "LIMIT 0, " . $mybb->settings['announcementlimit'];
    }
    $sql = build_parent_list($fid, "fid", "OR", $parentlist);
    $time = TIME_NOW;
    $query = $db->query("\n\t\tSELECT a.*, u.username\n\t\tFROM " . TABLE_PREFIX . "announcements a\n\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (u.uid=a.uid)\n\t\tWHERE a.startdate<='{$time}' AND (a.enddate>='{$time}' OR a.enddate='0') AND ({$sql} OR fid='-1')\n\t\tORDER BY a.startdate DESC {$limit}\n\t");
    // See if this announcement has been read in our announcement array
    $cookie = array();
    if (isset($mybb->cookies['mybb']['announcements'])) {
        $cookie = my_unserialize(stripslashes($mybb->cookies['mybb']['announcements']));
    }
    $announcementlist = '';
    $bgcolor = alt_trow(true);
    // Reset the trow colors
    while ($announcement = $db->fetch_array($query)) {
        if ($announcement['startdate'] > $mybb->user['lastvisit'] && !$cookie[$announcement['aid']]) {
            $new_class = ' class="subject_new"';
            $folder = "newfolder";
        } else {
Example #9
0
function xthreads_breadcrumb_hack_printthread()
{
    global $pforumcache;
    //if(!is_array($pforumcache)) {
    // need to override because we want the 'xthreads_hidebreadcrumb' field
    global $forum, $db, $fid;
    $parlist = build_parent_list($fid, 'fid', 'OR', $forum['parentlist']);
    $query = $db->simple_select('forums', 'name, fid, pid, xthreads_hidebreadcrumb', $parlist, array('order_by' => 'pid, disporder'));
    while ($forumnav = $db->fetch_array($query)) {
        $pforumcache[$forumnav['pid']][$forumnav['fid']] = $forumnav;
    }
    unset($forumnav, $forum, $fid);
    // unsetting the global references
    //}
    if (!is_array($pforumcache[0])) {
        return;
    }
    // do the same as xthreads_breadcrumb_hack() but in reverse
    foreach ($pforumcache[0] as &$pforum) {
        // will only ever loop once
        if ($pforum['pid']) {
            continue;
        }
        // paranoia
        // firstly, skip any hidden top-level parents
        $prevforum =& $pforum;
        while ($prevforum && $prevforum['xthreads_hidebreadcrumb'] && !empty($pforumcache[$prevforum['fid']])) {
            $prevforum =& xthreads_get_array_first($pforumcache[$prevforum['fid']]);
        }
        if ($prevforum) {
            if ($prevforum['pid']) {
                $prevforum['pid'] = 0;
                $pforum = $prevforum;
            }
            $forum = null;
            if ($pforumcache[$prevforum['fid']]) {
                $forum =& xthreads_get_array_first($pforumcache[$prevforum['fid']]);
            }
            while ($forum) {
                if (!$forum['xthreads_hidebreadcrumb']) {
                    // rewrite parent fid (won't actually change if there's no hidden breadcrumbs in-between)
                    $forum['pid'] = $prevforum['fid'];
                    $pforumcache[$forum['pid']] = array($forum['fid'] => $forum);
                    $prevforum =& $forum;
                }
                if (!$pforumcache[$forum['fid']]) {
                    // we always display the active breadcrumb, so set this if hidden
                    if ($forum['xthreads_hidebreadcrumb']) {
                        $forum['pid'] = $prevforum['fid'];
                        $pforumcache[$forum['pid']] = array($forum['fid'] => $forum);
                    }
                    break;
                }
                $forum =& xthreads_get_array_first($pforumcache[$forum['fid']]);
            }
        }
    }
}
Example #10
0
/**
 * Return the permissions for a moderator in a specific forum
 *
 * @param fid The forum ID
 * @param uid The user ID to fetch permissions for (0 assumes current logged in user)
 * @param string The parent list for the forum (if blank, will be fetched)
 * @return array Array of moderator permissions for the specific forum
 */
function get_moderator_permissions($fid, $uid = "0", $parentslist = "")
{
    global $mybb, $db;
    static $modpermscache;
    if ($uid < 1) {
        $uid = $mybb->user['uid'];
    }
    if ($uid == 0) {
        return false;
    }
    if (!isset($modpermscache[$fid][$uid])) {
        if (!$parentslist) {
            $parentslist = get_parent_list($fid);
        }
        $sql = build_parent_list($fid, "fid", "OR", $parentslist);
        $query = $db->simple_select("moderators", "*", "uid='{$uid}' AND {$sql}");
        $perms = $db->fetch_array($query);
        if (!$perms) {
            return false;
        }
        $modpermscache[$fid][$uid] = $perms;
    } else {
        $perms = $modpermscache[$fid][$uid];
    }
    return $perms;
}