root/branches/release-33/lib/MT/ArchiveType/Individual.pm @ 1705

Revision 1705, 3.8 kB (checked in by bchoate, 20 months ago)

Fixed archive label for individual archives.

Line 
1# Movable Type (r) Open Source (C) 2001-2008 Six Apart, Ltd.
2# This program is distributed under the terms of the
3# GNU General Public License, version 2.
4#
5# $Id$
6
7package MT::ArchiveType::Individual;
8
9use strict;
10use base qw( MT::ArchiveType );
11
12sub name {
13    return 'Individual';
14}
15
16sub archive_label {
17    return MT->translate("INDIVIDUAL_ADV");
18}
19
20sub template_params {
21    return {
22        entry_archive     => 1,
23        main_template     => 1,
24        archive_template  => 1,
25        entry_template    => 1,
26        feedback_template => 1,
27        archive_class     => "entry-archive",
28    };
29}
30
31sub archive_file {
32    my $obj = shift;
33    my ( $ctx, %param ) = @_;
34    my $timestamp = $param{Timestamp};
35    my $file_tmpl = $param{Template};
36    my $blog      = $ctx->{__stash}{blog};
37    my $entry     = $ctx->{__stash}{entry};
38
39    my $file;
40    Carp::confess("archive_file_for Individual archive needs an entry")
41      unless $entry;
42    if ($file_tmpl) {
43        $ctx->{current_timestamp} = $entry->authored_on;
44    }
45    else {
46        my $basename = $entry->basename();
47        $basename ||= dirify( $entry->title() );
48        $file = sprintf( "%04d/%02d/%s",
49            unpack( 'A4A2', $entry->authored_on ), $basename );
50    }
51    $file;
52}
53
54sub archive_title {
55    my $obj = shift;
56    $_[1]->title;
57}
58
59sub archive_group_iter {
60    my $obj = shift;
61    my ( $ctx, $args ) = @_;
62
63    my $order =
64      ( $args->{sort_order} || '' ) eq 'ascend' ? 'ascend' : 'descend';
65
66    my $blog_id = $ctx->stash('blog')->id;
67    require MT::Entry;
68    my $iter = MT::Entry->load_iter(
69        {
70            blog_id => $blog_id,
71            status  => MT::Entry::RELEASE()
72        },
73        {
74            'sort'    => 'authored_on',
75            direction => $order,
76            $args->{lastn} ? ( limit => $args->{lastn} ) : ()
77        }
78    );
79    return sub {
80        while ( my $entry = $iter->() ) {
81            return ( 1, entries => [$entry], entry => $entry );
82        }
83        undef;
84      }
85}
86
87sub dynamic_template {
88    'entry/<$MTEntryID$>';
89}
90
91sub default_archive_templates {
92    return [
93        {
94            label    => MT->translate('yyyy/mm/entry-basename.html'),
95            template => '%y/%m/%-f',
96            default  => 1
97        },
98        {
99            label    => MT->translate('yyyy/mm/entry_basename.html'),
100            template => '%y/%m/%f'
101        },
102        {
103            label => MT->translate('yyyy/mm/entry-basename/index.html'),
104            template => '%y/%m/%-b/%i'
105        },
106        {
107            label => MT->translate('yyyy/mm/entry_basename/index.html'),
108            template => '%y/%m/%b/%i'
109        },
110        {
111            label    => MT->translate('yyyy/mm/dd/entry-basename.html'),
112            template => '%y/%m/%d/%-f'
113        },
114        {
115            label    => MT->translate('yyyy/mm/dd/entry_basename.html'),
116            template => '%y/%m/%d/%f'
117        },
118        {
119            label =>
120              MT->translate('yyyy/mm/dd/entry-basename/index.html'),
121            template => '%y/%m/%d/%-b/%i'
122        },
123        {
124            label =>
125              MT->translate('yyyy/mm/dd/entry_basename/index.html'),
126            template => '%y/%m/%d/%b/%i'
127        },
128        {
129            label => MT->translate(
130                'category/sub-category/entry-basename.html'),
131            template => '%-c/%-f'
132        },
133        {
134            label => MT->translate(
135                'category/sub-category/entry-basename/index.html'),
136            template => '%-c/%-b/%i'
137        },
138        {
139            label => MT->translate(
140                'category/sub_category/entry_basename.html'),
141            template => '%c/%f'
142        },
143        {
144            label => MT->translate(
145                'category/sub_category/entry_basename/index.html'),
146            template => '%c/%b/%i'
147        },
148    ];
149}
150
1511;
Note: See TracBrowser for help on using the browser.