Changeset 2718

Show
Ignore:
Timestamp:
07/07/08 08:33:48 (19 months ago)
Author:
auno
Message:

Added to handle empty tag name for importing WXR file. BugzID:80487

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-41/plugins/WXRImporter/lib/WXRImporter/WXRHandler.pm

    r2716 r2718  
    125125    push @{$self->{'bucket'}}, $element; 
    126126    my $name_element = $prefix . '_' . $name; 
     127 
    127128    if ('_item' eq $name_element) { 
    128129        $self->_create_item($data); 
     
    272273    require MT::Tag; 
    273274    my $tag = MT::Tag->new; 
    274     my $set_name; 
     275    my $name; 
    275276    while ( my $hash = pop @{ $self->{'bucket'} } ) { 
    276277        last if 'wp_tag' eq $hash; 
     
    279280        my $key        = $hash_array[0]; 
    280281        my $value      = $hash_array[1]; 
     282        if ( 'wp_tag_slug' eq $key ) { 
     283            $name = MT::Util::decode_url($value); 
     284        } 
    281285        if ( 'wp_tag_name' eq $key ) { 
    282             return if ( MT::Tag->load( { name => $value } ) ); 
    283             $tag->name($value); 
    284             $set_name = 1; 
    285         } 
    286     } 
    287     if ($set_name) { 
     286            $name = $value; 
     287        } 
     288    } 
     289    if ($name) { 
     290        return if ( MT::Tag->load( { name => $name } ) ); 
     291        $tag->name($name); 
    288292        $cb->( MT->translate( "Creating new tag ('[_1]')...", $tag->name ) ); 
    289293        if ( $tag->save ) { 
     
    515519            $post->author_id($self->_get_author_id($cb, $value)); 
    516520        } elsif ('_category' eq $key) { 
    517             my $cat_class = MT->model( 
    518                 $class_type eq 'entry' ? 'category' : 'folder'); 
    519             my $cat = $cat_class->load( 
    520                 { label => $value, 
    521                   blog_id => $self->{blog}->id }); 
    522             if (defined $cat) { 
    523                 $cat_ids{$cat->id} = 1; 
    524                 $primary_cat_id = $cat->id unless $primary_cat_id; 
    525             } 
    526521            if ( $hash->{_a} ) { 
    527                 if ( $hash->{_a}->{domain} eq 'tag' ) { 
     522                if ( $hash->{_a}->{domain} eq 'tag' && $hash->{_a}->{nicename} ) 
     523                { 
     524                    $value = MT::Util::decode_url( $hash->{_a}->{nicename} ) 
     525                      if !$value; 
    528526                    push @tags, $value; 
     527                } 
     528            } 
     529            else { 
     530 
     531                # previous category definition 
     532                my $cat_class = 
     533                  MT->model( $class_type eq 'entry' ? 'category' : 'folder' ); 
     534                my $cat = $cat_class->load( 
     535                    { 
     536                        label   => $value, 
     537                        blog_id => $self->{blog}->id 
     538                    } 
     539                ); 
     540                if ( defined $cat ) { 
     541                    $cat_ids{ $cat->id } = 1; 
     542                    $primary_cat_id = $cat->id unless $primary_cat_id; 
    529543                } 
    530544            }