Post view

insoler討論區終於可以修改一篇話題的「標題」

不同的網站管理方式,不同的討論區程式系統、可能會有幾種不同的限制與規則。例如:

1. 有的討論區網站會設定,在發表一篇議題以後的一段時間,例如30分鐘以後,就禁止修改、刪除討論的標題、討論內容。

2. 有的討論區網站會設定,在發表一篇議題以後,就禁止刪除討論內容,但是可以修改討論的標題、討論內容。

3. 有的討論區網站會設定,在發表一篇議題以後,無論經過多少年,發表討論的人隨時都可以任意編輯修改、刪除討論的標題、討論內容。

你可能還會看到第4種、第5種...各式各樣的討論區。insoler其實是「自由的討論區」,只要沒有違法,我沒有任何的限制。會員可以隨時任意編輯修改、刪除討論的標題、討論內容。

但是,由於海豚系統的「討論區」程式系統本身就沒有「發表一篇議題以後,重新修改標題」的功能,所以如果標題裡面打錯字、覺的標題用詞不妥,一但發表討論話題以後,就算打錯字,都無法修改標題內容!其實一個討論區系統,竟然缺少「編輯標題功能」這是非常糟糕的事情。

由於insoler網站上也沒多少會員,常常都是只有2-3隻貓在網站上,所以就算缺少「編輯標題功能」的重要功能,卻沒有影響多少人。唯一受到影響的只有某阿光。不小心打錯標題的時候,只好找我從MySQL資料庫裡面,直接修改資料表的內容。

由於海豚系統的基本功能預設是「從標題轉換成網址」,所以修改標題以後,會變成標題與網址不同的問題。但是因為我已經把整個insoler網站的網址都改成「PHP時間數字」,所以就算修改標題內容,也不需要修改網址了。

但是,我認為不能一直就這樣下去,所以花了很多時間研究海豚的「Orca Interactive Forum」討論區系統,在地下的社群網站進行各種修改、測試、」實驗。終於完成了其他討論區都可以辦到的「編輯標題」的基本功能!

以這篇新聞來說,當時發表的標題是「MySQL Community Server 5.6.37 (2017-07-17) 版本更新」。以前如果會員自己想要修改標題,或是修正錯字,是絕對不可能的任務!這是因為海豚系統的討論區本身就沒有這種設計,並不是因為我禁止會員修改標題!

有趣的是,事實上只有從「Orca Interactive Forum」討論區整合到海豚系統,才有「無法修改標題」的問題,部落格的文章沒有這種問題,在部落格發表的文章,隨時都可以任意修改文章的標題、內容,沒有任何的限制。當然,相簿的「標題」也沒有無法修改「相簿名稱」的問題。簡單的說,唯一只有討論區有「無法修改標題」的問題,

現在你就算是在發表話題以後,想要「修改標題」只要按一下「編輯」:

就會看到與發表一篇全新的話題相同的編輯畫面。你可以任意修改文章的標題,或是修改文章的內容。laughing

修改標題、內容完畢以後,把網頁捲到底下按下「送出」按鈕就行了。

你可以看到標題已經被我改成新的「MySQL Community Server 5.6.37版本更新,insoler也升級資料庫到最新版本」。因為標題內容與網址無關,所以可以無限次編輯!如果會員認為不妥,想要重新編輯話題的標題、內容,可以無限次、無限時間,隨時都可以修改、編輯。

但是,「編輯、修改標題」的功能,只限於發表文章的第一篇,如果後面有幾個討論,就算按下後面討論話題的「編輯」按鈕:

當然也只會看到與以前完全相同的,話題內容的編輯畫面。你不能在這裡修改話題的標題。想要修改標題,必須修改第一篇文章。這其實是非常合理的事情。因為後面的討論,全部都是依據第一篇文章,後面的討論話題內容,其實並沒有「標題」,當然就無法修改文章標題。

所以在後面發表的討論,只能修改討論的內容。雖然不能修改文章標題,也不能修改其他會員發表的話題內容,這其實是非常合理的討論區的使用方式。

剛開始從BNW架設一個全新的insoler網站時,其實我完全看不懂海豚系統的PHP程式碼內容,但是經過多年以後,現在已經漸漸大致上都可以理解。即使insoler網站只有2-3隻貓,但我還是努力的完成了以下這些功能。

新增海豚系統原本沒有的功能

到現在為止,我已經幫海豚系統新增了許多原廠沒有的功能,包括:

1. insoler「雲端相簿」支援直接上傳「RAW照片」檔案,並自動轉成JPEG顯示在相簿裡面

這是第一個,世界初、支援RAW可與寫真愛好者交流「RAW相片」的交友社群網站。所有會員都可以直接上傳RAW照片檔案,網站系統會自動把RAW轉換成JPEG,顯示在會員的相簿裡面。insoler的「雲端相簿」並沒有限制與計算相簿容量功能,所以目前是「無限制容量」。雖然如此,目前也只有某阿光與某中國會員常常使用「insoler雲端相簿」功能。

2. 顯示相片的EXIF資訊與GPS地圖資訊,而且支援多國語系

Dolphin原版只能顯示照片而已,無法顯示EXIF資訊與GPS地圖。

3. 上傳照片使用「非同步」後置處理,上傳照片的時候可以用最高的網路上傳速度,把照片上傳到insoler網站

當然,照片的上傳速度要依據你使用的網路速度為主。雖然我們現在有100M/100M的雙向光纖網路,但因為很少有會員上傳照片,因此實際上能體驗「高速上傳」的人,大概只有某阿光了。

4. 網站完全支援多國語系,包括TinyMCE的編輯器

我個人無法完成多國語系翻譯,所以其實是我自己寫一個翻譯程式,透過微軟翻譯API來翻譯多國語系,目前支援的語系有繁體中文、簡體中文、日本語、英語、俄語、韓語、法語、德語、西班牙語、義大利語、葡萄牙語。

5. 相片、部落格的「評論」功能,可以支援雙向通知功能

原版的海豚系統只有「單向通知」功能,也就是某人(B)在發表意見時單向通知原作者(A),當原作者(A)回覆評論的時候,發表評論的某人(B)卻不會收到任何通知。

6. 在網站首頁新增「討論區最新話題」區塊

原版的海豚系統只能透過RSS Feed在網站首頁顯示「討論區最新話題」區塊。表面上好像可以使用,但其實透過RSS Feed功能的話,瀏覽器會另外呼叫RSS通訊協定,從網站伺服器主機重新送出RSS Feed內容!導致顯示速度更慢,而且還會增加網站伺服器主機與MySQL資料庫主機的負擔。

所以我花了很多時間研究,終於在forum新增了原版沒有的「討論區最新話題」區塊。原版的海豚系統可以在網站首頁顯示「部落格最新日誌」區塊,卻沒有「討論區最新話題」區塊,其實是很奇怪的事情。

7. 支援「更新語系」功能

原本的海豚系統只能匯入新的語系。如果有修改目前語系的內容,例如繁體中文、簡體中文、日本語... 等,必須先刪除語系,才能以匯入新的語系的方式,來匯入修改過的內容。

表面上這似乎沒有什麼太大的問題,但是一但刪除某個語系,比如刪除「繁體中文」就會導致正在用「繁體中文」瀏覽網頁的人,會看到網頁出現亂碼!而且無法刪除系統預設的語系!(預設是英語)如果要刪除系統預設的語系,就必須先把英語改成「繁體中文」,才能刪除英語,再重新匯入修改好的英語!

當然,從資料庫刪除一筆資料,再重新新增一筆資料的話,還會造成資料的ID筆數號碼不斷增加!雖然這不會有太大的問題,但卻很難從對應的ID直接判斷語系。

所以不管是什麼情況,只能「匯入新的語系」是一個非常差,而且是過於簡陋,有點偷工減料的設計!所以我在海豚系統裡面新增了「更新語系」的功能,只要有修改過繁體中文、簡體中文、日本語... 等語系內容,就只要重新匯入一次即可更新完畢。

8. insoler討論區終於可以修改一篇話題的「標題」

由於海豚系統的「討論區」程式系統本身就沒有「發表一篇議題以後,重新修改標題」的功能,所以如果標題裡面打錯字、覺的標題用詞不妥,一但發表討論話題以後,就算打錯字,都無法修改標題內容!其實一個討論區系統,竟然缺少「編輯標題功能」這是非常糟糕的事情。

以前如果會員自己想要修改標題,或是修正錯字,是絕對不可能的任務!這是因為海豚系統的討論區本身就沒有這種設計,並不是因為我禁止會員修改標題!

現在終於可以任意修改文章的標題,或是修改文章的內容。

9. 將MySQL資料庫從3位元編碼的utf8轉換成4位元編碼的utf8mb4

原本海豚系統使用的編碼系統是許多網站常用的utf8_general_ci、utf8_unicode_ci或是utf8_bin。這幾種都是1〜3位元編碼的Unicode多國語系系統。事實上Unicode是一個1〜4位元的多國語系系統,目前最新的版本是2017年6月20日發表的Unicode 10.0.0。由於有一些漢字(屬於極少使用的漢字與異體字)與許多的表情符號,都必須使用4位元編碼的Unicode,所以我把整個資料庫編碼改成最新4位元編碼的utf8mb4_bin或是utf8mb4_general_ci。

這樣就可以在文章裡面直接輸入Unicode 10.0.0支援的表情符號,例如笑臉的「?」、電腦的「?」、滑鼠的「?️」、貓的「?」、狗的「?」,或是漢堡的「?」等等。

蘇言霖 10/19/2017 0 249
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
10/19/2017 (400 days ago)
Actions