After upgrading ExpressionEngine from 2.5.2 to 2.6.1, the Member module now sets the member's localization to PHP format eg. 'Australia/Sydney' in the exp_members table. So, when my site calls EEs Localize class it returns the PHP format instead of the CI format, that is it should return 'UP10' instead of 'Australia/Sydney', generating this error:
Severity: Notice Message: Undefined index: Australia/Sydney Filename: libraries/Localize.php Line Number: 735
The code for the localization_form view is generated on line 1563 of mod.member_settings.php:
'form:localization' => ee()->localize->timezone_menu(($query- >row('timezone') == '') ? 'UTC' : $query->row('timezone'))
The mod.member_settings module generates the localization form for the user using the Localize class in the edit_localization() function.
The Localize class uses the CI Date helper timezone_menu() function to generate a localization menu, but this provides the string 'Sydney/Australia' in the tag, which means this is what is passed back to the update_localization() function in mod.member_settings.php.
See line 1593 in mod.member_settings.php:
$data['timezone'] = $_POST['server_timezone'];
Am I missing something really obvious here? Where is this ee_tz_change js function coming from???