diff --git a/addons/ConfigAssistant.pack/config.yaml b/addons/ConfigAssistant.pack/config.yaml index 955c9cf14..d172a08c7 100644 --- a/addons/ConfigAssistant.pack/config.yaml +++ b/addons/ConfigAssistant.pack/config.yaml @@ -4,8 +4,8 @@ key: ConfigAssistant author_link: http://openmelody.org/ author_name: "Byrne Reese, Open Melody Software Group" description: This plugin provides a simple YAML based framework for creating plugin and theme configuration options. -version: 2.1.17 -static_version: 7 +version: 2.1.18 +static_version: 8 schema_version: 3 applications: diff --git a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Init.pm b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Init.pm index efce8fda1..932aa6943 100644 --- a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Init.pm +++ b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Init.pm @@ -359,15 +359,22 @@ sub load_tags { }; if ( $option->{'type'} eq 'checkbox' ) { $tags->{block}->{ $tag . 'Loop' } = sub { - $_[0]->stash( 'field', $opt ); - $_[0]->stash( 'plugin_ns', find_option_plugin($opt)->id ); - $_[0]->stash( 'scope', lc( $option->{scope} ) ); - runner( '_hdlr_field_array_loop', 'ConfigAssistant::Plugin', @_ ); + my $blog = $_[0]->stash('blog'); + my $bset = $blog->template_set; + $_[0]->stash( 'field', $bset . '_' . $opt ); + $_[0]->stash( 'plugin_ns', + find_theme_plugin($bset)->id ); + $_[0]->stash( 'scope', 'blog' ); + runner( '_hdlr_field_array_loop', + 'ConfigAssistant::Plugin', @_ ); }; $tags->{block}->{ $tag . 'Contains' } = sub { - $_[0]->stash( 'field', $opt ); - $_[0]->stash( 'plugin_ns', find_option_plugin($opt)->id ); - $_[0]->stash( 'scope', lc( $option->{scope} ) ); + my $blog = $_[0]->stash('blog'); + my $bset = $blog->template_set; + $_[0]->stash( 'field', $bset . '_' . $opt ); + $_[0]->stash( 'plugin_ns', + find_theme_plugin($bset)->id ); + $_[0]->stash( 'scope', 'blog' ); runner( '_hdlr_field_array_contains', 'ConfigAssistant::Plugin', @_ ); }; @@ -375,10 +382,12 @@ sub load_tags { } ## end if ( $option->{'type'}...) elsif ( $option->{'type'} eq 'file' ) { $tags->{block}->{ $tag . 'Asset' } = sub { - $_[0]->stash( 'field', $opt ); + my $blog = $_[0]->stash('blog'); + my $bset = $blog->template_set; + $_[0]->stash( 'field', $bset . '_' . $opt ); $_[0]->stash( 'plugin_ns', - find_option_plugin($opt)->id ); - $_[0]->stash( 'scope', lc( $option->{scope} ) ); + find_theme_plugin($bset)->id ); + $_[0]->stash( 'scope', 'blog' ); runner( '_hdlr_field_asset', 'ConfigAssistant::Plugin', @_ ); }; @@ -386,10 +395,12 @@ sub load_tags { } elsif ( $option->{'type'} eq 'link-group' ) { $tags->{block}->{ $tag . 'Links' } = sub { - $_[0]->stash( 'field', $opt ); + my $blog = $_[0]->stash('blog'); + my $bset = $blog->template_set; + $_[0]->stash( 'field', $bset . '_' . $opt ); $_[0]->stash( 'plugin_ns', - find_theme_plugin($opt)->id ); - $_[0]->stash( 'scope', lc( $option->{scope} ) ); + find_theme_plugin($bset)->id ); + $_[0]->stash( 'scope', 'blog' ); runner( '_hdlr_field_link_group', 'ConfigAssistant::Plugin', @_ ); }; @@ -404,10 +415,12 @@ sub load_tags { my $obj_class = substr( $t, 0, index( $t, '_list' ) ); $tags->{block}->{ $tag . $tag_type } = sub { $_[0]->stash( 'obj_class', $obj_class ); - $_[0]->stash( 'field', $opt ); + my $blog = $_[0]->stash('blog'); + my $bset = $blog->template_set; + $_[0]->stash( 'field', $bset . '_' . $opt ); $_[0]->stash( 'plugin_ns', - find_option_plugin($opt)->id ); - $_[0]->stash( 'scope', lc( $option->{scope} ) ); + find_theme_plugin($bset)->id ); + $_[0]->stash( 'scope', 'blog' ); runner( '_hdlr_field_category_list', 'ConfigAssistant::Plugin', @_ ); }; diff --git a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Static.pm b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Static.pm index 51f67bee9..2b4f03018 100644 --- a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Static.pm +++ b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Static.pm @@ -34,9 +34,13 @@ sub upgrade { # undef $ver so that we don't try to grab the static_version # variable. $plugin->id seems to throw an error for some Six # Apart-originated plugins. I don't know why. - my $plugin_id = eval { $plugin->id } ? $plugin->id : undef $ver; - my $saved_version; - $saved_version = $ver->{$plugin_id} if $ver; + my $saved_version = 0.1; # Default + my $plugin_id = eval { $plugin->id } + or undef $ver; + if ( $ver && $plugin_id ) { + $saved_version = $ver->{$plugin_id} + if defined $ver->{$plugin_id}; + } if ( $static_version > $saved_version ) { $self->progress( 'Copying static files for ' @@ -168,9 +172,7 @@ sub _make_dir { my $fmgr = MT::FileMgr->new('Local') or return MT::FileMgr->errstr; my $app = MT->instance; - my $dir - = File::Spec->catfile( $app->static_file_path, 'support', 'plugins', - $dir ); + $dir = File::Spec->catfile( $app->static_file_path, 'support', 'plugins', $dir ); if ( $fmgr->mkpath($dir) ) { # Success! diff --git a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Util.pm b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Util.pm index 1892e329d..84daa12ea 100644 --- a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Util.pm +++ b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Util.pm @@ -28,7 +28,6 @@ sub plugin_static_file_path { my ($plugin) = @_; return File::Spec->catdir( MT->instance->static_file_path, 'support', 'plugins', $plugin->id ); - } sub process_file_upload {