phpbb3の投稿時の件名の文字数を増やしたい。


タイトルの通りですが、件名に文字数制限が掛かっているのを修正したいのですが、どこを変更したらよいでしょうか?
見落としかもしれませんが管理画面にそのような項目はなかったと思うので、設定ファイルを直接書き換えないといけないような気がしますが…

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/12/12 23:31:52

ベストアンサー

id:fiwa No.1

回答回数1200ベストアンサー獲得回数253

本家のフォーラムを見たところ、AdminCPの設定からは変更できないようで、コードを書き換える必要がありそうです。
こちらのトピックに従って変更を加えると、タイトルの文字数制限を増やすことができると思います。
phpBB •View topic - How to increase topic title length in 3.0.9[SOLVED]

タイトル文字数は標準では60文字(返信は64文字)までに制限されていると思いますが、例えばこれを100文字まで増やす手順は次のようになるようです。

includes/functions_posting.php

   $subject = truncate_string($subject);
   $data['topic_title'] = truncate_string($data['topic_title']);

の部分を

   $subject = truncate_string($subject, 255);
   $data['topic_title'] = truncate_string($data['topic_title'], 255);

に変更

includes/functions_content.php

function truncate_string($string, $max_length = 60, $max_store_length = 255, $allow_reply = true, $append = '') 

の部分を

function truncate_string($string, $max_length = 100, $max_store_length = 255, $allow_reply = true, $append = '') 

に変更

テンプレートの編集(スタイルが prosilver の場合)
styles/prosilver/template/posting_editor.html

<dd><input type="text" name="subject" id="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}{DRAFT_SUBJECT}" class="inputbox autowidth" /></dd>  

の部分を

<dd><input type="text" name="subject" id="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->100<!-- ELSE -->104<!-- ENDIF -->" tabindex="2" value="{SUBJECT}{DRAFT_SUBJECT}" class="inputbox autowidth" /></dd>  

に変更

あとは quickreply_editor.html, mcp_topic.html の maxlength="64" の部分を "maxlength="104" に書き換えます。

以上の作業を行った後、AdminCPにログインしてキャッシュの消去を行います。

フォーラムの様子だと少なくともVer. 3.0.9 以降ではこれで変更できているようですが、より前のバージョンの場合はひょっとしたらクエリを実行してデータベースのテーブルに変更を加える必要があるかも知れません。
Increase Subject Length (phpBB 3) | phpBB Smith

以上、フォーラム等にあった情報を参考にした回答です。
変更を加えた上で安定運用を確認しているわけではないので念のため。

id:master-3rd

すごく詳しい回答ありがとうございます。
無事修正出来ました!!

2013/12/12 23:31:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません