ePortal::PageView - Custom home page of ePortal.

- NAME
- SYNOPSIS
- METHODS

- `restore(id)`
- `restore_all_templates()`
- `restore_all_for_user(username)`
- `ColumnsCount()`
- `ColumnsWidthPercent()`
- `AvailableSections(column_number)`
- `get_UserSection($column)`
- `CopyFrom($template_id)`
- `SetDefaultPageView($new_id)`
- `handle_request()`

- AUTHOR

# 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>