Image
剛又花了點時間修改一下發文時的UBB代碼,讓圖片連結支援Lightbox
點擊上方的縮圖就可以看到載入另一張大圖的效果,應該還蠻不錯的吧(笑

事實上這個插件很早就在PJBlog官網的論壇發佈過了,不過在下作法略有不同,主要是因為當上傳的圖片過大的時候,會強制用js將圖片縮小,但如果當一個頁面同時存在2張以上大圖時,會導致某些圖片縮小不完全…而且為了讓網頁開啟的速度不要因為圖片檔案過大而變慢,正因如此在下往往會花點功夫,遇到要上傳大型圖片的時候,會上傳2種Size,然後再利用超連結的形式作區隔,這樣一來就會比較漂亮一點了。

原本的方法是在ubbcode.asp約34行的地方修改成以下的模式:

strContent=replace(strContent,strMatch.Value,”
<a href=”””&tmpStr1&””” rel=””lightbox[roadtrip]”” title=””””>
<img src=”””&tmpStr1&””” border=””0″” alt=””””/></a>”,1,-1,0)

如此一來所有的圖片都會有Lightbox的效果,包含很小的圖,有點おかしい…基於美觀,在下的方法是在ubbcode.asp約第142行建立連結圖片專用的代碼:

re.Pattern = “\[url2=(.[^\]]*)\](.[^\[]*)\[\/url2]”
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=checkURL(strMatch.SubMatches(0))
tmpStr2=strMatch.SubMatches(1)
strContent=replace(strContent,strMatch.Value,”
<a rel=””lightbox”” href=”””&tmpStr1&”””>”&tmpStr2&”</a>”
,1,-1,0)Next

往後只要遇到圖片的超連結時,只要將UBB代碼的連結url改成url2就完成了。要注意如果有使用「相關文章」插件的話,會造成JS scripts的衝突,然後在瀏覽單篇文章的時候Lightbox的特殊效果會無法顯示,解決方法很簡單,安裝「相關文章」插件之後,article.asp底部會多出以下的代碼…將第一行移到header.asp的<head>裡面,且放在與Lightbox相關的js上方,搞定!

<script type=”text/javascript” src=”ajaxJS.js”></script>
<script type=”text/javascript”>
getdata(‘wbc_getarticle.asp?id=<%=id%>’,’wbc_tag’,’wbc_tag’);</script>