因為 Yahoo!公司開放使用者以 kimo.com 或 ymail.com 等的結尾註冊帳號,
所以在(台灣)使用奇摩即時通時,除了結尾是「yahoo.com.tw」之外,都必須輸入完整的電子郵件位址,(例如「abc@kimo.com」、「xxx@ymail.com」、「ooo@yahoo.com」等)才得以交談。
但是,phpBB 3 在呼叫 Yahoo!奇摩即時通時,會出現對方帳號錯誤。(參考主題)
因此,本文旨在修改 Yahoo!奇摩即時通顯示的方式,以避免錯誤發生。
方法:
--開啟--
viewtopic.php
--找到--
代碼: 選擇全部
'yim' => ($row['user_yim']) ? 'http://edit.yahoo.com/config/send_webmesg?.target=' . urlencode($row['user_yim']) . '&.src=pg' : '',
代碼: 選擇全部
'yim' => $row['user_yim'],
styles/prosilver/template/memberlist_view.html
--找到--
代碼: 選擇全部
<!-- IF U_YIM or USER_YIM --><dt>{L_YIM}:</dt> <dd><!-- IF U_YIM --><a href="{U_YIM}" onclick="popup(this.href, 780, 550); return false;">{L_SEND_YIM_MESSAGE}</a><!-- ELSE -->{USER_YIM}<!-- ENDIF --></dd><!-- ENDIF -->
代碼: 選擇全部
<!-- IF U_YIM or USER_YIM --><dt>{L_YIM}:</dt> <dd>{USER_YIM} [<a href="http://webmessenger.yahoo.com/" onclick="window.open(this.href);return false;">雅虎即時通</a>]</dd><!-- ENDIF -->
styles/prosilver/template/viewtopic_body.html
--找到--
代碼: 選擇全部
<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
代碼: 選擇全部
<!-- IF postrow.U_YIM --><dd><strong>[<a href="http://webmessenger.yahoo.com/" onclick="window.open(this.href);return false;">雅虎即時通</a>]:</strong> {postrow.U_YIM}</dd><!-- ENDIF -->
代碼: 選擇全部
<!-- IF postrow.U_YIM --><li class="yahoo-icon"><a href="{postrow.U_YIM}" onclick="popup(this.href, 780, 550); return false;" title="{L_YIM}"><span>{L_YIM}</span></a></li><!-- ENDIF -->
(留白;刪除整行)
--儲存與關閉--
清除論壇快取。
展示:
- 會員列表:檢視個人資料
- 瀏覽文章:發文作者資料
這個 Yahoo!網頁版即時通的語法由來已久。
如今會導致錯誤發生,主要是因為部份網友的 Yahoo!奇摩即時通帳號,必須包含「@」以及其之後的結尾。而這個「@」特殊符號顯示於網址列中,其編碼會破壞帳號的完整性。
我有些納悶:為何官方的支援這麼少?
是因為他們的即時通帳號,都還是使用「@」之前的 ID 而已嗎?
要不然,就是「很少人使用 phpBB 3 + Yahoo! Messeger」?...
因為才疏學淺,所以只有改變 Yahoo !奇摩即時通顯示的方式而已。
也就是說,我移除了原本直接呼叫網頁版即時通,並填入對方帳號的功能;
改以純文字方式顯現,並增加了一個「雅虎即時通」的連結。
如果您有其他寶貴的意見,那麼歡迎您不吝賜教。
參考連結: