コメントのメールとかサイトとか(Nucleus CMS)
Nucleus(v3.41)
コメント投稿者のメールアドレスやWEBサイトURLの表示ですが、
テンプレート変数の<%userid%>や<%userlink%>は、メールアドレス・WEBサイトURLのいずれか(あるいは両方)があれば、(WEBサイトURLを優先して)<a href="~">link</a>とリンクの形式で出力するというテンプレート変数です。
かつては便利だったのでしょうが、v3.41現在はメールアドレスとWEBサイトを別途入力できるようになっている為、あまり使い勝手がよくない(それぞれ任意で入力できる為)。
そこで、<%useremail%>か<%email%>、<%userwebsite%>を使おうかな・・・となるわけですが、
テンプレート編集で<a href ="mailto:<%useremail%>">とした場合に、メールアドレスが無ければ空のリンクが表示されたりとガッカリなので、コアハックにて妥当な処理をしてみます。
nucleus/libs/COMMENTACTIONS.php
function parse_email()198行目~にて、
を
に変更(このテンプレート変数は使ってる人いないかも?でも一応)。
function parse_useremail()339行目~にて、
を
に変更。
を
に変更。
function parse_userwebsite()388行目~にて、
を
に変更。
以上です。
ただし、ゲスト以外。
管理者(貴方)や、その他メンバーのメールアドレスを表示したくない。
管理者(貴方)や、その他メンバーのWEBサイトURLを表示したい。
なんて事もあると思います。その場合。
function parse_useremail()にて、
をコメントアウト。
function parse_userwebsite()を
に書き換えるなどでいいんではないでしょうか。
コメントにてケース毎にテストしていますので参考に。。。
コメント投稿者のメールアドレスやWEBサイトURLの表示ですが、
テンプレート変数の<%userid%>や<%userlink%>は、メールアドレス・WEBサイトURLのいずれか(あるいは両方)があれば、(WEBサイトURLを優先して)<a href="~">link</a>とリンクの形式で出力するというテンプレート変数です。
かつては便利だったのでしょうが、v3.41現在はメールアドレスとWEBサイトを別途入力できるようになっている為、あまり使い勝手がよくない(それぞれ任意で入力できる為)。
そこで、<%useremail%>か<%email%>、<%userwebsite%>を使おうかな・・・となるわけですが、
テンプレート編集で<a href ="mailto:<%useremail%>">とした場合に、メールアドレスが無ければ空のリンクが表示されたりとガッカリなので、コアハックにて妥当な処理をしてみます。
nucleus/libs/COMMENTACTIONS.php
function parse_email()198行目~にて、
echo $email;
if ($email) {//メールクライアント起動
echo ' |<a href="mailto:' . $email . '">mail</a>';
}//ここまで
function parse_useremail()339行目~にて、
if ($member->email != '')
echo $member->email;
if ($member->email != '')
echo ' | <a href="mailto:' . $member->email . '">mail</a>';//メールクライアント起動
echo $this->currentComment['email'];
echo ' | <a href="mailto:' . $this->currentComment['email'] . '">mail</a>';//メールクライアント起動
function parse_userwebsite()388行目~にて、
echo $this->currentComment['userlinkraw'];
echo ' | <a target="_blank" href="' . $this->currentComment['userlinkraw'] . '">web</a>';//リンクへ変更。
以上です。
ただし、ゲスト以外。
管理者(貴方)や、その他メンバーのメールアドレスを表示したくない。
管理者(貴方)や、その他メンバーのWEBサイトURLを表示したい。
なんて事もあると思います。その場合。
function parse_useremail()にて、
if ($member->email != '')
echo ' | <a href="mailto:' . $member->email . '">mail</a>';//メールクライアント起動
function parse_userwebsite()を
global $manager;
if ($this->currentComment['memberid'] > 0) {//メンバーWEBリンク追加。
$member =& $manager->getMember($this->currentComment['memberid']);
if ($member->url != '')
echo ' | <a href="' . $member->url . '">web</a>';
} elseif (!(strpos($this->currentComment['userlinkraw'], 'http://') === false)) {
echo ' | <a target="_blank" href="' . $this->currentComment['userlinkraw'] . '">web</a>';//リンクへ変更。
}
コメントにてケース毎にテストしていますので参考に。。。
[PR] 全てが規格外!しかも1年間の全額返金保証!! [PR]