NAME
ePortal::PageView - Custom home page of ePortal.
SYNOPSIS
There are 3 types of PageView:
user - personal home page of a registered user
default - only one PageView may be default. This is default home page of a site
template - There may be many templates. Administrator may restrict access to these pages;
METHODS
ColumnsCount()
Return a number of columns in the current PageView.
ColumnsWidthPercent()
Returns array of numbers with width in percent of PageView's columns. Narrow column counts as 1, wide column - as 2. For two-column PageView (N:W) result would be (33,66).
Note: The percent sign is not included after numbers.
AvailableSections(column_number)
Returns array (\@values, \%labels) with available sections for addition to the column. References returned are ready to pass to CGI::popup_menu(...)
column_number is number of desired column in PageView.
get_UserSection($column)
Does restore_where(for the column) on ePortal::UserSection object.
If $column is undef then all UserSection (for all columns) are selected. This is the same as call to children().
Returns ePortal::UserSection object ready to restore_next().
CopyFrom($template_id)
Copy PageView object from denoted by $template_id to current one. The pvtype attribute is changed to 'user'. Also copies all daughter UserSection objects.
Returns: 1 on success.
ePortal::PageSection object
ePortal::PageSection package is used to implement a single section on a home page with a dialog box around it.
Customization of a PageSection is available with a corresponding HTML::Mason component file. Some predefined method should exists in this component.
Here is a brief description of PageSection's component file:
The content of a section
To produce a content the component is called with one parameter: ePortal::UserSection object. Individual settings are available with setupinfo
hash stored in database;
<%init>
my $section = $ARGS{section}; # ePortal::UserSection object
my $setupinfo = $section->setupinfo_hash;
</%init>
HTML code is here
initialialization
To initialize PageSection object define some attributes:
<%attr>
def_title => { eng => 'Resources catalogue', rus => 'Êàòàëîã ðåñóðñîâ'},
def_width => 'N',
def_url => '/catalog/index.htm',
def_setupinfo_hash => {}
def_xacl_read => 'everyone'
</%attr>
setup_dialog method
This method is used to customize a section with a setup dialog. {old_setupinfo} is used for compatibility with old version of ePortal.
<%method setup_dialog><%perl>
my $setupinfo = $ARGS{setupinfo};
if ( $setupinfo->{old_setupinfo} ) {
$setupinfo->{filename} = $setupinfo->{old_setupinfo};
delete $setupinfo->{old_setupinfo};
}
<&| /dialog.mc:label_value_row, label => pick_lang(rus => "Èìÿ ôàéëà", eng => "File name") &>
<& /dialog.mc:textfield, id => 'filename',
-size => 40,
value => $setupinfo->{filename} &>
</&>
</%method>
This dialog may be disabled for ordinary users with special attribute
<%attr>
disable_user_setup_dialog => 1
</%attr>
setup_validate method
This method is used for setupinfo
data validation.
<%method setup_validate><%perl>
my $setupinfo = $ARGS{setupinfo};
my $obj = $ARGS{obj};
if ( $setupinfo->{filename} eq '' ) {
throw ePortal::Exception::DataNotValid( -text => ...);
}
</%perl></%method>
setup_save method
This method is used to save custom data into setupinfo
hash.
<%method setup_save><%perl>
my $setupinfo = $ARGS{setupinfo};
my $args = $ARGS{args};
foreach (qw/ filename /) {
$setupinfo->{$_} = $args->{$_} if exists $args->{$_};
}
</%perl></%method>
AUTHOR
Sergey Rusakov, <rusakov_sa@users.sourceforge.net>
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 386:
Non-ASCII character seen before =encoding in ''Êàòàëîã'. Assuming CP1252