function insenz_register($type) { global $insenz, $db, $tablepre, $_DCACHE, $boardurl, $timestamp, $authkey, $discuz_uid, $discuz_user, $response; checkip(); if ($type == 1) { @extract($insenz['profile']); foreach (array('username', 'password', 'name', 'idcard', 'email1', 'email2', 'qq', 'msn', 'tel1', 'tel2', 'tel3', 'mobile', 'fax1', 'fax2', 'fax3', 'country', 'province', 'city', 'address', 'postcode', 'alipay') as $item) { ${$item} = stripslashes(${$item}); } } else { $username = $insenz['profile']['username']; $password = $insenz['profile']['password']; } $insenz['notify'] = is_array($insenz['notify']) ? $insenz['notify'] : array(2); $insenz['hardadstatus'] = is_array($insenz['hardadstatus']) ? $insenz['hardadstatus'] : array(1, 2, 3, 4, 5); $query = $db->query("SELECT COUNT(*) FROM {$tablepre}members"); $members = $db->result($query, 0); $query = $db->query("SELECT COUNT(*) FROM {$tablepre}members WHERE posts>0"); $post_members = $db->result($query, 0); $query = $db->query("SELECT COUNT(*) FROM {$tablepre}threads WHERE displayorder>='0'"); $threads = $db->result($query, 0); $query = $db->query("SELECT COUNT(*) FROM {$tablepre}posts WHERE invisible='0'"); $posts = $db->result($query, 0); $date = getdate($timestamp); $yesterday_end = mktime(0, 0, 0, $date['mon'], $date['mday'], $date['year']); $lastweek_start = $yesterday_end - 7 * 86400; $lastweek_pertopics = $lastweek_perposts = $forumstats = array(); $query = $db->query("SELECT DISTINCT(fid) AS fid, COUNT(tid) AS topics FROM {$tablepre}threads WHERE dateline BETWEEN {$lastweek_start} AND {$yesterday_end} GROUP BY fid ORDER BY topics DESC"); while ($p = $db->fetch_array($query)) { $lastweek_pertopics[$p['fid']] = ceil($p['topics'] / 7); } $query = $db->query("SELECT DISTINCT(fid) AS fid, COUNT(pid) AS posts FROM {$tablepre}posts WHERE dateline BETWEEN {$lastweek_start} AND {$yesterday_end} GROUP BY fid ORDER BY posts DESC"); while ($p = $db->fetch_array($query)) { $lastweek_perposts[$p['fid']] = ceil($p['posts'] / 7); } $query = $db->query("SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.displayorder, f.status, f.simple, ff.description, ff.redirect FROM {$tablepre}forums f LEFT JOIN {$tablepre}forumfields ff ON f.fid=ff.fid"); while ($forum = $db->fetch_array($query)) { $fid = $forum['fid']; unset($forum['fid']); $forum['lastweek_pertopics'] = intval($lastweek_pertopics[$fid]); $forum['lastweek_perposts'] = intval($lastweek_perposts[$fid]); $forumstats[$fid] = $forum; } $postdata = '<cmd id="register"><handle>' . insenz_convert($username) . '</handle> <passwd>' . $password . '</passwd>'; if ($type == 1) { $postdata .= '<name>' . insenz_convert($name) . '</name> <idcard>' . $idcard . '</idcard> <tel>' . $tel1 . '-' . $tel2 . '-' . $tel3 . '</tel> <mobile>' . $mobile . '</mobile> <fax>' . $fax1 . '-' . $fax2 . '-' . $fax3 . '</fax> <email>' . $email1 . '</email> <email2>' . $email2 . '</email2> <qq>' . $qq . '</qq> <msn>' . $msn . '</msn> <alipay>' . $alipay . '</alipay> <country>' . $country . '</country> <province>' . $province . '</province> <city>' . $city . '</city> <addr>' . insenz_convert($address) . '</addr> <postcode>' . $postcode . '</postcode>'; } $postdata .= '<url>' . $boardurl . '</url> <s_key>' . md5($authkey . 'Discuz!INSENZ') . '</s_key> <bbname>' . insenz_convert($_DCACHE['settings']['bbname']) . '</bbname> <members>' . $members . '</members> <post_members>' . $post_members . '</post_members> <topics>' . $threads . '</topics> <posts>' . $posts . '</posts> <softadstatus>' . intval($insenz['softadstatus']) . '</softadstatus> <notify>' . implode(',', $insenz['notify']) . '</notify> <autoextend>' . intval($insenz['autoextend']) . '</autoextend> <hardadstatus>' . implode(',', $insenz['hardadstatus']) . '</hardadstatus> <relatedadstatus>' . intval($insenz['relatedadstatus']) . '</relatedadstatus> <virtualforumstatus>' . intval($insenz['virtualforumstatus']) . '</virtualforumstatus>'; foreach ($forumstats as $fid => $forum) { $postdata .= '<board> <board_id>' . $fid . '</board_id> <parent_id>' . $forum['fup'] . '</parent_id> <board_type>' . $forum['type'] . '</board_type> <name>' . insenz_convert($forum['name']) . '</name> <topics>' . $forum['threads'] . '</topics> <posts>' . $forum['posts'] . '</posts> <lastweek_pertopics>' . $forum['lastweek_pertopics'] . '</lastweek_pertopics> <lastweek_perposts>' . $forum['lastweek_perposts'] . '</lastweek_perposts> <description>' . insenz_convert($forum['description']) . '</description> <status>' . $forum['status'] . '</status> <simple>' . $forum['simple'] . '</simple> <redirect>' . insenz_convert($forum['redirect']) . '</redirect> <displayorder>' . $forum['displayorder'] . '</displayorder></board>'; } $postdata .= '<type>' . ($type == 1 ? 'register' : 'bind') . '</type></cmd>'; unset($insenz['siteid']); $response = insenz_request($postdata); if ($response['status']) { insenz_alert($response['data']); } else { $response = $response['data']; } $status = $response['response'][0]['status'][0]['VALUE']; if ($status == 0) { $insenz['authkey'] = $response['response'][0]['authkey'][0]['VALUE']; $insenz['siteid'] = $response['response'][0]['site_id'][0]['VALUE']; $insenz['uid'] = $discuz_uid; $insenz['username'] = $discuz_userss; insenz_updatesettings(); unset($insenz['profile'], $insenz['step']); $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($insenz)) . "')"); require_once DISCUZ_ROOT . './include/cache.func.php'; updatecache('settings'); insenz_cpmsg('insenz_register_succeed'); } else { $response['reason'] = insenz_convert($response['response'][0]['reason'][0]['VALUE'], 0); unset($insenz['authkey'], $insenz['siteid']); $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($insenz)) . "')"); insenz_alert('insenz_register_failed'); } }
function insenz_showsettings($do = '') { global $insenz, $db, $tablepre, $discuz_user, $timestamp, $lang; $type = array('basic' => $lang['insenz_settings_basic'], 'softad' => $lang['insenz_settings_softad'], 'hardad' => $lang['insenz_settings_hardad'], 'relatedad' => $lang['insenz_settings_relatedad'], 'virtualforum' => $lang['insenz_settings_virtualforum']); if (!$do || $do == 'basic') { $insenz['notify'] = is_array($insenz['notify']) ? $insenz['notify'] : array(); $insenz['notify'][2] = 1; $insenz_notify = bindec(intval($insenz['notify'][2]) . intval($insenz['notify'][1])); $msgto = ''; if (!empty($insenz['msgtoid'])) { $query = $db->query("SELECT username FROM {$tablepre}members WHERE uid='{$insenz['msgtoid']}'"); $msgto = $db->result($query, 0); } $msgto = $msgto ? $msgto : $discuz_userss; $disabled = $insenz['notify'][1] ? 0 : 1; if (!$do) { showtitle($type['basic']); } else { showtableheader(); showtitle($type['basic']); if (empty($insenz['handle'])) { $response = insenz_request('<cmd id="queryhandle"></cmd>'); if ($response['status']) { $insenz['handle'] = ''; } else { $insenz['handle'] = $response['data']['response'][0]['handle'][0]['VALUE']; $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($insenz)) . "')"); } } if ($insenz['handle']) { showsetting('insenz_username', '', '', $insenz['handle']); } } showsetting('insenz_settings_notify', array('notify', array($lang['insenz_settings_notify1'], $lang['insenz_settings_notify2']), array('onclick="this.form.msgto.disabled=this.checked?false:true;"', '')), $insenz_notify, 'binmcheckbox'); showsetting('insenz_settings_msgto', 'msgto', $msgto, 'text', $disabled); } if (!$do || $do == 'softad') { $insenz['softadstatus'] = isset($insenz['softadstatus']) ? $insenz['softadstatus'] : 2; $softadstatus1 = $insenz['softadstatus'] ? 1 : 0; $softadstatus2 = $insenz['softadstatus'] == 2 ? 1 : 0; $nextmodified = gmdate("{$GLOBALS['dateformat']} {$GLOBALS['timeformat']}", (empty($insenz['lastmodified']) || $insenz['lastmodified'] + 14 * 86400 < $timestamp ? $timestamp : $insenz['lastmodified'] + 14 * 86400) + $GLOBALS['timeoffset'] * 3600); $admin_masks = $member_masks = array(); if ($insenz['admin_masks'] && is_array($insenz['admin_masks'])) { $query = $db->query("SELECT username FROM {$tablepre}members WHERE uid IN ('" . implode("','", $insenz['admin_masks']) . "')"); while ($member = $db->fetch_array($query)) { $admin_masks[] = $member['username']; } } $admin_masks = stripslashes(implode("\n", $admin_masks)); if ($insenz['member_masks'] && is_array($insenz['member_masks'])) { $query = $db->query("SELECT username FROM {$tablepre}members WHERE uid IN ('" . implode("','", $insenz['member_masks']) . "')"); while ($member = $db->fetch_array($query)) { $member_masks[] = $member['username']; } } $member_masks = stripslashes(implode("\n", $member_masks)); if (!$do) { showtitle($type['softad']); } else { showtableheader(); showtitle($type['softad']); } showsetting('insenz_settings_softadstatus1', 'softadstatus1', $softadstatus1, 'radio', '', 1); showsetting('insenz_settings_softadstatus2', 'softadstatus2', $softadstatus2, 'radio'); showsetting('insenz_settings_admins', 'admins', $insenz['admin_masks'] ? $admin_masks : '', 'textarea'); showsetting('insenz_settings_members', 'members', $insenz['member_masks'] ? $member_masks : '', 'textarea'); showtagfooter('tbody'); } if (!$do || $do == 'hardad') { $availableadvs = array(1 => $lang['insenz_settings_availableadvs1'], 2 => $lang['insenz_settings_availableadvs2'], 3 => $lang['insenz_settings_availableadvs3'], 4 => $lang['insenz_settings_availableadvs4'], 5 => $lang['insenz_settings_availableadvs5'], 6 => $lang['insenz_settings_availableadvs6'], 7 => $lang['insenz_settings_availableadvs7'], 8 => $lang['insenz_settings_availableadvs8']); $insenz['availableadvs'] = is_array($insenz['availableadvs']) ? $insenz['availableadvs'] : array(1, 2, 3, 4, 5); $insenz['hardadstatus'] = is_array($insenz['hardadstatus']) ? $insenz['hardadstatus'] : array(1, 2, 3, 4, 5); $insenz_availableadvs = array(); foreach ($insenz['availableadvs'] as $ad) { $insenz_availableadvs[$ad] = $availableadvs[$ad]; } if (!$do) { showtitle($type['hardad']); } else { showtableheader(); showtitle($type['hardad']); } $insenz_hardadstatus = ''; for ($i = count($insenz['availableadvs']); $i >= 1; $i--) { $insenz_hardadstatus .= in_array($i, $insenz['hardadstatus']) ? 1 : 0; } $insenz_hardadstatus = bindec($insenz_hardadstatus); showsetting('insenz_settings_hardadstatus', array('hardadstatus', $insenz_availableadvs), $insenz_hardadstatus, 'binmcheckbox'); } if (!$do || $do == 'relatedad') { $insenz['relatedadstatus'] = isset($insenz['relatedadstatus']) ? $insenz['relatedadstatus'] : 1; if (!$do) { showtitle($type['relatedad']); } else { showtableheader(); showtitle($type['relatedad']); } showsetting('insenz_settings_relatedadstatus', 'relatedadstatus', $insenz['relatedadstatus'], 'radio'); } if (!$do || $do == 'virtualforum') { $insenz['virtualforumstatus'] = isset($insenz['virtualforumstatus']) ? $insenz['virtualforumstatus'] : 1; if (!$do) { showtitle($type['virtualforum']); } else { showtableheader(); showtitle($type['virtualforum']); } showsetting('insenz_settings_virtualforumstatus', 'virtualforumstatus', $insenz['virtualforumstatus'], 'radio'); } }
function checkform(theform) { for(var i = 0; i < 4; i++) { if(theform.reason[i].checked) return true; } alert(\'' . $lang['insenz_campaign_input_reason'] . '\'); return false; } </script>'; cpfooter(); dexit(); } else { if (!($reason = intval($reason))) { cpmsg('insenz_campaign_input_reason'); } $data = '<cmd id="ignoreVirtualForum">' . '<c_id>' . $c_id . '</c_id>' . '<reason>' . $reason . '</reason>' . '</cmd>'; $response = insenz_request($data); if ($response['status']) { cpmsg($response['data']); } else { $response = $response['data']; if ($response['response'][0]['status'][0]['VALUE'] == 1) { cpmsg(insenz_convert($response['response'][0]['reason'][0]['VALUE'], 0)); } } cpmsg('insenz_campaign_specified_ignored', 'admincp.php?action=insenz'); } } else { if ($c_status == 6) { $onlineids = 0; $query = $db->query("SELECT id FROM {$tablepre}campaigns WHERE type='4' AND status='2'"); while ($c = $db->fetch_array($query)) {
$campaign = $db->fetch_first("SELECT autoupdate, lastupdated FROM {$tablepre}campaigns WHERE id='{$cid}' AND type=4"); if (!$campaign || !$campaign['autoupdate'] || $timestamp - $campaign['lastupdated'] < 600) { exit; } $response = insenz_request('forum.php', '<cmd id="getForumDetails"><c_id>' . $cid . '</c_id></cmd>'); $threads = intval($response[0]['threads'][0]['VALUE']); $posts = intval($response[0]['posts'][0]['VALUE']); $lastpost = insenz_convert($response[0]['lastpost'][0]['VALUE'], 0); $db->query("UPDATE {$tablepre}virtualforums SET threads='{$threads}', posts='{$posts}', lastpost='{$lastpost}' WHERE cid='{$cid}'"); $db->query("UPDATE {$tablepre}campaigns SET lastupdated='{$timestamp}' WHERE id='{$cid}'"); } elseif (in_array($type, array(1, 2, 3)) && $cid) { $campaign = $db->fetch_first("SELECT tid, autoupdate, lastupdated FROM {$tablepre}campaigns WHERE id='{$cid}' AND type='{$type}'"); if (!$campaign || !$campaign['autoupdate'] || $timestamp - $campaign['lastupdated'] < 600) { exit; } $response = insenz_request('campaign.php', '<cmd id="getTopicDetails"><c_id>' . $cid . '</c_id></cmd>'); $replies = intval($response[0]['replies'][0]['VALUE']); $views = intval($response[0]['views'][0]['VALUE']); $lastpost = intval($response[0]['lastpost'][0]['VALUE']); $lastposter = insenz_convert($response[0]['lastposter'][0]['VALUE'], 0); $db->query("UPDATE {$tablepre}threads SET replies='{$replies}', views='{$views}', lastpost='{$lastpost}', lastposter='{$lastposter}' WHERE tid='{$campaign['tid']}'"); $db->query("UPDATE {$tablepre}campaigns SET lastupdated='{$timestamp}' WHERE id='{$cid}'"); } function insenz_request($script, $data) { global $timestamp, $insenz; @(include_once DISCUZ_ROOT . './discuz_version.php'); $authkey = $insenz['authkey']; $t_hex = sprintf("%08x", $timestamp); $postdata = '<?xml version="1.0" encoding="UTF' . '-8"?><request insenz_version="' . INSENZ_VERSION . '" discuz_version="' . DISCUZ_VERSION . ' - ' . DISCUZ_RELEASE . '">' . $data . '</request>'; $postdata = insenz_authcode($t_hex . md5($authkey . $postdata . $t_hex) . $postdata, 'ENCODE', $authkey);