⊙ 插件名稱:Discuz X2 Facebook Connect
⊙ 主要功能:同時登入FB與DZ、自動以FB帳號註冊DZ新會員(新會員可自訂帳號與密碼)、自動以FB帳戶整合DZ舊會員(DZ使用的E-mail與FB註冊的E-mail相同就會自動綁定)
⊙ 插件版本:2.3
⊙ 插件語言:繁體中文、簡體中文
⊙ 適用版本:Discuz X2 (20110629) - BIG5、GBK、UTF8繁中、UTF8簡中
⊙ 插件開發:derek
⊙ 執行環境:建議使用 PHP 5.X (主機須開啟CURL以及allow_url_fopen支援)
⊙ 鄙視收費插件:抵制收費插件、本插件完全免費,各位就別再花錢了,用買的插件不一定好!
⊙ 安裝前請注意:覆蓋檔案前,應先備份原來的檔案,安裝完畢請至後台更新緩存。( 需被覆蓋的檔案若有自行修改過,請勿直接使用本站提供的檔案覆蓋,應自行比對修改。)
⊙ 最後更新時間:2011/7/27 13:20
⊙ 本次更新說明:修正BIG5版本無法使用問題,若非使BIG5版本者,可不需更新
⊙ 本次升級注意:請參閱壓縮檔內的安裝說明,上傳全部檔案覆蓋後,務必先卸載插件再重新安裝,設定完插件後再更新緩存。
關於在 Facebook 建立應用程式之相關教學於本帖底部。
forum.php
找- 'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum'),
複製代碼 替換成- 'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum', 'plugin'),
複製代碼 找- 'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum'),
複製代碼 換成- 'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum', 'plugin'),
複製代碼 找- 'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum'),
- 'redirect' => array('threadtableids', 'threadtable_info', 'posttable_info'),
複製代碼 替換成- 'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum', 'plugin'),
- 'redirect' => array('threadtableids', 'threadtable_info', 'posttable_info', 'plugin'),
複製代碼 找到- 'domainwhitelist'),
- 'space' => array('fields_required', 'fields_optional', 'custominfo'),
- 'group' => array('grouptype', 'diytemplatenamegroup'),
複製代碼 換成
- 'domainwhitelist', 'plugin'),
- 'space' => array('fields_required', 'fields_optional', 'custominfo', 'plugin'),
- 'group' => array('grouptype', 'diytemplatenamegroup', 'plugin'),
複製代碼 group.php
找
- $cachelist = array('grouptype', 'groupindex', 'diytemplatenamegroup');
複製代碼 換成- $cachelist = array('grouptype', 'groupindex', 'diytemplatenamegroup', 'plugin');
複製代碼 home.php
找
- $cachelist = array('magic','userapp','usergroups', 'diytemplatenamehome');
複製代碼 換成
- $cachelist = array('magic','userapp','usergroups', 'diytemplatenamehome', 'plugin');
複製代碼 misc.php
找- 'ranklist' => array('forums', 'diytemplatename'),
複製代碼 換成- 'ranklist' => array('forums', 'diytemplatename', 'plugin'),
複製代碼 portal.php
找
- $cachelist = array('userapp', 'portalcategory', 'diytemplatenameportal');
複製代碼 換成
- $cachelist = array('userapp', 'portalcategory', 'diytemplatenameportal', 'plugin');
複製代碼 ./source/class 下的文件
class_core.php
找
- $_G['PHP_SELF'] = htmlspecialchars($this->_get_script_url());
複製代碼 換成
- $_G['PHP_SELF'] = htmlspecialchars($_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['PHP_SELF']);
複製代碼 找
- $this->var['config']['cookie']['cookiepre'] = $this->var['config']['cookie']['cookiepre'].substr(md5($this->var['config']['cookie']['cookiepath'].'|'.$this->var['config']['cookie']['cookiedomain']), 0, 4).'_';
複製代碼 下面加上
- $this->var['authkey'] = md5($_config['security']['authkey'].$_SERVER['HTTP_USER_AGENT']);
複製代碼 找
- } elseif((!defined('ALLOWGUEST') || !ALLOWGUEST) && !in_array(CURSCRIPT, array('member', 'api')) && !$this->var['inajax']) {
複製代碼 換成
- } elseif((!defined('ALLOWGUEST') || !ALLOWGUEST) && !in_array(CURSCRIPT, array('member', 'api')) && !$this->var['inajax'] && !$_GET['act']) {
複製代碼 class_member.php
找下面加上
- loadcache(array('plugin'));
複製代碼 找
- loadcache(array('modreasons', 'stamptypeid', 'fields_required', 'fields_optional', 'fields_register', 'ipctrl'));
複製代碼 替換成- loadcache(array('modreasons', 'stamptypeid', 'fields_required', 'fields_optional', 'fields_register', 'ipctrl', 'plugin'));
複製代碼 ./source/function/ 下的文件
function_delete.php
找
- DB::query("DELETE FROM ".DB::table('common_mailcron').", ".DB::table('common_mailqueue')." USING ".DB::table('common_mailcron').", ".DB::table('common_mailqueue')." WHERE ".DB::table('common_mailcron').".touid IN ($uids) AND ".DB::table('common_mailcron').".cid=".DB::table('common_mailqueue').".cid", 'UNBUFFERED');
複製代碼 下面加上
- DB::query("DELETE FROM ".DB::table('facebook_connect')." WHERE uid IN ($uids)", 'UNBUFFERED');
複製代碼 function_space.php
找換成- global $_G, $space, $sfb, $isfriend;
複製代碼 找
- $html .= "<li class='ul_pm'><a href=\"home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_$space[uid]&touid=$space[uid]&pmid=0&daterange=2\" id=\"a_sendpm_$space[uid]\" onclick=\"showWindow('showMsgBox', this.href, 'get', 0)\">".lang('space', 'block_profile_sendmessage')."</a></li>";
複製代碼 下面加上- if(($sfb[fbid] && $_G['adminid'] > 0) || ($sfb[fbid] && $sfb[showfblink] == 0) || ($sfb[fbid] && $sfb[showfblink] == 1 && $isfriend)) {
- $html .= "<li><a href=\"http://www.facebook.com/profile.php?id=$sfb[fbid]\" target=\"_blank\" style=\"background-image:url(static/image/facebook_icon.png);\">".lang('space', 'facebook_profile')."</a></li>";
- $html .= "<li><a href=\"http://www.facebook.com/addfriend.php?id=$sfb[fbid]\" target=\"_blank\" style=\"background-image:url(static/image/facebook_icon.png);\">".lang('space', 'add_facebook_friend')."</a></li>";
- }
複製代碼 ./source/language/ 下面文件
lang_message.php
找- 'post_hide_nopermission' => '抱歉,您沒有權限使用 [hide] 代碼',
複製代碼 下面加上- 'post_like_nopermission' => '對不起,你沒有權限使用 [like] 代碼,請返回修改。',
- 'post_like_dontinreply' => '對不起,回帖不可使用 [like] 代碼,請返回修改。',
- 'facebook_not_yet_like' => '您還未點讚,請返回。',
- 'facebook_not_yet_comm' => '您還未於本帖的Facebook留言版上留言 (請使用FB帳戶進行留言),請返回。',
複製代碼 lang_space.php
找- 'facebook_profile' => '看FB檔案',
- 'add_facebook_friend' => '加FB好友',
複製代碼 ./source/language/forum/ 下的文件
lang_template.php
找- 'post_hide_reply_hidden' => ',如果您要查看本帖隱藏內容請<a href="forum.php?mod=post&action=reply&fid=$_G[fid]&tid=$_G[tid]" onclick="showWindow(\'reply\', this.href)">回復</a>',
複製代碼 換成- 'post_hide_reply_hidden' => ',如果您要查看本帖隱藏內容請<a href="forum.php?mod=post&action=reply&fid=$_G[fid]&tid=$_G[tid]" onclick="showWindow(\'reply\', this.href)">回覆</a>',
- 'post_hide_reply_like_hidden' => ',如果你要查看本帖隱藏內容請 <a href="forum.php?mod=post&action=reply&fid=$_G[fid]&tid=$_G[tid]" onclick="showWindow(\'reply\', this.href)">回覆</a> 或 <b>點讚</b>:',
- 'post_hide_like_hidden' => ',如果你要查看本帖隱藏內容請<b>點讚</b>:',
- 'first_login' => '請先登入會員:',
- 'facebook_profile' => '查看FB檔案',
- 'add_facebook_friend' => '加入FB好友',
- 'facebook_send' => '傳送',
- 'facebook_invite_friend_add' => '邀請朋友加入',
- 'facebook_invite_friend_addmsg' => '我在 [ {$_G[setting][bbname]} ] 加入會員了!誠摯邀請您一同加入!',
- 'facebook_already_like' => '[ 若您已點過讚,請點此重新檢查 ]',
- 'facebook_already_comm' => '[ 已在FB版留言?請點此重新檢查 ]',
- 'facebook_already_like_t' => '因為您目前並無登入本論壇,所以必須手動檢查您是否已點過讚。',
- 'facebook_already_comm_t' => '因為您目前並無登入本論壇,所以必須手動檢查您是否已在本帖的Facebook留言版上留言 (請使用FB帳戶進行留言)。',
複製代碼 找- 'facebook_profile' => '看FB檔案',
- 'add_facebook_friend' => '加FB好友',
複製代碼 ./source/module/forum/ 下的文件
forum_viewthread.php
找- LEFT JOIN ".DB::table('facebook_connect')." fc USING(uid)
複製代碼 找- require_once libfile('function/friend');
複製代碼 找- $postlist[$pid] = viewthread_procpost($post, $_G['member']['lastvisit'], $ordertype);
複製代碼 下面加上- if($postlist[$pid]['first'] == 1) {
- $getmsgi = $postlist[$pid]['message'];
- }
- }
- preg_match_all('/<img.+file=[\'"]([^\'"]+)[\'"].*>/i', $getmsgi, $iattrsA);
- preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $getmsgi, $iattrsB);
- if($iattrsA[1][0]) {
- $iattrs = $_G[siteurl].$iattrsA[1][0];
- } elseif($iattrsB[1][0]) {
- if(stristr($iattrsB[1][0], "http://")) {
- $iattrs = $iattrsB[1][0];
- } else {
- $iattrs = $_G[siteurl].$iattrsB[1][0];
- }
- } else {
- $iattrs = $_G['cache']['plugin']['facebook_connect']['dfimg'];
複製代碼 ./source/module/home/ 下的文件
home_space.php
找- <meta http-equiv="MSThemeCompatible" content="Yes" />
複製代碼 下面加上- <!--{if $_G[tid]}-->
- <meta property="og:type" content="discuz:thread"/>
- <meta property="og:site_name" content="$_G['setting']['bbname']"/>
- <!--{if in_array('forum_viewthread', $_G['setting']['rewritestatus'])}-->
- <meta property="og:url" content="$_G[siteurl]thread-{$_G[tid]}-1-1.html"/>
- <!--{else}-->
- <meta property="og:url" content="$_G[siteurl]forum.php?mod=viewthread&tid=$_G[tid]"/>
- <!--{/if}-->
- <meta property="og:title" content="$_G[forum_thread][subject] - $_G['setting']['bbname']"/>
- <meta property="og:description" content="{if !empty($metadescription)}{echo htmlspecialchars($metadescription)}{/if}"/>
- <!--{if $iattrs}-->
- <meta property="og:image" content="$iattrs"/>
- <!--{/if}-->
- <meta property="fb:app_id" content="$_G['cache']['plugin']['facebook_connect']['appid']"/>
- <!--{/if}-->
複製代碼 ./template/default/common/ 下的文件
footer.htm
找- <!--{eval userappprompt();}-->
- <!--{if $_G['basescript'] != 'userapp'}-->
- <span id="scrolltop" onclick="window.scrollTo('0','0')">{lang scrolltop}</span>
- <script type="text/javascript">_attachEvent(window, 'scroll', function(){showTopLink();});</script>
- <!--{/if}-->
複製代碼 下面加上[code]<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({appId:'$_G['cache']['plugin']['facebook_connect']['appid']', status:true, cookie:true, xfbml:true, channelUrl:'{$_G[siteurl]}channel.html'});
<!--{if $_G[tid]}-->
<!--{if $_G['like'] == 'no'}-->
FB.Event.subscribe('edge.create', function() {
location.replace('forum.php?mod=viewthread&tid={$_G[tid]}&page={$_G |