RoundCube のパスワード変更プラグインを使用したい cpanel アカウントが複数あります。プラグインの config.inc.php ファイル (以下を参照) に、コードを統合する構成変数を設定する関数を含めました (意味については、case ステートメントを参照してください)。
関数配列を返したり、グローバル変数を追加したりしてみました。私の終焉の多くは、変数が構成されていることをパスワードプラグインに理解させることができません。結果を switch ステートメント内のログ ファイルに (ある時点で) 出力すると、関数内で定義されたすべての変数が返されました。しかし、何らかの理由で、プラグインはこれらの変数を password.php ファイル内で取得していません。
ユーザー側での結果は、パスワードの変更が失敗し、エラー メッセージが表示されることです。
// Password Plugin options
$rcmail_config['password_driver'] = 'cpanel';
// LOAD USER CONFIGURATION
global $CONFIG, $RCMAIL;
$rcmail = rcmail::get_instance();
$user = $rcmail->user;
// GET THE USER'S DOMAIN NAME
function getDomainFromEmail($email)
{
$domain = substr(strrchr($email, "@"), 1);
return $domain;
}
// CONFIGURE PASSWORD PLUG-IN BASED ON THE EMAIL DOMAIN NAME
function setConfiguration($password_cpanel_host, $password_cpanel_username, $password_cpanel_password, $password_cpanel_port, $password_cpanel_ssl, $password_cpanel_theme)
{ global $rcmail, $rcmail_config;
$rcmail_config['password_cpanel_host'] = $password_cpanel_host;
$rcmail_config['password_cpanel_username'] = $password_cpanel_username;
$rcmail_config['password_cpanel_password'] = $password_cpanel_password;
$rcmail_config['password_cpanel_port'] = $password_cpanel_port;
$rcmail_config['password_cpanel_ssl'] = $password_cpanel_ssl;
$rcmail_config['password_cpanel_theme'] = $password_cpanel_theme;
//return $rcmail_config;
}
// CHECK THE DOMAIN NAME AND APPLY THE PLUG-IN SETTINGS
switch (getDomainFromEmail($user->get_username()))
{
case "domain1.com":
// DOES NOT WORK WHEN DEFINED THIS WAY (AFTER RETURN IS UNCOMMENTED IN FUNCTION)
$rcmail_config = setConfiguration('xxx', 'xxx', 'xxx', 2083, true, 'x3');
// OR THIS WAY
setConfiguration('xxx', 'xxx', 'xxx', 2083, true, 'x3');
break;
case "domain2.org":
// WORKS WHEN DEFINED THIS WAY
$rcmail_config['password_cpanel_host'] = 'xxx';
$rcmail_config['password_cpanel_username'] = 'xxx';
$rcmail_config['password_cpanel_password'] = 'xxx';
$rcmail_config['password_cpanel_port'] = '2083';
$rcmail_config['password_cpanel_ssl'] = true;
$rcmail_config['password_cpanel_theme'] = 'x3';
break;
}