作者 主題: 空白的討論文章  (閱讀 10624 次)

0 會員 與 1 訪客 正在閱讀本文。

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 於: 2002-09-14 01:17 »
目前這個Phorum系統的主題是60個字元的長度,
就是30個中文字,
所以有些人的主題過長,
就會變成空白的內容,
希望各位同學注意!

或是考慮把欄位加大...

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
空白的討論文章
« 回覆 #1 於: 2002-09-14 02:08 »
不是把欄位加大吧!
用 PHP 的這個函數
substr 把他切一下
例如:
$subject = substr($subject,0,57);
$subject = $subject."...";
設定為 57 個字元, 後面在加入 ...

這樣會不會比較理想

在 newtopic 與 reply 和 edit 等檔案寫入資料庫前做處理
這樣就會像小弟網站右手邊的討論區的區塊, 超過的部分就給他切掉吧, 哪有人主題給他取那麼長
--
TyroneYeh

小穎

  • 俺是博士!
  • *****
  • 文章數: 1005
    • 檢視個人資料
空白的討論文章
« 回覆 #2 於: 2002-09-14 02:15 »
引述: "TyroneYeh"
不是把欄位加大吧!
用 PHP 的這個函數
substr 把他切一下
例如:
$subject = substr($subject,0,57);
$subject = $subject."...";
設定為 57 個字元, 後面在加入 ...

這樣會不會比較理想


這樣的話,如果切到的那個字是佔兩個字元的中文字,會變亂碼嗎?

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
空白的討論文章
« 回覆 #3 於: 2002-09-14 02:34 »
引述: "小穎"

這樣的話,如果切到的那個字是佔兩個字元的中文字,會變亂碼嗎?

那也是沒辦法的事囉~ 就變成 ? 號 吧!
--
TyroneYeh

逸晨

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1205
  • 我是逸晨
    • 檢視個人資料
空白的討論文章
« 回覆 #4 於: 2002-09-14 07:03 »
可利用判斷字元的碼值是多少來決定要取多少個字元顯示。

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #5 於: 2002-09-14 21:22 »
引述: "TyroneYeh"
引述: "小穎"

這樣的話,如果切到的那個字是佔兩個字元的中文字,會變亂碼嗎?

那也是沒辦法的事囉~ 就變成 ? 號 吧!


好像是,
不過這是個好辦法,
就算用再長,
還是有人可能會超過...

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #6 於: 2002-09-20 00:40 »
有人知道要改那兒嗎?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
空白的討論文章
« 回覆 #7 於: 2002-09-20 00:53 »
這個我在 vlab 也看到,但我還是不知道如何修改。

http://www.vlab.com.tw/vlabforums/viewtopic.php?t=649

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
空白的討論文章
« 回覆 #8 於: 2002-09-20 02:02 »
是要切掉嗎?
那就試試在 includes/functions_post.php 中的 250 行 與 276 行後面加一行
代碼: [選擇]
$post_subject = substr($post_subject,0,56); $post_subject = $post_subject."...";

250 行左右如下:
代碼: [選擇]

$topic_vote = ( !empty($poll_title) && count($poll_options) >= 2 ) ? 1 : 0;

[color=red]$post_subject = substr($post_subject,0,56); $post_subject = $post_subject."...";[/color]

$sql  = ( $mode != "editpost" ) ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type, topic_vote = $topic_vote WHERE topic_id = $topic_id";


250 行左右如下:
代碼: [選擇]

}

[color=red]$post_subject = substr($post_subject,0,56); $post_subject = $post_subject."...";[/color]

$sql = ( $mode != 'editpost' ) ? "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message',  bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id";


另外, 小弟試著修改過的測試網址 http://phpbb2.siryeh.com
只設定 10 字元的主題而已, 可以先試試看唷
上面所述設定是在 56 個字元, 符合 資料庫原有的 60 個字元
--
TyroneYeh

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
空白的討論文章
« 回覆 #9 於: 2002-09-20 02:09 »
剛剛發現不管是超不超過都加入了 "..."
所以判斷一下將
代碼: [選擇]

$post_subject = substr($post_subject,0,56); $post_subject = $post_subject."...";

改成
代碼: [選擇]

if (strlen($post_subject) > 56 ) {$post_subject = substr($post_subject,0,56);  $post_subject = $post_subject."..."; }
--
TyroneYeh

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #10 於: 2002-09-20 13:04 »
剛試了一下,
假如剛好截掉中文,
就會變成?..

等一下有空來修改一下學園的網站!

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #11 於: 2002-09-20 14:55 »
改好了!
目前測試正常...

再次感謝小葉!!!

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
空白的討論文章
« 回覆 #12 於: 2002-09-20 14:57 »
感謝感謝!

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #13 於: 2002-09-20 15:03 »
我發現...

只有中文字才可以超打輸入,
用英文或數字,
到第60個就停了,
難怪老外沒遇到問題...

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
空白的討論文章
« 回覆 #14 於: 2002-09-20 15:04 »
啊!

本篇應該可以收到精華區吧!

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
空白的討論文章
« 回覆 #15 於: 2002-09-20 21:12 »
阿~ 剛剛發現可以簡短一點點, 都怪我沒學好, 像下面這樣
代碼: [選擇]
if (strlen($post_subject) > 56 ) {$post_subject = substr($post_subject,0,56);  $post_subject .= "..."; }
--
TyroneYeh