无限星辰工作室-客户无限互联网动力之源

标题: Discuz系列教程-x3分享到qq和群显示英文错误的解决办法 [打印本页]

作者: crx349    时间: 2013-5-22 16:03
标题: Discuz系列教程-x3分享到qq和群显示英文错误的解决办法
程序版本:discuz!X3
目的:解决QQ和群分享英文错误问题呢
适合人群:使用Discuz!x3的站长

把spacecp.inc.php覆盖到/source/plugin/qqconnect/下,把module.htm覆盖到/source/plugin/qqconnect/template/

spacecp.inc.php内容如下:
  1. <?php

  2. /**
  3. *          [Discuz! X] (C)2001-2099 Comsenz Inc.
  4. *          This is NOT a freeware, use is subject to license terms
  5. *
  6. *          $Id: spacecp.inc.php 32630 2013-02-27 05:46:25Z liulanbo $
  7. */

  8. if(!defined('IN_DISCUZ')) {
  9.         exit('Access Denied');
  10. }

  11. if(!$_G['uid']) {
  12.         showmessage('not_loggedin', NULL, array(), array('login' => 1));
  13. }

  14. $pluginop = !empty($_GET['pluginop']) ? $_GET['pluginop'] : 'config';
  15. if (!in_array($pluginop, array('config', 'share', 'new', 'sync_tthread'))) {
  16.         showmessage('undefined_action');
  17. }
  18. $sh_type = trim(intval($_GET['sh_type']));
  19. $tid = trim(intval($_GET['thread_id']));
  20. $connectService = Cloud::loadClass('Service_Connect');
  21. if ($pluginop == 'config') {

  22.         $connectService->connectMergeMember();

  23.         $_G['connect']['is_oauth_user'] = true;
  24.         if (empty($_G['member']['conuinsecret'])) {
  25.                 $_G['connect']['is_oauth_user'] = false;
  26.         }

  27.         $referer = str_replace($_G['siteurl'], '', dreferer());
  28.         if(!empty($_GET['connect_autoshare'])) {
  29.                 if(strpos($referer, '?') !== false) {
  30.                         $referer .= '&connect_autoshare=1';
  31.                 } else {
  32.                         $referer .= '?connect_autoshare=1';
  33.                 }
  34.         }

  35.         $_G['connect']['loginbind_url'] = $_G['siteurl'].'connect.php?mod=login&op=init&type=loginbind&referer='.urlencode($_G['connect']['referer'] ? $_G['connect']['referer'] : 'index.php');

  36. } elseif ($pluginop == 'share') {

  37.         $_GET['share_url'] = $_G['connect']['discuz_new_share_url'];

  38.         $post = C::t('forum_post')->fetch_threadpost_by_tid_invisible($tid, 0);
  39.         $thread = C::t('forum_thread')->fetch_by_tid_displayorder($tid, 0);
  40.         $msglower = strtolower($post['message']);
  41.         if(strpos($msglower, '[/quote]') !== FALSE) {
  42.                 $post['message'] = preg_replace('/\[quote\].*\[\/quote\](\r\n|\n|\r){0,}/is', '', $post['message']);
  43.         }
  44.         if(strpos($msglower, '[/media]') !== FALSE) {
  45.                 $post['message'] = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/ies", '', $post['message']);
  46.         }
  47.         if(strpos($msglower, '[/flash]') !== FALSE) {
  48.                 $post['message'] = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", '', $post['message']);
  49.         }

  50.         if(strpos($msglower, '[/hide]') !== FALSE) {
  51.                 $post['message'] = preg_replace("/\[hide[=]?(d\d+)?[,]?(\d+)?\]\s*(.*?)\s*\[\/hide\]/is", '', $post['message']);
  52.         }
  53.         $html_content = $connectService->connectParseBbcode($post['message'], $thread['fid'], $post['pid'], $post['htmlon'], $attach_images);
  54.         if ($_G['group']['allowgetimage'] && $thread['price'] == 0 && $post['pid']) {
  55.                 if ($attach_images && is_array($attach_images)) {
  56.                         $_GET['share_images'] = array_slice($attach_images, 0, 3);

  57.                         $attach_images = array();
  58.                         foreach ($_GET['share_images'] as $image) {
  59.                                 $attach_images[] = $image['big'];
  60.                         }
  61.                         $_GET['attach_image'] = implode('|', $attach_images);
  62.                         unset($attach_images);
  63.                 }
  64.         }

  65.         if($_GET['sh_type'] == 4){
  66.                 if($_G['setting']['rewritestatus'] && in_array('forum_viewthread', $_G['setting']['rewritestatus'])) {
  67.                         $url = rewriteoutput('forum_viewthread', 1, $_G['siteurl'], $tid);
  68.                 } else {
  69.                         $url = $_G['siteurl'].'forum.php?mod=viewthread&tid='.$tid;
  70.                 }
  71.                 $shareqq_params = array(
  72.                         'url' => $url,
  73.                         'title' => diconv($thread['subject'], CHARSET, 'UTF-8'),
  74.                         'summary' => diconv(cutstr(strip_tags(str_replace('&nbsp;', ' ', $html_content)), 80), CHARSET, 'UTF-8'),
  75.                         'desc' => diconv(lang('plugin/qqconnect', '看看这个吧,还不错哦,也许你会喜欢^_^'), CHARSET, 'UTF-8'),
  76.                         'site' => 'discuz|',
  77.                         'style' => '103',
  78.                         'width' => 50,
  79.                         'height' => 16
  80.                 );
  81.                 $s = '';
  82.                 foreach($shareqq_params as $key => $val) {
  83.                         $s .= ($s ? '&' : '').$key.'='.urlencode($val);
  84.                 }
  85.                 header('Location: http://connect.qq.com/widget/shareqq/index.html?'.$s);
  86.         } else {
  87.                 $share_message = lang('plugin/qqconnect', 'connect_spacecp_share_a_post', array('bbname' => cutstr($_G['setting']['bbname'], 20,''), 'subject' => cutstr($thread['subject'], 120), 'message' => cutstr(strip_tags(str_replace('&nbsp;', ' ', $html_content)), 80)));
  88.                 $share_message = str_replace(array('\'', "\r\n", "\r", "\n"), array('"', '', '', ''), $share_message);
  89.         }
  90. } elseif ($pluginop == 'new') {
  91.         if (trim($_GET['formhash']) != formhash()) {
  92.                 showmessage('submit_invalid');
  93.         }

  94.         $sh_type = intval(trim($_POST['sh_type']));
  95.         $tid = intval(trim($_POST['thread_id']));
  96.         $dialog_id = $_POST['dialog_id'];

  97.         $connectService->connectMergeMember();

  98.         if($_G['setting']['rewritestatus'] && in_array('forum_viewthread', $_G['setting']['rewritestatus'])) {
  99.                 $url = rewriteoutput('forum_viewthread', 1, $_G['siteurl'], $tid);
  100.         } else {
  101.                 $url = $_G['siteurl'].'forum.php?mod=viewthread&tid='.$tid;
  102.         }

  103.         $connectOAuthClient = Cloud::loadClass('Service_Client_ConnectOAuth');
  104.         $connectService = Cloud::loadClass('Service_Connect');
  105.         if($sh_type == 1 || $sh_type == 3) {

  106.                 $firstpost = C::t('forum_post')->fetch_threadpost_by_tid_invisible($tid, 0);
  107.                 $msglower = strtolower($firstpost['message']);
  108.                 if(strpos($msglower, '[/quote]') !== FALSE) {
  109.                         $firstpost['message'] = preg_replace('/\[quote\].*\[\/quote\](\r\n|\n|\r){0,}/is', '', $firstpost['message']);
  110.                 }
  111.                 if(strpos($msglower, '[/media]') !== FALSE) {
  112.                         $firstpost['message'] = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/ies", '', $firstpost['message']);
  113.                 }
  114.                 if(strpos($msglower, '[/flash]') !== FALSE) {
  115.                         $firstpost['message'] = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", '', $firstpost['message']);
  116.                 }
  117.                 if(strpos($msglower, '[/hide]') !== FALSE) {
  118.                         $firstpost['message'] = preg_replace("/\[hide[=]?(d\d+)?[,]?(\d+)?\]\s*(.*?)\s*\[\/hide\]/is", '', $firstpost['message']);
  119.                 }
  120.                 $summary = $connectService->connectParseBbcode($firstpost['message'], $firstpost['fid'], $firstpost['pid'], $firstpost['htmlon'], $attach_images);

  121.                 $qzone_params = array(
  122.                         'title' => $_POST['share_subject'],
  123.                         'url' => $url,
  124.                         'comment' => $_POST['reason'],
  125.                         'summary' => strip_tags($summary),
  126.                         'images' => $_POST['attach_image'],
  127.                         'nswb' => '1',
  128.                 );

  129.                 try {
  130.                         $response = $connectOAuthClient->connectAddShare($_G['member']['conopenid'], $_G['member']['conuin'], $_G['member']['conuinsecret'], $qzone_params);
  131.                 } catch(Exception $e) {
  132.                         $errorCode = $e->getCode();
  133.                 }

  134.                 if($errorCode) {
  135.                         $code = $errorCode;
  136.                         if($errorCode == 41001) {
  137.                                 $message = lang('plugin/qqconnect', 'connect_user_unauthorized', array('login_url' => $_G['connect']['login_url'].'&reauthorize=yes&formhash='.FORMHASH));
  138.                         } elseif($errorCode == 41003 || $errorCode == 40006) { // access token失效或非法
  139.                                 $message = lang('plugin/qqconnect', 'connect_share_token_outofdate', array('login_url' => $_G['connect']['login_url']));
  140.                         } elseif ($errorCode == 3021) {
  141.                                 $message = lang('plugin/qqconnect', 'connect_qzone_share_same_url');
  142.                         } else {
  143.                                 $code = 100;
  144.                                 $message = lang('plugin/qqconnect', 'connect_server_busy');
  145.                                 $connectService->connectErrlog($code, lang('plugin/qqconnect', 'connect_errlog_server_no_response'));
  146.                         }
  147.                 } else {
  148.                         $code = $response['ret'];
  149.                         $message = lang('plugin/qqconnect', 'connect_share_success');
  150.                 }
  151.         } elseif($sh_type == 2) {

  152.                 $t_params = array(
  153.                         'content' => $_POST['reason'],
  154.                 );

  155.                 $aid = intval($_POST['attach_image_id']);
  156.                 if ($aid) {
  157.                         $method = 'connectAddPicT';
  158.                         $attach = C::t('forum_attachment_n')->fetch('aid:'.$aid, $aid);
  159.                         if($attach['remote']) {
  160.                                 $t_params['pic'] = $_G['setting']['ftp']['attachurl'].'forum/'.$attach['attachment'];
  161.                                 $t_params['remote'] = true;
  162.                         } else {
  163.                                 $t_params['pic'] = $_G['setting']['attachdir'].'forum/'.$attach['attachment'];
  164.                         }
  165.                 } else {
  166.                         $method = 'connectAddT';
  167.                 }

  168.                 try {
  169.                         $response = $connectOAuthClient->$method($_G['member']['conopenid'], $_G['member']['conuin'], $_G['member']['conuinsecret'], $t_params);
  170.                 } catch(Exception $e) {
  171.                         $errorCode = $e->getCode();
  172.                 }

  173.                 if($errorCode) {
  174.                         $code = $errorCode;
  175.                         if($errorCode == 41001) {
  176.                                 $message = lang('plugin/qqconnect', 'connect_user_unauthorized', array('login_url' => $_G['connect']['login_url'].'&reauthorize=yes&formhash='.FORMHASH));
  177.                         } elseif($errorCode == 41003 || $errorCode == 40006) { // access token失效或非法
  178.                                 $message = lang('plugin/qqconnect', 'connect_share_token_outofdate', array('login_url' => $_G['connect']['login_url']));
  179.                         } elseif ($errorCode == 3013) {
  180.                                 $message = lang('plugin/qqconnect', 'connect_qzone_weibo_same_content');
  181.                         } else if($errorCode == 3020) {
  182.                                 $message = lang('plugin/qqconnect', 'connect_weibo_account_not_signup');
  183.                         } else {
  184.                                 $code = 100;
  185.                                 $message = lang('plugin/qqconnect', 'connect_server_busy');
  186.                                 $connectService->connectErrlog($code, lang('plugin/qqconnect', 'connect_errlog_server_no_response'));
  187.                         }
  188.                 } else {
  189.                         $thread = C::t('forum_thread')->fetch($tid);
  190.                         if($response['data']['id'] && $_G['setting']['connect']['t']['reply'] && $thread['tid'] && !$thread['closed'] && !getstatus($thread['status'], 3) && empty($_G['forum']['replyperm'])) {

  191.                                 C::t('#qqconnect#connect_tthreadlog')->insert(array(
  192.                                         'twid' => $response['data']['id'],
  193.                                         'tid' => $tid,
  194.                                         'conopenid' => $_G['member']['conopenid'],
  195.                                         'pagetime' => 0,
  196.                                         'lasttwid' => '0',
  197.                                         'nexttime' => $_G['timestamp'] + 30 * 60,
  198.                                         'updatetime' => 0,
  199.                                         'dateline' => $_G['timestamp'],
  200.                                 ));
  201.                         }
  202.                         if(!getstatus($thread['status'], 8)) {
  203.                                 C::t('forum_thread')->update($tid, array('status' => setstatus(8, 1, $thread['status'])));
  204.                         }
  205.                         $code = $response['ret'];
  206.                         $message = lang('plugin/qqconnect', 'connect_broadcast_success');
  207.             }
  208.         }
  209. } elseif($pluginop == 'sync_tthread') {
  210.         if (trim($_GET['formhash']) != formhash()) {
  211.                 showmessage('submit_invalid');
  212.         }
  213.         if(!$_G['setting']['connect']['t']['reply']) {
  214.                 exit;
  215.         }
  216.         $tid = $_GET['tid'];
  217.         $processname = 'connect_tthread_'.$tid.'_cache';
  218.         if(discuz_process::islocked($processname, 600)) {
  219.                 exit;
  220.         }
  221.         $thread = C::t('forum_thread')->fetch($tid);
  222.         if(!$thread || $thread['closed'] == 1 || getstatus($thread['status'], 3) || $thread['displayorder'] < 0 || !empty($_G['forum']['replyperm'])) {
  223.                 discuz_process::unlock($processname);
  224.                 exit;
  225.         }

  226.         $updatetime = C::t('#qqconnect#connect_tthreadlog')->fetch_max_updatetime_by_tid($tid);
  227.         if($_G['timestamp'] < $updatetime + 10 * 60) {
  228.                 discuz_process::unlock($processname);
  229.                 exit;
  230.         }
  231.         $tthread = C::t('#qqconnect#connect_tthreadlog')->fetch_min_nexttime_by_tid($tid);
  232.         if(empty($tthread)) {
  233.                 discuz_process::unlock($processname);
  234.                 exit;
  235.         }

  236.         $connectOAuthClient = Cloud::loadClass('Service_Client_ConnectOAuth');
  237.         $connectmember = C::t('#qqconnect#common_member_connect')->fetch_fields_by_openid($tthread['conopenid']);
  238.         $param = array();
  239.         $param['format'] = 'xml';
  240.         $param['flag'] = '2';
  241.         $param['rootid'] = $tthread['twid'];
  242.         $param['pageflag'] = 2;
  243.         $param['pagetime'] = $tthread['pagetime'];
  244.         $param['reqnum'] = 20;
  245.         $param['twitterid'] = $tthread['lasttwid'];

  246.         try {
  247.                 $response = $connectOAuthClient->connectGetRepostList($tthread['conopenid'], $connectmember['conuin'], $connectmember['conuinsecret'], $param);
  248.         } catch(Exception $e) {
  249.                 showmessage('qqconnect:server_busy');
  250.         }
  251.         if($response && $response['ret'] == 0 && $response['data']['info']) {

  252.                 include_once libfile('function/forum');
  253.                 $forum = C::t('forum_forum')->fetch($thread['fid']);
  254.                 $pinvisible = $forum['modnewposts'] ? -2 : 0;

  255.                 $pids = array();
  256.                 $i = 0;
  257.                 $responseinfo = array();
  258.                 if(!isset($response['data']['info'][0])) {
  259.                         $responseinfo[] = $response['data']['info'];
  260.                 } else {
  261.                         $responseinfo = $response['data']['info'];
  262.                         krsort($responseinfo);
  263.                 }
  264.                 foreach($responseinfo as $post) {
  265.                         $message = trim($post['text']);
  266.                         $post['username'] = trim($post['name']);
  267.                         $post['nick'] = trim($post['nick']);
  268.                         $message = preg_replace("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+\s*)/i", '', $message);
  269.                         $message = str_replace(explode(' ', lang('plugin/qqconnect', 'connect_reply_filter_smiley')), '', $message);
  270.                         if($message) {
  271.                                 $newmessage = censor($message, null, true);
  272.                                 if($message != $newmessage) {
  273.                                         continue;
  274.                                 }
  275.                         } else {
  276.                                 $message = lang('plugin/qqconnect', 'connect_tthread_broadcast');
  277.                         }
  278.                         if($_G['setting']['connect']['t']['reply_showauthor']) {
  279.                                 $message .= '[tthread='.$post['username'].', '.$post['nick'].']'.$post['head'].'[/tthread]';
  280.                         }

  281.                         $pid = insertpost(array(
  282.                                 'fid' => $thread['fid'],
  283.                                 'tid' => $thread['tid'],
  284.                                 'first' => '0',
  285.                                 'author' => '',
  286.                                 'authorid' => '0',
  287.                                 'subject' => '',
  288.                                 'dateline' => $_G['timestamp'] + $i,
  289.                                 'message' => $message,
  290.                                 'useip' => '',
  291.                                 'invisible' => $pinvisible,
  292.                                 'anonymous' => '0',
  293.                                 'usesig' => '0',
  294.                                 'htmlon' => '1',
  295.                                 'bbcodeoff' => '0',
  296.                                 'smileyoff' => '0',
  297.                                 'parseurloff' => '0',
  298.                                 'attachment' => '0',
  299.                                 'status' => 16,
  300.                         ));
  301.                         if($pid) {
  302.                                 $pids[] = $pid;
  303.                         }
  304.                         $i++;
  305.                 }

  306.                 if($pinvisible) {
  307.                         updatemoderate('pid', $pids);
  308.                         C::t('forum_forum')->update_forum_counter($thread['fid'], 0, 0, count($pids), 1);
  309.                 } else {
  310.                         $fieldarr = array(
  311.                                 'lastposter' => array(''),
  312.                                 'replies' => count($pids),
  313.                         );
  314.                         if($thread['lastpost'] < $_G['timestamp']) {
  315.                                 $fieldarr['lastpost'] = array($_G['timestamp']);
  316.                         }
  317.                         C::t('forum_thread')->increase($tid, $fieldarr);
  318.                         $postionid = C::t('forum_post')->fetch_maxposition_by_tid($thread['posttableid'], $tid);
  319.                         C::t('forum_thread')->update($tid, array('maxposition' => $postionid));

  320.                         $lastpost = "$thread[tid]\t$thread[subject]\t$_G[timestamp]\t".'';
  321.                         C::t('forum_forum')->update($thread['fid'], array('lastpost' => $lastpost));
  322.                         C::t('forum_forum')->update_forum_counter($thread['fid'], 0, count($pids), count($pids));
  323.                         if($forum['type'] == 'sub') {
  324.                                 C::t('forum_forum')->update($forum['fup'], array('lastpost' => $lastpost));
  325.                         }
  326.                 }

  327.                 $setarr['pagetime'] = $post['timestamp'];
  328.                 $setarr['lasttwid'] = $post['id'];
  329.                 if(count($responseinfo) < $param['reqnum']) {
  330.                         $setarr['nexttime'] = $_G['timestamp'] + 2 * 3600;
  331.                 } else {
  332.                         $setarr['nexttime'] = $_G['timestamp'] + 30 * 60;
  333.                 }
  334.         } else {
  335.                 $setarr['nexttime'] = $_G['timestamp'] + 3 * 3600;
  336.         }
  337.         $setarr['updatetime'] = $_G['timestamp'];
  338.         C::t('#qqconnect#connect_tthreadlog')->update($tthread['twid'], $setarr);

  339.         discuz_process::unlock($processname);
  340.         exit;
  341. }
复制代码
请用记事本保存下,然后替换

module.htm内容如下
  1. {eval
  2. function tpl_global_login_extra() {
  3. global $_G;
  4. }
  5. <!--{block return}-->
  6.         <div class="fastlg_fm y" style="margin-right: 10px; padding-right: 10px">
  7.                 <p><a href="$_G[connect][login_url]&statfrom=login_simple"><img src="{IMGDIR}/qq_login.gif" class="vm" alt="{lang qqconnect:connect_header_login}" /></a></p>
  8.                 <p class="hm xg1" style="padding-top: 2px;">{lang qqconnect:connect_header_login_tip}</p>
  9.         </div>
  10. <!--{/block}-->
  11. <!--{eval return $return;}-->
  12. {eval
  13. }

  14. function tpl_global_usernav_extra1() {
  15. global $_G;
  16. }
  17. <!--{block return}-->
  18. <!--{if CURMODULE != 'connect'}-->
  19.         <!--{if $_G['connectguest']}-->
  20.         <span class="pipe">|</span><a href="member.php?mod=connect" target="_blank" title="{lang qqconnect:connect_member_register_button_tip}">{lang qqconnect:connect_register_profile}</a><span class="pipe">|</span><a href="member.php?mod=connect&ac=bind" target="_blank" title="{lang qqconnect:connect_member_loginbind_button_tip}">{lang qqconnect:connect_register_bind}</a>
  21.         <!--{else}-->
  22.         <span class="pipe">|</span><a href="connect.php?mod=config" target="_blank"><img src="{IMGDIR}/qq_bind_small.gif" class="qq_bind" align="absmiddle" alt="{lang qqconnect:connect_config}" /></a>
  23.         <!--{/if}-->
  24. <!--{/if}-->
  25. <!--{/block}-->
  26. <!--{eval return $return;}-->
  27. {eval
  28. }

  29. function tpl_global_footer($loadJs) {
  30. }
  31. <!--{block return}-->
  32.         <!--{if $loadJs['qsharejs']}-->
  33.                 <script type="text/javascript" src="{$loadJs['qsharejs']['jsurl']}"></script><script type="text/javascript">_share_tencent_weibo(null, {$loadJs['qsharejs']['func']}("t_f", null, "td"), "{$_G['siteurl']}", "{$loadJs['qsharejs']['appkey']}", "{$loadJs['qsharejs']['sitename']}");</script>
  34.         <!--{/if}-->
  35.         <!--{if $loadJs['feedjs']}-->
  36.                 <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$loadJs[feedjs][jsurl]}', '', 1, 'utf-8') }, document);</script>
  37.         <!--{/if}-->
  38.         <!--{if $loadJs['cookieloginjs']}-->
  39.                 <script type="text/javascript">var cookieLogin = Ajax("TEXT");cookieLogin.get("{$loadJs['cookieloginjs']['jsurl']}", function() {});</script>
  40.         <!--{/if}-->
  41.         <!--{if $loadJs['guestloginjs']}-->
  42.                 <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$loadJs[guestloginjs][jsurl]}', '', 1, 'utf-8') }, document);</script>
  43.         <!--{/if}-->
  44.         <!--{if $loadJs['syncpostjs']}-->
  45.                 <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$loadJs[syncpostjs][jsurl]}', '', 1, 'utf-8') }, document);</script>
  46.         <!--{/if}-->
  47. <!--{/block}-->
  48. <!--{eval return $return;}-->
  49. {eval
  50. }
  51. function tpl_login_bar() {
  52. global $_G;
  53. }
  54. <!--{block return}-->
  55.         <!--{if !$_G['connectguest']}-->
  56.         <a href="$_G[connect][login_url]&statfrom=login" target="_top" rel="nofollow"><img src="{IMGDIR}/qq_login.gif" class="vm" /></a>
  57.         <!--{/if}-->
  58. <!--{/block}-->
  59. <!--{eval return $return;}-->
  60. {eval
  61. }

  62. function tpl_index_status_extra() {
  63. global $_G;
  64. }
  65. <!--{block return}-->
  66.         <iframe id="connectlike" allowtransparency="true" scrolling="no" border="0" width="280" height="25" frameborder="0"></iframe>
  67.         <script type="text/javascript">_attachEvent(window, 'load', function () { $('connectlike').src = 'api/connect/like.php';}, document);</script>
  68. <!--{/block}-->
  69. <!--{eval return $return;}-->
  70. {eval
  71. }

  72. function tpl_sync_method($allowconnectfeed, $allowconnectt, $cssextra = '') {
  73. global $_G;
  74. }
  75. <!--{block return}-->
  76.         <!--{if $allowconnectfeed || $allowconnectt}-->
  77.                 <script type="text/javascript">
  78.                 var _allow_qq = {if $allowconnectfeed}true{else}false{/if};
  79.                 var _allow_t = {if $allowconnectt}true{else}false{/if};
  80.                 var _syn_qq = {if intval($_G['cookie']['connect_not_sync_feed'])}false{else}{if $_G['member']['conisbind'] && $_G['member']['conispublishfeed']}true{else}false{/if}{/if};
  81.                 var _syn_t = {if intval($_G['cookie']['connect_not_sync_t'])}false{else}{if $_G['member']['conisbind'] && $_G['member']['conispublisht']}true{else}false{/if}{/if};
  82.                 var _is_oauth_user = {if $_G['member']['conisbind']}true{else}false{/if};
  83.                 var _is_feed_auth = {if $_G['member']['conuinsecret'] && $_G['member']['is_feed']}true{else}false{/if};
  84.                 var _is_token_outofdate = {if $_G['member']['conuinsecret']}false{else}true{/if};
  85.                 function connect_post_init() {
  86.                         if (_allow_qq && _syn_qq) {
  87.                                 if (_is_feed_auth && !_is_token_outofdate) {
  88.                                         $('connectPost_synQQ').className = 'syn_qq_check';
  89.                                         $('connectPost_synQQ').title = '{lang qqconnect:connect_post_sync_qzone1}';
  90.                                         $('connect_publish_feed').value = 1;
  91.                                 } else {
  92.                                         $('connectPost_synQQ').className = 'syn_qq';
  93.                                         $('connectPost_synQQ').title = '{lang qqconnect:connect_post_sync_qzone2}';
  94.                                         $('connect_publish_feed').value = 0;
  95.                                 }
  96.                         }

  97.                         if (_allow_t && _syn_t) {
  98.                                 if (_is_feed_auth && !_is_token_outofdate) {
  99.                                         $('connectPost_synT').className = 'syn_tqq_check';
  100.                                         $('connectPost_synT').title = '{lang qqconnect:connect_post_sync_t1}';
  101.                                         $('connect_publish_t').value = 1;
  102.                                 } else {
  103.                                         $('connectPost_synT').className = 'syn_tqq';
  104.                                         $('connectPost_synT').title = '{lang qqconnect:connect_post_sync_t2}';
  105.                                         $('connect_publish_t').value = 0;
  106.                                 }
  107.                         }

  108.                         if (_allow_qq) {
  109.                                 $('connectPost_synQQ').onclick = function () {
  110.                                         connect_syn_option_toggle(this);
  111.                                 }
  112.                         }
  113.                         if (_allow_t) {
  114.                                 $('connectPost_synT').onclick = function () {
  115.                                         connect_syn_option_toggle(this);
  116.                                 }
  117.                         }
  118.                         if (getcookie('connect_synpost_tip')) {
  119.                                 connect_post_tip();
  120.                         }
  121.                 }
  122.                 function connect_syn_option_toggle(opt) {
  123.                         if (_is_feed_auth && !_is_token_outofdate) {
  124.                                 if ($(opt.getAttribute('rel')).value == 1) {
  125.                                         opt.className = opt.className.replace('_check', '');
  126.                                         opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_yes}', '{lang qqconnect:connect_post_sync_no}');
  127.                                         $(opt.getAttribute('rel')).value = 0;
  128.                                 } else {
  129.                                         $(opt.getAttribute('rel')).value = 1;
  130.                                         opt.className += '_check';
  131.                                         opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_no}', '{lang qqconnect:connect_post_sync_yes}');
  132.                                 }
  133.                         } else {
  134.                                 var _auth_text = '{lang qqconnect:connect_post_sync_unauthorized_desc}';
  135.                                 if (_is_token_outofdate) {
  136.                                         _auth_text = '{lang qqconnect:connect_access_token_out_of_date_feed}';
  137.                                         var _button = '{lang qqconnect:connect_access_token_outofdate_button}';
  138.                                         showDialog(_auth_text, 'notice', null, null, 0, null, null, _button);
  139.                                         return;
  140.                                 } else if (!_is_oauth_user) {
  141.                                         _auth_text = '{lang qqconnect:connect_post_sync_not_bind_desc}';
  142.                                 }
  143.                                 showDialog(_auth_text, 'notice', '{lang qqconnect:connect_post_sync_unauthorized_title}', 'connect_goto_setting()', 0, null, null, '{lang qqconnect:connect_modify_authorization_button}');
  144.                         }
  145.                 }
  146.                 function connect_post_tip() {
  147.                         if ($('fastpostform')) {
  148.                                 return;
  149.                         }
  150.                         if (_is_token_outofdate) {
  151.                                 if ($('synnotice')) {
  152.                                         $('synnotice').style.display = 'none';
  153.                                 }
  154.                                 return;
  155.                         }
  156.                         var r = document.getElementById('rstnotice');
  157.                         var c = document.createElement('div');
  158.                         c.setAttribute('id', 'synnotice');
  159.                         c.setAttribute('class', 'ntc_l bbs');
  160.                         if(BROWSER.ie) {
  161.                                 c.id = 'synnotice';
  162.                                 c.className = 'ntc_l bbs';
  163.                         }
  164.                         c.style.display = 'block';
  165.                         r.parentNode.insertBefore(c, r.nextSibling);
  166.                         c.innerHTML = '<a href="javascript:void(0);" title="{lang qqconnect:connect_post_sync_tip_close}" class="d y" onclick="connect_syn_tip_hide();">close</a>{lang qqconnect:connect_post_sync_tip}&nbsp;&nbsp;<a class="xi2" href="javascript:void(0);" onclick="connect_syn_cancel();" title="{lang qqconnect:connect_post_sync_cancel_tip}"><strong>{lang qqconnect:connect_post_sync_cancel}</strong></a>';
  167.                 }
  168.                 function connect_syn_tip_hide() {
  169.                         setcookie('connect_synpost_tip', '', '-1');
  170.                         $('synnotice').style.display = 'none';
  171.                 }
  172.                 function connect_syn_cancel() {
  173.                         ajaxget('{$_G['siteurl']}connect.php?mod=config&op=synconfig', '');
  174.                         $('connectPost_synQQ').className = 'syn_qq';
  175.                         $('connectPost_synQQ').title = '{lang qqconnect:connect_post_sync_qzone2}';
  176.                         $('connect_publish_feed').value = 0;
  177.                         $('connectPost_synT').className = 'syn_tqq';
  178.                         $('connectPost_synT').title = '{lang qqconnect:connect_post_sync_t2}';
  179.                         $('connect_publish_t').value = 0;
  180.                         $('synnotice').style.display = 'none';
  181.                 }
  182.                 function connect_goto_setting() {
  183.                         var _url = "{$_G['siteurl']}home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp";
  184.                         hideMenu('fwin_dialog', 'dialog')
  185.                         var _newWindow = window.open(_url, 'newWindow');
  186.                         _newWindow.focus();
  187.                 }
  188.                 _attachEvent(window, 'load', function(){
  189.                         connect_post_init();
  190.                 });
  191.                 </script>
  192.                 <!--{if $allowconnectfeed}-->
  193.                         <a title="{lang qqconnect:connect_post_sync_qzone2}" class="syn_qq" href="javascript:void(0);" id="connectPost_synQQ" rel="connect_publish_feed">{lang qqconnect:connect_viewthread_share_to_qzone}</a>
  194.                         <input type="hidden" name="connect_publish_feed" id="connect_publish_feed" value="0" />
  195.                 <!--{/if}-->
  196.                 <!--{if $allowconnectt}-->
  197.                         <a title="{lang qqconnect:connect_post_sync_t2}" class="syn_tqq" href="javascript:void(0);" id="connectPost_synT" rel="connect_publish_t">{lang qqconnect:connect_viewthread_share_to_t}</a>
  198.                         <input type="hidden" name="connect_publish_t" id="connect_publish_t" value="0" />
  199.                 <!--{/if}-->
  200.         <!--{/if}-->
  201. <!--{/block}-->
  202. <!--{eval return $return;}-->
  203. {eval
  204. }

  205. function tpl_infloat_sync_method($allowconnectfeed, $allowconnectt) {
  206. global $_G;
  207. }
  208. <!--{block return}-->
  209.         <!--{if $allowconnectfeed}-->
  210.                 <a title="{lang qqconnect:connect_post_sync_qzone2}" class="syn_qq" href="javascript:void(0);" id="connectPost_synQQ_infloat" rel="connect_publish_feed_infloat">{lang qqconnect:connect_viewthread_share_to_qzone}</a>
  211.                 <input type="hidden" name="connect_publish_feed" id="connect_publish_feed_infloat" value="0" />
  212.         <!--{/if}-->
  213.         <!--{if $allowconnectt}-->
  214.                 <a title="{lang qqconnect:connect_post_sync_t2}" class="syn_tqq" href="javascript:void(0);" id="connectPost_synT_infloat" rel="connect_publish_t_infloat">{lang qqconnect:connect_viewthread_share_to_t}</a>
  215.                 <input type="hidden" name="connect_publish_t" id="connect_publish_t_infloat" value="0" />
  216.         <!--{/if}-->
  217.         <!--{if $allowconnectfeed || $allowconnectt}-->
  218.                 <script type="text/javascript" reload="1">
  219.                 var _allow_qq_infloat = {if $allowconnectfeed}true{else}false{/if};
  220.                 var _allow_t_infloat = {if $allowconnectt}true{else}false{/if};
  221.                 var _syn_qq_infloat = {if intval($_G['cookie']['connect_not_sync_feed'])}false{else}{if $_G['member']['conisbind'] && $_G['member']['conispublishfeed']}true{else}false{/if}{/if};
  222.                 var _syn_t_infloat = {if intval($_G['cookie']['connect_not_sync_t'])}false{else}{if $_G['member']['conisbind'] && $_G['member']['conispublisht']}true{else}false{/if}{/if};
  223.                 var _is_oauth_user_infloat = {if $_G['member']['conisbind']}true{else}false{/if};
  224.                 var _is_feed_auth_infloat = {if $_G['member']['conuinsecret'] && $_G['member']['is_feed']}true{else}false{/if};
  225.                 var _is_token_outofdate = {if $_G['member']['conuinsecret']}false{else}true{/if};
  226.                 function connect_post_init_infloat() {
  227.                         if (_allow_qq_infloat && _syn_qq_infloat) {
  228.                                 if (_is_feed_auth_infloat && !_is_token_outofdate) {
  229.                                         $('connectPost_synQQ_infloat').className = 'syn_qq_check';
  230.                                         $('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone1}';
  231.                                         $('connect_publish_feed_infloat').value = 1;
  232.                                 } else {
  233.                                         $('connectPost_synQQ_infloat').className = 'syn_qq';
  234.                                         $('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone2}';
  235.                                         $('connect_publish_feed_infloat').value = 0;
  236.                                 }
  237.                         }

  238.                         if (_allow_t_infloat && _syn_t_infloat) {
  239.                                 if (_is_feed_auth_infloat && !_is_token_outofdate) {
  240.                                         $('connectPost_synT_infloat').className = 'syn_tqq_check';
  241.                                         $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t1}';
  242.                                         $('connect_publish_t_infloat').value = 1;
  243.                                 } else {
  244.                                         $('connectPost_synT_infloat').className = 'syn_tqq';
  245.                                         $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t2}';
  246.                                         $('connect_publish_t_infloat').value = 0;
  247.                                 }
  248.                         }

  249.                         if (_allow_qq_infloat) {
  250.                                 $('connectPost_synQQ_infloat').onclick = function () {
  251.                                         connect_syn_option_toggle_infloat(this);
  252.                                 }
  253.                         }
  254.                         if (_allow_t_infloat) {
  255.                                 $('connectPost_synT_infloat').onclick = function () {
  256.                                         connect_syn_option_toggle_infloat(this);
  257.                                 }
  258.                         }
  259.                         if (getcookie('connect_synpost_tip')) {
  260.                                 connect_post_tip_infloat();
  261.                         }
  262.                 }
  263.                 function connect_syn_option_toggle_infloat(opt) {
  264.                         if (_is_feed_auth_infloat && !_is_token_outofdate) {
  265.                                 if ($(opt.getAttribute('rel')).value == 1) {
  266.                                         opt.className = opt.className.replace('_check', '');
  267.                                         opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_yes}', '{lang qqconnect:connect_post_sync_no}');
  268.                                         $(opt.getAttribute('rel')).value = 0;
  269.                                 } else {
  270.                                         $(opt.getAttribute('rel')).value = 1;
  271.                                         opt.className += '_check';
  272.                                         opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_no}', '{lang qqconnect:connect_post_sync_yes}');
  273.                                 }
  274.                         } else {
  275.                                 var _auth_text = '{lang qqconnect:connect_post_sync_unauthorized_desc}';
  276.                                 if (_is_token_outofdate) {
  277.                                         _auth_text = '{lang qqconnect:connect_access_token_out_of_date_feed}';
  278.                                         var _button = '{lang qqconnect:connect_access_token_outofdate_button}';
  279.                                         showDialog(_auth_text, 'notice', null, null, 0, null, null, _button);
  280.                                         return;
  281.                                 } else if (!_is_oauth_user_infloat) {
  282.                                         _auth_text = '{lang qqconnect:connect_post_sync_not_bind_desc}';
  283.                                 }
  284.                                 showDialog(_auth_text, 'notice', '{lang qqconnect:connect_post_sync_unauthorized_title}', 'connect_goto_setting_infloat()', 0, null, null, '{lang qqconnect:connect_modify_authorization_button}');
  285.                         }
  286.                 }
  287.                 function connect_post_tip_infloat() {
  288.                         if ($('fastpostform')) {
  289.                                 return;
  290.                         }
  291.                         var r = document.getElementById('rstnotice');
  292.                         var c = document.createElement('div');
  293.                         c.setAttribute('id', 'synnotice');
  294.                         c.setAttribute('class', 'ntc_l bbs');
  295.                         if(BROWSER.ie) {
  296.                                 c.id = 'synnotice';
  297.                                 c.className = 'ntc_l bbs';
  298.                         }
  299.                         c.style.display = 'block';
  300.                         r.parentNode.insertBefore(c, r.nextSibling);
  301.                         c.innerHTML = '<a href="javascript:void(0);" title="{lang qqconnect:connect_post_sync_tip_close}" class="d y" onclick="connect_syn_tip_hide_infloat();">close</a>{lang qqconnect:connect_post_sync_tip}&nbsp;&nbsp;<a class="xi2" href="javascript:void(0);" onclick="connect_syn_cancel_infloat();" title="{lang qqconnect:connect_post_sync_cancel_tip}"><strong>{lang qqconnect:connect_post_sync_cancel}</strong></a>';
  302.                 }
  303.                 function connect_syn_tip_hide_infloat() {
  304.                         setcookie('connect_synpost_tip', '', '-1');
  305.                         $('synnotice').style.display = 'none';
  306.                 }
  307.                 function connect_syn_cancel_infloat() {
  308.                         ajaxget('{$_G['siteurl']}connect.php?mod=config&op=synconfig', '');
  309.                         $('connectPost_synQQ_infloat').className = 'syn_qq';
  310.                         $('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone2}';
  311.                         $('connect_publish_feed_infloat').value = 0;
  312.                         $('connectPost_synT_infloat').className = 'syn_tqq';
  313.                         $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t2}';
  314.                         $('connect_publish_t_infloat').value = 0;
  315.                         $('synnotice').style.display = 'none';
  316.                 }
  317.                 function connect_goto_setting_infloat() {
  318.                         var _url = "{$_G['siteurl']}home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp";
  319.                         hideMenu('fwin_dialog', 'dialog')
  320.                         var _newWindow = window.open(_url, 'newWindow');
  321.                         _newWindow.focus();
  322.                 }
  323.                 connect_post_init_infloat();
  324.                 </script>
  325.         <!--{/if}-->
  326. <!--{/block}-->
  327. <!--{eval return $return;}-->
  328. {eval
  329. }

  330. function tpl_viewthread_share_method($jsurl) {
  331. global $_G;
  332. if (!$_G['setting']['connect']['allow']) return;
  333. $connect_thread_subject = addslashes(strip_tags($_G['thread']['subject']));
  334. }
  335. <!--{block return}-->
  336.         <!--{if $_G['member']['conisbind'] && $_G['member']['conuinsecret']}-->
  337.                 <a href="{$_G[connect][qq_share_url]}" id="k_share_to_qq" title="{QQ好友和群}" target="_blank"><i><img src="{IMGDIR}/qq_share.png" alt="{QQ好友和群}" />{QQ好友和群}</i></a>
  338.                 <a href="javascript:void(0);" ref="{$_G[connect][qzone_share_url]}" id="k_qqshare" title="{lang qqconnect:connect_viewthread_share_to_qzone}"><i><img src="{IMGDIR}/qzone.gif" alt="{lang qqconnect:connect_viewthread_share_to_qzone}" />{lang qqconnect:connect_viewthread_share_to_qzone}</i></a>
  339.                 <a href="javascript:void(0);" ref="{$_G[connect][weibo_share_url]}" id="k_weiboshare" title="{lang qqconnect:connect_viewthread_share_to_t}"><i><img src="{IMGDIR}/weibo.png" alt="{lang qqconnect:connect_viewthread_share_to_t}" />{lang qqconnect:connect_viewthread_share_to_t}</i></a>
  340.                 <a href="javascript:void(0);" ref="{$_G[connect][pengyou_share_url]}" id="k_pengyoushare" title="{lang qqconnect:connect_viewthread_share_to_pengyou}"><i><img src="{IMGDIR}/pengyou.png" alt="{lang qqconnect:connect_viewthread_share_to_pengyou}" />{lang qqconnect:connect_viewthread_share_to_pengyou}</i></a>
  341.                 <script type="text/javascript">
  342.                 var _is_oauth_user = {if $_G['member']['conuinsecret']}true{else}false{/if};
  343.                 var _is_share_token_outofdate = {if $_G['member']['conuinsecret']}false{else}true{/if};
  344.                 var _is_feed_auth = {if $_G['member']['conuinsecret'] && $_G['member']['is_feed']}true{else}false{/if};
  345.                 _is_feed_auth = true;
  346.                 var _share_buttons = ['k_qqshare', 'k_weiboshare', 'k_pengyoushare'];
  347.                 function connect_share_init() {
  348.                         for (var i = 0; i < _share_buttons.length; i++) {
  349.                                 $(_share_buttons[i]).onclick = function () {
  350.                                         connect_share_form(this);
  351.                                         return false;
  352.                                 }
  353.                         }
  354.                 }
  355.                 function connect_share_form(obj) {
  356.                         if (_is_oauth_user && _is_feed_auth) {
  357.                                 var _url = obj.getAttribute('ref');
  358.                                 showWindow(obj.id, _url, 'get', 1);
  359.                         } else {
  360.                                 if (_is_share_token_outofdate) {
  361.                                         var _text = '{lang qqconnect:connect_access_token_out_of_date_share}';
  362.                                         var _button = '{lang qqconnect:connect_access_token_outofdate_button}';
  363.                                         showDialog(_text, 'notice', null, null, 0, null, null, _button);
  364.                                 } else if (!_is_oauth_user) {
  365.                                         var _text = '{lang qqconnect:connect_share_unbind}';
  366.                                         var _button = '{lang qqconnect:connect_share_unbind_know_button}';
  367.                                         showDialog(_text, 'notice', null, 'connect_goto_setting()', 0, null, null, _button);
  368.                                 } else if (!_is_feed_auth) {
  369.                                         var _title = '{lang qqconnect:connect_post_sync_unauthorized_title}';
  370.                                         var _text = '{lang qqconnect:connect_share_unauthorized}';
  371.                                         var _button = '{lang qqconnect:connect_modify_authorization_button}';
  372.                                         showDialog(_text, 'notice', _title, 'connect_goto_setting()', 0, null, null, _button);
  373.                                 }
  374.                         }
  375.                 }
  376.                 function connect_goto_setting() {
  377.                         if (_is_oauth_user) {
  378.                                 var _url = "{$_G['siteurl']}home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp";
  379.                                 hideMenu('fwin_dialog', 'dialog');
  380.                                 var _newWindow = window.open(_url, 'newWindow');
  381.                                 _newWindow.focus();
  382.                         } else {
  383.                                 hideMenu('fwin_dialog', 'dialog');
  384.                         }
  385.                 }
  386.                 _attachEvent(window, 'load', function(){
  387.                         connect_share_init();
  388.                 });
  389.                 </script>
  390.         <!--{else}-->
  391.                 <a href="{$_G[connect][qq_share_url]}" id="k_share_to_qq" title="{QQ好友和群}" target="_blank"><i><img src="{IMGDIR}/qq_share.png" alt="{QQ好友和群}" />{QQ好友和群}</i></a>
  392.                 <a href="javascript:void(0);" id="k_qqshare" onclick="postToQzone();" title="{lang qqconnect:connect_viewthread_share_to_qzone}"><i><img src="{IMGDIR}/qzone.gif" alt="{lang qqconnect:connect_viewthread_share_to_qzone}" />{lang qqconnect:connect_viewthread_share_to_qzone}</i></a>
  393.                 <a href="javascript:void(0)" onclick="postToWb();" id="k_weiboshare" title="{lang qqconnect:connect_viewthread_share_to_t}"><i><img src="{IMGDIR}/weibo.png" alt="{lang qqconnect:connect_viewthread_share_to_t}" />{lang qqconnect:connect_viewthread_share_to_t}</i></a>
  394.                 <a href="javascript:void(0);" onclick="postToPengyou();" id="k_pengyoushare" title="{lang qqconnect:connect_viewthread_share_to_pengyou}"><i><img src="{IMGDIR}/pengyou.png" alt="{lang qqconnect:connect_viewthread_share_to_pengyou}" />{lang qqconnect:connect_viewthread_share_to_pengyou}</i></a>
  395.                 <script type="text/javascript">
  396.                 function postToWb(){
  397.                         var _t = encodeURI(document.title);
  398.                         var _url = encodeURIComponent(document.location);
  399.                         var _appkey = encodeURI("{$_G['connect']['weibo_appkey']}");
  400.                         var _pic = "{$_G['connect']['share_images']}";
  401.                         var _site = encodeURIComponent("{$_G['setting']['bbname']}");
  402.                         var _from = 'discuz';
  403.                         var _u = 'http://v.t.qq.com/share/share.php?url='+_url+'&appkey='+_appkey+'&site='+_site+'&pic='+_pic+'&title='+_t+'&from='+_from;
  404.                         window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
  405.                 }
  406.                 function postToQzone(){
  407.                         var _url = encodeURIComponent(document.location.href);
  408.                         var _site = encodeURIComponent("{$_G['setting']['bbname']}");
  409.                         var _title = encodeURIComponent("{$connect_thread_subject}");
  410.                         var _pics = "{$_G['connect']['share_images']}";
  411.                         var _from = 'discuz';
  412.                         var _u = '{$_G[connect][qzone_public_share_url]}?url='+_url+'&site='+_site+'&title='+_title+'&pics='+_pics+'&from='+_from;
  413.                         window.open(_u);
  414.                 }
  415.                 function postToPengyou(){
  416.                         var _url = encodeURIComponent(document.location.href);
  417.                         var _site = encodeURIComponent("{$_G['setting']['bbname']}");
  418.                         var _title = encodeURIComponent("{$connect_thread_subject}");
  419.                         var _pics = "{$_G['connect']['share_images']}";
  420.                         var _from = 'discuz';
  421.                         var _u = '{$_G[connect][qzone_public_share_url]}?to=pengyou&url='+_url+'&site='+_site+'&title='+_title+'&pics='+_pics+'&from='+_from;
  422.                         window.open(_u);
  423.                 }
  424.                 </script>
  425.         <!--{/if}-->
  426.         <!--{if $jsurl}-->
  427.                 <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$jsurl}', '', 1, 'utf-8') }, document);</script>
  428.         <!--{/if}-->
  429. <!--{/block}-->
  430. <!--{eval return $return;}-->
  431. {eval
  432. }

  433. function tpl_viewthread_bottom($jsurl) {
  434. global $_G;
  435. }
  436. <!--{block return}-->
  437.         <script type="text/javascript">
  438.                 var connect_qzone_share_url = '{$_G[connect][qzone_share_url]}';
  439.                 var connect_weibo_share_url = '{$_G[connect][weibo_share_url]}';
  440.                 var connect_thread_info = {
  441.                         thread_url: '{$_G['siteurl']}{$GLOBALS['canonical']}',
  442.                         thread_id: '{$_G[tid]}',
  443.                         post_id: '{$_G[connect][first_post][pid]}',
  444.                         forum_id: '{$_G[fid]}',
  445.                         author_id: '{$_G[connect][first_post][authorid]}',
  446.                         author: '{$_G[connect][first_post][author]}'
  447.                 };

  448.                 connect_autoshare = '{$_GET[connect_autoshare]}';
  449.                 connect_isbind = '{$_G[member][conisbind]}';
  450.                 if(connect_autoshare == 1 && connect_isbind) {
  451.                         _attachEvent(window, 'load', function(){
  452.                                 connect_share(connect_weibo_share_url, connect_openid);
  453.                         });
  454.                 }
  455.         </script>
  456.         <!--{if $_G['member']['conisbind']}-->
  457.                 <div id="connect_share_unbind" style="display: none;">
  458.                         <div class="c hm">
  459.                                 <div style="font-size:14px; margin:10px 0;">{lang qqconnect:connect_post_unbind}</div>
  460.                                 <div><a href="connect.php?mod=config&connect_autoshare=1" target="_blank"><img src="{IMGDIR}/qq_bind.gif" align="absmiddle" style="margin-top:5px;" /></a></div>
  461.                         </div>
  462.                         <input type="hidden" id="connect_thread_title" name="connect_thread_title" value="$_G[forum_thread][subject]" />
  463.                 </div>
  464.         <!--{/if}-->
  465.         <!--{if $jsurl}-->
  466.                 <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$jsurl}', '', 1, 'utf-8') }, document);</script>
  467.         <!--{/if}-->
  468. <!--{/block}-->
  469. <!--{eval return $return;}-->
  470. {eval
  471. }

  472. function tpl_sync_post_viewthread_bottom($jsurl) {
  473. }
  474. <!--{block return}-->
  475.         <div style="display:none;"><iframe src='{$jsurl}' style="display:none;"></div>
  476. <!--{/block}-->
  477. <!--{eval return $return;}-->
  478. {eval
  479. }

  480. function tpl_register_input() {
  481. global $_G;

  482. $connect_app_id = $_G['qc']['connect_app_id'];
  483. $connect_openid = $_G['qc']['connect_openid'];
  484. }
  485. <!--{block return}-->
  486.         <!--{if $connect_app_id && $connect_openid}-->
  487.         <div class="rfm">
  488.                 <table>
  489.                         <tr>
  490.                                 <th></th>
  491.                                 <td>
  492.                                         <label  for="use_qzone_avatar_qqshow"><input type="checkbox" name="use_qzone_avatar_qqshow" id="use_qzone_avatar_qqshow" class="pc" value="1" checked="checked" tabindex="1" />使用QQ头像和QQ秀</label>
  493.                                 </td>
  494.                         </tr>
  495.                 </table>
  496.         </div>
  497.         <!--{/if}-->
  498.         <input type="hidden" id="auth_hash" name="auth_hash" value="{$_G['qc']['connect_auth_hash']}" />
  499.         <input type="hidden" id="is_notify" name="is_notify" value="{$_G['qc']['connect_is_notify']}" />
  500.         <input type="hidden" id="is_feed" name="is_feed" value="{$_G['qc']['connect_is_feed']}" />
  501. <!--{/block}-->
  502. <!--{eval return $return;}-->
  503. {eval
  504. }

  505. function tpl_register_bottom() {
  506. global $_G;

  507. $loginhash = 'L'.random(4);
  508. $change_qq_url = $_G['connect']['discuz_change_qq_url'];
  509. $qq_nick = $_G['qc']['qq_nick'];
  510. $connect_app_id = $_G['qc']['connect_app_id'];
  511. $connect_openid = $_G['qc']['connect_openid'];
  512. $connect_tab_1 = $_GET['ac'] != 'bind' && $_G['setting']['regconnect'] ? ' class="a"' : '';
  513. $connect_tab_2 = $_GET['ac'] == 'bind' ? ' class="a"' : '';
  514. }
  515. <!--{block js2}-->
  516.         <style>
  517.                 .loggingbox { width: 760px; margin: 40px auto 0; }
  518.                 .loging_tit { border-bottom: 1px solid #CCC; _overflow:hidden; }
  519.                 .ie_all .loging_tit { height:66px;}
  520.                 .loggingbox .fm_box { border-bottom:0; padding: 20px 0; }
  521.                 .loggingbox .welcome { font-size:14px; width:100%; line-height:30px;}
  522.                 .loggingbox .welcome span { font-size:12px; }
  523.                 .loggingbox .avt img { margin: 0 5px 5px 0; padding:0; border:0; width:60px; height:60px; }
  524.                 .loggingbox .tb{ border-bottom: 0; margin-top: 0; padding-left: 0px; }
  525.                 .loggingbox .tb a { background:#F6F6F6; padding:0 20px; }
  526.                 .loggingbox .tb .a a { background:#FFF; }
  527.         </style>
  528.         <!--{if $_GET['ac'] == 'bind' || $_G['setting']['regconnect']}-->
  529.         <div id="loggingbox" class="loggingbox">
  530.                 <div class="loging_tit cl">
  531.                         <div class="z avt" style="display:block;"><img src="{$_G[connect][avatar_url]}/$connect_app_id/$connect_openid" width="48" height="48" /></div>
  532.                         <div class="z">
  533.                                 <p class="welcome mbn cl" style="clear:both; width:100%; "><strong>Hi</strong>,<strong>$_G['member']['username']</strong>,<span class="xg2">{lang connect_member_login_tip}</span></p>
  534.                                 <ul class="tb cl z">
  535.                                         <li id="connect_tab_1"$connect_tab_1><a id="loginlist" href="javascript:;" onclick="connect_switch(1);this.blur();" tabindex="900">{lang connect_register_profile}</a></li>
  536.                                         <li id="connect_tab_2"$connect_tab_2><a id="loginlist2" href="javascript:;" onclick="connect_switch(2);this.blur();" tabindex="900">{lang connect_register_bind}</a></li>
  537.                                 </ul>
  538.                         </div>
  539.                 </div>
  540.         </div>
  541.         <!--{/if}-->
  542. <!--{/block}-->
  543. {eval
  544. $js2 = str_replace(array("'", "\r", "\n"), array("\'", '', ''), $js2);
  545. }
  546. <!--{block return}-->
  547.         <div class="b1lr">
  548.                 <form method="post" autocomplete="off" name="login" id="loginform_$loginhash" class="cl"{if $_G['setting']['regconnect']} style="display:none"{/if} onsubmit="ajaxpost('loginform_$loginhash', 'returnmessage4', 'returnmessage4', 'onerror');return false;" action="member.php?mod=connect&action=login&loginsubmit=yes{if !empty($_GET['handlekey'])}&handlekey=$_GET[handlekey]{/if}&loginhash=$loginhash">
  549.                         <div class="c cl bm_c">
  550.                                 <input type="hidden" name="formhash" value="{FORMHASH}" />
  551.                                 <input type="hidden" name="referer" value="{$_G['qc']['dreferer']}" />
  552.                                 <input type="hidden" id="auth_hash" name="auth_hash" value="{$_G['qc']['connect_auth_hash']}" />
  553.                                 <input type="hidden" id="is_notify" name="is_notify" value="{$_G['qc']['connect_is_notify']}" />
  554.                                 <input type="hidden" id="is_feed" name="is_feed" value="{$_G['qc']['connect_is_feed']}" />
  555.                                 <!--{if $_G['qc']['uinlimit']}-->
  556.                                 <!--<div class="bm xi1 xw1"><div class="bm_c"><img src="{IMGDIR}/connect_qq.gif" alt="QQ" class="vm" />&nbsp;{lang qqconnect:connect_uin_limit}</div></div>-->
  557.                                 <div class="rfm">
  558.                                         <table>
  559.                                                 <tr>
  560.                                                         <th><img src="{IMGDIR}/connect_qq.gif" alt="QQ" class="mtn" /></th>
  561.                                                         <td>
  562.                                                                 {lang qqconnect:connect_uin_limit}
  563.                                                         </td>
  564.                                                 </tr>
  565.                                         </table>
  566.                                 </div>
  567.                                 <!--{/if}-->
  568.                                 <div class="rfm">
  569.                                         <table>
  570.                                                 <tr>
  571.                                                         <th>
  572.                                                         <!--{if $_G['setting']['autoidselect']}-->
  573.                                                                 <label for="username">{lang login_id}:</label>
  574.                                                         <!--{else}-->
  575.                                                                 <span class="login_slct">
  576.                                                                         <select name="loginfield" style="float: left;" width="45" id="loginfield_$loginhash">
  577.                                                                                 <option value="username">{lang username}</option>
  578.                                                                                 <option value="uid">{lang uid}</option>
  579.                                                                                 <option value="email">{lang email}</option>
  580.                                                                         </select>
  581.                                                                 </span>
  582.                                                         <!--{/if}-->
  583.                                                         </th>
  584.                                                         <td><input type="text" name="username" id="username_$loginhash" autocomplete="off" size="36" class="txt" tabindex="1" value="$username" /></td>
  585.                                                 </tr>
  586.                                         </table>
  587.                                 </div>

  588.                                 <div class="rfm">
  589.                                         <table>
  590.                                                 <tr>
  591.                                                         <th><label for="password3_$loginhash">{lang login_password}:</label></th>
  592.                                                         <td><input type="password" id="password3_$loginhash" name="password" size="36" class="txt" tabindex="1" /></td>
  593.                                                 </tr>
  594.                                         </table>
  595.                                 </div>

  596.                                 <div class="rfm">
  597.                                         <table>
  598.                                                 <tr>
  599.                                                         <th>{lang security_q}:</th>
  600.                                                         <td><select id="loginquestionid_$loginhash" width="213" name="questionid" onchange="if($('loginquestionid_$loginhash').value > 0) $('loginanswer_row_$loginhash').style.display=''; else $('loginanswer_row_$loginhash').style.display='none'">
  601.                                                                 <option value="0">{lang security_question}</option>
  602.                                                                 <option value="1">{lang security_question_1}</option>
  603.                                                                 <option value="2">{lang security_question_2}</option>
  604.                                                                 <option value="3">{lang security_question_3}</option>
  605.                                                                 <option value="4">{lang security_question_4}</option>
  606.                                                                 <option value="5">{lang security_question_5}</option>
  607.                                                                 <option value="6">{lang security_question_6}</option>
  608.                                                                 <option value="7">{lang security_question_7}</option>
  609.                                                         </select></td>
  610.                                                 </tr>
  611.                                         </table>
  612.                                 </div>

  613.                                 <div class="rfm" id="loginanswer_row_$loginhash" style="display:none">
  614.                                         <table>
  615.                                                 <tr>
  616.                                                         <th>{lang security_a}:</th>
  617.                                                         <td><input type="text" name="answer" id="loginanswer_$loginhash" autocomplete="off" size="36" class="txt" tabindex="1" /></td>
  618.                                                 </tr>
  619.                                         </table>
  620.                                 </div>

  621.                                 <div class="rfm">
  622.                                         <table>
  623.                                                 <tr>
  624.                                                         <th></th>
  625.                                                         <td>
  626.                                                                 <p><label for="use_qqshow_bind"><input type="checkbox" name="use_qqshow" id="use_qqshow_bind" class="pc" value="1" checked="checked" tabindex="1" /> {lang qqconnect:connect_register_use_qqshow}</label></p>
  627.                                                         </td>
  628.                                                 </tr>
  629.                                         </table>
  630.                                 </div>
  631.                         </div>
  632.                         <div class="rfm mbw bw0">
  633.                                 <table>
  634.                                         <tr>
  635.                                                 <th>&nbsp;</th>
  636.                                                 <td><button class="pn pnc" type="submit" name="loginsubmit" value="true" tabindex="1"><strong>{lang qqconnect:connect_register_bind_window_button}</strong></button></td>
  637.                                         </tr>
  638.                                 </table>
  639.                         </div>
  640.                 </form>
  641.         </div>
  642.         <script type="text/javascript">
  643.                 <!--{if $_G['setting']['regconnect']}-->
  644.                         $('reginfo_a').parentNode.className = '';
  645.                         $('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  646.                         $('{$_G['setting']['reginput']['username']}').outerHTML += '$js1';
  647.                         $('{$_G['setting']['reginput']['password']}').required = 0;
  648.                         $('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  649.                         $('{$_G['setting']['reginput']['password2']}').required = 0;
  650.                         $('main_hnav').outerHTML = '$js2';
  651.                         function connect_switch(op) {
  652.                                 $('returnmessage4').className='';
  653.                                 $('returnmessage4').innerHTML='';
  654.                                 if(op == 1) {
  655.                                         $('loginform_$loginhash').style.display='none';$('registerform').style.display='block';
  656.                                         $('connect_tab_1').className = 'a';
  657.                                         $('connect_tab_2').className = '';
  658.                                         //$('connect_login_register_tip').style.display = '';
  659.                                         //$('connect_login_bind_tip').style.display = 'none';
  660.                                        
  661.                                 } else {
  662.                                         $('loginform_$loginhash').style.display='block';$('registerform').style.display='none';
  663.                                         $('connect_tab_2').className = 'a';
  664.                                         $('connect_tab_1').className = '';
  665.                                         //$('connect_login_register_tip').style.display = 'none';
  666.                                         //$('connect_login_bind_tip').style.display = '';
  667.                                 }
  668.                         }
  669.                         function connect_use_available(value) {
  670.                                 $('{$_G['setting']['reginput']['username']}').value = value;
  671.                                 checkusername(value);
  672.                         }
  673.                         <!--{if $_G['qc']['uinlimit']}-->
  674.                                 $('registerformsubmit').disabled = true;
  675.                         <!--{/if}-->
  676.                         <!--{if $_GET[action] != 'activation'}-->
  677.                                 $('registerformsubmit').innerHTML = '<span>{lang qqconnect:connect_register_finish}</span>';
  678.                         <!--{/if}-->
  679.                 <!--{else}-->
  680.                         $('layer_reginfo_t').innerHTML = '{lang qqconnect:connect_register_bind}';
  681.                 <!--{/if}-->
  682.                 <!--{if $_GET[action] != 'activation'}-->
  683.                         <!--{if !$_G['setting']['autoidselect']}-->
  684.                                 simulateSelect('loginfield_$loginhash');
  685.                         <!--{/if}-->
  686.                 <!--{/if}-->
  687.                
  688.                 <!--{if $_G['setting']['regconnect'] && $_GET['ac'] != 'bind'}-->
  689.                 function connect_get_user_info() {
  690.                         var x = new Ajax();
  691.                         x.get('connect.php?mod=user&op=get&hash={FORMHASH}&inajax=1&_r='+Math.random(), function(s){
  692.                                 var nick = s;
  693.                                 if(nick) {
  694.                                         document.getElementById('{$_G['setting']['reginput']['username']}').value = nick;
  695.                                 }
  696.                         });
  697.                 }
  698.                 window.load=connect_get_user_info();
  699.                 <!--{/if}-->
  700. </script>
  701. <!--{/block}-->
  702. <!--{eval return $return;}-->
  703. {eval
  704. }

  705. function tpl_spacecp_profile_bottom() {
  706.         global $_G;
  707. }
  708. <!--{block return}-->
  709.         <script type="text/javascript">
  710.         function connect_handle_get_weibosign(response, ajax) {
  711.                 // 返回值形如: errCode=XX&result=XX
  712.                 if (typeof(response) == "string" && response.indexOf("&") > 0) {

  713.                         var errCode = response.substring(0, response.indexOf("&"));
  714.                         errCode = errCode.substring(errCode.indexOf("=") + 1);

  715.                         var result = response.substring(response.indexOf("&") + 1);
  716.                         result = result.substring(result.indexOf("=") + 1);

  717.                         response = {"errCode" : errCode, "result" : result};
  718.                 } else {
  719.                         return false;
  720.                 }

  721.                 if (response.errCode == '0') {
  722.                         seditor_insertunit('sightml', response.result);
  723.                 } else {
  724.                         // 请求失败
  725.                         showDialog('{lang qqconnect:connect_wbsign_no_account}');
  726.                 }
  727.         }

  728.         function connect_get_weibosign() {
  729.                 var sign_url = '{$_G['siteurl']}connect.php?mod=config&op=weibosign&hash={FORMHASH}&_r='+Math.random();
  730.                 var get_weibosign_ajax = Ajax("HTML", null);
  731.                 get_weibosign_ajax.get(sign_url, connect_handle_get_weibosign);
  732.         }

  733.         if($('sightmlsml')) {
  734.                         var a = document.createElement('a');
  735.                         a.href = 'javascript:void(0);';
  736.                         a.style.background = 'url(' + STATICURL + 'image/common/weibo.png) no-repeat 0 2px';
  737.                         a.onmouseover = function () { showTip(this); };
  738.                         a.onclick = connect_get_weibosign;
  739.                         a.setAttribute('tip', '{lang qqconnect:connect_wbsign_tip}');
  740.                         $('sightmlsml').parentNode.appendChild(a);
  741.         }
  742.         </script>
  743. <!--{/block}-->
  744. <!--{eval return $return;}-->
  745. {eval
  746. }

  747. }
复制代码
用文本编辑器编辑保存下,再上传替换。

下载: (, 下载次数: 1)

本教程又无限星辰工作室www.xmspace.net整理发布,转载请注明地址。





欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/) Powered by Discuz! X3.4