// print " (last edited ". relative_time($motion_data["edit_date"]) . " by " . pretty_user_name($db2, $last_editor).") "; print "</div>\n"; } else { print "<p>(<a href=\"{$thispageswap}\">Swap the two divisions around</a>).</p>"; $motion_data_a = get_wiki_current_value("motion", array($divattr["division_date"], $divattr["division_number"], $divattr['house'])); $titlea = "<a href=\"" . $divattr["divhref"] . "\">" . extract_title_from_wiki_text($motion_data_a["text_body"]) . " - " . $divattr["prettydate"] . " at {$clock_time} - Division No. " . $divattr["division_number"] . "</a>"; print "<h2><a name=\"motion\">Vote (a) " . ($motion_data_a['user_id'] == 0 ? " (unedited)" : "") . "</a>: {$titlea}</h2>"; print "<div class=\"motion\">" . extract_motion_text_from_wiki_text($motion_data_a['text_body']) . "</div>\n"; $motion_data_b = get_wiki_current_value("motion", array($divattr2["division_date"], $divattr2["division_number"], $divattr2['house'])); $titleb = "<a href=\"" . $divattr2["divhref"] . "\">" . extract_title_from_wiki_text($motion_data_b["text_body"]) . " - " . $divattr2["prettydate"] . " at {$clock_time2} - Division No. " . $divattr2["division_number"] . "</a>"; print "<h2>Vote (b) " . ($motion_data_b['user_id'] == 0 ? " (unedited)" : "") . ": {$titleb}</h2>"; print "<div class=\"motion\">" . extract_motion_text_from_wiki_text($motion_data_b['text_body']) . "</div>\n"; } } if (true === function_exists('advertisement')) { advertisement('division'); } # Work out proportions for party voting (todo: cache) if ($dismode["partysummary"]) { print_party_summary_division($div_id, "", $divattr['house']); } # Division votes table if ($dismode["showwhich"]) { if ($singlemotionpage) { # title for the division table (with explanation and links to the other cases) if ($display == "summary") { print "<h2><a name=\"votes\">Rebel Voters - sorted by {$sort}</a></h2>\n"; print "<p>" . ($house == "lords" ? "Lords" : "MPs") . "\n\t\t\t\t\t\tfor which their vote in this division differed from the majority vote of their party.\n\t\t\t\t\t\tYou can see <a href=\"{$thispage}&display=allvotes{$tpsort}\">all votes</a> in this division,\n\t\t\t\t\t\tor <a href=\"{$thispage}&display=allpossible{$tpsort}\">every eligible " . ($house == "lords" ? "lord" : "MP") . "</a> who could have\n\t\t\t\t\t\tvoted in this division</p>\n"; } elseif ($display == "allvotes") { print "<h2><a name=\"votes\">All Votes Cast - sorted by {$sort}</a></h2>\n"; print "<p>" . ($house == "lords" ? "Lords" : "MPs") . "\n\t\t\t\t\t\tfor which their vote in this division differed\n\t\t\t\t\t\tfrom the majority vote of their party are marked in red.\n\t\t\t\t\t\tAlso shows which " . ($house == "lords" ? "lords" : "MPs") . "\n\t\t\t\t\t\twere ministers at the time of this vote.\n\t\t\t\t\t\tYou can also see <a href=\"{$thispage}&display=allpossible{$tpsort}\">every eligible " . ($house == "lords" ? "lord" : "MP") . "</a>\n\t\t\t\t\t\tincluding those who did not vote in this division.</p>\n";
function getcachearray($cachename, $script = '') { global $db, $timestamp, $tablepre, $timeoffset, $maxbdays, $smcols, $smrows, $charset; $cols = '*'; $conditions = ''; switch ($cachename) { case 'settings': $table = 'settings'; $conditions = "WHERE variable NOT IN ('siteuniqueid', 'mastermobile', 'bbrules', 'bbrulestxt', 'closedreason', 'creditsnotify', 'backupdir', 'custombackup', 'jswizard', 'maxonlines', 'modreasons', 'newsletter', 'welcomemsg', 'welcomemsgtxt', 'postno', 'postnocustom', 'customauthorinfo')"; break; case 'custominfo': $table = 'settings'; $conditions = "WHERE variable IN ('extcredits', 'customauthorinfo', 'postno', 'postnocustom')"; break; case 'request': $table = 'request'; $conditions = ''; break; case 'usergroups': $table = 'usergroups'; $cols = 'groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar, readaccess, allowcusbbcode'; $conditions = "ORDER BY creditslower"; break; case 'ranks': $table = 'ranks'; $cols = 'ranktitle, postshigher, stars, color'; $conditions = "ORDER BY postshigher DESC"; break; case 'announcements': $table = 'announcements'; $cols = 'id, subject, type, starttime, endtime, displayorder, groups, message'; $conditions = "WHERE starttime<='{$timestamp}' AND (endtime>='{$timestamp}' OR endtime='0') ORDER BY displayorder, starttime DESC, id DESC"; break; case 'announcements_forum': $table = 'announcements a'; $cols = 'a.id, a.author, m.uid AS authorid, a.subject, a.message, a.type, a.starttime, a.displayorder'; $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author WHERE a.type!=2 AND a.groups = '' AND a.starttime<='{$timestamp}' ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 1"; break; case in_array($cachename, array('globalstick', 'floatthreads')): $table = 'forums'; $cols = 'fid, type, fup'; $conditions = "WHERE status>0 AND type IN ('forum', 'sub') ORDER BY type"; break; case 'forums': $table = 'forums f'; $cols = 'f.fid, f.type, f.name, f.fup, f.simple, ff.viewperm, ff.formulaperm, a.uid'; $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview>'0' WHERE f.status>0 ORDER BY f.type, f.displayorder"; break; case 'onlinelist': $table = 'onlinelist'; $conditions = "ORDER BY displayorder"; break; case 'groupicon': $table = 'onlinelist'; $conditions = "ORDER BY displayorder"; break; case 'forumlinks': $table = 'forumlinks'; $conditions = "ORDER BY displayorder"; break; case 'bbcodes': $table = 'bbcodes'; $conditions = "WHERE available>'0' AND type='0'"; break; case 'bbcodes_display': $table = 'bbcodes'; $cols = 'type, tag, icon, explanation, params, prompt'; $conditions = "WHERE available='2' AND icon!='' ORDER BY displayorder"; break; case 'smilies': $table = 'smilies s'; $cols = 's.id, s.code, s.url, t.typeid'; $conditions = "LEFT JOIN {$tablepre}imagetypes t ON t.typeid=s.typeid WHERE s.type='smiley' AND s.code<>'' AND t.available='1' ORDER BY LENGTH(s.code) DESC"; break; case 'smileycodes': $table = 'imagetypes'; $cols = 'typeid, directory'; $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder"; break; case 'smileytypes': $table = 'imagetypes'; $cols = 'typeid, name, directory'; $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder"; break; case 'smilies_js': $table = 'imagetypes'; $cols = 'typeid, name, directory'; $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder"; break; case 'icons': $table = 'smilies'; $cols = 'id, url'; $conditions = "WHERE type='icon' ORDER BY displayorder"; break; case 'fields_required': $table = 'profilefields'; $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices'; $conditions = "WHERE available='1' AND required='1' ORDER BY displayorder"; break; case 'fields_optional': $table = 'profilefields'; $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices'; $conditions = "WHERE available='1' AND required='0' ORDER BY displayorder"; break; case 'ipbanned': $db->query("DELETE FROM {$tablepre}banned WHERE expiration<'{$timestamp}'"); $table = 'banned'; $cols = 'ip1, ip2, ip3, ip4, expiration'; break; case 'censor': $table = 'words'; $cols = 'find, replacement'; break; case 'medals': $table = 'medals'; $cols = 'medalid, name, image'; $conditions = "WHERE available='1'"; break; case 'magics': $table = 'magics'; $cols = 'magicid, available, identifier, name, description, weight, price'; break; case 'birthdays_index': $table = 'members'; $cols = 'uid, username, email, bday'; $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday LIMIT {$maxbdays}"; break; case 'birthdays': $table = 'members'; $cols = 'uid'; $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday"; break; case 'modreasons': $table = 'settings'; $cols = 'value'; $conditions = "WHERE variable='modreasons'"; break; case 'faqs': $table = 'faqs'; $cols = 'fpid, id, identifier, keyword'; $conditions = "WHERE identifier!='' AND keyword!=''"; break; case 'tags_viewthread': global $viewthreadtags; $taglimit = intval($viewthreadtags); $table = 'tags'; $cols = 'tagname, total'; $conditions = "WHERE closed=0 ORDER BY total DESC LIMIT {$taglimit}"; break; } $data = array(); if (!in_array($cachename, array('secqaa')) && substr($cachename, 0, 5) != 'advs_') { if (empty($table) || empty($cols)) { return ''; } $query = $db->query("SELECT {$cols} FROM {$tablepre}{$table} {$conditions}"); } switch ($cachename) { case 'settings': while ($setting = $db->fetch_array($query)) { if ($setting['variable'] == 'extcredits') { if (is_array($setting['value'] = unserialize($setting['value']))) { foreach ($setting['value'] as $key => $value) { if ($value['available']) { unset($setting['value'][$key]['available']); } else { unset($setting['value'][$key]); } } } } elseif ($setting['variable'] == 'creditsformula') { if (!preg_match("/^([\\+\\-\\*\\/\\.\\d\\(\\)]|((extcredits[1-8]|digestposts|posts|pageviews|oltime)([\\+\\-\\*\\/\\(\\)]|\$)+))+\$/", $setting['value']) || !is_null(@eval(preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$\\1", $setting['value']) . ';'))) { $setting['value'] = '$member[\'extcredits1\']'; } else { $setting['value'] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['value']); } } elseif ($setting['variable'] == 'maxsmilies') { $setting['value'] = $setting['value'] <= 0 ? -1 : $setting['value']; } elseif ($setting['variable'] == 'threadsticky') { $setting['value'] = explode(',', $setting['value']); } elseif ($setting['variable'] == 'attachdir') { $setting['value'] = preg_replace("/\\.asp|\\0/i", '0', $setting['value']); $setting['value'] = str_replace('\\', '/', substr($setting['value'], 0, 2) == './' ? DISCUZ_ROOT . $setting['value'] : $setting['value']); } elseif ($setting['variable'] == 'onlinehold') { $setting['value'] = $setting['value'] * 60; } elseif ($setting['variable'] == 'userdateformat') { if (empty($setting['value'])) { $setting['value'] = array(); } else { $setting['value'] = dhtmlspecialchars(explode("\n", $setting['value'])); $setting['value'] = array_map('trim', $setting['value']); } } elseif (in_array($setting['variable'], array('creditspolicy', 'ftp', 'secqaa', 'ec_credit', 'qihoo', 'insenz', 'spacedata', 'infosidestatus', 'uc', 'outextcredits', 'relatedtag', 'sitemessage', 'msn', 'uchome'))) { $setting['value'] = unserialize($setting['value']); } $GLOBALS[$setting['variable']] = $data[$setting['variable']] = $setting['value']; } $data['sitemessage']['time'] = !empty($data['sitemessage']['time']) ? $data['sitemessage']['time'] * 1000 : 0; $data['sitemessage']['register'] = !empty($data['sitemessage']['register']) ? explode("\n", $data['sitemessage']['register']) : ''; $data['sitemessage']['login'] = !empty($data['sitemessage']['login']) ? explode("\n", $data['sitemessage']['login']) : ''; $data['sitemessage']['newthread'] = !empty($data['sitemessage']['newthread']) ? explode("\n", $data['sitemessage']['newthread']) : ''; $data['sitemessage']['reply'] = !empty($data['sitemessage']['reply']) ? explode("\n", $data['sitemessage']['reply']) : ''; $GLOBALS['version'] = $data['version'] = DISCUZ_KERNEL_VERSION; $GLOBALS['totalmembers'] = $data['totalmembers'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members"); $GLOBALS['lastmember'] = $data['lastmember'] = $db->result_first("SELECT username FROM {$tablepre}members ORDER BY uid DESC LIMIT 1"); $data['cachethreadon'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}forums WHERE status>0 AND threadcaches>0") ? 1 : 0; $data['cronnextrun'] = $db->result_first("SELECT nextrun FROM {$tablepre}crons WHERE available>'0' AND nextrun>'0' ORDER BY nextrun LIMIT 1"); $data['ftp']['connid'] = 0; $data['indexname'] = empty($data['indexname']) ? 'index.php' : $data['indexname']; if (!$data['imagelib']) { unset($data['imageimpath']); } if (is_array($data['relatedtag']['order'])) { asort($data['relatedtag']['order']); $relatedtag = array(); foreach ($data['relatedtag']['order'] as $k => $v) { $relatedtag['status'][$k] = $data['relatedtag']['status'][$k]; $relatedtag['name'][$k] = $data['relatedtag']['name'][$k]; $relatedtag['limit'][$k] = $data['relatedtag']['limit'][$k]; $relatedtag['template'][$k] = $data['relatedtag']['template'][$k]; } $data['relatedtag'] = $relatedtag; foreach ((array) $data['relatedtag']['status'] as $appid => $status) { if (!$status) { unset($data['relatedtag']['limit'][$appid]); } } unset($data['relatedtag']['status'], $data['relatedtag']['order'], $relatedtag); } $data['seccodedata'] = $data['seccodedata'] ? unserialize($data['seccodedata']) : array(); if ($data['seccodedata']['type'] == 2) { if (extension_loaded('ming')) { unset($data['seccodedata']['background'], $data['seccodedata']['adulterate'], $data['seccodedata']['ttf'], $data['seccodedata']['angle'], $data['seccodedata']['color'], $data['seccodedata']['size'], $data['seccodedata']['animator']); } else { $data['seccodedata']['animator'] = 0; } } $secqaacheck = sprintf('%03b', $data['secqaa']['status']); $data['secqaa']['status'] = array(1 => $secqaacheck[2], 2 => $secqaacheck[1], 3 => $secqaacheck[0]); if (!$data['secqaa']['status'][2] && !$data['secqaa']['status'][3]) { unset($data['secqaa']['minposts']); } if ($data['watermarktype'] == 2 && $data['watermarktext']) { $data['watermarktext'] = unserialize($data['watermarktext']); if ($data['watermarktext']['text'] && strtoupper($charset) != 'UTF-8') { require_once DISCUZ_ROOT . 'include/chinese.class.php'; $c = new Chinese($charset, 'utf8'); $data['watermarktext']['text'] = $c->Convert($data['watermarktext']['text']); } $data['watermarktext']['text'] = bin2hex($data['watermarktext']['text']); $data['watermarktext']['fontpath'] = 'images/fonts/' . $data['watermarktext']['fontpath']; $data['watermarktext']['color'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['color']); $data['watermarktext']['shadowcolor'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['shadowcolor']); } else { $data['watermarktext'] = array(); } $tradetypes = implodeids(unserialize($data['tradetypes'])); $data['tradetypes'] = array(); if ($tradetypes) { $query = $db->query("SELECT typeid, name FROM {$tablepre}threadtypes WHERE typeid in ({$tradetypes})"); while ($type = $db->fetch_array($query)) { $data['tradetypes'][$type['typeid']] = $type['name']; } } $data['styles'] = array(); $query = $db->query("SELECT styleid, name FROM {$tablepre}styles WHERE available='1'"); while ($style = $db->fetch_array($query)) { $data['styles'][$style['styleid']] = dhtmlspecialchars($style['name']); } $data['stylejumpstatus'] = $data['stylejump'] && count($data['styles']) > 1; $globaladvs = advertisement('all'); $data['globaladvs'] = $globaladvs['all'] ? $globaladvs['all'] : array(); $data['redirectadvs'] = $globaladvs['redirect'] ? $globaladvs['redirect'] : array(); $data['invitecredit'] = ''; if ($data['inviteconfig'] = unserialize($data['inviteconfig'])) { $data['invitecredit'] = $data['inviteconfig']['invitecredit']; } unset($data['inviteconfig']); $data['videoopen'] = $data['videotype'] = $data['vsiteid'] = $data['vkey'] = $data['vsiteurl'] = ''; if ($data['videoinfo'] = unserialize($data['videoinfo'])) { $data['videoopen'] = intval($data['videoinfo']['open']); $data['videotype'] = explode("\n", $data['videoinfo']['vtype']); $data['vsiteid'] = $data['videoinfo']['siteid']; $data['vkey'] = $data['videoinfo']['authkey']; $data['vsiteurl'] = $data['videoinfo']['url']; } unset($data['videoinfo']); $outextcreditsrcs = $outextcredits = array(); foreach ((array) $data['outextcredits'] as $value) { $outextcreditsrcs[$value['creditsrc']] = $value['creditsrc']; $key = $value['appiddesc'] . '|' . $value['creditdesc']; if (!isset($outextcredits[$key])) { $outextcredits[$key] = array('title' => $value['title'], 'unit' => $value['unit']); } $outextcredits[$key]['ratiosrc'][$value['creditsrc']] = $value['ratiosrc']; $outextcredits[$key]['ratiodesc'][$value['creditsrc']] = $value['ratiodesc']; $outextcredits[$key]['creditsrc'][$value['creditsrc']] = $value['ratio']; } $data['outextcredits'] = $outextcredits; $exchcredits = array(); $allowexchangein = $allowexchangeout = FALSE; foreach ((array) $data['extcredits'] as $id => $credit) { $data['extcredits'][$id]['img'] = $credit['img'] ? '<img style="vertical-align:middle" src="' . $credit['img'] . '" />' : ''; if (!empty($credit['ratio'])) { $exchcredits[$id] = $credit; $credit['allowexchangein'] && ($allowexchangein = TRUE); $credit['allowexchangeout'] && ($allowexchangeout = TRUE); } $data['creditnotice'] && ($data['creditnames'][] = str_replace("'", "\\'", htmlspecialchars($id . '|' . $credit['title'] . '|' . $credit['unit']))); } $data['creditnames'] = $data['creditnotice'] ? implode(',', $data['creditnames']) : ''; $creditstranssi = explode(',', $data['creditstrans']); $data['creditstrans'] = $creditstranssi[0]; unset($creditstranssi[0]); $data['creditstransextra'] = $creditstranssi; for ($i = 1; $i < 5; $i++) { $data['creditstransextra'][$i] = !$data['creditstransextra'][$i] ? $data['creditstrans'] : $data['creditstransextra'][$i]; } $data['exchangestatus'] = $allowexchangein && $allowexchangeout; $data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]); list($data['zoomstatus']) = explode("\t", $data['zoomstatus']); if ($data['insenz']['status'] && $data['insenz']['authkey']) { $insenz = $data['insenz']; $softadstatus = intval($insenz['softadstatus']); $hardadstatus = is_array($insenz['hardadstatus']) && $insenz['jsurl'] ? implode(',', $insenz['hardadstatus']) : ''; $relatedadstatus = intval($insenz['relatedadstatus']); $insenz_cronnextrun = intval($db->result_first("SELECT nextrun FROM {$tablepre}campaigns ORDER BY nextrun LIMIT 1")); if (!$softadstatus && !$hardadstatus && !$relatedadstatus && !$insenz['virtualforumstatus'] && !$insenz_cronnextrun) { $data['insenz']['status'] = $data['insenz']['cronnextrun'] = 0; $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($insenz)) . "')"); $data['insenz'] = array(); } else { $vfstatus = 0; if ($insenz['virtualforumstatus']) { $vfstatus = $db->result_first("SELECT COUNT(*) FROM {$tablepre}virtualforums WHERE status=1 AND type='forum'"); } $data['insenz'] = array('siteid' => $insenz['siteid'], 'uid' => intval($insenz['uid']), 'username' => addslashes($insenz['username']), 'hardadstatus' => $hardadstatus, 'vfstatus' => $vfstatus, 'vfpos' => in_array($insenz['vfpos'], array('first', 'rand', 'last')) ? $insenz['vfpos'] : 'first', 'topicrelatedad' => $relatedadstatus && $insenz['topicrelatedad'] ? $insenz['topicrelatedad'] : '', 'traderelatedad' => $relatedadstatus && $insenz['traderelatedad'] ? $insenz['traderelatedad'] : '', 'relatedtrades' => $relatedadstatus && $insenz['traderelatedad'] && $insenz['relatedtrades'] ? $insenz['relatedtrades'] : '', 'cronnextrun' => $insenz_cronnextrun, 'statsnextrun' => intval($insenz['statsnextrun']), 'jsurl' => $insenz['jsurl'], 'hash' => $insenz['hash']); } } else { $data['insenz'] = array(); } $data['msn']['on'] = $data['msn']['on'] && $data['msn']['domain'] ? 1 : 0; $data['msn']['domain'] = $data['msn']['on'] ? $data['msn']['domain'] : 'discuz.org'; if ($data['qihoo']['status']) { $qihoo = $data['qihoo']; $data['qihoo']['links'] = $data['qihoo']['relate'] = array(); foreach (explode("\n", trim($qihoo['keywords'])) as $keyword) { if ($keyword = trim($keyword)) { $data['qihoo']['links']['keywords'][] = '<a href="search.php?srchtype=qihoo&srchtxt=' . rawurlencode($keyword) . '&searchsubmit=yes" target="_blank">' . dhtmlspecialchars(trim($keyword)) . '</a>'; } } foreach ((array) $qihoo['topics'] as $topic) { if ($topic['topic'] = trim($topic['topic'])) { $data['qihoo']['links']['topics'][] = '<a href="topic.php?topic=' . rawurlencode($topic['topic']) . '&keyword=' . rawurlencode($topic['keyword']) . '&stype=' . $topic['stype'] . '&length=' . $topic['length'] . '&relate=' . $topic['relate'] . '" target="_blank">' . dhtmlspecialchars(trim($topic['topic'])) . '</a>'; } } if (is_array($qihoo['relatedthreads'])) { if ($data['qihoo']['relate']['bbsnum'] = intval($qihoo['relatedthreads']['bbsnum'])) { $data['qihoo']['relate']['position'] = intval($qihoo['relatedthreads']['position']); $data['qihoo']['relate']['validity'] = intval($qihoo['relatedthreads']['validity']); if ($data['qihoo']['relate']['webnum'] = intval($qihoo['relatedthreads']['webnum'])) { $data['qihoo']['relate']['banurl'] = $qihoo['relatedthreads']['banurl'] ? '/(' . str_replace("\r\n", '|', $qihoo['relatedthreads']['banurl']) . ')/i' : ''; $data['qihoo']['relate']['type'] = implode('|', (array) $qihoo['relatedthreads']['type']); $data['qihoo']['relate']['order'] = intval($qihoo['relatedthreads']['order']); } } else { $data['qihoo']['relate'] = array(); } } unset($qihoo, $data['qihoo']['keywords'], $data['qihoo']['topics'], $data['qihoo']['relatedthreads']); } else { $data['qihoo'] = array(); } $data['plugins'] = $data['pluginlinks'] = array(); $query = $db->query("SELECT available, name, identifier, directory, datatables, modules FROM {$tablepre}plugins"); while ($plugin = $db->fetch_array($query)) { $plugin['modules'] = unserialize($plugin['modules']); if (is_array($plugin['modules'])) { foreach ($plugin['modules'] as $module) { if ($plugin['available'] && isset($module['name'])) { switch ($module['type']) { case 1: $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>"); break; case 2: $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>"); $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']); break; case 4: $data['plugins']['include'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'script' => $plugin['directory'] . $module['name']); break; case 5: $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>"); break; case 6: $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>"); $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']); break; } } } } } $data['tradeopen'] = $db->result_first("SELECT count(*) FROM {$tablepre}usergroups WHERE allowposttrade='1'") ? 1 : 0; if (is_array($data['plugins']['links'])) { usort($data['plugins']['links'], 'pluginmodulecmp'); foreach ($data['plugins']['links'] as $key => $module) { unset($data['plugins']['links'][$key]['displayorder']); } } if (is_array($data['plugins']['include'])) { usort($data['plugins']['include'], 'pluginmodulecmp'); foreach ($data['plugins']['include'] as $key => $module) { unset($data['plugins']['include'][$key]['displayorder']); } } if (is_array($data['plugins']['jsmenu'])) { usort($data['plugins']['jsmenu'], 'pluginmodulecmp'); foreach ($data['plugins']['jsmenu'] as $key => $module) { unset($data['plugins']['jsmenu'][$key]['displayorder']); } } $data['hooks'] = array(); $query = $db->query("SELECT ph.title, ph.code, p.identifier FROM {$tablepre}plugins p\r\n\t\t\t\tLEFT JOIN {$tablepre}pluginhooks ph ON ph.pluginid=p.pluginid AND ph.available='1'\r\n\t\t\t\tWHERE p.available='1' ORDER BY p.identifier"); while ($hook = $db->fetch_array($query)) { if ($hook['title'] && $hook['code']) { $data['hooks'][$hook['identifier'] . '_' . $hook['title']] = $hook['code']; } } $data['navs'] = $data['subnavs'] = $data['navmns'] = array(); list($mnid) = explode('.', basename($data['indexname'])); $data['navmns'][] = $mnid; $mngsid = 1; $query = $db->query("SELECT * FROM {$tablepre}navs WHERE available='1' AND parentid='0' ORDER BY displayorder"); while ($nav = $db->fetch_array($query)) { if ($nav['type'] == '0' && ($nav['url'] == 'member.php?action=list' && !$data['memliststatus'] || $nav['url'] == 'tag.php' && !$data['tagstatus'])) { continue; } $nav['style'] = parsehighlight($nav['highlight']); if ($db->result_first("SELECT COUNT(*) FROM {$tablepre}navs WHERE parentid='{$nav['id']}' AND available='1'")) { $id = random(6); $subquery = $db->query("SELECT * FROM {$tablepre}navs WHERE available='1' AND parentid='{$nav['id']}' ORDER BY displayorder"); $subnavs = "<ul class=\"popupmenu_popup headermenu_popup\" id=\"" . $id . "_menu\" style=\"display: none\">"; while ($subnav = $db->fetch_array($subquery)) { $subnavs .= "<li><a href=\"{$subnav['url']}\" hidefocus=\"true\" " . ($subnav['title'] ? "title=\"{$subnav['title']}\" " : '') . ($subnav['target'] == 1 ? "target=\"_blank\" " : '') . parsehighlight($subnav['highlight']) . ">{$subnav['name']}</a></li>"; } $subnavs .= '</ul>'; $data['subnavs'][] = $subnavs; $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_" . $nav['id'] . "\" id=\"{$id}\" onmouseover=\"showMenu(this.id)\"><a href=\"{$nav['url']}\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . " class=\"dropmenu\"{$nav['style']}>{$nav['name']}</a></li>"; } else { if ($nav['id'] == '3') { $data['navs'][$nav['id']]['nav'] = !empty($data['plugins']['jsmenu']) ? "<li class=\"menu_3\" id=\"plugin\" onmouseover=\"showMenu(this.id)\"><a href=\"javascript:;\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . "class=\"dropmenu\"{$nav['style']}>{$nav['name']}</a></li>" : ''; } elseif ($nav['id'] == '5') { $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_5\"><a href=\"misc.php?action=nav\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . "onclick=\"floatwin('open_nav', this.href, 600, 410);return false;\"{$nav['style']}>{$nav['name']}</a></li>"; } else { if ($nav['id'] == '1') { $nav['url'] = $GLOBALS['indexname']; } list($mnid) = explode('.', basename($nav['url'])); $purl = parse_url($nav['url']); $getvars = array(); if ($purl['query']) { parse_str($purl['query'], $getvars); $mnidnew = $mnid . '_' . $mngsid; $data['navmngs'][$mnid][] = array($getvars, $mnidnew); $mnid = $mnidnew; $mngsid++; } $data['navmns'][] = $mnid; $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_" . $nav['id'] . "\"><a href=\"{$nav['url']}\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . "id=\"mn_{$mnid}\"{$nav['style']}>{$nav['name']}</a></li>"; } } $data['navs'][$nav['id']]['level'] = $nav['level']; } require_once DISCUZ_ROOT . './uc_client/client.php'; $ucapparray = uc_app_ls(); $data['allowsynlogin'] = isset($ucapparray[UC_APPID]['synlogin']) ? $ucapparray[UC_APPID]['synlogin'] : 1; $appnamearray = array('UCHOME', 'XSPACE', 'DISCUZ', 'SUPESITE', 'SUPEV', 'ECSHOP', 'ECMALL'); $data['ucapp'] = $data['ucappopen'] = array(); $data['uchomeurl'] = ''; $appsynlogins = 0; foreach ($ucapparray as $apparray) { if ($apparray['appid'] != UC_APPID) { if (!empty($apparray['synlogin'])) { $appsynlogins = 1; } if ($data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) { $data['ucapp'][$apparray['appid']]['name'] = $apparray['name']; $data['ucapp'][$apparray['appid']]['url'] = $apparray['url']; } } $data['ucapp'][$apparray['appid']]['viewprourl'] = $apparray['url'] . $apparray['viewprourl']; foreach ($appnamearray as $name) { if ($apparray['type'] == $name && $apparray['appid'] != UC_APPID) { $data['ucappopen'][$name] = 1; if ($name == 'UCHOME') { $data['uchomeurl'] = $apparray['url']; } elseif ($name == 'XSPACE') { $data['xspaceurl'] = $apparray['url']; } } } } $data['allowsynlogin'] = $data['allowsynlogin'] && $appsynlogins ? 1 : 0; $data['homeshow'] = $data['uchomeurl'] && $data['uchome']['homeshow'] ? $data['uchome']['homeshow'] : '0'; /* if($data['uchomeurl']) { $data['homeshow']['avatar'] = $data['uc']['homeshow'] & 1 ? 1 : 0; $data['homeshow']['viewpro'] = $data['uc']['homeshow'] & 2 ? 1 : 0; $data['homeshow']['ad'] = $data['uc']['homeshow'] & 4 ? 1 : 0; $data['homeshow']['side'] = $data['uc']['homeshow'] & 8 ? 1 : 0; } */ $data['medalstatus'] = intval($db->result_first("SELECT count(*) FROM {$tablepre}medals WHERE available='1'")); include language('runtime'); $dlang['date'] = explode(',', $dlang['date']); $data['dlang'] = $dlang; break; case 'custominfo': while ($setting = $db->fetch_array($query)) { $data[$setting['variable']] = $setting['value']; } $data['customauthorinfo'] = unserialize($data['customauthorinfo']); $data['customauthorinfo'] = $data['customauthorinfo'][0]; $data['extcredits'] = unserialize($data['extcredits']); include language('templates'); $authorinfoitems = array('uid' => '$post[uid]', 'posts' => '$post[posts]', 'digest' => '$post[digestposts]', 'credits' => '$post[credits]', 'readperm' => '$post[readaccess]', 'gender' => '$post[gender]', 'location' => '$post[location]', 'oltime' => '$post[oltime] ' . $language['hours'], 'regtime' => '$post[regdate]', 'lastdate' => '$post[lastdate]'); if (!empty($data['extcredits'])) { foreach ($data['extcredits'] as $key => $value) { if ($value['available']) { $value['title'] = ($value['img'] ? '<img style="vertical-align:middle" src="' . $value['img'] . '" /> ' : '') . $value['title']; $authorinfoitems['extcredits' . $key] = array($value['title'], '$post[extcredits' . $key . '] {$extcredits[' . $key . '][unit]}'); } } } $data['fieldsadd'] = ''; $data['profilefields'] = array(); $query = $db->query("SELECT * FROM {$tablepre}profilefields WHERE available='1' AND invisible='0' ORDER BY displayorder"); while ($field = $db->fetch_array($query)) { $data['fieldsadd'] .= ', mf.field_' . $field['fieldid']; if ($field['selective']) { foreach (explode("\n", $field['choices']) as $item) { list($index, $choice) = explode('=', $item); $data['profilefields'][$field['fieldid']][trim($index)] = trim($choice); } $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '{$profilefields[' . $field['fieldid'] . '][$post[field_' . $field['fieldid'] . ']]}'); } else { $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '$post[field_' . $field['fieldid'] . ']'); } } $customauthorinfo = array(); if (is_array($data['customauthorinfo'])) { foreach ($data['customauthorinfo'] as $key => $value) { if (array_key_exists($key, $authorinfoitems)) { if (substr($key, 0, 10) == 'extcredits') { $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . ' </dd>', '"'); } elseif (substr($key, 0, 6) == 'field_') { $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . ' </dd>', '"'); } elseif ($key == 'gender') { $v = '".(' . $authorinfoitems['gender'] . ' == 1 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_male'] . ' </dd>', '"') . '" : (' . $authorinfoitems['gender'] . ' == 2 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_female'] . ' </dd>', '"') . '" : ""))."'; } elseif ($key == 'location') { $v = '".(' . $authorinfoitems[$key] . ' ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . ' </dd>', '"') . '" : "")."'; } else { $v = addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . ' </dd>', '"'); } if (isset($value['left'])) { $customauthorinfo[1][] = $v; } if (isset($value['menu'])) { $customauthorinfo[2][] = $v; } if (isset($value['special'])) { $customauthorinfo[3][] = $v; } } } } $data['postminheight'] = 120 + count($customauthorinfo[1]) * 20; $customauthorinfo[1] = @implode('', $customauthorinfo[1]); $customauthorinfo[2] = @implode('', $customauthorinfo[2]); $data['customauthorinfo'] = $customauthorinfo; $postnocustomnew[0] = $data['postno'] != '' ? preg_match("/^[-]+\$/", $data['postno']) ? '<sup>' . $data['postno'] . '</sup>' : $data['postno'] : '<sup>#</sup>'; $data['postnocustom'] = unserialize($data['postnocustom']); if (is_array($data['postnocustom'])) { foreach ($data['postnocustom'] as $key => $value) { $value = trim($value); $postnocustomnew[$key + 1] = preg_match("/^[-]+\$/", $value) ? '<sup>' . $value . '</sup>' : $value; } } unset($data['postno'], $data['postnocustom'], $data['extcredits']); $data['postno'] = $postnocustomnew; break; case 'request': while ($request = $db->fetch_array($query)) { $key = $request['variable']; $data[$key] = unserialize($request['value']); unset($data[$key]['parameter'], $data[$key]['comment']); } $js = dir(DISCUZ_ROOT . './forumdata/cache'); while ($entry = $js->read()) { if (preg_match("/^(javascript_|request_)/", $entry)) { @unlink(DISCUZ_ROOT . './forumdata/cache/' . $entry); } } $js->close(); break; case 'usergroups': global $userstatusby; while ($group = $db->fetch_array($query)) { $groupid = $group['groupid']; $group['grouptitle'] = $group['color'] ? '<font color="' . $group['color'] . '">' . $group['grouptitle'] . '</font>' : $group['grouptitle']; if ($userstatusby == 1) { $group['userstatusby'] = 1; } elseif ($userstatusby == 2) { if ($group['type'] != 'member') { $group['userstatusby'] = 1; } else { $group['userstatusby'] = 2; } } if ($group['type'] != 'member') { unset($group['creditshigher'], $group['creditslower']); } unset($group['groupid'], $group['color']); $data[$groupid] = $group; } break; case 'ranks': global $userstatusby; if ($userstatusby == 2) { while ($rank = $db->fetch_array($query)) { $rank['ranktitle'] = $rank['color'] ? '<font color="' . $rank['color'] . '">' . $rank['ranktitle'] . '</font>' : $rank['ranktitle']; unset($rank['color']); $data[] = $rank; } } break; case 'announcements': $data = array(); while ($datarow = $db->fetch_array($query)) { if ($datarow['type'] == 2) { $datarow['pmid'] = $datarow['id']; unset($datarow['id']); unset($datarow['message']); $datarow['subject'] = cutstr($datarow['subject'], 60); } $datarow['groups'] = empty($datarow['groups']) ? array() : explode(',', $datarow['groups']); $data[] = $datarow; } break; case 'announcements_forum': if ($data = $db->fetch_array($query)) { $data['authorid'] = intval($data['authorid']); if (empty($data['type'])) { unset($data['message']); } } else { $data = array(); } break; case 'globalstick': $fuparray = $threadarray = array(); while ($forum = $db->fetch_array($query)) { switch ($forum['type']) { case 'forum': $fuparray[$forum['fid']] = $forum['fup']; break; case 'sub': $fuparray[$forum['fid']] = $fuparray[$forum['fup']]; break; } } $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (2, 3)"); while ($thread = $db->fetch_array($query)) { switch ($thread['displayorder']) { case 2: $threadarray[$fuparray[$thread['fid']]][] = $thread['tid']; break; case 3: $threadarray['global'][] = $thread['tid']; break; } } foreach (array_unique($fuparray) as $gid) { if (!empty($threadarray[$gid])) { $data['categories'][$gid] = array('tids' => implode(',', $threadarray[$gid]), 'count' => intval(@count($threadarray[$gid]))); } } $data['global'] = array('tids' => empty($threadarray['global']) ? 0 : implode(',', $threadarray['global']), 'count' => intval(@count($threadarray['global']))); break; case 'floatthreads': $fuparray = $threadarray = $forums = array(); while ($forum = $db->fetch_array($query)) { switch ($forum['type']) { case 'forum': $fuparray[$forum['fid']] = $forum['fup']; break; case 'sub': $fuparray[$forum['fid']] = $fuparray[$forum['fup']]; break; } } $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (4, 5)"); while ($thread = $db->fetch_array($query)) { switch ($thread['displayorder']) { case 4: $threadarray[$thread['fid']][] = $thread['tid']; break; case 5: $threadarray[$fuparray[$thread['fid']]][] = $thread['tid']; break; } $forums[] = $thread['fid']; } foreach (array_unique($fuparray) as $gid) { if (!empty($threadarray[$gid])) { $data['categories'][$gid] = implode(',', $threadarray[$gid]); } } foreach (array_unique($forums) as $fid) { if (!empty($threadarray[$fid])) { $data['forums'][$fid] = implode(',', $threadarray[$fid]); } } break; case 'censor': $banned = $mod = array(); $data = array('filter' => array(), 'banned' => '', 'mod' => ''); while ($censor = $db->fetch_array($query)) { $censor['find'] = preg_replace("/\\\\{(\\d+)\\\\}/", ".{0,\\1}", preg_quote($censor['find'], '/')); switch ($censor['replacement']) { case '{BANNED}': $banned[] = $censor['find']; break; case '{MOD}': $mod[] = $censor['find']; break; default: $data['filter']['find'][] = '/' . $censor['find'] . '/i'; $data['filter']['replace'][] = $censor['replacement']; break; } } if ($banned) { $data['banned'] = '/(' . implode('|', $banned) . ')/i'; } if ($mod) { $data['mod'] = '/(' . implode('|', $mod) . ')/i'; } if (!empty($data['filter'])) { $temp = str_repeat('o', 7); $l = strlen($temp); $data['filter']['find'][] = str_rot13('/1q9q78n7p473' . 'o3q1925oo7p' . '5o6sss2sr/v'); $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****7JR7JVYY7JVA7' . 'GUR7SHGHER7****\\aCbjrerq7ol7Pebffqnl7Qvfphm!7Obneq7I')) . $l; } break; case 'forums': while ($forum = $db->fetch_array($query)) { $forum['orderby'] = bindec(($forum['simple'] & 128 ? 1 : 0) . ($forum['simple'] & 64 ? 1 : 0)); $forum['ascdesc'] = $forum['simple'] & 32 ? 'ASC' : 'DESC'; if (!isset($forumlist[$forum['fid']])) { $forum['name'] = strip_tags($forum['name']); if ($forum['uid']) { $forum['users'] = "\t{$forum['uid']}\t"; } unset($forum['uid']); if ($forum['fup']) { $forumlist[$forum['fup']]['count']++; } $forumlist[$forum['fid']] = $forum; } elseif ($forum['uid']) { if (!$forumlist[$forum['fid']]['users']) { $forumlist[$forum['fid']]['users'] = "\t"; } $forumlist[$forum['fid']]['users'] .= "{$forum['uid']}\t"; } } $orderbyary = array('lastpost', 'dateline', 'replies', 'views'); if (!empty($forumlist)) { foreach ($forumlist as $fid1 => $forum1) { if ($forum1['type'] == 'group' && $forum1['count']) { $data[$fid1]['fid'] = $forum1['fid']; $data[$fid1]['type'] = $forum1['type']; $data[$fid1]['name'] = $forum1['name']; $data[$fid1]['fup'] = $forum1['fup']; $data[$fid1]['viewperm'] = $forum1['viewperm']; $data[$fid1]['orderby'] = $orderbyary[$forum1['orderby']]; $data[$fid1]['ascdesc'] = $forum1['ascdesc']; foreach ($forumlist as $fid2 => $forum2) { if ($forum2['fup'] == $fid1 && $forum2['type'] == 'forum') { $data[$fid2]['fid'] = $forum2['fid']; $data[$fid2]['type'] = $forum2['type']; $data[$fid2]['name'] = $forum2['name']; $data[$fid2]['fup'] = $forum2['fup']; $data[$fid2]['viewperm'] = $forum2['viewperm']; $data[$fid2]['orderby'] = $orderbyary[$forum2['orderby']]; $data[$fid2]['ascdesc'] = $forum2['ascdesc']; $data[$fid2]['users'] = $forum2['users']; foreach ($forumlist as $fid3 => $forum3) { if ($forum3['fup'] == $fid2 && $forum3['type'] == 'sub') { $data[$fid3]['fid'] = $forum3['fid']; $data[$fid3]['type'] = $forum3['type']; $data[$fid3]['name'] = $forum3['name']; $data[$fid3]['fup'] = $forum3['fup']; $data[$fid3]['viewperm'] = $forum3['viewperm']; $data[$fid3]['orderby'] = $orderbyary[$forum3['orderby']]; $data[$fid3]['ascdesc'] = $forum3['ascdesc']; $data[$fid3]['users'] = $forum3['users']; } } } } } } } break; case 'onlinelist': $data['legend'] = ''; while ($list = $db->fetch_array($query)) { $data[$list['groupid']] = $list['url']; $data['legend'] .= "<img src=\"images/common/{$list['url']}\" /> {$list['title']} "; if ($list['groupid'] == 7) { $data['guest'] = $list['title']; } } break; case 'groupicon': while ($list = $db->fetch_array($query)) { $data[$list['groupid']] = 'images/common/' . $list['url']; } break; case 'forumlinks': global $forumlinkstatus; $data = array(); if ($forumlinkstatus) { $tightlink_content = $tightlink_text = $tightlink_logo = $comma = ''; while ($flink = $db->fetch_array($query)) { if ($flink['description']) { if ($flink['logo']) { $tightlink_content .= '<li><div class="forumlogo"><img src="' . $flink['logo'] . '" border="0" alt="' . $flink['name'] . '" /></div><div class="forumcontent"><h5><a href="' . $flink['url'] . '" target="_blank">' . $flink['name'] . '</a></h5><p>' . $flink['description'] . '</p></div>'; } else { $tightlink_content .= '<li><div class="forumcontent"><h5><a href="' . $flink['url'] . '" target="_blank">' . $flink['name'] . '</a></h5><p>' . $flink['description'] . '</p></div>'; } } else { if ($flink['logo']) { $tightlink_logo .= '<a href="' . $flink['url'] . '" target="_blank"><img src="' . $flink['logo'] . '" border="0" alt="' . $flink['name'] . '" /></a> '; } else { $tightlink_text .= '<li><a href="' . $flink['url'] . '" target="_blank" title="' . $flink['name'] . '">' . $flink['name'] . '</a></li>'; } } } $data = array($tightlink_content, $tightlink_logo, $tightlink_text); } break; case 'bbcodes': $regexp = array(1 => "/\\[{bbtag}]([^\"\\[]+?)\\[\\/{bbtag}\\]/is", 2 => "/\\[{bbtag}=(['\"]?)([^\"\\[]+?)(['\"]?)\\]([^\"\\[]+?)\\[\\/{bbtag}\\]/is", 3 => "/\\[{bbtag}=(['\"]?)([^\"\\[]+?)(['\"]?),(['\"]?)([^\"\\[]+?)(['\"]?)\\]([^\"\\[]+?)\\[\\/{bbtag}\\]/is"); while ($bbcode = $db->fetch_array($query)) { $search = str_replace('{bbtag}', $bbcode['tag'], $regexp[$bbcode['params']]); $bbcode['replacement'] = preg_replace("/([\r\n])/", '', $bbcode['replacement']); switch ($bbcode['params']) { case 2: $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{2}', '\\4', $bbcode['replacement']); break; case 3: $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{3}', '\\7', $bbcode['replacement']); break; default: $bbcode['replacement'] = str_replace('{1}', '\\1', $bbcode['replacement']); break; } if (preg_match("/\\{(RANDOM|MD5)\\}/", $bbcode['replacement'])) { $search = str_replace('is', 'ies', $search); $replace = '\'' . str_replace('{RANDOM}', '_\'.random(6).\'', str_replace('{MD5}', '_\'.md5(\'\\1\').\'', $bbcode['replacement'])) . '\''; } else { $replace = $bbcode['replacement']; } for ($i = 0; $i < $bbcode['nest']; $i++) { $data['searcharray'][] = $search; $data['replacearray'][] = $replace; } } break; case 'bbcodes_display': while ($bbcode = $db->fetch_array($query)) { $tag = $bbcode['tag']; $bbcode['explanation'] = dhtmlspecialchars(trim($bbcode['explanation'])); $bbcode['prompt'] = addcslashes($bbcode['prompt'], '\\\''); unset($bbcode['tag']); $data[$tag] = $bbcode; } break; case 'smilies': $data = array('searcharray' => array(), 'replacearray' => array(), 'typearray' => array()); while ($smiley = $db->fetch_array($query)) { $data['searcharray'][$smiley['id']] = '/' . preg_quote(dhtmlspecialchars($smiley['code']), '/') . '/'; $data['replacearray'][$smiley['id']] = $smiley['url']; $data['typearray'][$smiley['id']] = $smiley['typeid']; } break; case 'smileycodes': while ($type = $db->fetch_array($query)) { $squery = $db->query("SELECT id, code, url FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$type['typeid']}' ORDER BY displayorder"); if ($db->num_rows($squery)) { while ($smiley = $db->fetch_array($squery)) { if ($size = @getimagesize('./images/smilies/' . $type['directory'] . '/' . $smiley['url'])) { $data[$smiley['id']] = $smiley['code']; } } } } break; case 'smilies_js': $return_type = 'var smilies_type = new Array();'; $return_array = 'var smilies_array = new Array();'; $spp = $smcols * $smrows; while ($type = $db->fetch_array($query)) { $return_data = array(); $return_datakey = ''; $squery = $db->query("SELECT id, code, url FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$type['typeid']}' ORDER BY displayorder"); if ($db->num_rows($squery)) { $i = 0; $j = 1; $pre = ''; $return_type .= 'smilies_type[' . $type['typeid'] . '] = [\'' . str_replace('\'', '\\\'', $type['name']) . '\', \'' . str_replace('\'', '\\\'', $type['directory']) . '\'];'; $return_datakey .= 'smilies_array[' . $type['typeid'] . '] = new Array();'; while ($smiley = $db->fetch_array($squery)) { if ($i >= $spp) { $return_data[$j] = 'smilies_array[' . $type['typeid'] . '][' . $j . '] = [' . $return_data[$j] . '];'; $j++; $i = 0; $pre = ''; } $i++; if ($size = @getimagesize('./images/smilies/' . $type['directory'] . '/' . $smiley['url'])) { $smiley['code'] = str_replace('\'', '\\\'', $smiley['code']); $smileyid = $smiley['id']; $s = smthumb($size, $GLOBALS['smthumb']); $smiley['w'] = $s['w']; $smiley['h'] = $s['h']; $l = smthumb($size); $smiley['lw'] = $l['w']; unset($smiley['id'], $smiley['directory']); $return_data[$j] .= $pre . '[\'' . $smileyid . '\', \'' . $smiley['code'] . '\',\'' . str_replace('\'', '\\\'', $smiley['url']) . '\',\'' . $smiley['w'] . '\',\'' . $smiley['h'] . '\',\'' . $smiley['lw'] . '\']'; $pre = ','; } } $return_data[$j] = 'smilies_array[' . $type['typeid'] . '][' . $j . '] = [' . $return_data[$j] . '];'; } $return_array .= $return_datakey . implode('', $return_data); } $cachedir = DISCUZ_ROOT . './forumdata/cache/'; if (@($fp = fopen($cachedir . 'smilies_var.js', 'w'))) { fwrite($fp, 'var smthumb = \'' . $GLOBALS['smthumb'] . '\';' . $return_type . $return_array); fclose($fp); } else { exit('Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .'); } break; case 'smileytypes': while ($type = $db->fetch_array($query)) { $typeid = $type['typeid']; unset($type['typeid']); $squery = $db->query("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$typeid}'"); if ($db->result($squery, 0)) { $data[$typeid] = $type; } } break; case 'icons': while ($icon = $db->fetch_array($query)) { $data[$icon['id']] = $icon['url']; } break; case in_array($cachename, array('fields_required', 'fields_optional')): while ($field = $db->fetch_array($query)) { $choices = array(); if ($field['selective']) { foreach (explode("\n", $field['choices']) as $item) { list($index, $choice) = explode('=', $item); $choices[trim($index)] = trim($choice); } $field['choices'] = $choices; } else { unset($field['choices']); } $data['field_' . $field['fieldid']] = $field; } break; case 'ipbanned': if ($db->num_rows($query)) { $data['expiration'] = 0; $data['regexp'] = $separator = ''; } while ($banned = $db->fetch_array($query)) { $data['expiration'] = !$data['expiration'] || $banned['expiration'] < $data['expiration'] ? $banned['expiration'] : $data['expiration']; $data['regexp'] .= $separator . ($banned['ip1'] == '-1' ? '\\d+\\.' : $banned['ip1'] . '\\.') . ($banned['ip2'] == '-1' ? '\\d+\\.' : $banned['ip2'] . '\\.') . ($banned['ip3'] == '-1' ? '\\d+\\.' : $banned['ip3'] . '\\.') . ($banned['ip4'] == '-1' ? '\\d+' : $banned['ip4']); $separator = '|'; } break; case 'medals': while ($medal = $db->fetch_array($query)) { $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']); } break; case 'magics': while ($magic = $db->fetch_array($query)) { $data[$magic['magicid']]['identifier'] = $magic['identifier']; $data[$magic['magicid']]['available'] = $magic['available']; $data[$magic['magicid']]['name'] = $magic['name']; $data[$magic['magicid']]['description'] = $magic['description']; $data[$magic['magicid']]['weight'] = $magic['weight']; $data[$magic['magicid']]['price'] = $magic['price']; } break; case 'birthdays_index': $bdaymembers = array(); while ($bdaymember = $db->fetch_array($query)) { $birthyear = intval($bdaymember['bday']); $bdaymembers[] = '<a href="space.php?uid=' . $bdaymember['uid'] . '" target="_blank" ' . ($birthyear ? 'title="' . $bdaymember['bday'] . '"' : '') . '>' . $bdaymember['username'] . '</a>'; } $data['todaysbdays'] = implode(', ', $bdaymembers); break; case 'birthdays': $data['uids'] = $comma = ''; $data['num'] = 0; while ($bdaymember = $db->fetch_array($query)) { $data['uids'] .= $comma . $bdaymember['uid']; $comma = ','; $data['num']++; } break; case 'modreasons': $modreasons = $db->result($query, 0); $modreasons = str_replace(array("\r\n", "\r"), array("\n", "\n"), $modreasons); $data = explode("\n", trim($modreasons)); break; case substr($cachename, 0, 5) == 'advs_': $data = advertisement(substr($cachename, 5)); break; case 'faqs': while ($faqs = $db->fetch_array($query)) { $data[$faqs['identifier']]['fpid'] = $faqs['fpid']; $data[$faqs['identifier']]['id'] = $faqs['id']; $data[$faqs['identifier']]['keyword'] = $faqs['keyword']; } break; case 'secqaa': $secqaanum = $db->result_first("SELECT COUNT(*) FROM {$tablepre}itempool"); $start_limit = $secqaanum <= 10 ? 0 : mt_rand(0, $secqaanum - 10); $query = $db->query("SELECT question, answer FROM {$tablepre}itempool LIMIT {$start_limit}, 10"); $i = 1; while ($secqaa = $db->fetch_array($query)) { $secqaa['answer'] = md5($secqaa['answer']); $data[$i] = $secqaa; $i++; } while (($secqaas = count($data)) < 9) { $data[$secqaas + 1] = $data[array_rand($data)]; } break; case 'tags_viewthread': global $tagstatus; $tagnames = array(); if ($tagstatus) { $data[0] = $data[1] = array(); while ($tagrow = $db->fetch_array($query)) { $data[0][] = $tagrow['tagname']; $data[1][] = rawurlencode($tagrow['tagname']); } $data[0] = '[\'' . implode('\',\'', (array) $data[0]) . '\']'; $data[1] = '[\'' . implode('\',\'', (array) $data[1]) . '\']'; $data[2] = $db->result_first("SELECT count(*) FROM {$tablepre}tags", 0); } break; default: while ($datarow = $db->fetch_array($query)) { $data[] = $datarow; } } $dbcachename = $cachename; $cachename = in_array(substr($cachename, 0, 5), array('advs_', 'tags_')) ? substr($cachename, 0, 4) : $cachename; $curdata = "\$_DCACHE['{$cachename}'] = " . arrayeval($data) . ";\n\n"; $db->query("REPLACE INTO {$tablepre}caches (cachename, type, dateline, data) VALUES ('{$dbcachename}', '1', '{$timestamp}', '" . addslashes($curdata) . "')"); return $curdata; }
$showwhichvotes = "all2"; } else { if ($dismode["votelist"] == "all") { $showwhichvotes = "either"; } else { if ($dismode["votelist"] == "short") { $showwhichvotes = "bothdiff"; } else { $showwhichvotes = "both"; } } } } } if (true === function_exists('advertisement')) { advertisement('mp'); } # division table attributes used $divtabattr = array("voter1type" => $voter1type, "voter1link" => $voter1link, "voter2type" => $voter2type, "voter2" => $voter2, "voter2attr" => $voter2attr, "voter2link" => $voter2link, "showwhich" => $showwhichvotes, "votedisplay" => $dismode["votedisplay"], "headings" => 'columns', "sortby" => 'date'); # make the table over this MP's votes # get rid of headings in the full motion case if ($dismode["votedisplay"] == "fullmotion") { $divtabattr["headings"] = 'none'; $divtabattr["sortby"] = 'datereversed'; print "<table>\n"; // so we get underlines } else { if ($voter2type == "dreammp") { $divtabattr["sortby"] = 'datereversed'; } print "<table class=\"votes\">\n";
<div class="footer"> <div class="gbox"> <p></p> <?php advertisement(); ?> <div style="clear:both"></div> </div> <p> <?php bloginfo('name'); ?> is powered by <a href='http://wordpress.org'>Wordpress</a>. <a href='http://www.designed.nu'>Designed</a> by <a href='http://www.topwpthemes.com'>Free WordPress Themes</a>. </p> </div> </div> <?php wp_footer(); ?> </body> </html>
function getcachearray($cachename, $script = '') { global $db, $timestamp, $tablepre, $timeoffset, $maxbdays, $smcols, $smrows, $charset, $supe; $cols = '*'; $conditions = ''; switch ($cachename) { case 'settings': $table = 'settings'; $conditions = "WHERE variable NOT IN ('siteuniqueid', 'mastermobile', 'bbrules', 'bbrulestxt', 'closedreason', 'creditsnotify', 'backupdir', 'custombackup', 'jswizard', 'maxonlines', 'modreasons', 'newsletter', 'welcomemsg', 'welcomemsgtxt', 'postno', 'postnocustom', 'customauthorinfo') AND SUBSTRING(variable, 1, 9)<>'jswizard_'"; break; case 'custominfo': $table = 'settings'; $conditions = "WHERE variable IN ('extcredits', 'customauthorinfo', 'postno', 'postnocustom', 'maxavatarpixel')"; break; case 'jswizard': $table = 'settings'; $conditions = "WHERE variable LIKE 'jswizard_%'"; break; case 'usergroups': $table = 'usergroups'; $cols = 'groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar, readaccess, allowavatar, allowcusbbcode, allowuseblog'; $conditions = "ORDER BY creditslower"; break; case 'ranks': $table = 'ranks'; $cols = 'ranktitle, postshigher, stars, color'; $conditions = "ORDER BY postshigher DESC"; break; case 'announcements': $table = 'announcements'; $cols = 'id, subject, type, starttime, endtime, displayorder, groups, message'; $conditions = "WHERE starttime<='{$timestamp}' AND (endtime>='{$timestamp}' OR endtime='0') ORDER BY displayorder, starttime DESC, id DESC"; break; case 'announcements_forum': $table = 'announcements a'; $cols = 'a.id, a.author, m.uid AS authorid, a.subject, a.message, a.type, a.starttime, a.displayorder'; $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author WHERE a.type!=2 AND a.groups = '' AND a.starttime<='{$timestamp}' ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 1"; break; case 'pmlist': $table = 'announcements a'; $cols = 'id as pmid, subject, starttime, endtime, groups'; $conditions = "WHERE type=2 AND starttime<='{$timestamp}' AND (endtime>='{$timestamp}' OR endtime='0') ORDER BY displayorder, starttime DESC, id DESC"; break; case in_array($cachename, array('globalstick', 'floatthreads')): $table = 'forums'; $cols = 'fid, type, fup'; $conditions = "WHERE status>0 AND type IN ('forum', 'sub') ORDER BY type"; break; case 'forums': $table = 'forums f'; $cols = 'f.fid, f.type, f.name, f.fup, f.simple, ff.viewperm, ff.formulaperm, a.uid'; $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview='1' WHERE f.status>0 ORDER BY f.type, f.displayorder"; break; case 'onlinelist': $table = 'onlinelist'; $conditions = "ORDER BY displayorder"; break; case 'forumlinks': $table = 'forumlinks'; $conditions = "ORDER BY displayorder"; break; case 'bbcodes': $table = 'bbcodes'; $conditions = "WHERE available='1'"; break; case 'bbcodes_display': $table = 'bbcodes'; $cols = 'tag, icon, explanation, params, prompt'; $conditions = "WHERE available='1' AND icon!=''"; break; case 'smilies': $table = 'smilies s'; $cols = 's.id, s.code, s.url, t.typeid'; $conditions = "LEFT JOIN {$tablepre}imagetypes t ON t.typeid=s.typeid WHERE s.type='smiley' AND s.code<>'' AND t.typeid IS NOT NULL ORDER BY LENGTH(s.code) DESC"; break; case 'smilies_display': $table = 'imagetypes'; $cols = 'typeid, directory'; $conditions = "WHERE type='smiley' ORDER BY displayorder"; break; case 'smileytypes': $table = 'imagetypes'; $cols = 'typeid, name, directory'; $conditions = "WHERE type='smiley' ORDER BY displayorder"; break; case 'icons': $table = 'smilies'; $cols = 'id, url'; $conditions = "WHERE type='icon' ORDER BY displayorder"; break; case 'fields_required': $table = 'profilefields'; $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices'; $conditions = "WHERE available='1' AND required='1' ORDER BY displayorder"; break; case 'fields_optional': $table = 'profilefields'; $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices'; $conditions = "WHERE available='1' AND required='0' ORDER BY displayorder"; break; case 'ipbanned': $db->query("DELETE FROM {$tablepre}banned WHERE expiration<'{$timestamp}'"); $table = 'banned'; $cols = 'ip1, ip2, ip3, ip4, expiration'; break; case 'google': $table = 'settings'; $cols = 'value'; $conditions = "WHERE variable = 'google'"; break; case 'censor': $table = 'words'; $cols = 'find, replacement'; break; case 'medals': $table = 'medals'; $cols = 'medalid, name, image'; $conditions = "WHERE available='1'"; break; case 'magics': $table = 'magics'; $cols = 'magicid, available, identifier, name, description, weight, price'; break; case 'birthdays_index': $table = 'members'; $cols = 'uid, username, email, bday'; $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday LIMIT {$maxbdays}"; break; case 'birthdays': $table = 'members'; $cols = 'uid'; $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday"; break; case 'modreasons': $table = 'settings'; $cols = 'value'; $conditions = "WHERE variable='modreasons'"; break; case 'faqs': $table = 'faqs'; $cols = 'id, identifier, keyword'; $conditions = "WHERE identifier!='' AND keyword!=''"; break; case substr($cachename, 0, 5) == 'tags_': global $viewthreadtags, $hottags; $taglimit = substr($cachename, 5) == 'viewthread' ? intval($viewthreadtags) : intval($hottags); $table = 'tags'; $cols = 'tagname, total'; $conditions = "WHERE closed=0 ORDER BY total DESC LIMIT {$taglimit}"; break; } $data = array(); if (!in_array($cachename, array('secqaa', 'supe_updateusers', 'supe_updateitems', 'supe_updatecircles')) && substr($cachename, 0, 5) != 'advs_') { if (empty($table) || empty($cols)) { return ''; } $query = $db->query("SELECT {$cols} FROM {$tablepre}{$table} {$conditions}"); } switch ($cachename) { case 'settings': while ($setting = $db->fetch_array($query)) { if ($setting['variable'] == 'extcredits') { if (is_array($setting['value'] = unserialize($setting['value']))) { foreach ($setting['value'] as $key => $value) { if ($value['available']) { unset($setting['value'][$key]['available']); } else { unset($setting['value'][$key]); } } } } elseif ($setting['variable'] == 'creditsformula') { if (!preg_match("/^([\\+\\-\\*\\/\\.\\d\\(\\)]|((extcredits[1-8]|digestposts|posts|pageviews|oltime)([\\+\\-\\*\\/\\(\\)]|\$)+))+\$/", $setting['value']) || !is_null(@eval(preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$\\1", $setting['value']) . ';'))) { $setting['value'] = '$member[\'extcredits1\']'; } else { $setting['value'] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['value']); } } elseif ($setting['variable'] == 'maxsmilies') { $setting['value'] = $setting['value'] <= 0 ? -1 : $setting['value']; } elseif ($setting['variable'] == 'threadsticky') { $setting['value'] = explode(',', $setting['value']); } elseif ($setting['variable'] == 'attachdir') { $setting['value'] = preg_replace("/\\.asp|\\0/i", '0', $setting['value']); $setting['value'] = str_replace('\\', '/', substr($setting['value'], 0, 2) == './' ? DISCUZ_ROOT . $setting['value'] : $setting['value']); } elseif ($setting['variable'] == 'onlinehold') { $setting['value'] = $setting['value'] * 60; } elseif ($setting['variable'] == 'userdateformat') { if (empty($setting['value'])) { $setting['value'] = array(); } else { $setting['value'] = dhtmlspecialchars(explode("\n", $setting['value'])); $setting['value'] = array_map('trim', $setting['value']); } } elseif (in_array($setting['variable'], array('creditspolicy', 'ftp', 'secqaa', 'supe', 'ec_credit', 'google', 'qihoo', 'insenz', 'spacedata'))) { $setting['value'] = unserialize($setting['value']); } $GLOBALS[$setting['variable']] = $data[$setting['variable']] = $setting['value']; } $GLOBALS['version'] = $data['version'] = DISCUZ_KERNEL_VERSION; $GLOBALS['totalmembers'] = $data['totalmembers'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members"); $GLOBALS['lastmember'] = $data['lastmember'] = $db->result_first("SELECT username FROM {$tablepre}members ORDER BY uid DESC LIMIT 1"); $data['cachethreadon'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}forums WHERE status>0 AND threadcaches>0") ? 1 : 0; $data['cronnextrun'] = $db->result_first("SELECT nextrun FROM {$tablepre}crons WHERE available>'0' AND nextrun>'0' ORDER BY nextrun LIMIT 1"); $data['ftp']['connid'] = 0; $data['indexname'] = empty($data['indexname']) ? 'index.php' : $data['indexname']; if (!$data['imagelib']) { unset($data['imageimpath']); } $data['seccodedata'] = $data['seccodedata'] ? unserialize($data['seccodedata']) : array(); if ($data['seccodedata']['type'] == 2) { if (extension_loaded('ming')) { unset($data['seccodedata']['background'], $data['seccodedata']['adulterate'], $data['seccodedata']['ttf'], $data['seccodedata']['angle'], $data['seccodedata']['color'], $data['seccodedata']['size'], $data['seccodedata']['animator']); } else { $data['seccodedata']['type'] = 0; } } $secqaacheck = sprintf('%03b', $data['secqaa']['status']); $data['secqaa']['status'] = array(1 => $secqaacheck[2], 2 => $secqaacheck[1], 3 => $secqaacheck[0]); if (!$data['secqaa']['status'][2] && !$data['secqaa']['status'][3]) { unset($data['secqaa']['minposts']); } if ($data['watermarktype'] == 2 && $data['watermarktext']) { $data['watermarktext'] = unserialize($data['watermarktext']); if ($data['watermarktext']['text'] && strtoupper($charset) != 'UTF-8') { require_once DISCUZ_ROOT . 'include/chinese.class.php'; $c = new Chinese($charset, 'utf8'); $data['watermarktext']['text'] = $c->Convert($data['watermarktext']['text']); } $data['watermarktext']['text'] = bin2hex($data['watermarktext']['text']); $data['watermarktext']['fontpath'] = 'images/fonts/' . $data['watermarktext']['fontpath']; $data['watermarktext']['color'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['color']); $data['watermarktext']['shadowcolor'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['shadowcolor']); } else { $data['watermarktext'] = array(); } $tradetypes = implodeids(unserialize($data['tradetypes'])); $data['tradetypes'] = array(); if ($tradetypes) { $query = $db->query("SELECT typeid, name FROM {$tablepre}threadtypes WHERE typeid in ({$tradetypes})"); while ($type = $db->fetch_array($query)) { $data['tradetypes'][$type['typeid']] = $type['name']; } } $data['jsmenustatus'] = sprintf('%b', $data['jsmenustatus']); for ($i = 1; $i <= strlen($data['jsmenustatus']); $i++) { if (substr($data['jsmenustatus'], -$i, 1)) { $data['jsmenu'][$i] = TRUE; } } unset($data['jsmenustatus']); $data['stylejumpstatus'] = $data['stylejump']; $data['stylejump'] = array(); $query = $db->query("SELECT styleid, name FROM {$tablepre}styles WHERE available='1'"); while ($style = $db->fetch_array($query)) { $data['stylejump'][$style['styleid']] = dhtmlspecialchars($style['name']); } $globaladvs = advertisement('all'); $data['globaladvs'] = $globaladvs['all'] ? $globaladvs['all'] : array(); $data['redirectadvs'] = $globaladvs['redirect'] ? $globaladvs['redirect'] : array(); $data['invitecredit'] = ''; if ($data['inviteconfig'] = unserialize($data['inviteconfig'])) { $data['invitecredit'] = $data['inviteconfig']['invitecredit']; } unset($data['inviteconfig']); $data['videoopen'] = $data['videotype'] = $data['vsiteid'] = $data['vpassword'] = $data['vkey'] = $data['vsiteurl'] = ''; if ($data['videoinfo'] = unserialize($data['videoinfo'])) { $data['videoopen'] = intval($data['videoinfo']['open']); $data['videotype'] = explode("\n", $data['videoinfo']['vtype']); $data['vsiteid'] = $data['videoinfo']['vsiteid']; $data['vpassword'] = $data['videoinfo']['vpassword']; $data['vkey'] = $data['videoinfo']['vkey']; $data['vsiteurl'] = $data['videoinfo']['url']; } unset($data['videoinfo']); $exchcredits = array(); $allowexchangein = $allowexchangeout = FALSE; foreach ((array) $data['extcredits'] as $id => $credit) { if (!empty($credit['ratio'])) { $exchcredits[$id] = $credit; $credit['allowexchangein'] && ($allowexchangein = TRUE); $credit['allowexchangeout'] && ($allowexchangeout = TRUE); } } $data['exchangestatus'] = $allowexchangein && $allowexchangeout; $data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]); foreach (array('supe_status', 'supe_tablepre', 'supe_siteurl', 'supe_sitename', 'supe_circlestatus') as $variable) { $data['supe'][substr($variable, 5)] = $data[$variable]; unset($data[$variable]); } if (!$data['supe']['status']) { $data['supe'] = array('status' => 0); } else { if (!$data['supe']['items']['status']) { $data['supe']['items'] = array('status' => 0); } if (!isset($data['supe']['attachurl']) && isset($supe['tablepre'])) { $supe['status'] = 1; supe_dbconnect(); $query = $supe['db']->query("SELECT * FROM {$supe[tablepre]}settings WHERE variable IN ('attachmentdir', 'attachmenturl')", 'SILENT'); $supe_settings = array(); while ($supe_setting = $supe['db']->fetch_array($query)) { $supe_settings[$supe_setting['variable']] = $supe_setting['value']; } if (substr($supe_settings['attachmentdir'], 0, 2) == './' && empty($supe_settings['attachmenturl'])) { $supe_settings['attachmenturl'] = $supe['siteurl'] . substr($supe_settings['attachmentdir'], 1); } $data['supe']['attachurl'] = $supe_settings['attachmenturl']; $db->query("UPDATE {$tablepre}settings SET value='" . addslashes(serialize($data['supe'])) . "' WHERE variable='supe'"); } if (!$data['supe']['dbmode']) { unset($data['supe']['dbhost'], $data['supe']['dbuser'], $data['supe']['dbpw'], $data['supe']['dbname']); } } if ($data['insenz']['status'] && $data['insenz']['authkey']) { $softadstatus = intval($data['insenz']['softadstatus']); $hardadstatus = is_array($data['insenz']['hardadstatus']) && $data['insenz']['jsurl'] ? implode(',', $data['insenz']['hardadstatus']) : ''; $relatedadstatus = intval($data['insenz']['relatedadstatus']); $insenz_cronnextrun = intval($db->result_first("SELECT nextrun FROM {$tablepre}campaigns ORDER BY nextrun LIMIT 1")); if (!$softadstatus && !$hardadstatus && !$relatedadstatus && !$data['insenz']['virtualforumstatus'] && !$insenz_cronnextrun) { $data['insenz']['status'] = $data['insenz']['cronnextrun'] = 0; $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($data['insenz'])) . "')"); $data['insenz'] = array(); } else { $data['insenz'] = array('siteid' => $data['insenz']['siteid'], 'uid' => intval($data['insenz']['uid']), 'username' => addslashes($data['insenz']['username']), 'hardadstatus' => $hardadstatus, 'topicrelatedad' => $relatedadstatus && $data['insenz']['topicrelatedad'] ? $data['insenz']['topicrelatedad'] : '', 'traderelatedad' => $relatedadstatus && $data['insenz']['traderelatedad'] ? $data['insenz']['traderelatedad'] : '', 'relatedtrades' => $relatedadstatus && $data['insenz']['traderelatedad'] && $data['insenz']['relatedtrades'] ? $data['insenz']['relatedtrades'] : '', 'cronnextrun' => $insenz_cronnextrun, 'statsnextrun' => intval($data['insenz']['statsnextrun']), 'jsurl' => $data['insenz']['jsurl']); } } else { $data['insenz'] = array(); } if (!empty($data['google']['status'])) { $data['google'] = $data['google']['searchbox']; } else { $data['google'] = 0; } if ($data['qihoo']['status']) { $qihoo = $data['qihoo']; $data['qihoo']['links'] = $data['qihoo']['relate'] = array(); foreach (explode("\n", trim($qihoo['keywords'])) as $keyword) { if ($keyword = trim($keyword)) { $data['qihoo']['links']['keywords'][] = '<a href="search.php?srchtype=qihoo&srchtxt=' . rawurlencode($keyword) . '&searchsubmit=yes" target="_blank">' . dhtmlspecialchars(trim($keyword)) . '</a>'; } } foreach ((array) $qihoo['topics'] as $topic) { if ($topic['topic'] = trim($topic['topic'])) { $data['qihoo']['links']['topics'][] = '<a href="topic.php?topic=' . rawurlencode($topic['topic']) . '&keyword=' . rawurlencode($topic['keyword']) . '&stype=' . $topic['stype'] . '&length=' . $topic['length'] . '&relate=' . $topic['relate'] . '" target="_blank">' . dhtmlspecialchars(trim($topic['topic'])) . '</a>'; } } if (is_array($qihoo['relatedthreads'])) { if ($data['qihoo']['relate']['bbsnum'] = intval($qihoo['relatedthreads']['bbsnum'])) { $data['qihoo']['relate']['position'] = intval($qihoo['relatedthreads']['position']); $data['qihoo']['relate']['validity'] = intval($qihoo['relatedthreads']['validity']); if ($data['qihoo']['relate']['webnum'] = intval($qihoo['relatedthreads']['webnum'])) { $data['qihoo']['relate']['banurl'] = $qihoo['relatedthreads']['banurl'] ? '/(' . str_replace("\r\n", '|', $qihoo['relatedthreads']['banurl']) . ')/i' : ''; $data['qihoo']['relate']['type'] = implode('|', (array) $qihoo['relatedthreads']['type']); $data['qihoo']['relate']['order'] = intval($qihoo['relatedthreads']['order']); } } else { $data['qihoo']['relate'] = array(); } } unset($qihoo, $data['qihoo']['keywords'], $data['qihoo']['topics'], $data['qihoo']['relatedthreads']); } else { $data['qihoo'] = array(); } $data['plugins'] = $data['pluginlinks'] = array(); $query = $db->query("SELECT available, name, identifier, directory, datatables, modules FROM {$tablepre}plugins"); while ($plugin = $db->fetch_array($query)) { $plugin['modules'] = unserialize($plugin['modules']); if (is_array($plugin['modules'])) { foreach ($plugin['modules'] as $module) { if ($plugin['available'] && isset($module['name'])) { switch ($module['type']) { case 1: $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>"); break; case 2: $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>"); $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']); break; case 4: $data['plugins']['include'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'script' => $plugin['directory'] . $module['name']); break; case 5: $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>"); break; case 6: $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>"); $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']); break; } } } } } if (is_array($data['plugins']['links'])) { usort($data['plugins']['links'], 'pluginmodulecmp'); foreach ($data['plugins']['links'] as $key => $module) { unset($data['plugins']['links'][$key]['displayorder']); } } if (is_array($data['plugins']['include'])) { usort($data['plugins']['include'], 'pluginmodulecmp'); foreach ($data['plugins']['include'] as $key => $module) { unset($data['plugins']['include'][$key]['displayorder']); } } if (is_array($data['plugins']['jsmenu'])) { usort($data['plugins']['jsmenu'], 'pluginmodulecmp'); foreach ($data['plugins']['jsmenu'] as $key => $module) { unset($data['plugins']['jsmenu'][$key]['displayorder']); } } $data['hooks'] = array(); $query = $db->query("SELECT ph.title, ph.code, p.identifier FROM {$tablepre}plugins p\r\n\t\t\t\tLEFT JOIN {$tablepre}pluginhooks ph ON ph.pluginid=p.pluginid AND ph.available='1'\r\n\t\t\t\tWHERE p.available='1' ORDER BY p.identifier"); while ($hook = $db->fetch_array($query)) { if ($hook['title'] && $hook['code']) { $data['hooks'][$hook['identifier'] . '_' . $hook['title']] = $hook['code']; } } break; case 'custominfo': while ($setting = $db->fetch_array($query)) { $data[$setting['variable']] = $setting['value']; } $data['customauthorinfo'] = unserialize($data['customauthorinfo']); $data['customauthorinfo'] = $data['customauthorinfo'][0]; $data['extcredits'] = unserialize($data['extcredits']); include language('templates'); $authorinfoitems = array('uid' => '$post[uid]', 'posts' => '$post[posts]', 'digest' => '<a href="digest.php?authorid=$post[authorid]">$post[digestposts]</a>', 'credits' => '$post[credits]', 'readperm' => '$post[readaccess]', 'gender' => '$post[gender]', 'location' => '$post[location]', 'oltime' => '$post[oltime] ' . $language['hours'], 'regtime' => '$post[regdate]', 'lastdate' => '$post[lastdate]'); if (!empty($data['extcredits'])) { foreach ($data['extcredits'] as $key => $value) { if ($value['available'] && $value['showinthread']) { $authorinfoitems['extcredits' . $key] = array($value['title'], '$post[extcredits' . $key . '] {$extcredits[' . $key . '][unit]}'); } } } $data['fieldsadd'] = ''; $data['profilefields'] = array(); $query = $db->query("SELECT * FROM {$tablepre}profilefields WHERE available='1' AND invisible='0' AND showinthread='1' ORDER BY displayorder"); while ($field = $db->fetch_array($query)) { $data['fieldsadd'] .= ', mf.field_' . $field['fieldid']; if ($field['selective']) { foreach (explode("\n", $field['choices']) as $item) { list($index, $choice) = explode('=', $item); $data['profilefields'][$field['fieldid']][trim($index)] = trim($choice); } $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '{$profilefields[' . $field['fieldid'] . '][$post[field_' . $field['fieldid'] . ']]}'); } else { $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '$post[field_' . $field['fieldid'] . ']'); } } $customauthorinfo = array(); if (is_array($data['customauthorinfo'])) { foreach ($data['customauthorinfo'] as $key => $value) { if (array_key_exists($key, $authorinfoitems)) { if (substr($key, 0, 10) == 'extcredits') { $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . ' </dd>', '"'); } elseif (substr($key, 0, 6) == 'field_') { $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . ' </dd>', '"'); } elseif ($key == 'gender') { $v = '".(' . $authorinfoitems['gender'] . ' == 1 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_male'] . ' </dd>', '"') . '" : (' . $authorinfoitems['gender'] . ' == 2 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_female'] . ' </dd>', '"') . '" : ""))."'; } elseif ($key == 'location') { $v = '".(' . $authorinfoitems[$key] . ' ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . ' </dd>', '"') . '" : "")."'; } else { $v = addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . ' </dd>', '"'); } if (isset($value['left'])) { $customauthorinfo[1][] = $v; } if (isset($value['menu'])) { $customauthorinfo[2][] = $v; } if (isset($value['special'])) { $customauthorinfo[3][] = $v; } } } } $GLOBALS['postminheight'] = ($data['maxavatarpixel'] > 300 ? 300 : $data['maxavatarpixel']) + count($customauthorinfo[1]) * 20; $customauthorinfo[1] = @implode('', $customauthorinfo[1]); $customauthorinfo[2] = @implode('', $customauthorinfo[2]); $customauthorinfo[3] = @implode('', $customauthorinfo[3]); $data['customauthorinfo'] = $customauthorinfo; updatecache('styles'); $postnocustomnew[0] = $data['postno'] != '' ? preg_match("/^[-]+\$/", $data['postno']) ? '<sup>' . $data['postno'] . '</sup>' : $data['postno'] : '<sup>#</sup>'; $data['postnocustom'] = unserialize($data['postnocustom']); if (is_array($data['postnocustom'])) { foreach ($data['postnocustom'] as $key => $value) { $value = trim($value); $postnocustomnew[$key + 1] = preg_match("/^[-]+\$/", $value) ? '<sup>' . $value . '</sup>' : $value; } } unset($data['postno'], $data['postnocustom'], $data['extcredits'], $data['maxavatarpixel']); $data['postno'] = $postnocustomnew; break; case 'jswizard': while ($jswizard = $db->fetch_array($query)) { $key = substr($jswizard['variable'], 9); $data[$key] = unserialize($jswizard['value']); unset($data[$key]['type']); unset($data[$key]['parameter']); } break; case 'usergroups': global $userstatusby; while ($group = $db->fetch_array($query)) { $groupid = $group['groupid']; $group['grouptitle'] = $group['color'] ? '<font color="' . $group['color'] . '">' . $group['grouptitle'] . '</font>' : $group['grouptitle']; if ($userstatusby == 1) { $group['userstatusby'] = 1; } elseif ($userstatusby == 2) { if ($group['type'] != 'member') { $group['userstatusby'] = 1; } else { $group['userstatusby'] = 2; } } if ($group['type'] != 'member') { unset($group['creditshigher'], $group['creditslower']); } unset($group['groupid'], $group['color']); $data[$groupid] = $group; } break; case 'ranks': global $userstatusby; if ($userstatusby == 2) { while ($rank = $db->fetch_array($query)) { $rank['ranktitle'] = $rank['color'] ? '<font color="' . $rank['color'] . '">' . $rank['ranktitle'] . '</font>' : $rank['ranktitle']; unset($rank['color']); $data[] = $rank; } } break; case 'announcements': $data = array(); while ($datarow = $db->fetch_array($query)) { if ($datarow['type'] == 2) { $datarow['pmid'] = $datarow['id']; unset($datarow['id']); unset($datarow['message']); $datarow['subject'] = cutstr($datarow['subject'], 60); } $datarow['groups'] = empty($datarow['groups']) ? array() : explode(',', $datarow['groups']); $data[] = $datarow; } break; case 'announcements_forum': if ($data = $db->fetch_array($query)) { $data['authorid'] = intval($data['authorid']); if (empty($data['type'])) { unset($data['message']); } } else { $data = array(); } break; case 'pmlist': $data = array(); while ($datarow = $db->fetch_array($query)) { $datarow['subject'] = cutstr($datarow['subject'], 60); $datarow['groups'] = empty($datarow['groups']) ? array() : explode(',', $datarow['groups']); $data[] = $datarow; } break; case 'globalstick': $fuparray = $threadarray = array(); while ($forum = $db->fetch_array($query)) { switch ($forum['type']) { case 'forum': $fuparray[$forum['fid']] = $forum['fup']; break; case 'sub': $fuparray[$forum['fid']] = $fuparray[$forum['fup']]; break; } } $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (2, 3)"); while ($thread = $db->fetch_array($query)) { switch ($thread['displayorder']) { case 2: $threadarray[$fuparray[$thread['fid']]][] = $thread['tid']; break; case 3: $threadarray['global'][] = $thread['tid']; break; } } foreach (array_unique($fuparray) as $gid) { if (!empty($threadarray[$gid])) { $data['categories'][$gid] = array('tids' => implode(',', $threadarray[$gid]), 'count' => intval(@count($threadarray[$gid]))); } } $data['global'] = array('tids' => empty($threadarray['global']) ? 0 : implode(',', $threadarray['global']), 'count' => intval(@count($threadarray['global']))); break; case 'floatthreads': $fuparray = $threadarray = $forums = array(); while ($forum = $db->fetch_array($query)) { switch ($forum['type']) { case 'forum': $fuparray[$forum['fid']] = $forum['fup']; break; case 'sub': $fuparray[$forum['fid']] = $fuparray[$forum['fup']]; break; } } $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (4, 5)"); while ($thread = $db->fetch_array($query)) { switch ($thread['displayorder']) { case 4: $threadarray[$thread['fid']][] = $thread['tid']; break; case 5: $threadarray[$fuparray[$thread['fid']]][] = $thread['tid']; break; } $forums[] = $thread['fid']; } foreach (array_unique($fuparray) as $gid) { if (!empty($threadarray[$gid])) { $data['categories'][$gid] = implode(',', $threadarray[$gid]); } } foreach (array_unique($forums) as $fid) { if (!empty($threadarray[$fid])) { $data['forums'][$fid] = implode(',', $threadarray[$fid]); } } break; case 'censor': $banned = $mod = array(); $data = array('filter' => array(), 'banned' => '', 'mod' => ''); while ($censor = $db->fetch_array($query)) { $censor['find'] = preg_replace("/\\\\{(\\d+)\\\\}/", ".{0,\\1}", preg_quote($censor['find'], '/')); switch ($censor['replacement']) { case '{BANNED}': $banned[] = $censor['find']; break; case '{MOD}': $mod[] = $censor['find']; break; default: $data['filter']['find'][] = '/' . $censor['find'] . '/i'; $data['filter']['replace'][] = $censor['replacement']; break; } } if ($banned) { $data['banned'] = '/(' . implode('|', $banned) . ')/i'; } if ($mod) { $data['mod'] = '/(' . implode('|', $mod) . ')/i'; } break; case 'forums': while ($forum = $db->fetch_array($query)) { $forum['orderby'] = bindec(($forum['simple'] & 128 ? 1 : 0) . ($forum['simple'] & 64 ? 1 : 0)); $forum['ascdesc'] = $forum['simple'] & 32 ? 'ASC' : 'DESC'; if (!isset($forumlist[$forum['fid']])) { $forum['name'] = strip_tags($forum['name']); if ($forum['uid']) { $forum['users'] = "\t{$forum['uid']}\t"; } unset($forum['uid']); if ($forum['fup']) { $forumlist[$forum['fup']]['count']++; } $forumlist[$forum['fid']] = $forum; } elseif ($forum['uid']) { if (!$forumlist[$forum['fid']]['users']) { $forumlist[$forum['fid']]['users'] = "\t"; } $forumlist[$forum['fid']]['users'] .= "{$forum['uid']}\t"; } } $orderbyary = array('lastpost', 'dateline', 'replies', 'views'); if (!empty($forumlist)) { foreach ($forumlist as $fid1 => $forum1) { if ($forum1['type'] == 'group' && $forum1['count']) { $data[$fid1]['fid'] = $forum1['fid']; $data[$fid1]['type'] = $forum1['type']; $data[$fid1]['name'] = $forum1['name']; $data[$fid1]['fup'] = $forum1['fup']; $data[$fid1]['viewperm'] = $forum1['viewperm']; $data[$fid1]['orderby'] = $orderbyary[$forum1['orderby']]; $data[$fid1]['ascdesc'] = $forum1['ascdesc']; foreach ($forumlist as $fid2 => $forum2) { if ($forum2['fup'] == $fid1 && $forum2['type'] == 'forum') { $data[$fid2]['fid'] = $forum2['fid']; $data[$fid2]['type'] = $forum2['type']; $data[$fid2]['name'] = $forum2['name']; $data[$fid2]['fup'] = $forum2['fup']; $data[$fid2]['viewperm'] = $forum2['viewperm']; $data[$fid2]['orderby'] = $orderbyary[$forum2['orderby']]; $data[$fid2]['ascdesc'] = $forum2['ascdesc']; foreach ($forumlist as $fid3 => $forum3) { if ($forum3['fup'] == $fid2 && $forum3['type'] == 'sub') { $data[$fid3]['fid'] = $forum3['fid']; $data[$fid3]['type'] = $forum3['type']; $data[$fid3]['name'] = $forum3['name']; $data[$fid3]['fup'] = $forum3['fup']; $data[$fid3]['viewperm'] = $forum3['viewperm']; $data[$fid3]['orderby'] = $orderbyary[$forum3['orderby']]; $data[$fid3]['ascdesc'] = $forum3['ascdesc']; } } } } } } } break; case 'onlinelist': $data['legend'] = ''; while ($list = $db->fetch_array($query)) { $data[$list['groupid']] = $list['url']; $data['legend'] .= "<img src=\"images/common/{$list['url']}\" alt=\"\" /> {$list['title']} "; if ($list['groupid'] == 7) { $data['guest'] = $list['title']; } } break; case 'forumlinks': global $forumlinkstatus; if ($forumlinkstatus) { $tightlink_text = $tightlink_logo = ''; while ($flink = $db->fetch_array($query)) { if ($flink['description']) { $forumlink['content'] = "<h5><a href=\"{$flink['url']}\" target=\"_blank\">{$flink['name']}</a></h5><p>{$flink['description']}</p>"; if ($flink['logo']) { $forumlink['type'] = 1; $forumlink['logo'] = $flink['logo']; } else { $forumlink['type'] = 2; } $data[] = $forumlink; } else { if ($flink['logo']) { $tightlink_logo .= "<a href=\"{$flink['url']}\" target=\"_blank\"><img src=\"{$flink['logo']}\" border=\"0\" alt=\"{$flink['name']}\" /></a> "; } else { $tightlink_text .= "<a href=\"{$flink['url']}\" target=\"_blank\">[{$flink['name']}]</a> "; } } } if ($tightlink_logo || $tightlink_text) { $tightlink_logo .= $tightlink_logo ? '<br />' : ''; $data[] = array('type' => 3, 'content' => $tightlink_logo . $tightlink_text); } } else { $data = array(); } break; case 'bbcodes': $regexp = array(1 => "/\\[{bbtag}]([^\"]+?)\\[\\/{bbtag}\\]/is", 2 => "/\\[{bbtag}=(['\"]?)([^\"]+?)(['\"]?)\\]([^\"]+?)\\[\\/{bbtag}\\]/is", 3 => "/\\[{bbtag}=(['\"]?)([^\"]+?)(['\"]?),(['\"]?)([^\"]+?)(['\"]?)\\]([^\"]+?)\\[\\/{bbtag}\\]/is"); while ($bbcode = $db->fetch_array($query)) { $search = str_replace('{bbtag}', $bbcode['tag'], $regexp[$bbcode['params']]); $bbcode['replacement'] = preg_replace("/([\r\n])/", '', $bbcode['replacement']); switch ($bbcode['params']) { case 2: $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{2}', '\\4', $bbcode['replacement']); break; case 3: $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']); $bbcode['replacement'] = str_replace('{3}', '\\7', $bbcode['replacement']); break; default: $bbcode['replacement'] = str_replace('{1}', '\\1', $bbcode['replacement']); break; } if (preg_match("/\\{(RANDOM|MD5)\\}/", $bbcode['replacement'])) { $search = str_replace('is', 'ies', $search); $replace = '\'' . str_replace('{RANDOM}', '_\'.random(6).\'', str_replace('{MD5}', '_\'.md5(\'\\1\').\'', $bbcode['replacement'])) . '\''; } else { $replace = $bbcode['replacement']; } for ($i = 0; $i < $bbcode['nest']; $i++) { $data['searcharray'][] = $search; $data['replacearray'][] = $replace; } } break; case 'bbcodes_display': while ($bbcode = $db->fetch_array($query)) { $tag = $bbcode['tag']; $bbcode['explanation'] = dhtmlspecialchars(trim($bbcode['explanation'])); $bbcode['prompt'] = addcslashes($bbcode['prompt'], '\\\''); unset($bbcode['tag']); $data[$tag] = $bbcode; } break; case 'smilies': $data = array('searcharray' => array(), 'replacearray' => array(), 'typearray' => array()); while ($smiley = $db->fetch_array($query)) { $data['searcharray'][$smiley['id']] = '/' . preg_quote(dhtmlspecialchars($smiley['code']), '/') . '/'; $data['replacearray'][$smiley['id']] = $smiley['url']; $data['typearray'][$smiley['id']] = $smiley['typeid']; } break; case 'smilies_display': while ($type = $db->fetch_array($query)) { $squery = $db->query("SELECT id, code, url FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$type['typeid']}' ORDER BY displayorder"); if ($db->num_rows($squery)) { while ($smiley = $db->fetch_array($squery)) { if ($size = @getimagesize('./images/smilies/' . $type['directory'] . '/' . $smiley['url'])) { $smiley['code'] = dhtmlspecialchars($smiley['code']); $smileyid = $smiley['id']; $s = smthumb($size, $GLOBALS['smthumb']); $smiley['w'] = $s['w']; $smiley['h'] = $s['h']; $l = smthumb($size); $smiley['lw'] = $l['w']; unset($smiley['id'], $smiley['directory']); $data[$type['typeid']][$smileyid] = $smiley; } } } } break; case 'smileytypes': while ($type = $db->fetch_array($query)) { $typeid = $type['typeid']; unset($type['typeid']); $squery = $db->query("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$typeid}'"); if ($db->result($squery, 0)) { $data[$typeid] = $type; } } break; case 'icons': while ($icon = $db->fetch_array($query)) { $data[$icon['id']] = $icon['url']; } break; case in_array($cachename, array('fields_required', 'fields_optional')): while ($field = $db->fetch_array($query)) { $choices = array(); if ($field['selective']) { foreach (explode("\n", $field['choices']) as $item) { list($index, $choice) = explode('=', $item); $choices[trim($index)] = trim($choice); } $field['choices'] = $choices; } else { unset($field['choices']); } $data['field_' . $field['fieldid']] = $field; } break; case 'ipbanned': if ($db->num_rows($query)) { $data['expiration'] = 0; $data['regexp'] = $separator = ''; } while ($banned = $db->fetch_array($query)) { $data['expiration'] = !$data['expiration'] || $banned['expiration'] < $data['expiration'] ? $banned['expiration'] : $data['expiration']; $data['regexp'] .= $separator . ($banned['ip1'] == '-1' ? '\\d+\\.' : $banned['ip1'] . '\\.') . ($banned['ip2'] == '-1' ? '\\d+\\.' : $banned['ip2'] . '\\.') . ($banned['ip3'] == '-1' ? '\\d+\\.' : $banned['ip3'] . '\\.') . ($banned['ip4'] == '-1' ? '\\d+' : $banned['ip4']); $separator = '|'; } break; case 'google': $data = unserialize($db->result($query, 0)); $lr = $data['lang'] ? 'lang_' . $data['lang'] : ''; $jsdata = 'var google_host="' . $_SERVER['HTTP_HOST'] . '";var google_charset="' . $charset . '";var google_hl="' . $data['lang'] . '";var google_lr="' . $lr . '";'; $cachedir = DISCUZ_ROOT . './forumdata/cache/'; if (@($fp = fopen($cachedir . 'google_var.js', 'w'))) { fwrite($fp, $jsdata); fclose($fp); } else { exit('Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .'); } break; case 'medals': while ($medal = $db->fetch_array($query)) { $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']); } break; case 'magics': while ($magic = $db->fetch_array($query)) { $data[$magic['magicid']]['identifier'] = $magic['identifier']; $data[$magic['magicid']]['available'] = $magic['available']; $data[$magic['magicid']]['name'] = $magic['name']; $data[$magic['magicid']]['description'] = $magic['description']; $data[$magic['magicid']]['weight'] = $magic['weight']; $data[$magic['magicid']]['price'] = $magic['price']; } break; case 'birthdays_index': $bdaymembers = array(); while ($bdaymember = $db->fetch_array($query)) { $birthyear = intval($bdaymember['bday']); $bdaymembers[] = '<a href="space.php?uid=' . $bdaymember['uid'] . '" target="_blank" ' . ($birthyear ? 'title="' . $bdaymember['bday'] . '"' : '') . '>' . $bdaymember['username'] . '</a>'; } $data['todaysbdays'] = implode(', ', $bdaymembers); break; case 'birthdays': $data['uids'] = $comma = ''; $data['num'] = 0; while ($bdaymember = $db->fetch_array($query)) { $data['uids'] .= $comma . $bdaymember['uid']; $comma = ','; $data['num']++; } break; case 'modreasons': $modreasons = $db->result($query, 0); $modreasons = str_replace(array("\r\n", "\r"), array("\n", "\n"), $modreasons); $data = explode("\n", trim($modreasons)); break; case substr($cachename, 0, 5) == 'advs_': $data = advertisement(substr($cachename, 5)); break; case 'faqs': while ($faqs = $db->fetch_array($query)) { $data[$faqs['identifier']]['id'] = $faqs['id']; $data[$faqs['identifier']]['keyword'] = $faqs['keyword']; } break; case 'secqaa': $secqaanum = $db->result_first("SELECT COUNT(*) FROM {$tablepre}itempool"); $start_limit = $secqaanum <= 10 ? 0 : mt_rand(0, $secqaanum - 10); $query = $db->query("SELECT question, answer FROM {$tablepre}itempool LIMIT {$start_limit}, 10"); while ($secqaa = $db->fetch_array($query)) { $secqaa['answer'] = md5($secqaa['answer']); $data[] = $secqaa; } while (($secqaas = count($data)) < 10) { $data[$secqaas] = $data[array_rand($data)]; } break; case 'supe_updateusers': global $supe; supe_dbconnect(); if ($supe['status'] && $supe['maxupdateusers']) { $query = $supe['db']->query("SELECT uid, username FROM {$supe[tablepre]}userspaces WHERE islock=0 ORDER BY lastpost DESC LIMIT {$supe['maxupdateusers']}", 'SILENT'); while ($datarow = $supe['db']->fetch_array($query)) { $data[$datarow['uid']] = $datarow; } } break; case 'supe_updateitems': global $supe; supe_dbconnect(); if ($supe['status'] && $supe['items']['status']) { $limit = $supe['items']['rows'] * $supe['items']['columns']; switch ($supe['items']['orderby']) { case '1': $orderby = 'viewnum'; break; case '2': $orderby = 'replynum'; break; case '3': $orderby = 'dateline'; break; case '4': $orderby = 'lastpost'; break; default: $orderby = 'itemid'; } $supe['items']['hours'] = $supe['items']['hours'] > 0 ? $supe['items']['hours'] : 24; $conditions = !in_array($orderby, array('dateline', 'lastpost')) ? 'WHERE folder=1 AND type<>\'news\' AND dateline >=' . ($timestamp - $supe['items']['hours'] * 3600) : 'WHERE folder=1 AND type<>\'news\''; $query = $supe['db']->query("SELECT itemid, uid, username, type, subject FROM {$supe[tablepre]}spaceitems {$conditions} ORDER BY {$orderby} DESC LIMIT {$limit}", 'SILENT'); $itemtable = ''; $items = array(); include language('templates'); while ($item = $supe['db']->fetch_array($query)) { $typename = $language['supe_' . $item['type']]; $items[] = '<em>[<a href="' . $supe['siteurl'] . '/?action-' . $item['type'] . '" target="_blank">' . $typename . '</a>]</em> <cite><a href="' . $supe['siteurl'] . '/?uid-' . $item['uid'] . '" target="_blank">' . addcslashes(addslashes($item['username']), '\\\'') . '</a></cite>: <a href="' . $supe['siteurl'] . '/?action-viewspace-itemid-' . $item['itemid'] . '.html" target="_blank">' . addcslashes(addslashes(cutstr($item['subject'], 35)), '\\\'') . '</a>'; } if ($items) { for ($i = 0; $i < $limit; $i++) { $itemtable .= '<li style="width: ' . intval(100 / $supe['items']['columns']) . '%;">' . (isset($items[$i]) ? $items[$i] : ' ') . '</li>'; } } $data = $itemtable; } break; case 'supe_updatecircles': global $supe; if ($supe['status'] && $supe['circlestatus'] && $supe['updatecircles']) { supe_dbconnect(); $query = $supe['db']->query("SELECT gid, uid, username, groupname, logo, usernum, lastpost FROM {$supe['tablepre']}groups WHERE catid>0 AND flag=1 ORDER BY lastpost DESC LIMIT 8", 'SILENT'); while ($datarow = $supe['db']->fetch_array($query)) { $datarow['groupname'] = cutstr($datarow['groupname'], 30); $data[] = $datarow; } } break; case substr($cachename, 0, 5) == 'tags_': global $tagstatus, $hottags; $tagnames = array(); if ($tagstatus) { if (substr($cachename, 5) == 'index') { if ($hottags) { $tagary = array(); while ($tagrow = $db->fetch_array($query)) { $tagary[] = '<a href="tag.php?name=' . rawurlencode($tagrow['tagname']) . '" target="_blank">' . $tagrow['tagname'] . '<em>(' . $tagrow['total'] . ')</em></a>'; } $data = implode(' ', $tagary); } else { $data = ''; } } else { $data[0] = $data[1] = array(); while ($tagrow = $db->fetch_array($query)) { $data[0][] = $tagrow['tagname']; $data[1][] = rawurlencode($tagrow['tagname']); } $data[0] = '[\'' . implode('\',\'', $data[0]) . '\']'; $data[1] = '[\'' . implode('\',\'', $data[1]) . '\']'; } } break; default: while ($datarow = $db->fetch_array($query)) { $data[] = $datarow; } } $dbcachename = $cachename; $cachename = in_array(substr($cachename, 0, 5), array('advs_', 'tags_')) ? substr($cachename, 0, 4) : $cachename; $curdata = "\$_DCACHE['{$cachename}'] = " . arrayeval($data) . ";\n\n"; $db->query("REPLACE INTO {$tablepre}caches (cachename, type, dateline, data) VALUES ('{$dbcachename}', '1', '{$timestamp}', '" . addslashes($curdata) . "')"); return $curdata; }
<p>In order to know whether your MP is representing your views on the issues, you need to know how they’ve voted.</p> <p>The Public Whip lets you see all their votes so you can hold them to account.</p> </div> <div class="homesearch"> <h2>Search the Whip</h2> <p>Enter your <strong>postcode</strong>, an <strong>MP</strong> or <strong>Lord’s name</strong>, or a particular <strong>topic</strong> of interest</p> <form class="searchtitlebarform" action="/search.php" name="pw" method="get"> <input maxLength=256 size=12 name="query" id="query" onblur="fadeout(this)" onfocus="fadein(this)"> <button type="submit" value="Submit" name="button">Submit</button> </form> </div> <?php if (true === function_exists('advertisement')) { advertisement('homepage'); } ?> <div class="homerecents"> <div class="narrowwidth"> <h2>Recent controversial divisions</h2> <p><a href="divisions.php" title="Show all divisions ordered by most recent">Show all divisions ordered by most recent</a></p> <?php $divtabattr = array("showwhich" => 'rebellions10', "headings" => 'frontpageshort', "limitby" => 5); print "<table class=\"votes\">\n"; division_table($db, $divtabattr); print "</table>\n"; ?> </div>