module.htm 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  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 $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']['conuintoken']) && $_G['member']['is_feed']}true{else}false{/if};
  84. var _is_token_outofdate = {if $_G['member']['conuinsecret'] || $_G['member']['conuintoken']}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 $allowconnectt}-->
  193. <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>
  194. <input type="hidden" name="connect_publish_t" id="connect_publish_t" value="0" />
  195. <!--{/if}-->
  196. <!--{/if}-->
  197. <!--{/block}-->
  198. <!--{eval return $return;}-->
  199. {eval
  200. }
  201. function tpl_infloat_sync_method($allowconnectfeed, $allowconnectt) {
  202. global $_G;
  203. }
  204. <!--{block return}-->
  205. <!--{if $allowconnectt}-->
  206. <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>
  207. <input type="hidden" name="connect_publish_t" id="connect_publish_t_infloat" value="0" />
  208. <script type="text/javascript" reload="1">
  209. //var _allow_qq_infloat = {if $allowconnectfeed}true{else}false{/if};
  210. var _allow_t_infloat = {if $allowconnectt}true{else}false{/if};
  211. //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};
  212. 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};
  213. var _is_oauth_user_infloat = {if $_G['member']['conisbind']}true{else}false{/if};
  214. var _is_feed_auth_infloat = {if ($_G['member']['conuinsecret'] || $_G['member']['conuintoken']) && $_G['member']['is_feed']}true{else}false{/if};
  215. var _is_token_outofdate = {if $_G['member']['conuinsecret'] || $_G['member']['conuintoken']}false{else}true{/if};
  216. function connect_post_init_infloat() {
  217. // if (_allow_qq_infloat && _syn_qq_infloat) {
  218. // if (_is_feed_auth_infloat && !_is_token_outofdate) {
  219. // $('connectPost_synQQ_infloat').className = 'syn_qq_check';
  220. // $('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone1}';
  221. // $('connect_publish_feed_infloat').value = 1;
  222. // } else {
  223. // $('connectPost_synQQ_infloat').className = 'syn_qq';
  224. // $('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone2}';
  225. // $('connect_publish_feed_infloat').value = 0;
  226. // }
  227. // }
  228. if (_allow_t_infloat && _syn_t_infloat) {
  229. if (_is_feed_auth_infloat && !_is_token_outofdate) {
  230. $('connectPost_synT_infloat').className = 'syn_tqq_check';
  231. $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t1}';
  232. $('connect_publish_t_infloat').value = 1;
  233. } else {
  234. $('connectPost_synT_infloat').className = 'syn_tqq';
  235. $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t2}';
  236. $('connect_publish_t_infloat').value = 0;
  237. }
  238. }
  239. // if (_allow_qq_infloat) {
  240. // $('connectPost_synQQ_infloat').onclick = function () {
  241. // connect_syn_option_toggle_infloat(this);
  242. // }
  243. // }
  244. if (_allow_t_infloat) {
  245. $('connectPost_synT_infloat').onclick = function () {
  246. connect_syn_option_toggle_infloat(this);
  247. }
  248. }
  249. if (getcookie('connect_synpost_tip')) {
  250. connect_post_tip_infloat();
  251. }
  252. }
  253. function connect_syn_option_toggle_infloat(opt) {
  254. if (_is_feed_auth_infloat && !_is_token_outofdate) {
  255. if ($(opt.getAttribute('rel')).value == 1) {
  256. opt.className = opt.className.replace('_check', '');
  257. opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_yes}', '{lang qqconnect:connect_post_sync_no}');
  258. $(opt.getAttribute('rel')).value = 0;
  259. } else {
  260. $(opt.getAttribute('rel')).value = 1;
  261. opt.className += '_check';
  262. opt.title = opt.title.replace('{lang qqconnect:connect_post_sync_no}', '{lang qqconnect:connect_post_sync_yes}');
  263. }
  264. } else {
  265. var _auth_text = '{lang qqconnect:connect_post_sync_unauthorized_desc}';
  266. if (_is_token_outofdate) {
  267. _auth_text = '{lang qqconnect:connect_access_token_out_of_date_feed}';
  268. var _button = '{lang qqconnect:connect_access_token_outofdate_button}';
  269. showDialog(_auth_text, 'notice', null, null, 0, null, null, _button);
  270. return;
  271. } else if (!_is_oauth_user_infloat) {
  272. _auth_text = '{lang qqconnect:connect_post_sync_not_bind_desc}';
  273. }
  274. showDialog(_auth_text, 'notice', '{lang qqconnect:connect_post_sync_unauthorized_title}', 'connect_goto_setting_infloat()', 0, null, null, '{lang qqconnect:connect_modify_authorization_button}');
  275. }
  276. }
  277. function connect_post_tip_infloat() {
  278. if ($('fastpostform')) {
  279. return;
  280. }
  281. var r = document.getElementById('rstnotice');
  282. var c = document.createElement('div');
  283. c.setAttribute('id', 'synnotice');
  284. c.setAttribute('class', 'ntc_l bbs');
  285. if(BROWSER.ie) {
  286. c.id = 'synnotice';
  287. c.className = 'ntc_l bbs';
  288. }
  289. c.style.display = 'block';
  290. r.parentNode.insertBefore(c, r.nextSibling);
  291. 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>';
  292. }
  293. function connect_syn_tip_hide_infloat() {
  294. setcookie('connect_synpost_tip', '', '-1');
  295. $('synnotice').style.display = 'none';
  296. }
  297. function connect_syn_cancel_infloat() {
  298. ajaxget('{$_G['siteurl']}connect.php?mod=config&op=synconfig', '');
  299. //$('connectPost_synQQ_infloat').className = 'syn_qq';
  300. //$('connectPost_synQQ_infloat').title = '{lang qqconnect:connect_post_sync_qzone2}';
  301. //$('connect_publish_feed_infloat').value = 0;
  302. $('connectPost_synT_infloat').className = 'syn_tqq';
  303. $('connectPost_synT_infloat').title = '{lang qqconnect:connect_post_sync_t2}';
  304. $('connect_publish_t_infloat').value = 0;
  305. $('synnotice').style.display = 'none';
  306. }
  307. function connect_goto_setting_infloat() {
  308. var _url = "{$_G['siteurl']}home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp";
  309. hideMenu('fwin_dialog', 'dialog')
  310. var _newWindow = window.open(_url, 'newWindow');
  311. _newWindow.focus();
  312. }
  313. connect_post_init_infloat();
  314. </script>
  315. <!--{/if}-->
  316. <!--{/block}-->
  317. <!--{eval return $return;}-->
  318. {eval
  319. }
  320. function tpl_viewthread_share_method($jsurl) {
  321. global $_G;
  322. if (!$_G['setting']['connect']['allow']) return;
  323. $connect_thread_subject = addslashes(strip_tags($_G['thread']['subject']));
  324. }
  325. <!--{block return}-->
  326. <!--{if $_G['member']['conisbind'] && ($_G['member']['conuinsecret'] || $_G['member']['conuintoken'])}-->
  327. <a href="{$_G[connect][qq_share_url]}" id="k_share_to_qq" title="{lang qqconnect:connect_viewthread_share_to_qq}" target="_blank"><i><img src="{IMGDIR}/qq_share.png" alt="{lang qqconnect:connect_viewthread_share_to_qq}" />{lang qqconnect:connect_viewthread_share_to_qq}</i></a>
  328. <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>
  329. <a href="javascript:void(0);" ref="{$_G[connect][pengyou_share_url]}" id="k_pengyoushare" 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>
  330. <script type="text/javascript">
  331. var _is_oauth_user = {if $_G['member']['conuinsecret'] || $_G['member']['conuintoken']}true{else}false{/if};
  332. var _is_share_token_outofdate = {if $_G['member']['conuinsecret'] || $_G['member']['conuintoken']}false{else}true{/if};
  333. var _is_feed_auth = true;
  334. var _share_buttons = ['k_weiboshare', 'k_pengyoushare'];
  335. function connect_share_init() {
  336. for (var i = 0; i < _share_buttons.length; i++) {
  337. $(_share_buttons[i]).onclick = function () {
  338. connect_share_form(this);
  339. return false;
  340. }
  341. }
  342. }
  343. function connect_share_form(obj) {
  344. if (_is_oauth_user && _is_feed_auth) {
  345. var _url = obj.getAttribute('ref');
  346. showWindow(obj.id, _url, 'get', 1);
  347. } else {
  348. if (_is_share_token_outofdate) {
  349. var _text = '{lang qqconnect:connect_access_token_out_of_date_share}';
  350. var _button = '{lang qqconnect:connect_access_token_outofdate_button}';
  351. showDialog(_text, 'notice', null, null, 0, null, null, _button);
  352. } else if (!_is_oauth_user) {
  353. var _text = '{lang qqconnect:connect_share_unbind}';
  354. var _button = '{lang qqconnect:connect_share_unbind_know_button}';
  355. showDialog(_text, 'notice', null, 'connect_goto_setting()', 0, null, null, _button);
  356. } else if (!_is_feed_auth) {
  357. var _title = '{lang qqconnect:connect_post_sync_unauthorized_title}';
  358. var _text = '{lang qqconnect:connect_share_unauthorized}';
  359. var _button = '{lang qqconnect:connect_modify_authorization_button}';
  360. showDialog(_text, 'notice', _title, 'connect_goto_setting()', 0, null, null, _button);
  361. }
  362. }
  363. }
  364. function connect_goto_setting() {
  365. if (_is_oauth_user) {
  366. var _url = "{$_G['siteurl']}home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp";
  367. hideMenu('fwin_dialog', 'dialog');
  368. var _newWindow = window.open(_url, 'newWindow');
  369. _newWindow.focus();
  370. } else {
  371. hideMenu('fwin_dialog', 'dialog');
  372. }
  373. }
  374. _attachEvent(window, 'load', function(){
  375. connect_share_init();
  376. });
  377. </script>
  378. <!--{else}-->
  379. <a href="{$_G[connect][qq_share_url]}" id="k_share_to_qq" title="{lang qqconnect:connect_viewthread_share_to_qq}" target="_blank"><i><img src="{IMGDIR}/qq_share.png" alt="{lang qqconnect:connect_viewthread_share_to_qq}" />{lang qqconnect:connect_viewthread_share_to_qq}</i></a>
  380. <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>
  381. <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>
  382. <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>
  383. <script type="text/javascript">
  384. function postToWb(){
  385. var _t = encodeURI(document.title);
  386. var _url = encodeURIComponent(document.location);
  387. var _appkey = encodeURI("{$_G['connect']['weibo_appkey']}");
  388. var _pic = "{$_G['connect']['share_images']}";
  389. var _site = encodeURIComponent("{$_G['setting']['bbname']}");
  390. var _from = 'discuz';
  391. var _u = 'http://v.t.qq.com/share/share.php?url='+_url+'&appkey='+_appkey+'&site='+_site+'&pic='+_pic+'&title='+_t+'&from='+_from;
  392. window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
  393. }
  394. function postToPengyou(){
  395. var _url = encodeURIComponent(document.location.href);
  396. var _site = encodeURIComponent("{$_G['setting']['bbname']}");
  397. var _title = encodeURIComponent("{$connect_thread_subject}");
  398. var _pics = "{$_G['connect']['share_images']}";
  399. var _from = 'discuz';
  400. var _u = '{$_G[connect][qzone_public_share_url]}?to=pengyou&url='+_url+'&site='+_site+'&title='+_title+'&pics='+_pics+'&from='+_from;
  401. window.open(_u);
  402. }
  403. </script>
  404. <!--{/if}-->
  405. <!--{if $jsurl}-->
  406. <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$jsurl}', '', 1, 'utf-8') }, document);</script>
  407. <!--{/if}-->
  408. <!--{/block}-->
  409. <!--{eval return $return;}-->
  410. {eval
  411. }
  412. function tpl_viewthread_bottom($jsurl) {
  413. global $_G;
  414. }
  415. <!--{block return}-->
  416. <script type="text/javascript">
  417. var connect_qzone_share_url = '{$_G[connect][qzone_share_url]}';
  418. var connect_weibo_share_url = '{$_G[connect][weibo_share_url]}';
  419. var connect_thread_info = {
  420. thread_url: '{$_G['siteurl']}{$GLOBALS['canonical']}',
  421. thread_id: '{$_G[tid]}',
  422. post_id: '{$_G[connect][first_post][pid]}',
  423. forum_id: '{$_G[fid]}',
  424. author_id: '{$_G[connect][first_post][authorid]}',
  425. author: '{$_G[connect][first_post][author]}'
  426. };
  427. connect_autoshare = '{$_GET[connect_autoshare]}';
  428. connect_isbind = '{$_G[member][conisbind]}';
  429. if(connect_autoshare == 1 && connect_isbind) {
  430. _attachEvent(window, 'load', function(){
  431. connect_share(connect_weibo_share_url, connect_openid);
  432. });
  433. }
  434. </script>
  435. <!--{if $_G['member']['conisbind']}-->
  436. <div id="connect_share_unbind" style="display: none;">
  437. <div class="c hm">
  438. <div style="font-size:14px; margin:10px 0;">{lang qqconnect:connect_post_unbind}</div>
  439. <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>
  440. </div>
  441. <input type="hidden" id="connect_thread_title" name="connect_thread_title" value="$_G[forum_thread][subject]" />
  442. </div>
  443. <!--{/if}-->
  444. <!--{if $jsurl}-->
  445. <script type="text/javascript">_attachEvent(window, 'load', function () { appendscript('{$jsurl}', '', 1, 'utf-8') }, document);</script>
  446. <!--{/if}-->
  447. <!--{/block}-->
  448. <!--{eval return $return;}-->
  449. {eval
  450. }
  451. function tpl_sync_post_viewthread_bottom($jsurl) {
  452. }
  453. <!--{block return}-->
  454. <div style="display:none;"><iframe src='{$jsurl}' style="display:none;"></div>
  455. <!--{/block}-->
  456. <!--{eval return $return;}-->
  457. {eval
  458. }
  459. function tpl_register_input() {
  460. global $_G;
  461. $connect_app_id = $_G['qc']['connect_app_id'];
  462. $connect_openid = $_G['qc']['connect_openid'];
  463. }
  464. <!--{block return}-->
  465. <!--{if $connect_app_id && $connect_openid}-->
  466. <div class="rfm">
  467. <table>
  468. <tr>
  469. <th></th>
  470. <td>
  471. <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" />{lang qqconnect:connect_register_use_qzone_avatar_qqshow}</label>
  472. </td>
  473. </tr>
  474. </table>
  475. </div>
  476. <!--{/if}-->
  477. <input type="hidden" id="auth_hash" name="auth_hash" value="{$_G['qc']['connect_auth_hash']}" />
  478. <input type="hidden" id="is_notify" name="is_notify" value="{$_G['qc']['connect_is_notify']}" />
  479. <input type="hidden" id="is_feed" name="is_feed" value="{$_G['qc']['connect_is_feed']}" />
  480. <!--{/block}-->
  481. <!--{eval return $return;}-->
  482. {eval
  483. }
  484. function tpl_register_bottom() {
  485. global $_G;
  486. $loginhash = 'L'.random(4);
  487. $change_qq_url = $_G['connect']['discuz_change_qq_url'];
  488. $qq_nick = $_G['qc']['qq_nick'];
  489. $connect_app_id = $_G['qc']['connect_app_id'];
  490. $connect_openid = $_G['qc']['connect_openid'];
  491. $connect_tab_1 = $_GET['ac'] != 'bind' && $_G['setting']['regconnect'] ? ' class="a"' : '';
  492. $connect_tab_2 = $_GET['ac'] == 'bind' ? ' class="a"' : '';
  493. }
  494. <!--{block js2}-->
  495. <!--{if $_GET['ac'] == 'bind' || $_G['setting']['regconnect']}-->
  496. <div id="loggingbox" class="loggingbox">
  497. <div class="loging_tit cl">
  498. <div class="z avt" style="display:block;"><img src="{$_G[connect][avatar_url]}/$connect_app_id/$connect_openid" width="48" height="48" /></div>
  499. <div class="z">
  500. <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>
  501. <ul class="tb cl z">
  502. <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>
  503. <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>
  504. </ul>
  505. </div>
  506. </div>
  507. </div>
  508. <!--{/if}-->
  509. <!--{/block}-->
  510. {eval
  511. $js2 = str_replace(array("'", "\r", "\n"), array("\'", '', ''), $js2);
  512. }
  513. <!--{block return}-->
  514. <div class="b1lr">
  515. <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">
  516. <div class="c cl bm_c">
  517. <input type="hidden" name="formhash" value="{FORMHASH}" />
  518. <input type="hidden" name="referer" value="{$_G['qc']['dreferer']}" />
  519. <input type="hidden" id="auth_hash" name="auth_hash" value="{$_G['qc']['connect_auth_hash']}" />
  520. <input type="hidden" id="is_notify" name="is_notify" value="{$_G['qc']['connect_is_notify']}" />
  521. <input type="hidden" id="is_feed" name="is_feed" value="{$_G['qc']['connect_is_feed']}" />
  522. <!--{if $_G['qc']['uinlimit']}-->
  523. <!--<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>-->
  524. <div class="rfm">
  525. <table>
  526. <tr>
  527. <th><img src="{IMGDIR}/connect_qq.gif" alt="QQ" class="mtn" /></th>
  528. <td>
  529. {lang qqconnect:connect_uin_limit}
  530. </td>
  531. </tr>
  532. </table>
  533. </div>
  534. <!--{/if}-->
  535. <div class="rfm">
  536. <table>
  537. <tr>
  538. <th>
  539. <!--{if $_G['setting']['autoidselect']}-->
  540. <label for="username">{lang login_id}:</label>
  541. <!--{else}-->
  542. <span class="login_slct">
  543. <select name="loginfield" style="float: left;" width="45" id="loginfield_$loginhash">
  544. <option value="username">{lang username}</option>
  545. <option value="uid">{lang uid}</option>
  546. <option value="email">{lang email}</option>
  547. </select>
  548. </span>
  549. <!--{/if}-->
  550. </th>
  551. <td><input type="text" name="username" id="username_$loginhash" autocomplete="off" size="36" class="txt" tabindex="1" value="$username" /></td>
  552. </tr>
  553. </table>
  554. </div>
  555. <div class="rfm">
  556. <table>
  557. <tr>
  558. <th><label for="password3_$loginhash">{lang login_password}:</label></th>
  559. <td><input type="password" id="password3_$loginhash" name="password" size="36" class="txt" tabindex="1" /></td>
  560. </tr>
  561. </table>
  562. </div>
  563. <div class="rfm">
  564. <table>
  565. <tr>
  566. <th>{lang security_q}:</th>
  567. <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'">
  568. <option value="0">{lang security_question}</option>
  569. <option value="1">{lang security_question_1}</option>
  570. <option value="2">{lang security_question_2}</option>
  571. <option value="3">{lang security_question_3}</option>
  572. <option value="4">{lang security_question_4}</option>
  573. <option value="5">{lang security_question_5}</option>
  574. <option value="6">{lang security_question_6}</option>
  575. <option value="7">{lang security_question_7}</option>
  576. </select></td>
  577. </tr>
  578. </table>
  579. </div>
  580. <div class="rfm" id="loginanswer_row_$loginhash" style="display:none">
  581. <table>
  582. <tr>
  583. <th>{lang security_a}:</th>
  584. <td><input type="text" name="answer" id="loginanswer_$loginhash" autocomplete="off" size="36" class="txt" tabindex="1" /></td>
  585. </tr>
  586. </table>
  587. </div>
  588. <div class="rfm">
  589. <table>
  590. <tr>
  591. <th></th>
  592. <td>
  593. <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>
  594. </td>
  595. </tr>
  596. </table>
  597. </div>
  598. </div>
  599. <div class="rfm mbw bw0">
  600. <table>
  601. <tr>
  602. <th>&nbsp;</th>
  603. <td><button class="pn pnc" type="submit" name="loginsubmit" value="true" tabindex="1"><strong>{lang qqconnect:connect_register_bind_window_button}</strong></button></td>
  604. </tr>
  605. </table>
  606. </div>
  607. </form>
  608. </div>
  609. <style type="text/css">
  610. .loggingbox { width: 760px; margin: 40px auto 0; }
  611. .loging_tit { border-bottom: 1px solid #CCC; _overflow:hidden; }
  612. .ie_all .loging_tit { height:66px;}
  613. .loggingbox .fm_box { border-bottom:0; padding: 20px 0; }
  614. .loggingbox .welcome { font-size:14px; width:100%; line-height:30px;}
  615. .loggingbox .welcome span { font-size:12px; }
  616. .loggingbox .avt img { margin: 0 5px 5px 0; padding:0; border:0; width:60px; height:60px; }
  617. .loggingbox .tb{ border-bottom: 0; margin-top: 0; padding-left: 0px; }
  618. .loggingbox .tb a { background:#F6F6F6; padding:0 20px; }
  619. .loggingbox .tb .a a { background:#FFF; }
  620. </style>
  621. <script type="text/javascript">
  622. <!--{if $_G['setting']['regconnect']}-->
  623. $('reginfo_a').parentNode.className = '';
  624. $('{$_G['setting']['reginput']['password']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  625. $('{$_G['setting']['reginput']['username']}').outerHTML += '$js1';
  626. $('{$_G['setting']['reginput']['password']}').required = 0;
  627. $('{$_G['setting']['reginput']['password2']}').parentNode.parentNode.parentNode.parentNode.parentNode.style.display = 'none';
  628. $('{$_G['setting']['reginput']['password2']}').required = 0;
  629. $('main_hnav').outerHTML = '$js2';
  630. function connect_switch(op) {
  631. $('returnmessage4').className='';
  632. $('returnmessage4').innerHTML='';
  633. if(op == 1) {
  634. $('loginform_$loginhash').style.display='none';$('registerform').style.display='block';
  635. $('connect_tab_1').className = 'a';
  636. $('connect_tab_2').className = '';
  637. //$('connect_login_register_tip').style.display = '';
  638. //$('connect_login_bind_tip').style.display = 'none';
  639. } else {
  640. $('loginform_$loginhash').style.display='block';$('registerform').style.display='none';
  641. $('connect_tab_2').className = 'a';
  642. $('connect_tab_1').className = '';
  643. //$('connect_login_register_tip').style.display = 'none';
  644. //$('connect_login_bind_tip').style.display = '';
  645. }
  646. }
  647. function connect_use_available(value) {
  648. $('{$_G['setting']['reginput']['username']}').value = value;
  649. checkusername(value);
  650. }
  651. <!--{if $_G['qc']['uinlimit']}-->
  652. $('registerformsubmit').disabled = true;
  653. <!--{/if}-->
  654. <!--{if $_GET[action] != 'activation'}-->
  655. $('registerformsubmit').innerHTML = '<span>{lang qqconnect:connect_register_finish}</span>';
  656. <!--{/if}-->
  657. <!--{else}-->
  658. $('layer_reginfo_t').innerHTML = '{lang qqconnect:connect_register_bind}';
  659. <!--{/if}-->
  660. <!--{if $_GET[action] != 'activation'}-->
  661. <!--{if !$_G['setting']['autoidselect']}-->
  662. simulateSelect('loginfield_$loginhash');
  663. <!--{/if}-->
  664. <!--{/if}-->
  665. <!--{if $_G['setting']['regconnect'] && $_GET['ac'] != 'bind'}-->
  666. function connect_get_user_info() {
  667. var x = new Ajax();
  668. x.get('connect.php?mod=user&op=get&hash={FORMHASH}&inajax=1&_r='+Math.random(), function(s){
  669. var nick = s;
  670. if(nick) {
  671. document.getElementById('{$_G['setting']['reginput']['username']}').value = nick;
  672. }
  673. });
  674. }
  675. window.load=connect_get_user_info();
  676. <!--{/if}-->
  677. </script>
  678. <!--{/block}-->
  679. <!--{eval return $return;}-->
  680. {eval
  681. }
  682. function tpl_spacecp_profile_bottom() {
  683. global $_G;
  684. }
  685. <!--{block return}-->
  686. <script type="text/javascript">
  687. function connect_handle_get_weibosign(response, ajax) {
  688. // 返回值形如: errCode=XX&result=XX
  689. if (typeof(response) == "string" && response.indexOf("&") > 0) {
  690. var errCode = response.substring(0, response.indexOf("&"));
  691. errCode = errCode.substring(errCode.indexOf("=") + 1);
  692. var result = response.substring(response.indexOf("&") + 1);
  693. result = result.substring(result.indexOf("=") + 1);
  694. response = {"errCode" : errCode, "result" : result};
  695. } else {
  696. return false;
  697. }
  698. if (response.errCode == '0') {
  699. seditor_insertunit('sightml', response.result);
  700. } else {
  701. // 请求失败
  702. showDialog('{lang qqconnect:connect_wbsign_no_account}');
  703. }
  704. }
  705. function connect_get_weibosign() {
  706. var sign_url = '{$_G['siteurl']}connect.php?mod=config&op=weibosign&hash={FORMHASH}&_r='+Math.random();
  707. var get_weibosign_ajax = Ajax("HTML", null);
  708. get_weibosign_ajax.get(sign_url, connect_handle_get_weibosign);
  709. }
  710. if($('sightmlsml')) {
  711. var a = document.createElement('a');
  712. a.href = 'javascript:void(0);';
  713. a.style.background = 'url(' + STATICURL + 'image/common/weibo.png) no-repeat 0 2px';
  714. a.onmouseover = function () { showTip(this); };
  715. a.onclick = connect_get_weibosign;
  716. a.setAttribute('tip', '{lang qqconnect:connect_wbsign_tip}');
  717. $('sightmlsml').parentNode.appendChild(a);
  718. }
  719. </script>
  720. <!--{/block}-->
  721. <!--{eval return $return;}-->
  722. {eval
  723. }
  724. }