web-dev-qa-db-ja.com

新しいユーザーメッセージのシステム名を上書きする

これはJoomla 2.5用ですが、3.xシリーズでも同じだと思います。

私は、NATファイアウォールの背後に座っているサーバーを持っています。そのため、サーバーの実際のIPアドレスは192.168アドレスですが、ユーザーがそれに到達するには、外部に設定されているwww.mydomain.comとしてアクセスします。ファイアウォールのアドレス(192.168アドレスではない)。

ユーザーが作成されると、次のようなデフォルトのメッセージが送信されます。

This email contains your username and password to log in to http:// 192.168.1.100

このアドレスに到達できません。メッセージを次のようにしたいと思います。

This email contains your username and password to log in to http://www.mydomain.com

Joomlaのソースコードを変更してメッセージを強制的に変更することもできますが、これを解決する簡単な方法があると思います。森に近づきすぎているため、森が表示されないだけで苦しんでいます木。

192.168.1.100をwww.mydomain.comにマップするのは、Hostテーブルにエントリを置くのか、ローカルDNSにPTRレコードを置くのと同じくらい簡単なのかと思います。

4
Douglas Pickett

Plugins/user/joomla/joomla.phpを編集します。

_$emailBody = JText::sprintf(
    'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY',
    $user['name'],
    $this->app->get('sitename'),
    JUri::root(),
    $user['username'],
    $user['password_clear']
);
_

JUri::root()を_http://www.mydomain.com_に置き換えます

2
sovainfo

Configuration.phpで$ live_siteを設定してみてください。

3
sovainfo

ロケーション管理者に「PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY」の言語オーバーライドを作成します。

PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY="Hello %s,\n\n\nYou have been added as a User to HTTP://www.mydomain.com (%s) by an Administrator.\n\nThis email contains your username and password to log in to %s\n\nUsername: %s\nPassword: %s\n\n\nPlease do not respond to this message as it is automatically generated and is for information purposes only."

すべての%sを%1 $ s、%2 $ s、%3 $ s、%4 $ sで変更します%2 $ sを除外するとIP番号が抑制されます

3
sovainfo

最も簡単な方法は、そのエントリを含む言語ファイルを編集することです(ハードコードしてください)。

言語ファイルは、フォルダーlanguageにあります(インストールされている各言語の言語フォルダー内にあります)。

私のサイトではドメインを取得しているため、サーバーに何かが正しく設定されていない可能性があります。

1
jackJoe

何が起こっているのかがわかりました-私を正しい道に導いてくれた提案に感謝します。

この場合の問題は、アカウントを作成する管理者がサーバーと同じファイアウォールの内側にいるためでした。メッセージに入れられたシステムの名前は、セッション環境から「HTTP_Host」の値を取得することによって作成され、接続先のURLを反映しています。このURLは名前ではなくIPアドレスでした。ファイアウォールの背後にいる場合は、ファイアウォールの背後にある値が取得されます。ファイアウォールの外側にある場合は、ファイアウォールの外側にある値が取得されます。これが、サーバーがホスト環境にある場合に通常正しい答えを与える理由です。

これを正しく動作させるには、分割ビューを使用してDNSを設定する必要があります。これにより、管理者は常にwww.mydomain.comに接続します。ファイアウォールの内側にいる場合、DNSは192.168アドレスを提供します。ファイアウォールの外側にいる場合、シンボルwww.mydomain.comがIPアドレスに解決されるときに外部IPを受け取ります。

次に、メッセージが送信されると、どちらの場合もメッセージの本文にはwww.mydomain.comが含まれます。

送信されたhttp://値をオーバーライドする方法については、はい、plugins/user/joomla/joomla.phpのコードを書き直すことに関する提案は正しいです。 thisの場合を除いて-サイトは拡張「Login One」を使用して同時ユーザーセッションを制限し、拡張は標準のJoomlaコードを独自のプラグインに置き換えたため、変更する必要がありました。標準の場所ではない拡張コード。

だから、すべての提案に感謝します、それらなしで答えに到達することははるかに困難だったでしょう。

1
Douglas Pickett