view release on metacpan or search on metacpan
lib/App/Office/CMS.pm view on Meta::CPAN
=item o Logger.pm
This simplifies logging by allowing me to say:
$self -> log(debug => 'A message');
$self -> log(info => 'Another message');
=item o Validator.pm
This is used to validate CGI form data.
=back
=item o What's the database schema?
See docs/cms.schema.png.
The file was created with scripts/schema.sh, which uses dbi.schema.pl.
That program is a version of dbigraph.pl, which ships with L<GraphViz::DBI>.
lib/App/Office/CMS.pm view on Meta::CPAN
=item o build_page_hash()
=item o build_success_result()
=item o check_page_name()
=item o update()
=back
=item o App::Office::CMS::Util::Validator.validate_page()
=item o App::Office::CMS::Database::Page.save_page_record()
=item o App::Office::CMS::View::Page.build_update_page_html()
=back
For site data, start with App::Office::CMS::Controller.build_site_hash().
=item o How to I replace the fundamental editing functionality?
lib/App/Office/CMS.pm view on Meta::CPAN
=item o CustomPage.pm
You write *::Controller::CustomPage.pm, based (obviously) on *::Controller::Page.pm.
You can still let *::View::Page process your updated page.tx and page.js
templates. See below for details.
=item o Validator.pm
This is C<App::Office::CMS::Util::Validator>. You'll have to edit the
validate_design() method.
=item o The declaration of update_page_callback() (2 of 2)
This is in page.js. This is the Javascript function which receives the output
of CustomPage.pm.
Replace the code in this function as needed.
=item o *::View::Page
lib/App/Office/CMS/Controller.pm view on Meta::CPAN
{
my($self, $action) = @_;
$self -> log(debug => "process_page_form($action)");
my($data) = App::Office::CMS::Util::Validator -> new
(
config => $self -> param('config'),
db => $self -> param('db'),
query => $self -> query,
) -> validate_page;
my($asset);
my($message);
my($page);
if ($$data{_rejects})
{
$self -> log(debug => 'Page data is not valid');
$message => $self -> param('view') -> format_errors($$data{_rejects});
lib/App/Office/CMS/Controller.pm view on Meta::CPAN
{
my($self, $action) = @_;
$self -> log(debug => "process_site_and_design_form($action)");
my($data) = App::Office::CMS::Util::Validator -> new
(
config => $self -> param('config'),
db => $self -> param('db'),
query => $self -> query,
) -> validate_site_and_design;
my($design);
my($message);
my($site);
if ($$data{_rejects})
{
$self -> log(debug => 'Site and design data is not valid');
$message = $self -> param('view') -> format_errors($$data{_rejects});
lib/App/Office/CMS/Controller/Content.pm view on Meta::CPAN
{
my($self, $action) = @_;
$self -> log(debug => "process_content_form($action)");
my($data) = App::Office::CMS::Util::Validator -> new
(
config => $self -> param('config'),
db => $self -> param('db'),
query => $self -> query,
) -> validate_content;
my($content);
my($message);
my($page);
if ($$data{_rejects})
{
$self -> log(debug => 'Content data is not valid');
$message => $self -> param('view') -> format_errors($$data{_rejects});
lib/App/Office/CMS/Database.pm view on Meta::CPAN
sub set_session
{
my($self, $session) = @_;
$self -> session($session);
} # End of set_session.
# --------------------------------------------------
sub validate_asset_type
{
my($self, $value) = @_;
$self -> log(debug => 'validate_asset_type()');
my($id) = $self -> dbh -> selectrow_hashref('select id from asset_types where id = ?', {}, $value);
return $id ? $$id{id} : 0;
} # End of validate_asset_type.
# --------------------------------------------------
sub validate_id
{
my($self, $class_name, $id) = @_;
$self -> log(debug => "validate_id($class_name, $id)");
my(@row) = $self -> simple -> map({id => $id});
return $#row < 0 ? 0 : 1;
} # End of validate_id.
# --------------------------------------------------
1;
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
{
my($value, $min_length, $max_length) = @_;
my($length) = length $value;
return ( ($length >= $min_length) && ($length <= $max_length) ) ? 1 : 0;
} # End of check_length.
# --------------------------------------------------
sub validate_content
{
my($self) = @_;
$self -> log(debug => 'validate_content()');
my($handler) = CGI::Untaint -> new(map{$_ => $self -> query -> param($_)} $self -> query -> param);
my($data) = {};
my($key);
for $key (qw/sid/)
{
$$data{$key} = $handler -> extract(-as_hex => $key);
}
for $key (qw/body_text head_text submit_update_content/)
{
$$data{$key} = $handler -> extract(-as_printable => $key);
}
my($max_content_length) = ${$self -> config}{max_content_length};
my($validator) = Brannigan -> new
({
name => 'validate_content',
params =>
{
body_text =>
{
default => '',
length_between => [0, $max_content_length],
required => 0,
},
head_text =>
{
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
required => 1,
},
submit_update_content => # 'Save'.
{
exact_length => 4,
required => 0,
},
},
});
return $validator -> process('validate_content', $data);
} # End of validate_content.
# --------------------------------------------------
sub validate_page
{
my($self) = @_;
$self -> log(debug => 'validate_page()');
my($handler) = CGI::Untaint -> new(map{$_ => $self -> query -> param($_)} $self -> query -> param);
my($data) = {};
my($key);
for $key (qw/action asset_type_id/)
{
$$data{$key} = $handler -> extract(-as_integer => $key);
}
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
$$data{$key} = $handler -> extract(-as_hex => $key);
}
for $key (qw/homepage name new_name submit_add_menu submit_delete_page submit_extend_menu_left submit_extend_menu_right submit_extend_submenu_down submit_extend_submenu_up submit_update_page/)
{
$$data{$key} = $handler -> extract(-as_printable => $key);
}
my($validator) = Brannigan -> new
({
name => 'validate_page',
params =>
{
action =>
{
required => 1,
value_between => [1, 7],
},
asset_type_id => # Template type.
{
required => 1,
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
required => 0,
},
submit_update_page => # 'Save'.
{
exact_length => 4,
required => 0,
},
},
});
return $validator -> process('validate_page', $data);
} # End of validate_page.
# --------------------------------------------------
sub validate_site_and_design
{
my($self) = @_;
$self -> log(debug => 'validate_site_and_design()');
my($handler) = CGI::Untaint -> new($self -> query -> Vars);
my($data) = {};
my($key);
for $key (qw/sid/)
{
$$data{$key} = $handler -> extract(-as_hex => $key);
}
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
$$data{$key} = $handler -> extract(-as_integer => $key);
}
for $key (qw/design_name name new_name output_directory output_doc_root submit_delete_design submit_delete_site submit_edit_page submit_new_site submit_update_site/)
{
$$data{$key} = $handler -> extract(-as_printable => $key);
}
my($validator) = Brannigan -> new
({
name => 'validate_site_and_design',
params =>
{
action =>
{
required => 1,
value_between => [1, 6],
},
design_name =>
{
length_between => [1, 255],
lib/App/Office/CMS/Util/Validator.pm view on Meta::CPAN
required => 0,
},
submit_update_site => # 'Save'.
{
exact_length => 4,
required => 0,
},
},
});
return $validator -> process('validate_site_and_design', $data);
} # End of validate_site_and_design.
# --------------------------------------------------
1;