Changeset 1770

Show
Ignore:
Timestamp:
04/04/08 06:40:48 (6 months ago)
Author:
takayama
Message:

Resolved BugId:68759
* Implemented new copy template feature.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/release-33/lib/MT/App/CMS.pm

    r1715 r1770  
    623623            refresh_tmpl_templates => { 
    624624                label => "Refresh Template(s)", 
    625                 handler => '$Core::MT::CMS::Template::refresh_individual_templates'
     625                code => "${pkg}Template::refresh_individual_templateE"
    626626                permission => 'edit_templates', 
    627627            }, 
    628628            publish_index_templates => { 
    629629                label => "Publish Template(s)", 
    630                 handler => '$Core::MT::CMS::Blog::publish_index_templates'
     630                code => "${pkg}Blog::publish_index_templates"
    631631                permission => 'rebuild', 
    632632                condition => sub { 
     
    640640                         ; 
    641641                }, 
     642            }, 
     643            copy_templates => { 
     644                label => "Clone Template(s)", 
     645                code => "${pkg}Template::clone_templates", 
     646                permission => 'edit_templates', 
    642647            }, 
    643648        }, 
  • branches/release-33/lib/MT/CMS/Template.pm

    r1743 r1770  
    573573    $params->{refreshed} = $app->param('refreshed'); 
    574574    $params->{published} = $app->param('published'); 
     575    $params->{saved_copied} = $app->param('saved_copied'); 
    575576 
    576577    # determine list of system template types: 
     
    17731774} 
    17741775 
     1776sub clone_templates { 
     1777    my ($app) = @_; 
     1778 
     1779    my $user = $app->user; 
     1780    my $perms = $app->permissions; 
     1781    return $app->error( 
     1782        $app->translate( 
     1783            "Permission denied.") 
     1784      ) 
     1785      #TODO: system level-designer permission 
     1786      unless $user->is_superuser() || $user->can_edit_templates() 
     1787      || ( $perms 
     1788        && ( $perms->can_edit_templates() 
     1789          || $perms->can_administer_blog ) ); 
     1790 
     1791    my @id = $app->param('id'); 
     1792    require MT::Template; 
     1793    foreach my $tmpl_id (@id) { 
     1794        my $tmpl = MT::Template->load($tmpl_id); 
     1795        next unless $tmpl; 
     1796 
     1797        my $new_tmpl = $tmpl->clone({ 
     1798            Except => { 
     1799                id => 1, 
     1800                name => 1, 
     1801                identifier => 1, 
     1802            }, 
     1803        }); 
     1804 
     1805        my $new_basename = $app->translate("Copy of [_1]", $tmpl->name); 
     1806        my $new_name = $new_basename; 
     1807        my $i = 0; 
     1808        while (MT::Template->count({ name => $new_name, blog_id => $tmpl->blog_id })) { 
     1809            $new_name = $new_basename . ' (' . ++$i . ')'; 
     1810        } 
     1811 
     1812        $new_tmpl->name($new_name); 
     1813        $new_tmpl->save; 
     1814    } 
     1815 
     1816    $app->add_return_arg( 'saved_copied' => 1 ); 
     1817    $app->call_return; 
     1818} 
     1819 
    17751820sub publish_index_templates { 
    17761821    my $app = shift; 
  • branches/release-33/tmpl/cms/list_template.tmpl

    r1632 r1770  
    9191        </mtapp:statusmsg> 
    9292    </mt:if> 
     93    <mt:if name="saved_copied"> 
     94        <mtapp:statusmsg 
     95            id="saved-copied" 
     96            class="success"> 
     97            <__trans phrase="Selected template(s) has been copied."> 
     98        </mtapp:statusmsg> 
     99    </mt:if> 
    93100</mt:setvarblock> 
    94101