コメント欄の投稿者表記について

2021年9月21日 at 18:04

現在会員制サイトを作成・運用しています。
今度コメント欄ブロックを用いて、ユーザー間での意見交換をしたいと思っているのですが、コメントを記載すると、自動でユーザーIDが入力されてしまいます。
自動入力せずに、任意のユーザー名を別途記入したりする項目を設けることはできないでしょうか。

運用している会員サイトのユーザーIDがランダムな英数字になっているため、誰が投稿したかすぐに把握できないためです。

コメント欄への投稿の際の記入ができないようであれば、本フォーラムのように、
 ・ユーザー属性に投稿名というものを作成
 ・こちらを各ユーザに好きな表示名で登録・修正してもらう
 ・それをコメント欄の投稿者として表示したい
と思うのですが、コメント欄設定のところには表示名に関する設定項目がなく、困っております。

まずこのような手段が可能かどうかもわからないため、助言をいただけますと助かります。
宜しくお願い致します。

使用中のconcrete5のバージョンは 8.5.4 です。

タグ:

Re: コメント欄の投稿者表記について

2021年9月22日 at 15:25
コメントの表示に使われるhtmlの書かれているファイルが
concrete/elements/conversation/message.php
なので、

htmlの出力を、(名前から変更して)ユーザー属性を表示するように指定してあげればよいと思います。
 

Re: コメント欄の投稿者表記について

2021年10月1日 at 19:36
こんにちは。補足します。

サイトの
名前を入れてもらうユーザー属性のハンドルを "onamae" と設定していたと仮定します。

concrete/elements/conversation/message.php

application/elements/conversation/message.php
にコピーして、カスタマイズします。



33行目あたりに

$authorInfo = $author->getUser();
$formatter = $author->getFormatter();

と書かれているところがあるので、
その後で以下をいれます。

$authorName = ($authorInfo->getAttribute('onamae')) ? $authorInfo->getAttribute('onamae') : $formatter->getDisplayName();

41行目あたりで

echo $formatter->getDisplayName();

という行が span タグの間にあるので、

echo $authorName;

と書き換えてみてください。

これで、ユーザーの名前が表示されます。