Dear all:
因為更新到1.1 RC2,因此發現原文的方法必須稍微修正,首先是
1. subs.php請找到 1784~1786行
1784 $data = strtr($data, array(''' => '\'', ' ' => "\xA0", '"' => '>">', '"' => '<"<', '<' => '<lt<'));
1785 $data = preg_replace(array('~(?<=[\s>\.(;\'"]|^)((?:http|https|ftp|ftps)://[\w\-_%@:|]+(?:\.[\w\-_%]+)*(?::\d+) :cheesy:?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-
_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i', '~(?<=[\s>(\'<]|^)(www(?:\.[\w\-_]+)+(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%
\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i'), array('[url]$1[/url]', '[url=http://$1]$1[/url]'), $data);
1786 $data = strtr($data, array('\'' => ''', "\xA0" => ' ', '>">' => '"', '<"<' => '"', '<lt<' => '<'));
將1784和1786 註解掉 得到如下:
1784 //$data = strtr($data, array(''' => '\'', ' ' => "\xA0", '"' => '>">', '"' => '<"<', '<' => '<lt<'));
1785 $data = preg_replace(array('~(?<=[\s>\.(;\'"]|^)((?:http|https|ftp|ftps)://[\w\-_%@:|]+(?:\.[\w\-_%]+)*(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-
_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i', '~(?<=[\s>(\'<]|^)(www(?:\.[\w\-_]+)+(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%
\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i'), array('[url]$1[/url]', '[url=http://$1]$1[/url]'), $data);
1786 //$data = strtr($data, array('\'' => ''', "\xA0" => ' ', '>">' => '"', '<"<' => '"', '<lt<' => '<'));
另外找到 1819~1824
1819 $data = strtr($data, array($breaker => '< >', ' ' => "\xA0"));
1820 $data = preg_replace(
1821 '/(?<=[>;:!? \xA0\]()]|^)([\w\.]{' . $modSettings['fixLongWords'] . ',})/e',
1822 "preg_replace('/(.{" . ($modSettings['fixLongWords'] - 1) . "})/', '\\\$1< >', '\$1')",
1823 $data);
1824 $data = strtr($data, array('< >' => $breaker, "\xA0" => ' '));
將1819和1824註解掉,1821加上修飾字/u
1819 //$data = strtr($data, array($breaker => '< >', ' ' => "\xA0"));
1820 $data = preg_replace(
1821 '/(?<=[>;:!? \xA0\]()]|^)([\w\.]{' . $modSettings['fixLongWords'] . ',})/ue',
1822 "preg_replace('/(.{" . ($modSettings['fixLongWords'] - 1) . "})/', '\\\$1< >', '\$1')",
1823 $data);
1824 //$data = strtr($data, array('< >' => $breaker, "\xA0" => ' '));
不過這樣還是不行,因為後來發現預覽的時候是OK的,但是發出去還是亂了,因此後來發現是Subs-Post.php搞的鬼
請找到Subs-Post.php的261~264行
261 if (!$previewing)
262 $message = strtr(implode('', $parts), array(' ' => ' ', "\n" => '<br />', "\xA0" => ' '));
263 else
264 $message = strtr(implode('', $parts), array(' ' => ' ', "\xA0" => ' '));
改為
261 if (!$previewing)
262 $message = strtr(implode('', $parts), array(' ' => ' ', "\n" => '<br />'));
263 else
264 $message = strtr(implode('', $parts), array(' ' => ' '));
這樣就大功告成了。
檔案下載:
修正檔下載解壓縮後,直接覆蓋 sources 資料夾就OK了。
注意,我沒改search.php 喔,所以如果搜尋有問題的話,還是先參考eyesofkids 的文章改吧。resnick