The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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. They are used when user create new personal home page.

METHODS

restore(id)

Restore a PageView.

id is 'default' - find unique default PageView

id is Number - restore a PageView with this ID

Else use some magic to find desired PageView. This is the rules:

- Anonymous user always sees default PageView.

- If user is registered and has 'DefaultPageView' then restore it. If it fails then restore default PageView. Once a day restore default PageView for the user to see some global news ;-)

- Else or if something fails then restore default PageView.

This function returns 1 on success or 0 on error.

restore_all_templates()

Does restore_where(pvtype = template).

restore_all_for_user(username)

Does restore_where(...) for all PageView available to user (both default and user type)

username is default to current user name

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.

SetDefaultPageView($new_id)

This function is mean only for registered users. new_id is stored in user's configuration and used when next call to PageView->restore().

handle_request()

Get and process URL parameters to add, remove, modify a section. Parameters are:

ps - PageSection ID

us - UserSection ID

colnum - column number

addsection - if true then add new section ps to column colnum

removesection - if true then remove section us

min - if true then minimize section us

restore - if true then restore section us to normal size

AUTHOR

Sergey Rusakov, <rusakov_sa@users.sourceforge.net>