static function install() { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'options.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'sitemap.php'; BaidusubmitOptions::setOption('enabled', '1'); if (null === BaidusubmitOptions::getOption('installmaxtid', null)) { BaidusubmitOptions::setOption('installmaxtid', BaidusubmitSitemap::getMaxTid()); } if (null === BaidusubmitOptions::getOption('openping', null)) { BaidusubmitOptions::setOption('openping', '1'); } global $wpdb; foreach (array_keys(self::$createTableSql) as $table) { $fulltable = $wpdb->prefix . $table; if ($table !== $wpdb->get_var("SHOW TABLES LIKE '{$fulltable}'")) { $sql = str_replace('{TABLEPREFIX}', $wpdb->prefix, self::$createTableSql[$table]); require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta($sql); } } }
static function authSite() { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'options.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'sitemap.php'; BaidusubmitOptions::setOption('siteurl', $_POST['siteurl']); $config = (include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'const.php'); $site = $_POST['siteurl']; //去站长平台获取随机串 $result = BaidusubmitSitemap::httpSend($config['zzplatform'] . '/getCheckSign?siteurl=' . urlencode($site) . '&sitetype=' . $config['siteTypeKey']); $data = json_decode($result); if (isset($data->status) && '0' != $data->status) { self::showJson(array('error' => 1, 'msg' => __('Failed to get Checksign'))); } BaidusubmitOptions::setOption('siteurl', $data->siteurl); BaidusubmitOptions::setOption('checksign', $data->checksign); //站长平台回调的URL $siteurl = BaidusubmitOptions::getOption('siteurl'); $url = $siteurl . BAIDUSUBMIT_PLUGIN_PATH . 'baidusubmit/checksign.php?checksign=' . $data->checksign; $sigurl = $config['zzplatform'] . '/auth?checksign=' . $data->checksign . '&checkurl=' . urlencode($url) . '&siteurl=' . urlencode($siteurl); $authData = BaidusubmitSitemap::httpSend($sigurl); //去站长平台进行验证 BaidusubmitOptions::deleteOption('checksign'); $output = json_decode($authData); if (isset($output->status) && '0' == $output->status) { //token $token = $output->token; //保存下旧密码 $old_sppasswd = BaidusubmitOptions::getOption('sppasswd'); //只有初次安装时才提交sitemap if (empty($old_sppasswd)) { $sppasswd = BaidusubmitSitemap::genSitemapPasswd(); $result = 0; $sign = md5($siteurl . $token); //提交全量索引 $allreturnjson = BaidusubmitSitemap::submitIndex('add', BaidusubmitSitemap::TYPE_ALL, $siteurl, $sppasswd, $sign); $allresult = json_decode($allreturnjson['body']); if (!isset($allresult->status) || '0' != $allresult->status) { self::showJson(array('error' => 1, 'msg' => __('Sitemap submission failed', 'sitemap') . "[URL:{$allreturnjson['url']}]")); } $result += (int) $allresult->status; //提交增量索引 $incresultjson = BaidusubmitSitemap::submitIndex('add', BaidusubmitSitemap::TYPE_INC, $siteurl, $sppasswd, $sign); $incresult = json_decode($incresultjson['body']); if (!isset($incresult->status) || '0' != $allresult->status) { self::showJson(array('error' => 1, 'msg' => __('Sitemap submission failed', 'sitemap') . '[URL:' . $incresultjson['url'] . ']')); } $result += (int) $incresult->status; if ($result === 0) { //tid节点 BaidusubmitOptions::setOption('installmaxtid', BaidusubmitSitemap::getMaxTid()); //保存sppasswd BaidusubmitOptions::setOption('sppasswd', $sppasswd); //为了避免提交sitemap超时,把token放在下。提交成功后再写token. BaidusubmitOptions::setOption('pingtoken', $token); self::showJson(array('error' => 0, 'msg' => __('Verification successful', 'sitemap'))); } else { // delete sppassword BaidusubmitOptions::setOption('sppasswd', ''); self::showJson(array('error' => 1, 'msg' => __('Sitemap submission failed', 'sitemap'))); } } else { //为了避免提交sitemap超时,把token放在下。提交成功后再写token. BaidusubmitOptions::setOption('pingtoken', $token); self::showJson(array('error' => 0, 'msg' => __('Verification successful', 'sitemap'))); } } elseif (in_array($output->status, array(1, 2001, 2002, 2003, 2008))) { $e = array(1 => __('Parameter error', 'sitemap'), 2 => __('No site information', 'sitemap'), 100 => __('System error', 'sitemap'), 2001 => __('Checksign does not exists', 'sitemap'), 2002 => __('Sign detection failed', 'sitemap'), 2003 => __('Checkurl request failed', 'sitemap'), 2008 => __('Checkurl does not belong to siteurl', 'sitemap')); self::showJson(array('error' => 1, 'msg' => $e[$output->status])); } else { self::showJson(array('error' => 1, 'msg' => __('Verification failed, please try again', 'sitemap'))); } }
$config = (include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'inc/const.php'); require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'inc/options.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'inc/sitemap.php'; if (!BaidusubmitOptions::getOption('enabled')) { exit; } if (empty($_GET['p']) || $_GET['p'] != ($sppasswd = BaidusubmitOptions::getOption('sppasswd'))) { BaidusubmitSitemap::headerStatus(404); return 1; } $urlsuffix = "&p={$sppasswd}"; //全量索引 if ('indexall' === $_GET['m']) { $sitemapMaxTid = (int) BaidusubmitSitemap::getSitemapMaxEnd(BaidusubmitSitemap::TYPE_ALL); //sitemap表中最大tid $maxTid = BaidusubmitSitemap::getMaxTid(); //论坛数据中最大tid $count = $maxTid - $sitemapMaxTid; //新数据够生成一个sitemap时,生成新的sitemap if (!$sitemapMaxTid || $count >= $config['sitemapItemCount']) { $sitemapCount = ceil($count / $config['sitemapItemCount']); $next_tid = $sitemapMaxTid + 1; for ($i = 0; $i < $sitemapCount; $i++) { $start_tid = $next_tid + $i * $config['sitemapItemCount']; $end_tid = $start_tid + $config['sitemapItemCount'] - 1; $url = 'm=sitemapall&start=' . $start_tid; BaidusubmitSitemap::addSitemap($url, BaidusubmitSitemap::TYPE_ALL, $start_tid, $end_tid); } } BaidusubmitSitemap::printIndexHeader(); $site = BaidusubmitOptions::getOption('siteurl');