NAME
CatalystX::CMS::File - template file class
SYNOPSIS
use CatalystX::CMS::File;
# longhand
my $file = CatalystX::CMS::File->new( $path_to_file );
$file->fetch if $page->size;
$file->content('hello world');
$file->title('super foo');
$file->write;
$file->commit or die $file->errstr;
# shorthand
my $file = CatalystX::CMS::File->new(
path => $path_to_file,
title => 'super foo',
content => 'hello world',
);
eval { $file->save } or die $file->errstr;
print "$file was saved\n";
DESCRIPTION
CatalystX::CMS::File is the object model for the Template Toolkit files that make up the content system of your application. Each object represents a .tt
file on the filesystem in a Subversion working directory. An object can be read, written, locked and unlocked on the filesystem. As a subclass of SVN::Class::File, the object can be interrogated for its history, added, deleted, committed or updated.
new( path )
new( path => path [, %param ] )
Create a new object.
Either form of new() may be used, but path is always required.
read
Reads the file from disk and parses the metadata attributes and content, thereafter accessible via the attrs() and content() methods.
Will croak if path() is false, empty or non-existent.
committed
Returns true if the delegate file has ever been committed to the repository.
write( [ignore_lock] )
Writes attrs() and content() to file location in TT-compatible format.
Will croak on any error.
If the ignore_lock flag is true, write() will ignore any true value of locked(). Otherwise, will croak() if locked() is true.
Returns the size of the resulting file.
create( user )
Acquires lock for user and writes files as a new page.
update
Calls write().
NOTE: This is not the same as the SVN::Class->update method! If you want that method, use the up() alias instead.
save( message [, leave_lock, username ] )
Will write() file, add() to the SVN workspace if necessary, and then call commit( message ).
Returns -1 if status() of file indicates no modification. Otherwise, returns commit() return value.
Pass a true for leave_lock to leave the lock file intact after the commit().
Pass an authorized username to have the commit() made with that credential.
escape_tt
Returns content() with all TT code wrapped in special XHTML tagset
<code class="tt">
This is to allow for such code to be escaped online or otherwise parsed with a XML parser.
AUTHOR
Peter Karman, <karman@cpan.org>
BUGS
Please report any bugs or feature requests to bug-catalystx-cms@rt.cpan.org
, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
ACKNOWLEDGEMENTS
The Minnesota Supercomputing Institute http://www.msi.umn.edu/
sponsored the development of this software.
COPYRIGHT & LICENSE
Copyright 2008 by the Regents of the University of Minnesota.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.