root/branches/release-41/lib/MT/Page.pm @ 2746

Revision 2746, 2.9 kB (checked in by bchoate, 17 months ago)

Updated POD for MT::Page, MT::TaskMgr.

  • Property svn:keywords set to Id Revision
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::Page;
8
9use strict;
10use base qw( MT::Entry );
11use MT::Util qw( archive_file_for );
12
13__PACKAGE__->install_properties({
14    class_type => 'page',
15    child_of => 'MT::Blog',
16    child_classes => ['MT::Comment','MT::Placement','MT::Trackback','MT::FileInfo'],
17});
18
19sub class_label {
20    return MT->translate("Page");
21}
22
23sub class_label_plural {
24    MT->translate("Pages");
25}
26
27sub container_label {
28    MT->translate("Folder");
29}
30
31sub container_type {
32    return "folder";
33}
34
35sub folder {
36    return $_[0]->category;
37}
38
39sub archive_file {
40    my $page = shift;
41    my $blog = $page->blog() || return $page->error(MT->translate(
42                                                     "Load of blog failed: [_1]",
43                                                     MT::Blog->errstr));
44    return archive_file_for($page, $blog, 'Page');
45}
46
47sub archive_url {
48    my $page = shift;
49    my $blog = $page->blog() || return $page->error(MT->translate(
50                                                     "Load of blog failed: [_1]",
51                                                     MT::Blog->errstr));
52    my $url = $blog->site_url || "";
53    $url .= '/' unless $url =~ m!/$!;
54    return $url . $page->archive_file(@_);
55}
56
57sub permalink {
58    my $page = shift;
59    return $page->archive_url(@_);
60}
61
62sub all_permalinks {
63    my $page = shift;
64    return ($page->permalink(@_));
65}
66
671;
68__END__
69
70=head1 NAME
71
72MT::Page - Movable Type page record
73
74=head1 SYNOPSIS
75
76    use MT::Page;
77    my $page = MT::Page->new;
78    $page->blog_id($blog->id);
79    $page->author_id($author->id);
80    $page->title('Page title');
81    $page->text('Some text');
82    $page->save
83        or die $page->errstr;
84
85=head1 DESCRIPTION
86
87The C<MT::Page> class is a subclass of L<MT::Entry>. Pages are very similar
88to entries, except that they are not published in a reverse-chronological
89listing, typically. Pages are published into folders, represented by
90L<MT::Folder> instead of categories.
91
92=head2 MT::Page->class_label
93
94Returns the localized descriptive name for this class.
95
96=head2 MT::Page->class_label_plural
97
98Returns the localized, plural descriptive name for this class.
99
100=head2 MT::Page->container_label
101
102Returns the localized phrase identifying the "container" type for
103pages (ie: "Folder").
104
105=head2 MT::Page->container_type
106
107Returns the string "folder", which is the MT type identifier for
108the L<MT::Folder> class.
109
110=head2 $page->folder
111
112Returns the L<MT::Folder> the page is assigned to.
113
114=head2 $page->archive_file
115
116Returns the filename for the published page.
117
118=head2 $page->archive_url
119
120Returns the permalink for the page, based on the site_url of the
121blog, and folder assignment for the page.
122
123=head2 $page->permalink
124
125Returns the permalink for the page.
126
127=head2 $page->all_permalinks
128
129Returns the permalink for the page.
130
131=cut
Note: See TracBrowser for help on using the browser.