Created
February 27, 2009 03:10
-
-
Save ArsTechnica/71259 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/addons/Commercial.pack/templates/professional/recover-password.mtml b/addons/Commercial.pack/templates/professional/recover-password.mtml | |
| index dd6945a..30de96e 100644 | |
| --- a/addons/Commercial.pack/templates/professional/recover-password.mtml | |
| +++ b/addons/Commercial.pack/templates/professional/recover-password.mtml | |
| @@ -1,10 +1,7 @@ | |
| -<__trans phrase="_USAGE_FORGOT_PASSWORD_1"> | |
| +<__trans phrase="A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password."> | |
| - <$mt:Var name="user_password"$> | |
| +<mt:var name="link_to_login"> | |
| -<__trans phrase="_USAGE_FORGOT_PASSWORD_2"> | |
| - | |
| - <$mt:Var name="link_to_login"$> | |
| - | |
| -<$mt:Include module="<__trans phrase="Mail Footer">"$> | |
| +<__trans phrase="If you did not request this change, you can safely ignore this email."> | |
| +<mt:include module="<__trans phrase="Mail Footer">"> | |
| diff --git a/addons/Community.pack/config.yaml b/addons/Community.pack/config.yaml | |
| index 3271e0d..747ece8 100644 | |
| --- a/addons/Community.pack/config.yaml | |
| +++ b/addons/Community.pack/config.yaml | |
| @@ -1,6 +1,6 @@ | |
| name: Community Pack | |
| -version: 1.61 | |
| -schema_version: 1.6 | |
| +version: 1.611 | |
| +schema_version: 1.611 | |
| l10n_class: MT::Community::L10N | |
| object_types: | |
| @@ -74,14 +74,15 @@ applications: | |
| register: $Community::MT::App::Community::register | |
| do_register: $Community::MT::App::Community::do_register | |
| do_confirm: $Community::MT::App::Community::do_confirm | |
| - start_recover: $Community::MT::App::Community::start_recover | |
| - do_recover: $Community::MT::App::Community::do_recover | |
| resend_auth: $Community::MT::App::Community::resend_auth | |
| loggedin_js: $Community::MT::App::Community::loggedin_js | |
| check_perm_js: $Community::MT::App::Community::check_perm_js | |
| follow: $Community::MT::App::Community::follow | |
| leave: $Community::MT::App::Community::leave | |
| relations_js: $Community::MT::App::Community::relations_js | |
| + start_recover: $Core::MT::CMS::Tools::start_recover | |
| + recover: $Core::MT::CMS::Tools::recover_password | |
| + new_pw: $Core::MT::CMS::Tools::new_password | |
| config_settings: | |
| CommunityScript: | |
| @@ -171,6 +172,10 @@ default_templates: | |
| label: Profile Edit Form | |
| profile_feed: | |
| label: Profile Feed | |
| + new_password: | |
| + label: New Password Form | |
| + new_password_reset_form: | |
| + label: New Password Reset Form | |
| global:module: | |
| form_field: | |
| label: Form Field | |
| diff --git a/addons/Community.pack/lib/MT/App/Community.pm b/addons/Community.pack/lib/MT/App/Community.pm | |
| index 289fa22..6a153fe 100644 | |
| --- a/addons/Community.pack/lib/MT/App/Community.pm | |
| +++ b/addons/Community.pack/lib/MT/App/Community.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: Community.pm 93492 2008-11-14 02:52:26Z fyoshimatsu $ | |
| +# $Id: Community.pm 99018 2009-02-25 20:22:22Z bchoate $ | |
| package MT::App::Community; | |
| @@ -66,27 +66,6 @@ sub jsonp_error { | |
| return undef; | |
| } | |
| -sub load_global_tmpl { | |
| - my $app = shift; | |
| - my ( $arg, $blog_id ) = @_; | |
| - $blog_id ||= '0'; | |
| - | |
| - my $terms = {}; | |
| - if ( 'HASH' eq ref($arg) ) { | |
| - $terms = { %$arg, blog_id => $blog_id }; | |
| - } | |
| - else { | |
| - $terms = { | |
| - type => $arg, | |
| - blog_id => $blog_id, | |
| - } | |
| - } | |
| - require MT::Template; | |
| - my $tmpl = MT::Template->load( $terms ); | |
| - $app->set_default_tmpl_params($tmpl); | |
| - $tmpl; | |
| -} | |
| - | |
| sub _login_user_commenter { | |
| my $app = shift; | |
| @@ -936,16 +915,8 @@ sub _send_registration_notification { | |
| } | |
| sub start_recover { | |
| - my $app = shift; | |
| - my $tmpl = $app->load_global_tmpl('password_reset_form'); | |
| - my $return_to = $app->param('return_to'); | |
| - if ( $return_to ) { | |
| - $return_to = remove_html($return_to); | |
| - return $app->errtrans('Invalid request.') | |
| - unless is_url( $return_to ); | |
| - } | |
| - $tmpl->param( { return_to => $return_to } ); | |
| - $tmpl; | |
| + require MT::App::CMS; | |
| + MT::App::CMS::start_recover(@_); | |
| } | |
| sub reset_password { | |
| @@ -1692,36 +1663,11 @@ sub edit_profile_method { | |
| my $app = shift; | |
| my %param = $_[0] ? %{ $_[0] } : (); | |
| my $q = $app->param; | |
| - my $id = $q->param('id'); | |
| - my $username = $q->param('username'); | |
| my $blog_id = $app->param('blog_id') || 0; | |
| my $user = $app->_login_user_commenter(); | |
| - unless ($id || $username) { | |
| - if ($user) { | |
| - $id = $user->id; | |
| - $username = $user->name; | |
| - $param{id} = $user->id; | |
| - } | |
| - else { | |
| - return $app->errtrans("Id or Username is required"); | |
| - } | |
| - } | |
| - | |
| - unless ($user) { | |
| - if ($id) { | |
| - $user = $app->model('author')->load($id); | |
| - } | |
| - else { | |
| - $user = $app->model('author')->load( { name => $username } ); | |
| - } | |
| - } | |
| return $app->errtrans("Unknown user") if ( !$user ); | |
| - my $this_user = $app->user; | |
| - return $app->errtrans("Cannot edit profile.") | |
| - if ( !$this_user or $user->id != $this_user->id ); | |
| - | |
| my $tmpl = $app->load_global_tmpl('profile_edit_form') | |
| or return $app->error("No profile edit template defined"); | |
| @@ -1732,17 +1678,17 @@ sub edit_profile_method { | |
| unless is_url( $return_to ); | |
| } | |
| - my $return_args = $app->uri_params( mode => 'edit', args => { id => $id } ); | |
| + my $return_args = $app->uri_params( mode => 'edit', args => { id => $user->id } ); | |
| $return_args =~ s!^\?!!; | |
| my $cfg = $app->config; | |
| - $param{'auth_mode_' . $cfg->AuthenticationModule} = 1; | |
| # FIXME: necessary? | |
| for my $p ( $q->param ) { | |
| $param{$p} = $q->param($p); | |
| } | |
| + $param{'auth_mode_' . $cfg->AuthenticationModule} = 1; | |
| $param{blog_id} = $blog_id; | |
| $param{name} = $user->name; | |
| $param{nickname} = $user->nickname; | |
| @@ -1757,7 +1703,7 @@ sub edit_profile_method { | |
| } | |
| $param{return_args} = $return_args; | |
| $param{field_loop} = | |
| - field_loop( object_type => 'author', object_id => $id, simple => 1 ); | |
| + field_loop( object_type => 'author', object_id => $user->id, simple => 1 ); | |
| $tmpl->param( \%param ); | |
| $tmpl; | |
| @@ -1770,18 +1716,13 @@ sub save_profile_method { | |
| if $app->request_method() ne 'POST'; | |
| my $q = $app->param; | |
| - my $id = $q->param('id'); | |
| my %param = (); | |
| my $author = $app->_login_user_commenter(); | |
| - die "Invalid request" unless $author; | |
| + return $app->error( $app->translate("Invalid request") ) | |
| + unless $author; | |
| $app->validate_magic() or return; | |
| - if ( $id != $author->id ) { | |
| - $param{error} = $app->translate('Cannot edit profile.'); | |
| - return $app->edit_profile_method( \%param ); | |
| - } | |
| - | |
| unless ( $param{external_auth} ) { | |
| my $nickname = $q->param('nickname'); | |
| unless ( $nickname && $q->param('email') ) { | |
| diff --git a/addons/Community.pack/lib/MT/Community/L10N/ja.pm b/addons/Community.pack/lib/MT/Community/L10N/ja.pm | |
| index aebe935..4eb4946 100644 | |
| --- a/addons/Community.pack/lib/MT/Community/L10N/ja.pm | |
| +++ b/addons/Community.pack/lib/MT/Community/L10N/ja.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: ja.pm 84995 2008-07-14 02:37:00Z fyoshimatsu $ | |
| +# $Id: ja.pm 98821 2009-02-24 04:30:50Z fyoshimatsu $ | |
| package MT::Community::L10N::ja; | |
| @@ -356,12 +356,14 @@ use vars qw( %Lexicon ); | |
| 'Following Users' => '注目ã—ã¦ã„るユーザー', | |
| 'Being Followed' => '注目ã•れã¦ã„るユーザー', | |
| 'Login Form' => 'ãƒã‚°ã‚¤ãƒ³ãƒ•ォーム', | |
| + 'New Password Reset Form' => 'æ–°ã—ã„パスワードå†è¨å®šãƒ•ォーム', | |
| 'Password Reset Form' => 'パスワードå†è¨å®šãƒ•ォーム', | |
| 'Registration Form' => '登録フォーム', | |
| 'Registration Confirmation' => '登録ã®ç¢ºèª', | |
| 'Profile View' => 'プãƒãƒ•ィール', | |
| 'Profile Edit Form' => 'プãƒãƒ•ィールã®ç·¨é›†ãƒ•ォーム', | |
| 'Profile Feed' => 'プãƒãƒ•ィールフィード', | |
| + 'New Password Form' => 'æ–°ã—ã„パスワードã®è¨å®šãƒ•ォーム', | |
| 'Email verification' => 'メールアドレスã®ç¢ºèª', | |
| 'Registration notification' => '登録通知', | |
| 'New entry notification' => 'ブãƒã‚°è¨˜äº‹ã®æŠ•稿通知', | |
| diff --git a/default_templates/recover-password.mtml b/default_templates/recover-password.mtml | |
| index dd6945a..30de96e 100644 | |
| --- a/default_templates/recover-password.mtml | |
| +++ b/default_templates/recover-password.mtml | |
| @@ -1,10 +1,7 @@ | |
| -<__trans phrase="_USAGE_FORGOT_PASSWORD_1"> | |
| +<__trans phrase="A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password."> | |
| - <$mt:Var name="user_password"$> | |
| +<mt:var name="link_to_login"> | |
| -<__trans phrase="_USAGE_FORGOT_PASSWORD_2"> | |
| - | |
| - <$mt:Var name="link_to_login"$> | |
| - | |
| -<$mt:Include module="<__trans phrase="Mail Footer">"$> | |
| +<__trans phrase="If you did not request this change, you can safely ignore this email."> | |
| +<mt:include module="<__trans phrase="Mail Footer">"> | |
| diff --git a/lib/MT.pm b/lib/MT.pm | |
| index a6edb63..d239500 100644 | |
| --- a/lib/MT.pm | |
| +++ b/lib/MT.pm | |
| @@ -29,10 +29,10 @@ our $plugins_installed; | |
| BEGIN { | |
| $plugins_installed = 0; | |
| - ( $VERSION, $SCHEMA_VERSION ) = ( '4.23', '4.0067' ); | |
| + ( $VERSION, $SCHEMA_VERSION ) = ( '4.24', '4.0068' ); | |
| ( $PRODUCT_NAME, $PRODUCT_CODE, $PRODUCT_VERSION, $VERSION_ID ) = ( | |
| 'Movable Type Pro', 'MT', | |
| - '4.23', '4.23-en' | |
| + '4.24', '4.24-en' | |
| ); | |
| $DebugMode = 0; | |
| @@ -1989,6 +1989,27 @@ sub find_file { | |
| undef; | |
| } | |
| +sub load_global_tmpl { | |
| + my $app = shift; | |
| + my ( $arg, $blog_id ) = @_; | |
| + $blog_id ||= '0'; | |
| + | |
| + my $terms = {}; | |
| + if ( 'HASH' eq ref($arg) ) { | |
| + $terms = { %$arg, blog_id => $blog_id }; | |
| + } | |
| + else { | |
| + $terms = { | |
| + type => $arg, | |
| + blog_id => $blog_id, | |
| + } | |
| + } | |
| + require MT::Template; | |
| + my $tmpl = MT::Template->load( $terms ); | |
| + $app->set_default_tmpl_params($tmpl) if $tmpl; | |
| + $tmpl; | |
| +} | |
| + | |
| sub load_tmpl { | |
| my $mt = shift; | |
| if ( exists($mt->{component}) && ( $mt->{component} ne 'Core' ) ) { | |
| diff --git a/lib/MT/App.pm b/lib/MT/App.pm | |
| index 469e612..e81aa1a 100644 | |
| --- a/lib/MT/App.pm | |
| +++ b/lib/MT/App.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: App.pm 3179 2008-11-11 04:18:13Z fumiakiy $ | |
| +# $Id: App.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::App; | |
| diff --git a/lib/MT/App/ActivityFeeds.pm b/lib/MT/App/ActivityFeeds.pm | |
| index 28172fd..9e84859 100644 | |
| --- a/lib/MT/App/ActivityFeeds.pm | |
| +++ b/lib/MT/App/ActivityFeeds.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: ActivityFeeds.pm 2877 2008-08-01 01:43:09Z bchoate $ | |
| +# $Id: ActivityFeeds.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::App::ActivityFeeds; | |
| diff --git a/lib/MT/App/CMS.pm b/lib/MT/App/CMS.pm | |
| index 37b4ee9..cca9dce 100644 | |
| --- a/lib/MT/App/CMS.pm | |
| +++ b/lib/MT/App/CMS.pm | |
| @@ -142,6 +142,10 @@ sub core_methods { | |
| code => "${pkg}Tools::recover_password", | |
| requires_login => 0, | |
| }, | |
| + 'new_pw' => { | |
| + code => "${pkg}Tools::new_password", | |
| + requires_login => 0, | |
| + }, | |
| 'view_log' => "${pkg}Log::view", | |
| 'list_log' => "${pkg}Log::view", | |
| diff --git a/lib/MT/App/Comments.pm b/lib/MT/App/Comments.pm | |
| index 39e2650..8d1a629 100644 | |
| --- a/lib/MT/App/Comments.pm | |
| +++ b/lib/MT/App/Comments.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: Comments.pm 3091 2008-10-08 01:11:11Z auno $ | |
| +# $Id: Comments.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::App::Comments; | |
| use strict; | |
| @@ -40,6 +40,10 @@ sub init { | |
| red => \&do_red, | |
| generate_captcha => \&generate_captcha, | |
| + start_recover => \&start_recover, | |
| + recover => \&recover, | |
| + new_pw => \&new_pw, | |
| + | |
| # deprecated | |
| cmtr_name_js => \&commenter_name_js, | |
| cmtr_status_js => \&commenter_status_js, | |
| @@ -1886,6 +1890,21 @@ sub blog { | |
| return $app->{_blog}; | |
| } | |
| +sub start_recover { | |
| + require MT::CMS::Tools; | |
| + MT::CMS::Tools::start_recover(@_); | |
| +} | |
| + | |
| +sub recover { | |
| + require MT::CMS::Tools; | |
| + MT::CMS::Tools::recover_password(@_); | |
| +} | |
| + | |
| +sub new_pw { | |
| + require MT::CMS::Tools; | |
| + MT::CMS::Tools::new_password(@_); | |
| +} | |
| + | |
| 1; | |
| __END__ | |
| diff --git a/lib/MT/Asset/Image.pm b/lib/MT/Asset/Image.pm | |
| index 26dbc07..51a6bf2 100644 | |
| --- a/lib/MT/Asset/Image.pm | |
| +++ b/lib/MT/Asset/Image.pm | |
| @@ -122,14 +122,9 @@ sub thumbnail_file { | |
| $param{Height} = $i_h; | |
| } | |
| - if( !exists $param{force}){ | |
| - $param{force} = 0; | |
| - } | |
| # find the longest dimension of the image: | |
| - my $force = $param{force}; | |
| - my @sz = ($param{Height}, $param{Width}); | |
| - @sz = _get_dimension( $i_h, $i_w, $param{Height}, $param{Width} ) unless $force; | |
| - my ( $n_h, $n_w ) = @sz; | |
| + my ( $n_h, $n_w ) = | |
| + _get_dimension( $i_h, $i_w, $param{Height}, $param{Width} ); | |
| my $file = $asset->thumbnail_filename(%param) or return; | |
| my $thumbnail = File::Spec->catfile( $asset_cache_path, $file ); | |
| @@ -235,10 +230,9 @@ sub thumbnail_filename { | |
| my $file = $asset->file_name or return; | |
| require MT::Util; | |
| - my $format = $param{Format} || MT->translate('%f-thumb-%wx%h-%i%p%x'); | |
| + my $format = $param{Format} || MT->translate('%f-thumb-%wx%h-%i%x'); | |
| my $width = $param{Width} || 'auto'; | |
| my $height = $param{Height} || 'auto'; | |
| - my $force = $param{force} ? '-f' : ''; | |
| $file =~ s/\.\w+$//; | |
| my $base = File::Basename::basename($file); | |
| my $id = $asset->id; | |
| @@ -249,7 +243,6 @@ sub thumbnail_filename { | |
| $format =~ s/%f/$base/g; | |
| $format =~ s/%i/$id/g; | |
| $format =~ s/%x/$ext/g; | |
| - $format =~ s/%p/$force/g; | |
| return $format; | |
| } | |
| @@ -699,4 +692,4 @@ Return the HTML I<IMG> element with the image asset attributes. | |
| Please see the L<MT/"AUTHOR & COPYRIGHT"> for author, copyright, and | |
| license information. | |
| -=cut | |
| \ No newline at end of file | |
| +=cut | |
| diff --git a/lib/MT/Author.pm b/lib/MT/Author.pm | |
| index 8d924a7..711409d 100644 | |
| --- a/lib/MT/Author.pm | |
| +++ b/lib/MT/Author.pm | |
| @@ -41,6 +41,9 @@ __PACKAGE__->install_properties({ | |
| # meta properties | |
| 'widgets' => 'hash meta', | |
| 'favorite_blogs' => 'array meta', | |
| + 'password_reset' => 'string meta', | |
| + 'password_reset_expires' => 'string meta', | |
| + 'password_reset_return_to' => 'string meta', | |
| }, | |
| defaults => { | |
| type => 1, | |
| @@ -232,10 +235,8 @@ sub save { | |
| } | |
| } | |
| # Generate basename | |
| - unless ($auth->basename()) { | |
| - my $basename = MT::Util::make_unique_author_basename($auth); | |
| - $auth->basename($basename); | |
| - } | |
| + my $basename = MT::Util::make_unique_author_basename($auth); | |
| + $auth->basename($basename); | |
| } | |
| my $privs; | |
| diff --git a/lib/MT/CMS/Entry.pm b/lib/MT/CMS/Entry.pm | |
| index b4511e4..a8c7183 100644 | |
| --- a/lib/MT/CMS/Entry.pm | |
| +++ b/lib/MT/CMS/Entry.pm | |
| @@ -893,7 +893,7 @@ sub preview { | |
| if ($app->config('LocalPreviews')) { | |
| $old_url = $blog->site_url; | |
| $old_url =~ s!^(https?://[^/]+?/)(.*)?!$1!; | |
| - $new_url = $app->base . '/published/'; | |
| + $new_url = $app->base . '/'; | |
| $html =~ s!\Q$old_url\E!$new_url!g; | |
| } | |
| diff --git a/lib/MT/CMS/Tools.pm b/lib/MT/CMS/Tools.pm | |
| index 4ffe3f8..17c3349 100644 | |
| --- a/lib/MT/CMS/Tools.pm | |
| +++ b/lib/MT/CMS/Tools.pm | |
| @@ -106,39 +106,199 @@ sub get_syscheck_content { | |
| sub start_recover { | |
| my $app = shift; | |
| + my ($param) = @_; | |
| + $param ||= {}; | |
| + $param->{'email'} = $app->param('email'); | |
| + $param->{'return_to'} = $app->param('return_to'); | |
| $app->add_breadcrumb( $app->translate('Password Recovery') ); | |
| - $app->load_tmpl('dialog/recover.tmpl'); | |
| + | |
| + my $blog_id = $app->param('blog_id'); | |
| + my $tmpl = $app->load_global_tmpl( { identifier => 'new_password_reset_form', | |
| + $blog_id ? ( blog_id => $app->param('blog_id') ) : () } ); | |
| + if (!$tmpl) { | |
| + $tmpl = $app->load_tmpl( 'cms/dialog/recover.tmpl' ); | |
| + } | |
| + $tmpl->param($param); | |
| + return $tmpl; | |
| } | |
| sub recover_password { | |
| - my $app = shift; | |
| - my $q = $app->param; | |
| - my $name = $q->param('name'); | |
| - my $class = ref $app eq 'MT::App::Upgrader' ? 'MT::BasicAuthor' : $app->model('author'); | |
| + my $app = shift; | |
| + my $email = $app->param('email'); | |
| + my $username = $app->param('name'); | |
| + | |
| + if ( !$email ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('Email Address is required for password recovery.'), } ); | |
| + } | |
| + | |
| + # Searching user by email (and username) | |
| + my $class | |
| + = ref $app eq 'MT::App::Upgrader' | |
| + ? 'MT::BasicAuthor' | |
| + : $app->model('author'); | |
| eval "use $class;"; | |
| - my @author = $class->load( { name => $name } ); | |
| - my $author; | |
| - foreach (@author) { | |
| + | |
| + my @all_authors = $class->load( | |
| + { email => $email, ( $username ? ( name => $username ) : () ) } ); | |
| + my @authors; | |
| + my $user; | |
| + foreach (@all_authors) { | |
| next unless $_->password && ( $_->password ne '(none)' ); | |
| - $author = $_; | |
| + push( @authors, $_ ); | |
| + } | |
| + if ( !@authors ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('User not found'), | |
| + ( $username ? ( not_unique_email => 1 ) : () ), | |
| + } | |
| + ); | |
| } | |
| + elsif ( @authors > 1 ) { | |
| + return $app->start_recover( { not_unique_email => 1, } ); | |
| + } | |
| + $user = pop @authors; | |
| - my ( $rc, $res ) = | |
| - reset_password( $app, $author, $q->param('hint'), $name ); | |
| + # Generate Token | |
| + require MT::Util::Captcha; | |
| + my $salt = MT::Util::Captcha->_generate_code(8); | |
| + my $expires = time + ( 60 * 60 ); | |
| + my $token = MT::Util::perl_sha1_digest_hex( | |
| + $salt . $expires . $app->config->SecretToken ); | |
| - if ($rc) { | |
| - $app->add_breadcrumb( $app->translate('Password Recovery') ); | |
| - $app->load_tmpl( | |
| - 'dialog/recover.tmpl', | |
| - { | |
| - recovered => 1, | |
| - email => $author->email | |
| - } | |
| + $user->password_reset($salt); | |
| + $user->password_reset_expires($expires); | |
| + $user->password_reset_return_to($app->param('return_to')) | |
| + if $app->param('return_to'); | |
| + $user->save; | |
| + | |
| + # Send mail to user | |
| + my %head = ( | |
| + id => 'recover_password', | |
| + To => $email, | |
| + From => $app->config('EmailAddressMain') || $email, | |
| + Subject => $app->translate("Password Recovery") | |
| + ); | |
| + my $charset = $app->charset; | |
| + my $mail_enc = uc( $app->config('MailEncoding') || $charset ); | |
| + $head{'Content-Type'} = qq(text/plain; charset="$mail_enc"); | |
| + | |
| + my $body = $app->build_email( | |
| + 'recover-password', | |
| + { link_to_login => $app->base | |
| + . $app->uri | |
| + . "?__mode=new_pw&token=$token&email=" | |
| + . encode_url($email), | |
| + } | |
| + ); | |
| + | |
| + require MT::Mail; | |
| + MT::Mail->send( \%head, $body ) | |
| + or return $app->error( | |
| + $app->translate( | |
| + "Error sending mail ([_1]); please fix the problem, then " | |
| + . "try again to recover your password.", | |
| + MT::Mail->errstr | |
| + ) | |
| ); | |
| + | |
| + return $app->start_recover( { recovered => 1, } ); | |
| +} | |
| + | |
| +sub new_password { | |
| + my $app = shift; | |
| + my ($param) = @_; | |
| + $param ||= {}; | |
| + | |
| + my $token = $app->param('token'); | |
| + if ( !$token ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('Password reset token not found'), } ); | |
| + } | |
| + | |
| + my $email = $app->param('email'); | |
| + if ( !$token ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('Email address not found'), } ); | |
| + } | |
| + | |
| + my $class = $app->model('author'); | |
| + my @users = $class->load( { email => $email } ); | |
| + if ( !@users ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('User not found'), } ); | |
| + } | |
| + | |
| + # comparing token | |
| + require MT::Util::Captcha; | |
| + my $user; | |
| + for my $u (@users) { | |
| + my $salt = $u->password_reset; | |
| + my $expires = $u->password_reset_expires; | |
| + my $compare = MT::Util::perl_sha1_digest_hex( | |
| + $salt . $expires . $app->config->SecretToken ); | |
| + if ( $compare eq $token ) { | |
| + if ( time > $u->password_reset_expires ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate( | |
| + 'Your request to change your password has expired.' | |
| + ), | |
| + } | |
| + ); | |
| + } | |
| + $user = $u; | |
| + last; | |
| + } | |
| } | |
| - else { | |
| - $app->error($res); | |
| + | |
| + if ( !$user ) { | |
| + return $app->start_recover( | |
| + { error => $app->translate('Invalid password reset request'), } ); | |
| + } | |
| + | |
| + # Password reset | |
| + my $new_password = $app->param('password'); | |
| + if ($new_password) { | |
| + my $again = $app->param('password_again'); | |
| + if ( !$again ) { | |
| + $param->{'error'} | |
| + = $app->translate('Please confirm your new password'); | |
| + } | |
| + elsif ( $new_password ne $again ) { | |
| + $param->{'error'} = $app->translate('Passwords do not match'); | |
| + } | |
| + else { | |
| + my $redirect = $user->password_reset_return_to || ''; | |
| + $user->set_password($new_password); | |
| + $user->password_reset(undef); | |
| + $user->password_reset_expires(undef); | |
| + $user->password_reset_return_to(undef); | |
| + $user->save; | |
| + $app->param( 'username', $user->name ) | |
| + if $user->type == MT::Author::AUTHOR(); | |
| + $app->login; | |
| + if ($redirect) { | |
| + return $app->redirect($redirect); | |
| + } else{ | |
| + return $app->return_to_dashboard( redirect => 1 ); | |
| + } | |
| + } | |
| + } | |
| + | |
| + $param->{'email'} = $email; | |
| + $param->{'token'} = $token; | |
| + $param->{'password'} = $app->param('password'); | |
| + $param->{'password_again'} = $app->param('password_again'); | |
| + $app->add_breadcrumb( $app->translate('Password Recovery') ); | |
| + | |
| + my $blog_id = $app->param('blog_id'); | |
| + my $tmpl = $app->load_global_tmpl( { identifier => 'new_password', | |
| + $blog_id ? ( blog_id => $app->param('blog_id') ) : () } ); | |
| + if (!$tmpl) { | |
| + $tmpl = $app->load_tmpl( 'cms/dialog/new_password.tmpl' ); | |
| } | |
| + $tmpl->param($param); | |
| + return $tmpl; | |
| } | |
| sub do_list_action { | |
| @@ -1530,14 +1690,21 @@ sub reset_password { | |
| return ( 0, $app->translate("User does not have email address") ) | |
| unless $author->email; | |
| - my @pool = ( 'a' .. 'z', 0 .. 9 ); | |
| - my $pass = ''; | |
| - for ( 1 .. 8 ) { $pass .= $pool[ rand @pool ] } | |
| - $author->set_password($pass); | |
| + # Generate Token | |
| + require MT::Util::Captcha; | |
| + my $salt = MT::Util::Captcha->_generate_code(8); | |
| + my $expires = time + ( 60 * 60 ); | |
| + my $token = MT::Util::perl_sha1_digest_hex( | |
| + $salt . $expires . $app->config->SecretToken ); | |
| + | |
| + $author->password_reset($salt); | |
| + $author->password_reset_expires($expires); | |
| + $author->password_reset_return_to(undef); | |
| $author->save; | |
| + | |
| my $message = | |
| $app->translate( | |
| -"Password was reset for user '[_1]' (user #[_2]). Password was sent to the following address: [_3]", | |
| +"A password reset link has been sent to [_3] for user '[_1]' (user #[_2]).", | |
| $author->name, $author->id, $author->email ); | |
| $app->log( | |
| { | |
| @@ -1548,34 +1715,37 @@ sub reset_password { | |
| } | |
| ); | |
| - my $address = | |
| - defined $author->nickname | |
| - ? $author->nickname . ' <' . $author->email . '>' | |
| - : $author->email; | |
| + # Send mail to user | |
| + my $email = $author->email; | |
| my %head = ( | |
| id => 'recover_password', | |
| - To => $address, | |
| - From => $app->config('EmailAddressMain') || $address, | |
| + To => $email, | |
| + From => $app->config('EmailAddressMain') || $email, | |
| Subject => $app->translate("Password Recovery") | |
| ); | |
| my $charset = $app->charset; | |
| my $mail_enc = uc( $app->config('MailEncoding') || $charset ); | |
| $head{'Content-Type'} = qq(text/plain; charset="$mail_enc"); | |
| - my $body = $app->build_email( 'recover-password.tmpl', | |
| - { user_password => $pass, link_to_login => $app->base . $app->mt_uri } | |
| + my $body = $app->build_email( | |
| + 'recover-password', | |
| + { link_to_login => $app->base | |
| + . $app->uri | |
| + . "?__mode=new_pw&token=$token&email=" | |
| + . encode_url($email), | |
| + } | |
| ); | |
| - $body = wrap_text( $body, 72 ); | |
| + | |
| require MT::Mail; | |
| MT::Mail->send( \%head, $body ) | |
| - or return ( | |
| - 0, | |
| + or return $app->error( | |
| $app->translate( | |
| "Error sending mail ([_1]); please fix the problem, then " | |
| - . "try again to recover your password.", | |
| + . "try again to recover your password.", | |
| MT::Mail->errstr | |
| ) | |
| - ); | |
| + ); | |
| + | |
| ( 1, $message ); | |
| } | |
| diff --git a/lib/MT/ImportExport.pm b/lib/MT/ImportExport.pm | |
| index 035207f..e8f2a5c 100644 | |
| --- a/lib/MT/ImportExport.pm | |
| +++ b/lib/MT/ImportExport.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: ImportExport.pm 1174 2008-01-08 21:02:50Z bchoate $ | |
| +# $Id: ImportExport.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::ImportExport; | |
| use strict; | |
| diff --git a/lib/MT/L10N/de-iso-8859-1.pm b/lib/MT/L10N/de-iso-8859-1.pm | |
| index df7b428..f73f513 100644 | |
| --- a/lib/MT/L10N/de-iso-8859-1.pm | |
| +++ b/lib/MT/L10N/de-iso-8859-1.pm | |
| @@ -5229,7 +5229,34 @@ Suchbasis: [_2]", | |
| 'Feeds.App Lite helps you republish feeds on your blogs. Want to do more with feeds in Movable Type?' => 'Mit Feeds.App Lite können Sie Feedinhalte in Ihre Blogs integrieren. Noch mehr Möglichkeiten erhalten Sie durch ein', | |
| 'Upgrade to Feeds.App' => 'Upgrade auf Feeds.App', | |
| 'Create a Feed Widget' => 'Feed-Widget anlegen', | |
| - | |
| + | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] beinhaltet ein ungültiges Schriftzeichen: [_2]', # Translate - New | |
| + 'Email address is required.' => 'Bitte geben Sie Ihre E-Mail-Adresse ein.', # Translate - New | |
| + 'User not found' => 'Dieser Benutzer wurde nicht gefunden', # Translate - New | |
| + 'Password reset token not found' => 'Der Passwort Reset Token wurde nicht gefunden', # Translate - New | |
| + 'Email address not found' => 'Diese E-Mail-Adresse wurde nicht gefunden', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Ihre Anfrage auf Änderung Ihres Passwortes ist ausgelaufen.', # Translate - New | |
| + 'Invalid password reset request' => 'Ungültige Passwort Reset Anfrage', # Translate - New | |
| + 'Please confirm your new password' => 'Bitte bestätigen Sie Ihr neues Passwort', # Translate - New | |
| + 'Password do not match' => 'Die Passwörter stimmen nicht überein', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Ungültiger [_1] Parameter.', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Blog, BlogID oder Template Parameter müssen spezifiziert werden.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Error saving [_1] record # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Diese E-Mail-Adresse wird bereits verwendet. Bitte geben Sie Ihren Benutzernamen ein.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Es wurde eine E-Mail mit einem Link zur Zurücksetzung Ihres Passwortes an Ihre Adresse gesendet([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Wählen Sie Ihr neues Passwort', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Bitte definieren Sie Ihren Local Archive Path.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Bitte definieren Sie eine gültige Archive URL.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Bitte definieren Sie einen gültigen Local Archive Path.', # Translate - New | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Es wurde eine Anfrage zur Änderung Ihres Passwortes in Movable Type gestellt. Bitte klicken Sie auf untenstehenden Link und wählen Sie ein neues Passwort aus um diesen Prozess abzuschließen.', | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Wenn Sie diese Änderung nicht wünschen können Sie diese E-Mail bedenkenlos ignorieren.', | |
| + 'Passwords do not match' => 'Passwörter stimmen nicht überein.', | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Das Zurücksetzen des Passwortes für Benutzer \'[_1]\' (Benutzer #[_2]) war erfolgreich. Ein Wiederherstellungs-Link wurde an folgende Adresse gesendet', | |
| + 'Updating password recover email template...' => 'Aktualisierung des Passwort-Wiederherstellungs-Templates...', | |
| + 'The email address provided is not unique. Please enter your username.' => 'Die angegebene E-Mail-Adresse wird bereits genutzt. Bitte geben Sie Ihren Benutzernamen ein.', | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'Sie sind dabei Email(s) an ausgewählte Nutzer zu senden um deren Password zurück zu setzen. Möchten Sie fortfahren?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Ein Passwort-Wiederherstellungs-Link für den Benutzer \'[_1]\' wurde an [_3] gesendet. (Benutzer #[_2])' | |
| ); | |
| ## New words: 361 | |
| diff --git a/lib/MT/L10N/de.pm b/lib/MT/L10N/de.pm | |
| index e5c1fe7..95a548d 100644 | |
| --- a/lib/MT/L10N/de.pm | |
| +++ b/lib/MT/L10N/de.pm | |
| @@ -5229,7 +5229,34 @@ Suchbasis: [_2]", | |
| 'Feeds.App Lite helps you republish feeds on your blogs. Want to do more with feeds in Movable Type?' => 'Mit Feeds.App Lite können Sie Feedinhalte in Ihre Blogs integrieren. Noch mehr Möglichkeiten erhalten Sie durch ein', | |
| 'Upgrade to Feeds.App' => 'Upgrade auf Feeds.App', | |
| 'Create a Feed Widget' => 'Feed-Widget anlegen', | |
| - | |
| + | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] beinhaltet ein ungültiges Schriftzeichen: [_2]', # Translate - New | |
| + 'Email address is required.' => 'Bitte geben Sie Ihre E-Mail-Adresse ein.', # Translate - New | |
| + 'User not found' => 'Dieser Benutzer wurde nicht gefunden', # Translate - New | |
| + 'Password reset token not found' => 'Der Passwort Reset Token wurde nicht gefunden', # Translate - New | |
| + 'Email address not found' => 'Diese E-Mail-Adresse wurde nicht gefunden', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Ihre Anfrage auf Änderung Ihres Passwortes ist ausgelaufen.', # Translate - New | |
| + 'Invalid password reset request' => 'Ungültige Passwort Reset Anfrage', # Translate - New | |
| + 'Please confirm your new password' => 'Bitte bestätigen Sie Ihr neues Passwort', # Translate - New | |
| + 'Password do not match' => 'Die Passwörter stimmen nicht überein', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Ungültiger [_1] Parameter.', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Blog, BlogID oder Template Parameter müssen spezifiziert werden.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Error saving [_1] record # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Diese E-Mail-Adresse wird bereits verwendet. Bitte geben Sie Ihren Benutzernamen ein.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Es wurde eine E-Mail mit einem Link zur Zurücksetzung Ihres Passwortes an Ihre Adresse gesendet([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Wählen Sie Ihr neues Passwort', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Bitte definieren Sie Ihren Local Archive Path.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Bitte definieren Sie eine gültige Archive URL.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Bitte definieren Sie einen gültigen Local Archive Path.', # Translate - New | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Es wurde eine Anfrage zur Änderung Ihres Passwortes in Movable Type gestellt. Bitte klicken Sie auf untenstehenden Link und wählen Sie ein neues Passwort aus um diesen Prozess abzuschließen.', | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Wenn Sie diese Änderung nicht wünschen können Sie diese E-Mail bedenkenlos ignorieren.', | |
| + 'Passwords do not match' => 'Passwörter stimmen nicht überein.', | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Das Zurücksetzen des Passwortes für Benutzer \'[_1]\' (Benutzer #[_2]) war erfolgreich. Ein Wiederherstellungs-Link wurde an folgende Adresse gesendet', | |
| + 'Updating password recover email template...' => 'Aktualisierung des Passwort-Wiederherstellungs-Templates...', | |
| + 'The email address provided is not unique. Please enter your username.' => 'Die angegebene E-Mail-Adresse wird bereits genutzt. Bitte geben Sie Ihren Benutzernamen ein.', | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'Sie sind dabei Email(s) an ausgewählte Nutzer zu senden um deren Password zurück zu setzen. Möchten Sie fortfahren?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Ein Passwort-Wiederherstellungs-Link für den Benutzer \'[_1]\' wurde an [_3] gesendet. (Benutzer #[_2])' | |
| ); | |
| ## New words: 361 | |
| diff --git a/lib/MT/L10N/en_us.pm b/lib/MT/L10N/en_us.pm | |
| index c59419f..eb4ff9e 100644 | |
| --- a/lib/MT/L10N/en_us.pm | |
| +++ b/lib/MT/L10N/en_us.pm | |
| @@ -58,7 +58,7 @@ sub ascii_only { ((ref $_[0]) || $_[0]) eq __PACKAGE__ } | |
| '_USAGE_GROUP_PROFILE' => 'This screen allows you to edit the group\'s profile.', | |
| '_USAGE_PASSWORD_RESET' => 'You can initiate password recovery on behalf of this user. If you choose to do so, an email will be sent to directly to <strong>[_1]</strong> with a randomly generated new password.', | |
| '_WARNING_PASSWORD_RESET_SINGLE' => 'You are about to reset the password for "[_1]". A new password will be randomly generated and sent directly to their email address ([_2]). Do you wish to continue?', | |
| - '_WARNING_PASSWORD_RESET_MULTI' => 'You are about to reset the password for the selected users. New passwords will be randomly generated and sent directly to their email address(es). Do you wish to continue?', | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'You are about to send email(s) to allow the selected user(s) to reset their passwords. Do you wish to continue?', | |
| '_USAGE_NEW_AUTHOR' => 'From this screen you can create a new user in the system.', | |
| '_USAGE_NEW_GROUP' => 'From this screen you can create a new group in the system.', | |
| '_USAGE_ROLES' => 'From this screen you can view the roles you have for your weblogs, and create roles. You can see the details for the different roles by clicking on their names.', | |
| diff --git a/lib/MT/L10N/es-iso-8859-1.pm b/lib/MT/L10N/es-iso-8859-1.pm | |
| index 9821fe0..2525a9a 100644 | |
| --- a/lib/MT/L10N/es-iso-8859-1.pm | |
| +++ b/lib/MT/L10N/es-iso-8859-1.pm | |
| @@ -5228,6 +5228,28 @@ B | |
| 'Upgrade to Feeds.App' => 'Actualícese a Feeds.App', | |
| 'Create a Feed Widget' => 'Crear un widget de fuente', | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Se ha recibido una petición para cambiar su contraseña de Movable Type. Para completar el proceso y seleccionar una nueva contraseña, haga clic en el enlace.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Si no solicitó este cambio, ignore este mensaje.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-miniatura-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] contiene un caracter no válido: [_2]', # Translate - New | |
| + 'Email address is required.' => 'El correo electrónico es obligatorio.', # Translate - New | |
| + 'User not found' => 'Usuario no encontrado', # Translate - New | |
| + 'Password reset token not found' => 'Token para el reinicio de la contraseña no encontrado', # Translate - New | |
| + 'Email address not found' => 'Dirección de correo no encontrada', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Expiró su solicitud de cambio de contraseña.', # Translate - New | |
| + 'Invalid password reset request' => 'Solicitud de reinicio de contraseña no válida', # Translate - New | |
| + 'Please confirm your new password' => 'Por favor, confirme su nueva contraseña', # Translate - New | |
| + 'Password do not match' => 'La contraseña no coincide', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Parámetro [_1] no válido', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Debe especificarse el parámetro Blog, BlogID o Template.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Error guardando registro [_1] # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'El correo no es único. Por favor, introduzca el usuario.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Se ha enviado a su dirección de correo ([_1]) un correo con el enlace para reiniciar la contraseña', # Translate - New | |
| + 'Choose New Password' => 'Seleccione la nueva contraseña', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Debe indicar la ruta local de archivos.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Debe indicar una URL de archivos válida.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Debe indicar una ruta local de archivos válida.', # Translate - New | |
| + | |
| ); | |
| ## New words: 190 | |
| diff --git a/lib/MT/L10N/es.pm b/lib/MT/L10N/es.pm | |
| index 8a8f1df..48d9f1b 100644 | |
| --- a/lib/MT/L10N/es.pm | |
| +++ b/lib/MT/L10N/es.pm | |
| @@ -5228,6 +5228,28 @@ Búsqueda base: [_2]", | |
| 'Upgrade to Feeds.App' => 'ActualÃcese a Feeds.App', | |
| 'Create a Feed Widget' => 'Crear un widget de fuente', | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Se ha recibido una petición para cambiar su contraseña de Movable Type. Para completar el proceso y seleccionar una nueva contraseña, haga clic en el enlace.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Si no solicitó este cambio, ignore este mensaje.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-miniatura-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] contiene un caracter no válido: [_2]', # Translate - New | |
| + 'Email address is required.' => 'El correo electrónico es obligatorio.', # Translate - New | |
| + 'User not found' => 'Usuario no encontrado', # Translate - New | |
| + 'Password reset token not found' => 'Token para el reinicio de la contraseña no encontrado', # Translate - New | |
| + 'Email address not found' => 'Dirección de correo no encontrada', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Expiró su solicitud de cambio de contraseña.', # Translate - New | |
| + 'Invalid password reset request' => 'Solicitud de reinicio de contraseña no válida', # Translate - New | |
| + 'Please confirm your new password' => 'Por favor, confirme su nueva contraseña', # Translate - New | |
| + 'Password do not match' => 'La contraseña no coincide', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Parámetro [_1] no válido', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Debe especificarse el parámetro Blog, BlogID o Template.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Error guardando registro [_1] # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'El correo no es único. Por favor, introduzca el usuario.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Se ha enviado a su dirección de correo ([_1]) un correo con el enlace para reiniciar la contraseña', # Translate - New | |
| + 'Choose New Password' => 'Seleccione la nueva contraseña', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Debe indicar la ruta local de archivos.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Debe indicar una URL de archivos válida.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Debe indicar una ruta local de archivos válida.', # Translate - New | |
| + | |
| ); | |
| ## New words: 190 | |
| diff --git a/lib/MT/L10N/fr-iso-8859-1.pm b/lib/MT/L10N/fr-iso-8859-1.pm | |
| index 2b0c055..a6e0a3f 100644 | |
| --- a/lib/MT/L10N/fr-iso-8859-1.pm | |
| +++ b/lib/MT/L10N/fr-iso-8859-1.pm | |
| @@ -5229,6 +5229,33 @@ Base de recherche : [_2]", | |
| 'Upgrade to Feeds.App' => 'Mise à jour Feeds.App', | |
| 'Create a Feed Widget' => 'Créer un widget à partir d\'un flux', | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Une requête a été faite pour changer votre mot de passe dans Movable Type. Pour terminer cliquez sur le lien ci-dessous pour choisir un nouveau mot de passe.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Si vous n\'avez pas demandé ce changement, vous pouvez ignorer cet email.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] contient un caractère invalide : [_2]', # Translate - New | |
| + 'Email address is required.' => 'Adresse email obligatoire', # Translate - New | |
| + 'User not found' => 'Utilisateur introuvable', # Translate - New | |
| + 'Password reset token not found' => 'Token de remise à zéro du mot de passe introuvable', # Translate - New | |
| + 'Email address not found' => 'Adresse email introuvable', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Votre demande de modification de mot de passe a expirée.', # Translate - New | |
| + 'Invalid password reset request' => 'Requête de modification de mot de passe invalide', # Translate - New | |
| + 'Please confirm your new password' => 'Merci de confirmer votre nouveau mot de passe', # Translate - New | |
| + 'Password do not match' => 'Le mot de passe ne correspond pas', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Paramètre [_1] invalide', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Les paramètres Blog, BlogID ou Template doivent être spécifiés.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Erreur en enregistrant l\'enregistrement [_1] # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Une adresse email n\'est pas unique. Merci de saisir votre nom de membre.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Un email contenant un lien pour réinitialiser votre mot de passe a été envoyé à votre adresse email ([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Choisissez un nouveau mot de passe', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Vous devez renseigner Local Archive Path.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Vous devez renseigner une Archive URL valide.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Vous devez renseigner un Local Archive Path valide.', # Translate - New | |
| + 'Passwords do not match' => 'Les mots de passe ne correspondent pas', # Translate - New | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Réinitialisation du mot de passe pour l\'utilisateur \'[_1]\' (utilisateur #[_2]) a réussi. Lien envoyé à l\'adresse suivante : [_3]', # Translate - New | |
| + 'Updating password recover email template...' => 'Template de réinitialisation du mot de passe en cours de mise à jour...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'L\'adresse email fournie n\'est pas unique. Merci de saisir votre nom d\'utilisateur.', # Translate - New | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'Vous êtes sur le point d\'envoyer des emails pour permettre aux utilisateurs sélectionnés de réinitialiser leurs mots de passe. Voulez-vous continuer ?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Un lien de réinitialisation de mot de passe envoyé à [_3] pour utilisateur \'[_1]\' (utilisateur #[_2]).', | |
| ); | |
| ## New words: 190 | |
| diff --git a/lib/MT/L10N/fr.pm b/lib/MT/L10N/fr.pm | |
| index e8c9b4f..520015f 100644 | |
| --- a/lib/MT/L10N/fr.pm | |
| +++ b/lib/MT/L10N/fr.pm | |
| @@ -5229,6 +5229,33 @@ Base de recherche : [_2]", | |
| 'Upgrade to Feeds.App' => 'Mise à jour Feeds.App', | |
| 'Create a Feed Widget' => 'Créer un widget à partir d\'un flux', | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Une requête a été faite pour changer votre mot de passe dans Movable Type. Pour terminer cliquez sur le lien ci-dessous pour choisir un nouveau mot de passe.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Si vous n\'avez pas demandé ce changement, vous pouvez ignorer cet email.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] contient un caractère invalide : [_2]', # Translate - New | |
| + 'Email address is required.' => 'Adresse email obligatoire', # Translate - New | |
| + 'User not found' => 'Utilisateur introuvable', # Translate - New | |
| + 'Password reset token not found' => 'Token de remise à zéro du mot de passe introuvable', # Translate - New | |
| + 'Email address not found' => 'Adresse email introuvable', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Votre demande de modification de mot de passe a expirée.', # Translate - New | |
| + 'Invalid password reset request' => 'Requête de modification de mot de passe invalide', # Translate - New | |
| + 'Please confirm your new password' => 'Merci de confirmer votre nouveau mot de passe', # Translate - New | |
| + 'Password do not match' => 'Le mot de passe ne correspond pas', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Paramètre [_1] invalide', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Les paramètres Blog, BlogID ou Template doivent être spécifiés.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Erreur en enregistrant l\'enregistrement [_1] # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Une adresse email n\'est pas unique. Merci de saisir votre nom de membre.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Un email contenant un lien pour réinitialiser votre mot de passe a été envoyé à votre adresse email ([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Choisissez un nouveau mot de passe', # Translate - New | |
| + 'You must set Local Archive Path.' => 'Vous devez renseigner Local Archive Path.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'Vous devez renseigner une Archive URL valide.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'Vous devez renseigner un Local Archive Path valide.', # Translate - New | |
| + 'Passwords do not match' => 'Les mots de passe ne correspondent pas', # Translate - New | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Réinitialisation du mot de passe pour l\'utilisateur \'[_1]\' (utilisateur #[_2]) a réussi. Lien envoyé à l\'adresse suivante : [_3]', # Translate - New | |
| + 'Updating password recover email template...' => 'Template de réinitialisation du mot de passe en cours de mise à jour...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'L\'adresse email fournie n\'est pas unique. Merci de saisir votre nom d\'utilisateur.', # Translate - New | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'Vous êtes sur le point d\'envoyer des emails pour permettre aux utilisateurs sélectionnés de réinitialiser leurs mots de passe. Voulez-vous continuer ?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Un lien de réinitialisation de mot de passe envoyé à [_3] pour utilisateur \'[_1]\' (utilisateur #[_2]).', | |
| ); | |
| ## New words: 190 | |
| diff --git a/lib/MT/L10N/ja.pm b/lib/MT/L10N/ja.pm | |
| index 66c1f99..2985ee3 100644 | |
| --- a/lib/MT/L10N/ja.pm | |
| +++ b/lib/MT/L10N/ja.pm | |
| @@ -3,7 +3,7 @@ | |
| # For more information, consult your Movable Type license. | |
| # | |
| # | |
| -# $Id: ja.pm 3076 2008-09-30 02:49:19Z fumiakiy $ | |
| +# $Id: ja.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::L10N::ja; | |
| use strict; | |
| @@ -323,6 +323,8 @@ use vars qw( @ISA %Lexicon ); | |
| '_USAGE_FORGOT_PASSWORD_1' => 'パスワードをå†è¨å®šã—ã¾ã—ãŸã€‚æ–°ã—ã„パスワードを通知ã—ã¾ã™ã€‚', | |
| '_USAGE_FORGOT_PASSWORD_2' => '以下ã®URLã‹ã‚‰ã€æ–°ã—ã„パスワードを使ã£ã¦Movable Typeã«ãƒã‚°ã‚¤ãƒ³ã—ã€ã™ãã«ãƒ‘スワードを変更ã—ã¦ãã ã•ã„。', | |
| 'Mail Footer' => 'メールフッター', | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'パスワードをリセットã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚以下ã®ãƒªãƒ³ã‚¯ã‚’クリックã—ã¦ã€æ–°ã—ã„パスワードをè¨å®šã—ã¦ãã ã•ã„。', | |
| + 'If you did not request this change, you can safely ignore this email.' => 'ã“ã®ãƒ¡ãƒ¼ãƒ«ã«å¿ƒå½“ãŸã‚ŠãŒãªã„ã¨ãã¯ã€ä½•ã‚‚ã›ãšã«ç„¡è¦–ã—ã¦ãã ã•ã„。', | |
| ## default_templates/main_index.mtml | |
| @@ -890,6 +892,15 @@ use vars qw( @ISA %Lexicon ); | |
| ## lib/MT/CMS/Tools.pm | |
| 'Password Recovery' => 'パスワードã®å†è¨å®š', | |
| + 'Email Address is required for password recovery.' => 'メールアドレスãŒå¿…è¦ã§ã™ã€‚', | |
| + 'User not found' => 'ユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚', | |
| + 'Error sending mail ([_1]); please fix the problem, then try again to recover your password.' => 'メールをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚å•題を解決ã—ã¦ã‹ã‚‰å†åº¦ãƒ‘スワードã®å†è¨å®šã‚’行ã£ã¦ãã ã•ã„: [_1]', | |
| + 'Password reset token not found' => 'パスワードをリセットã™ã‚‹ãŸã‚ã®ãƒˆãƒ¼ã‚¯ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚', | |
| + 'Email address not found' => 'メールアドレスãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚', | |
| + 'Your request to change your password has expired.' => 'パスワードã®ãƒªã‚»ãƒƒãƒˆã‚’å§‹ã‚ã¦ã‹ã‚‰æ±ºã‚ã‚‰ã‚ŒãŸæ™‚間を経éŽã—ã¦ã—ã¾ã„ã¾ã—ãŸã€‚', | |
| + 'Invalid password reset request' => '䏿£ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã™ã€‚', | |
| + 'Please confirm your new password' => 'æ–°ã—ã„パスワードを確èªã—ã¦ãã ã•ã„。', | |
| + 'Passwords do not match' => 'パスワードãŒä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“。', | |
| 'That action ([_1]) is apparently not implemented!' => 'アクション([_1])ãŒå®Ÿè£…ã•れã¦ã„ã¾ã›ã‚“。', | |
| 'General Settings' => '全般', | |
| 'Invalid password recovery attempt; can\'t recover password in this configuration' => 'パスワードã®å†è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã“ã®æ§‹æˆã§ã¯å†è¨å®šã¯ã§ãã¾ã›ã‚“。', | |
| @@ -928,7 +939,7 @@ use vars qw( @ISA %Lexicon ); | |
| 'User has not set pasword hint; cannot recover password' => 'パスワードå†è¨å®šç”¨ã®ãƒ•レーズãŒè¨å®šã•れã¦ã„ãªã„ãŸã‚ã€å†è¨å®šã§ãã¾ã›ã‚“。', | |
| 'Invalid attempt to recover password (used hint \'[_1]\')' => 'パスワードã®å†è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸ(フレーズ: [_1])。', | |
| 'User does not have email address' => 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒã‚りã¾ã›ã‚“。', | |
| - 'Password was reset for user \'[_1]\' (user #[_2]). Password was sent to the following address: [_3]' => 'ユーザー\'[_1]\'(ID:[_2])ã®ãƒ‘スワードãŒãƒªã‚»ãƒƒãƒˆã•れã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹([_3])ã‚ã¦ã«é€šçŸ¥ã•れã¾ã—ãŸã€‚', | |
| + 'A password reset link has been sent to [_3] for user \'[_1]\' (user #[_2]).' => 'パスワードå†è¨å®šç”¨ã®ãƒªãƒ³ã‚¯ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼\'[_1]\'(ID:[_2])ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹([_3])ã‚ã¦ã«é€šçŸ¥ã•れã¾ã—ãŸã€‚', | |
| 'Error sending mail ([_1]); please fix the problem, then try again to recover your password.' => 'メールをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚å•題を解決ã—ã¦ã‹ã‚‰å†åº¦ãƒ‘スワードã®å†è¨å®šã‚’行ã£ã¦ãã ã•ã„: [_1]', | |
| 'Some objects were not restored because their parent objects were not restored. Detailed information is in the <a href="javascript:void(0);" onclick="closeDialog(\'[_1]\');">activity log</a>.' => '親ã¨ãªã‚‹ã‚ªãƒ–ジェクトãŒãªã„ãŸã‚復元ã§ããªã‹ã£ãŸã‚ªãƒ–ジェクトãŒã‚りã¾ã™ã€‚詳細ã¯<a href="javascript:void(0)" onclick="closeDialog(\'[_1]\')">ãƒã‚°</a>ã‚’å‚ç…§ã—ã¦ãã ã•ã„。', | |
| '[_1] is not a directory.' => '[_1]ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚りã¾ã›ã‚“。', | |
| @@ -1684,6 +1695,7 @@ use vars qw( @ISA %Lexicon ); | |
| 'Replacing file formats to use CategoryLabel tag...' => 'ファイルフォーマットをMTCategoryLabelã«å¤‰æ›ã—ã¦ã„ã¾ã™...', | |
| 'Assigning all permissions to blog administrator...' => 'ブãƒã‚°ç®¡ç†è€…ã«æ¨©é™ã‚’è¨å®šã—ã¦ã„ã¾ã™...', | |
| 'Recover permissions of system administrators...' => 'システム管ç†è€…ã®æ¨©é™ã‚’復元ã—ã¦ã„ã¾ã™...', | |
| + 'Updating password recover email template...' => 'パスワードã®å†è¨å®šï¼ˆãƒ¡ãƒ¼ãƒ« テンプレート)を更新ã—ã¦ã„ã¾ã™...', | |
| ## lib/MT/PluginData.pm | |
| 'Plugin Data' => 'プラグインデータ', | |
| @@ -1800,7 +1812,7 @@ use vars qw( @ISA %Lexicon ); | |
| 'Invalid category ID \'[_1]\'' => 'Invalid category ID \'[_1]\'', | |
| ## lib/MT/App/CMS.pm | |
| - '_WARNING_PASSWORD_RESET_MULTI' => 'é¸æŠžã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ‘スワードをå†è¨å®šã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚パスワードã¯ãƒ©ãƒ³ãƒ€ãƒ ã«ç”Ÿæˆã•れã€ç›´æŽ¥ãれãžã‚Œã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ã‚‰ã‚Œã¾ã™ã€‚ | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'é¸æŠžã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ‘スワードをå†è¨å®šã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚パスワードå†è¨å®šç”¨ã®ãƒªãƒ³ã‚¯ãŒç›´æŽ¥ãれãžã‚Œã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«é€ã‚‰ã‚Œã¾ã™ã€‚ | |
| 実行ã—ã¾ã™ã‹?', | |
| '_WARNING_DELETE_USER_EUM' => "ユーザーを削除ã™ã‚‹ã¨ã€ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ›¸ã„ãŸãƒ–ãƒã‚°è¨˜äº‹ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ä¸æ˜Žã¨ãªã‚Šã€å¾Œã§å–り消ã›ã¾ã›ã‚“。ユーザーを無効化ã—ã¦ã‚·ã‚¹ãƒ†ãƒ ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„よã†ã«ã—ãŸã„å ´åˆã¯ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’無効化ã—ã¦ãã ã•ã„。本当ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ\nLDAPディレクトリ上ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã¾ã 残ã£ã¦ã„ã‚‹å ´åˆã€ã„ã¤ã§ã‚‚å†ä½œæˆã•れã¦ã—ã¾ã„ã¾ã™ã€‚", | |
| @@ -1927,6 +1939,7 @@ use vars qw( @ISA %Lexicon ); | |
| 'This module is required for cookie authentication.' => 'cookie èªè¨¼ã®ãŸã‚ã«å¿…è¦ã§ã™ã€‚', | |
| ## lib/MT/App/Search.pm | |
| + 'Invalid [_1] parameter.' => '[_1]パラメータãŒä¸æ£ã§ã™ã€‚', | |
| 'Invalid type: [_1]' => '䏿£ãªtypeã§ã™: [_1]', | |
| 'Search: failed storing results in cache. [_1] is not available: [_2]' => 'çµæžœã‚’ã‚ャッシュã§ãã¾ã›ã‚“ã§ã—ãŸã€‚[_1]を利用ã§ãã¾ã›ã‚“: [_2]', | |
| 'Invalid format: [_1]' => '䏿£ãªformatã§ã™: [_1]', | |
| @@ -3938,6 +3951,9 @@ use vars qw( @ISA %Lexicon ); | |
| 'This new publishing profile will update all of your templates.' => '公開プãƒãƒ•ァイルã®è¨å®šå†…容を使ã£ã¦ã€ã™ã¹ã¦ã®ãƒ†ãƒ³ãƒ—レートã®è¨å®šã‚’æ›´æ–°ã—ã¾ã™ã€‚', | |
| 'Are you sure you wish to continue?' => 'ç¶šã‘ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?', | |
| +## tmpl/cms/dialog/new_password.tmpl | |
| + 'Choose New Password' => 'æ–°ã—ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’é¸æŠž', | |
| + | |
| ## tmpl/cms/dialog/refresh_templates.tmpl | |
| 'Refresh Template Set' => 'テンプレートセットã®åˆæœŸåŒ–', | |
| 'Refresh [_1] template set' => 'テンプレートセット「[_1]ã€ã®åˆæœŸåŒ–', | |
| @@ -3973,10 +3989,13 @@ use vars qw( @ISA %Lexicon ); | |
| 'Remember these settings' => 'è¨å®šã‚’記憶', | |
| ## tmpl/cms/dialog/recover.tmpl | |
| + 'The email address provided is not unique. Please enter your username.' => 'åŒã˜ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æŒã£ã¦ã„るユーザーãŒã„ã¾ã™ã€‚ユーザーåを入力ã—ã¦ãã ã•ã„。', | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => '「[_1]ã€ã«ãƒ‘スワードをリセットã™ã‚‹ãŸã‚ã®ãƒªãƒ³ã‚¯ã‚’å«ã‚€ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚', | |
| 'Your password has been changed, and the new password has been sent to your email address ([_1]).' => 'パスワードを変更ã—ã¾ã—ãŸã€‚æ–°ã—ã„パスワードã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹([_1])ã«é€ä¿¡ã•れã¾ã™ã€‚', | |
| 'Recover (s)' => 'å†è¨å®š (s)', | |
| 'Recover' => 'å†è¨å®š', | |
| 'Go Back (x)' => '戻る (x)', | |
| + 'Go Back' => '戻る', | |
| ## tmpl/cms/dialog/create_association.tmpl | |
| 'No roles exist in this installation. [_1]Create a role</a>' => 'ãƒãƒ¼ãƒ«ãŒã‚りã¾ã›ã‚“。[_1]ãƒãƒ¼ãƒ«ã‚’作æˆã™ã‚‹</a>', | |
| diff --git a/lib/MT/L10N/nl-iso-8859-1.pm b/lib/MT/L10N/nl-iso-8859-1.pm | |
| index 2cffd5d..f4f329c 100644 | |
| --- a/lib/MT/L10N/nl-iso-8859-1.pm | |
| +++ b/lib/MT/L10N/nl-iso-8859-1.pm | |
| @@ -5227,7 +5227,33 @@ use vars qw( @ISA %Lexicon ); | |
| 'Feeds.App Lite helps you republish feeds on your blogs. Want to do more with feeds in Movable Type?' => 'Feeds.App Lite helpt u om feeds te herpubliceren op uw weblogs. Wenst u meer te doen met feeds in Movable Type?', | |
| 'Upgrade to Feeds.App' => 'Upgraden naar Feeds.App', | |
| 'Create a Feed Widget' => 'Feedwidget aanmaken', | |
| - | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Er is een verzoek ingediend om uw wachtwoord aan te passen in Movable Type. Gelieve dit te bevestigen door op onderstaande link te klikken om een nieuw wachtwoord te kiezen.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Als u deze wijziging niet heeft aangevraagd, kunt u deze e-mail gerust negeren.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] bevat een ongeldig karakter: [_2]', # Translate - New | |
| + 'Email address is required.' => 'E-mail adres is vereist', # Translate - New | |
| + 'User not found' => 'Gebruiker niet gevonden', # Translate - New | |
| + 'Password reset token not found' => 'Wachtwoord reset token niet gevonden', # Translate - New | |
| + 'Email address not found' => 'E-mail adres niet gevonden', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Uw verzoek om uw wachtwoord aan te passen is verlopen', # Translate - New | |
| + 'Invalid password reset request' => 'Ongeldig verzoek om wachtwoord te veranderen', # Translate - New | |
| + 'Please confirm your new password' => 'Gelieve uw nieuwe wachtwoord te bevestigen', # Translate - New | |
| + 'Password do not match' => 'Wachtwoorden komen niet overeen', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Ongeldige [_1] parameter', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Blog, BlogID of Template parameter moet opgegeven zijn.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Fout bij opslaan [_1] record # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Een e-mail is niet uniek. Gelieve uw gebruikersnaam op te geven.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Er is een e-mail met een link om uw wachtwoord aan te passen doorgestuurd naar uw e-mail adres ([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Nieuw wachtwoord kiezen', # Translate - New | |
| + 'You must set Local Archive Path.' => 'U moet een lokaal archiefpad instellen.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'U moet een geldige archief URL instellen.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'U moet een geldig lokaal archiefpad instellen.', # Translate - New | |
| + 'Passwords do not match' => 'Wachtwoorden komen niet overeen', # Translate - New | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Wachtwoord reset voor gebruiker \'[_1]\' (gebruiker #[_2]) geslaagd. Reset link verstuurd naar volgend adres: [_3]', # Translate - New | |
| + 'Updating password recover email template...' => 'Sjabloon wachtwoordrecuperatie e-mail wordt bijgewerkt...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Het opgegeven e-mail adres is niet uniek. Gelieve uw gebruikersnaam op te geven.', # Translate - New | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'U staat op het punt e-mails te versturen waarmee de geselecteerde gebruikers hun wachtwoord kunnen aanpassen. Bent u zeker?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Een link om het wachtwoord opnieuw in te stellen is verzonden naar [_3] voor gebruiker \'[_1]\' (gebruiker #[_2]).', | |
| ); | |
| ## New words: 208 | |
| diff --git a/lib/MT/L10N/nl.pm b/lib/MT/L10N/nl.pm | |
| index 5bccae8..c551642 100644 | |
| --- a/lib/MT/L10N/nl.pm | |
| +++ b/lib/MT/L10N/nl.pm | |
| @@ -5227,7 +5227,33 @@ use vars qw( @ISA %Lexicon ); | |
| 'Feeds.App Lite helps you republish feeds on your blogs. Want to do more with feeds in Movable Type?' => 'Feeds.App Lite helpt u om feeds te herpubliceren op uw weblogs. Wenst u meer te doen met feeds in Movable Type?', | |
| 'Upgrade to Feeds.App' => 'Upgraden naar Feeds.App', | |
| 'Create a Feed Widget' => 'Feedwidget aanmaken', | |
| - | |
| + 'A request has been made to change your password in Movable Type. To complete this process click on the link below to select a new password.' => 'Er is een verzoek ingediend om uw wachtwoord aan te passen in Movable Type. Gelieve dit te bevestigen door op onderstaande link te klikken om een nieuw wachtwoord te kiezen.', # Translate - New | |
| + 'If you did not request this change, you can safely ignore this email.' => 'Als u deze wijziging niet heeft aangevraagd, kunt u deze e-mail gerust negeren.', # Translate - New | |
| + '%f-thumb-%wx%h-%i%x' => '%f-thumb-%wx%h-%i%x', # Translate - New | |
| + '[_1] contains an invalid character: [_2]' => '[_1] bevat een ongeldig karakter: [_2]', # Translate - New | |
| + 'Email address is required.' => 'E-mail adres is vereist', # Translate - New | |
| + 'User not found' => 'Gebruiker niet gevonden', # Translate - New | |
| + 'Password reset token not found' => 'Wachtwoord reset token niet gevonden', # Translate - New | |
| + 'Email address not found' => 'E-mail adres niet gevonden', # Translate - New | |
| + 'Your request to change your password has expired.' => 'Uw verzoek om uw wachtwoord aan te passen is verlopen', # Translate - New | |
| + 'Invalid password reset request' => 'Ongeldig verzoek om wachtwoord te veranderen', # Translate - New | |
| + 'Please confirm your new password' => 'Gelieve uw nieuwe wachtwoord te bevestigen', # Translate - New | |
| + 'Password do not match' => 'Wachtwoorden komen niet overeen', # Translate - New | |
| + 'Invalid [_1] parameter.' => 'Ongeldige [_1] parameter', # Translate - New | |
| + 'Blog, BlogID or Template param must be specified.' => 'Blog, BlogID of Template parameter moet opgegeven zijn.', # Translate - New | |
| + 'Error saving [_1] record # [_3]: [_2]...' => 'Fout bij opslaan [_1] record # [_3]: [_2]...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Een e-mail is niet uniek. Gelieve uw gebruikersnaam op te geven.', # Translate - New | |
| + 'An email with a link to reset your password has been sent to your email address ([_1]).' => 'Er is een e-mail met een link om uw wachtwoord aan te passen doorgestuurd naar uw e-mail adres ([_1]).', # Translate - New | |
| + 'Choose New Password' => 'Nieuw wachtwoord kiezen', # Translate - New | |
| + 'You must set Local Archive Path.' => 'U moet een lokaal archiefpad instellen.', # Translate - New | |
| + 'You must set a valid Archive URL.' => 'U moet een geldige archief URL instellen.', # Translate - New | |
| + 'You must set a valid Local Archive Path.' => 'U moet een geldig lokaal archiefpad instellen.', # Translate - New | |
| + 'Passwords do not match' => 'Wachtwoorden komen niet overeen', # Translate - New | |
| + 'Password reset for user \'[_1]\' (user #[_2]) was successful. Recovery link sent to the following address: [_3]' => 'Wachtwoord reset voor gebruiker \'[_1]\' (gebruiker #[_2]) geslaagd. Reset link verstuurd naar volgend adres: [_3]', # Translate - New | |
| + 'Updating password recover email template...' => 'Sjabloon wachtwoordrecuperatie e-mail wordt bijgewerkt...', # Translate - New | |
| + 'The email address provided is not unique. Please enter your username.' => 'Het opgegeven e-mail adres is niet uniek. Gelieve uw gebruikersnaam op te geven.', # Translate - New | |
| + '_WARNING_PASSWORD_RESET_MULTI' => 'U staat op het punt e-mails te versturen waarmee de geselecteerde gebruikers hun wachtwoord kunnen aanpassen. Bent u zeker?', | |
| + "A password reset link has been sent to [_3] for user '[_1]' (user #[_2])." => 'Een link om het wachtwoord opnieuw in te stellen is verzonden naar [_3] voor gebruiker \'[_1]\' (gebruiker #[_2]).', | |
| ); | |
| ## New words: 208 | |
| diff --git a/lib/MT/Sanitize.pm b/lib/MT/Sanitize.pm | |
| index 328a242..1e82abb 100644 | |
| --- a/lib/MT/Sanitize.pm | |
| +++ b/lib/MT/Sanitize.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: Sanitize.pm 1174 2008-01-08 21:02:50Z bchoate $ | |
| +# $Id: Sanitize.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| # Original Copyright (c) 2002 Brad Choate | |
| diff --git a/lib/MT/Template/ContextHandlers.pm b/lib/MT/Template/ContextHandlers.pm | |
| index 0440029..bf35731 100644 | |
| --- a/lib/MT/Template/ContextHandlers.pm | |
| +++ b/lib/MT/Template/ContextHandlers.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: ContextHandlers.pm 3072 2008-09-26 02:10:48Z bchoate $ | |
| +# $Id: ContextHandlers.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::Template::Context; | |
| @@ -12809,10 +12809,11 @@ sub _hdlr_archive_link { | |
| my($ctx, $args) = @_; | |
| my $at = $args->{type} || $args->{archive_type}; | |
| - $at ||= $ctx->{current_archive_type} || $ctx->{archive_type}; | |
| - | |
| - return _hdlr_category_archive(@_) if ($at && ('Category' eq $at));; | |
| + return _hdlr_category_archive(@_) | |
| + if ($at && ('Category' eq $at)) || | |
| + ($ctx->{current_archive_type} && 'Category' eq $ctx->{current_archive_type}); | |
| + $at ||= $ctx->{current_archive_type} || $ctx->{archive_type}; | |
| my $archiver = MT->publisher->archiver($at); | |
| return '' unless $archiver; | |
| diff --git a/lib/MT/Upgrade.pm b/lib/MT/Upgrade.pm | |
| index 99549c0..31989d6 100644 | |
| --- a/lib/MT/Upgrade.pm | |
| +++ b/lib/MT/Upgrade.pm | |
| @@ -978,6 +978,10 @@ sub core_upgrade_functions { | |
| }, | |
| }, | |
| }, | |
| + 'core_update_password_recover_template' => { | |
| + version_limit => 4.0068, | |
| + code => \&core_update_password_recover_template, | |
| + }, | |
| }; | |
| } | |
| @@ -1298,6 +1302,31 @@ sub core_populate_author_auth_type { | |
| } | |
| } | |
| +sub core_update_password_recover_template { | |
| + my $self = shift; | |
| + $self->progress($self->translate_escape("Updating password recover email template...")); | |
| + require MT::DefaultTemplates; | |
| + my $recover_tmpl = MT::DefaultTemplates->load ({ identifier => 'recover-password' }); | |
| + my $recover_text = MT->instance->translate_templatized($recover_tmpl->{text}); | |
| + require MT::Template; | |
| + my @tmpls = MT::Template->load ({ type => 'email', identifier => 'recover-password' }); | |
| + for my $tmpl (@tmpls) { | |
| + my $backup = $tmpl->clone; | |
| + delete $backup->{column_values} | |
| + ->{id}; # make sure we don't overwrite original | |
| + delete $backup->{changed_cols}->{id}; | |
| + $backup->name( | |
| + $backup->name . ' (Backup during upgrade to version 4.24)' ); | |
| + $backup->type('backup'); | |
| + $backup->identifier(undef); | |
| + $backup->save; | |
| + | |
| + $tmpl->text ($recover_text); | |
| + $tmpl->save; | |
| + } | |
| +} | |
| + | |
| + | |
| sub migrate_nofollow_settings { | |
| my $self = shift; | |
| diff --git a/lib/MT/Util.pm b/lib/MT/Util.pm | |
| index d32d141..4ba7a97 100644 | |
| --- a/lib/MT/Util.pm | |
| +++ b/lib/MT/Util.pm | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: Util.pm 2807 2008-07-17 02:34:42Z fumiakiy $ | |
| +# $Id: Util.pm 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| package MT::Util; | |
| diff --git a/lib/MT/Worker/Sync.pm b/lib/MT/Worker/Sync.pm | |
| index 83b5fb1..b5d2fab 100644 | |
| --- a/lib/MT/Worker/Sync.pm | |
| +++ b/lib/MT/Worker/Sync.pm | |
| @@ -13,8 +13,6 @@ use TheSchwartz::Job; | |
| use MT::FileInfo; | |
| use MT::Util qw( log_time ); | |
| -use Data::Dumper; | |
| - | |
| sub work { | |
| my $class = shift; | |
| my TheSchwartz::Job $job = shift; | |
| @@ -47,7 +45,7 @@ sub work { | |
| my $fi_id = $job->uniqkey; | |
| my $fi = MT::FileInfo->load($fi_id); | |
| - if ($fi && (-f $fi->file_path || -l $fi->file_path)) { | |
| + if ($fi && (-f $fi->file_path)) { | |
| ##MT::TheSchwartz->debug("Syncing: " . RebuildQueue::Daemon::_summary($fi)); | |
| push @files, $fi->file_path; | |
| unless ($fi->template_id) { | |
| @@ -59,7 +57,7 @@ sub work { | |
| # Don't know where the FileInfo record went. Oh well. | |
| $job->completed(); | |
| } else { | |
| - unless (-f $fi->file_path || -l $fi->file_path) { | |
| + unless (-f $fi->file_path) { | |
| MT::TheSchwartz->debug("Warning: couldn't locate file: " . $fi->file_path); | |
| $job->permanent_failure("Couldn't locate file: " . $fi->file_path); | |
| } | |
| @@ -75,7 +73,6 @@ sub work { | |
| open FOUT, ">$file"; | |
| print FOUT join("\n", @files) . "\n"; | |
| close FOUT; | |
| - | |
| foreach my $target (@targets) { | |
| my $cmd = "$rsync_cmd $rsync_opt --files-from=\"$file\" / \"$target\""; | |
| MT::TheSchwartz->debug("Syncing files to $target..."); | |
| @@ -101,7 +98,7 @@ sub work { | |
| } else { | |
| my $elapsed = sprintf("done! (%0.02fs)", tv_interval($start)); | |
| $mt->log({ | |
| - message => $mt->translate('Synchronizing Files Done'), | |
| + message => $mt->translate('Synchrnizing Files Done'), | |
| metadata => log_time() . ' ' | |
| . $mt->translate('Done syncing files to [_1] ([_2])', $target, $elapsed), | |
| category => "sync", | |
| diff --git a/lib/MT/XMLRPCServer.pm b/lib/MT/XMLRPCServer.pm | |
| index d627f5c..b71b8e8 100644 | |
| --- a/lib/MT/XMLRPCServer.pm | |
| +++ b/lib/MT/XMLRPCServer.pm | |
| @@ -620,11 +620,6 @@ sub _get_entries { | |
| unpack 'A4A2A2A2A2A2', $entry->authored_on; | |
| my $row = { dateCreated => SOAP::Data->type(dateTime => $co), | |
| userid => SOAP::Data->type(string => $entry->author_id) }; | |
| - | |
| - $row->{ars_status} = SOAP::Data->type(string => $entry->status); | |
| - $row->{ars_author_name} = SOAP::Data->type(string => encode_text($entry->author->nickname, undef, 'utf-8')); | |
| - $row->{ars_category} = ($entry->category) ? SOAP::Data->type(string => $entry->category->label) : ''; | |
| - | |
| $row->{ $param{page} ? 'page_id' : 'postid' } = | |
| SOAP::Data->type(string => $entry->id); | |
| if ($class eq 'blogger') { | |
| diff --git a/mt-check.cgi b/mt-check.cgi | |
| index 97d1660..f5bbe3c 100755 | |
| --- a/mt-check.cgi | |
| +++ b/mt-check.cgi | |
| @@ -54,7 +54,7 @@ use CGI; | |
| my $cgi = new CGI; | |
| my $view = $cgi->param("view"); | |
| my $version = $cgi->param("version"); | |
| -$version ||= '4.23-en'; | |
| +$version ||= '4.24-en'; | |
| my ($mt, $LH); | |
| my $lang = 'en_US'; | |
| diff --git a/mt-static/css/main.css b/mt-static/css/main.css | |
| index 47be396..b5e389a 100755 | |
| --- a/mt-static/css/main.css | |
| +++ b/mt-static/css/main.css | |
| @@ -1,4 +1,4 @@ | |
| -/* Movable Type (r) (C) 2001-2008 Six Apart, Ltd. All Rights Reserved | |
| +/* Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved | |
| * This file is combined from multiple sources. Consult the source files for their | |
| * respective licenses and copyrights. | |
| */:link,:visited{text-decoration:none;}html,body,div, | |
| diff --git a/mt-static/css/simple.css b/mt-static/css/simple.css | |
| index 774d9d2..5ab318a 100755 | |
| --- a/mt-static/css/simple.css | |
| +++ b/mt-static/css/simple.css | |
| @@ -1,4 +1,4 @@ | |
| -/* Movable Type (r) (C) 2001-2008 Six Apart, Ltd. All Rights Reserved | |
| +/* Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved | |
| * This file is combined from multiple sources. Consult the source files for their | |
| * respective licenses and copyrights. | |
| */:link,:visited{text-decoration:none;}html,body,div, | |
| diff --git a/mt-static/js/mt_core_compact.js b/mt-static/js/mt_core_compact.js | |
| index 6a63d00..dace641 100755 | |
| --- a/mt-static/js/mt_core_compact.js | |
| +++ b/mt-static/js/mt_core_compact.js | |
| @@ -1,4 +1,4 @@ | |
| -/* Movable Type (r) (C) 2001-2008 Six Apart, Ltd. All Rights Reserved | |
| +/* Movable Type (r) (C) 2001-2009 Six Apart, Ltd. All Rights Reserved | |
| * This file is combined from multiple sources. Consult the source files for their | |
| * respective licenses and copyrights. | |
| */defined=function(x){return x!==undefined;};exists=function(x){return(x===undefined||x===null)?false:true;};truth=function(x){return(x&&x!="0")?true:false;};finite=function(x){return isFinite(x)?x:0;};finiteInt=function(x,b){return finite(parseInt(x,b));};finiteFloat=function(x){return finite(parseFloat(x));};max=function(){var a=arguments;var n=a[0];for(var i=1;i<a.length;i++) | |
| diff --git a/php/lib/archive_lib.php b/php/lib/archive_lib.php | |
| index 42f8828..f595541 100644 | |
| --- a/php/lib/archive_lib.php | |
| +++ b/php/lib/archive_lib.php | |
| @@ -3,7 +3,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: archive_lib.php 2304 2008-05-12 06:16:02Z takayama $ | |
| +# $Id: archive_lib.php 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| require_once("MTUtil.php"); | |
| diff --git a/php/lib/function.mtcommentauthorlink.php b/php/lib/function.mtcommentauthorlink.php | |
| index b342a6c..07f1917 100644 | |
| --- a/php/lib/function.mtcommentauthorlink.php | |
| +++ b/php/lib/function.mtcommentauthorlink.php | |
| @@ -3,7 +3,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: function.mtcommentauthorlink.php 2630 2008-06-23 10:30:58Z takayama $ | |
| +# $Id: function.mtcommentauthorlink.php 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| function smarty_function_mtcommentauthorlink($args, &$ctx) { | |
| global $mt; | |
| diff --git a/php/lib/function.mtentryauthorlink.php b/php/lib/function.mtentryauthorlink.php | |
| index b8b4de2..45e09c0 100644 | |
| --- a/php/lib/function.mtentryauthorlink.php | |
| +++ b/php/lib/function.mtentryauthorlink.php | |
| @@ -3,7 +3,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: function.mtentryauthorlink.php 1174 2008-01-08 21:02:50Z bchoate $ | |
| +# $Id: function.mtentryauthorlink.php 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| function smarty_function_mtentryauthorlink($args, &$ctx) { | |
| $entry = $ctx->stash('entry'); | |
| diff --git a/php/mt.php b/php/mt.php | |
| index 43194ef..810512a 100644 | |
| --- a/php/mt.php | |
| +++ b/php/mt.php | |
| @@ -5,9 +5,9 @@ | |
| # | |
| # $Id: mt.php.pre 2688 2008-07-03 00:38:58Z bchoate $ | |
| -define('VERSION', '4.23'); | |
| -define('VERSION_ID', '4.23-en'); | |
| -define('PRODUCT_VERSION', '4.23'); | |
| +define('VERSION', '4.24'); | |
| +define('VERSION_ID', '4.24-en'); | |
| +define('PRODUCT_VERSION', '4.24'); | |
| define('PRODUCT_NAME', 'Movable Type Pro'); | |
| global $Lexicon; | |
| diff --git a/plugins/Cloner/cloner.pl b/plugins/Cloner/cloner.pl | |
| index 1d8a58d..23e30ac 100755 | |
| --- a/plugins/Cloner/cloner.pl | |
| +++ b/plugins/Cloner/cloner.pl | |
| @@ -2,7 +2,7 @@ | |
| # This code cannot be redistributed without permission from www.sixapart.com. | |
| # For more information, consult your Movable Type license. | |
| # | |
| -# $Id: cloner.pl 1174 2008-01-08 21:02:50Z bchoate $ | |
| +# $Id: cloner.pl 3214 2008-12-03 05:22:10Z fumiakiy $ | |
| # Blog Cloner plugin for Movable Type | |
| # Author: Brad Choate, Six Apart (http://www.sixapart.com) | |
| diff --git a/tmpl/cms/dialog/recover.tmpl b/tmpl/cms/dialog/recover.tmpl | |
| index abb547e..064ecd9 100644 | |
| --- a/tmpl/cms/dialog/recover.tmpl | |
| +++ b/tmpl/cms/dialog/recover.tmpl | |
| @@ -1,19 +1,44 @@ | |
| <mt:setvarblock name="page_title"><__trans phrase="Password Recovery"></mt:setvarblock> | |
| <mt:setvar name="complete" value="1"> | |
| -<mt:include name="include/chromeless_header.tmpl"> | |
| +<mt:include name="cms/include/chromeless_header.tmpl"> | |
| +<mt:if name="error"> | |
| + <mtapp:statusmsg | |
| + id="error" | |
| + class="error"> | |
| + <mt:var name="error"> | |
| + </mtapp:statusmsg> | |
| +</mt:if> | |
| + | |
| +<mt:If name="not_unique_email"> | |
| + <mtapp:statusmsg | |
| + id="not-unique-email" | |
| + class="alert"> | |
| + <__trans phrase="The email address provided is not unique. Please enter your username."> | |
| + </mtapp:statusmsg> | |
| +</mt:if> | |
| <mt:if name="recovered"> | |
| -<p><__trans phrase="Your password has been changed, and the new password has been sent to your email address ([_1])." params="<mt:var name="email" escape="html">"></p> | |
| +<p><__trans phrase="An email with a link to reset your password has been sent to your email address ([_1]).", params="<mt:var name="email" escape="html">"></p> | |
| <div class="actions-bar"> | |
| <div class="actions-bar-inner pkg actions"> | |
| + <mt:If name="return_to"> | |
| + <a | |
| + href="<$mt:var name="return_to" escape="html" $>" | |
| + accesskey="x" | |
| + title="<__trans phrase="Go Back (x)">" | |
| + class="primary-button" | |
| + ><__trans phrase="Go Back"></a> | |
| + <mt:Else> | |
| <a | |
| - href="<$mt:var name="mt_url"$>" | |
| + href="<$mt:var name="script_url"$>" | |
| accesskey="s" | |
| title="<__trans phrase="Sign in to Movable Type (s)">" | |
| class="primary-button" | |
| ><__trans phrase="Sign in to Movable Type"></a> | |
| + </a> | |
| + </mt:If> | |
| </div> | |
| </div> | |
| @@ -21,21 +46,24 @@ | |
| <mt:else> | |
| <form method="post" action="<mt:var name="script_url">"> | |
| <input type="hidden" name="__mode" value="recover" /> | |
| + <input type="hidden" name="return_to" value="<mt:Var name="return_to" escape="html">" /> | |
| <fieldset> | |
| <mtapp:setting | |
| - id="name" | |
| - label="<__trans phrase="Username">" | |
| + id="email" | |
| + label="<__trans phrase="Email Address">" | |
| label_class="top-label"> | |
| - <input type="text" name="name" id="name" class="ti" /> | |
| + <input type="text" name="email" id="email" class="ti" value="<mt:var name="email">" /> | |
| </mtapp:setting> | |
| +<mt:If name="not_unique_email"> | |
| <mtapp:setting | |
| - id="hint" | |
| - label="<__trans phrase="Password recovery word/phrase">" | |
| + id="name" | |
| + label="<__trans phrase="Username">" | |
| label_class="top-label"> | |
| - <input type="text" name="hint" id="hint" class="ti" autocomplete="0" /> | |
| + <input type="text" name="name" id="name" class="ti" value="<mt:var name="name">" /> | |
| </mtapp:setting> | |
| +</mt:If> | |
| <div class="actions-bar"> | |
| <div class="actions-bar-inner pkg actions right"> | |
| @@ -58,5 +86,4 @@ | |
| </form> | |
| </mt:if> | |
| - | |
| -<mt:include name="include/chromeless_footer.tmpl"> | |
| +<mt:include name="cms/include/chromeless_footer.tmpl"> | |
| diff --git a/tmpl/comment/login.tmpl b/tmpl/comment/login.tmpl | |
| index 40e1423..1fac640 100644 | |
| --- a/tmpl/comment/login.tmpl | |
| +++ b/tmpl/comment/login.tmpl | |
| @@ -82,7 +82,7 @@ | |
| <input type="password" name="password" id="password" class="pw" /> | |
| </mtapp:setting> | |
| <mt:if name="can_recover_password"> | |
| - <div class="right"><a href="<mt:var name="mt_url">?__mode=start_recover"><__trans phrase="Forgot your password?"></a></div> | |
| + <div class="right"><a href="<mt:var name="script_url">?__mode=start_recover<mt:if name="return_url">&return_to=<mt:var name="return_url" escape="url"></mt:if>"><__trans phrase="Forgot your password?"></a></div> | |
| </mt:if> | |
| <p><label><__trans phrase="Remember me?"></label> <input type="checkbox" name="remember" value="1" accesskey="r" class="cb" /></p> | |
| <div class="actions-bar actions-bar-login"> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment