HI! here is all code:
#
In file /program/js/app.js
# Replace Line 264 with
this.enable_command('preferences', 'identities', 'save', 'folders', 'passwd', true);
# Insert after Line 274
if (this.env.action=='passwd' || this.env.action=='save-passwd')
{
var input_curpasswd = rcube_find_object('_curpasswd');
var input_newpasswd = rcube_find_object('_newpasswd');
var input_confpasswd = rcube_find_object('_confpasswd');
if (input_curpasswd && input_curpasswd.value=='')
input_curpasswd.focus();
else if (input_confpasswd)
input_confpasswd.focus();
this.enable_command('save-passwd', true);
}
# Insert after old Line 932 new Line 945
break;
case 'passwd':
this.goto_url('passwd');
break;
case 'save-passwd':
var input_curpasswd = rcube_find_object('_curpasswd');
var input_newpasswd = rcube_find_object('_newpasswd');
var input_confpasswd = rcube_find_object('_confpasswd');
if (input_curpasswd && input_curpasswd.value=='')
{
alert(this.get_label('nocurrentpassword'));
input_curpasswd.focus();
}
else if ((input_newpasswd && input_newpasswd.value=='') && (input_confpasswd && input_confpasswd.value==''))
{
alert(this.get_label('nopassword'));
input_newpasswd.focus();
}
else if ((input_newpasswd && input_confpasswd) && ( input_newpasswd.value != input_confpasswd.value))
{
alert(this.get_label('passwordinconsistency'));
input_newpasswd.focus();
}
else
this.gui_objects.editform.submit();
# -------------------------------------------------------------------------------------------------------------
#
In file /program/localizations/en_US/labels.inc
# Insert before the last line
$labels['changepasswd'] = 'Change Password';
$labels['curpasswd'] = 'Current Password';
$labels['newpasswd'] = 'New Password';
$labels['confpasswd'] = 'Confirm New Password';
# -------------------------------------------------------------------------------------------------------------
#
In file /program/localizations/en_US/messages.inc
# Insert after line 78
$messages['nocurrentpassword'] = "Please input current password.";
$messages['nopassword'] = "Please input new password.";
$messages['passwordinconsistency'] = "Inconsistency of password, please try again.";
# -------------------------------------------------------------------------------------------------------------
#
In file /skins/default/includes/settingstabs.html
# Insert after Line 2
# -------------------------------------------------------------------------------------------------------------
#
Add File /skins/default/templates/passwd.html that contains
# -------------------------------------------------------------------------------------------------------------
#
In File index.php
# Insert after line that reads: include_once('program/steps/settings/func.inc'); (about line 343)
if (($_action=='passwd') or ($_action=='save-passwd'))
include('program/steps/settings/passwd.inc');
# -------------------------------------------------------------------------------------------------------------
#
In file /program/steps/settings/func.inc
// register UI objects
$OUTPUT->add_handlers(array(
'userprefs' => 'rcmail_user_prefs_form',
'itentitieslist' => 'rcmail_identities_list',
'userpasswd' => 'rcmail_passwd_form'
));
# -------------------------------------------------------------------------------------------------------------
passwd.inc file top