KMP PHP API Reference

GridViewService
in package

Business logic for managing saved grid views.

Handles view resolution (explicit → user default → system default), CRUD operations, and ownership validation. Used by GridViewsController and DataverseGridTrait.

Table of Contents

Properties

$gridViewsTable  : GridViewsTable
GridViews table instance
$preferencesTable  : GridViewPreferencesTable
GridView preferences table instance

Methods

__construct()  : mixed
Constructor
clearUserDefault()  : bool
Clear the user's default for a grid
createSystemDefault()  : GridView|false
Create a system default view (admin only - enforce permissions elsewhere)
createView()  : GridView|false
Create a new grid view
deleteView()  : bool
Delete a grid view
getEffectiveView()  : GridView|null
Get the effective view for a grid based on priority resolution
getUserPreferenceViewId()  : string|int|null
Retrieve the preferred view id for a given member/grid key combination
getView()  : GridView|null
Get a single view by ID
getViewsForGrid()  : array<string|int, GridView>
Get all views available for a grid (system defaults + user's own)
setUserDefault()  : bool
Set a user's default view for a grid. Accepts either int (user view) or string (system view).
updateView()  : GridView|false
Update an existing grid view

Properties

Methods

__construct()

Constructor

public __construct([GridViewsTable|null $gridViewsTable = null ], mixed ...$additional) : mixed
Parameters
$gridViewsTable : GridViewsTable|null = null

Optional table instance for testing

$additional : mixed

Optional additional arguments (ignored unless a preferences table instance is provided)

clearUserDefault()

Clear the user's default for a grid

public clearUserDefault(int $memberId, string $gridKey) : bool
Parameters
$memberId : int

Member ID

$gridKey : string

Grid identifier

Return values
bool

Success

createSystemDefault()

Create a system default view (admin only - enforce permissions elsewhere)

public createSystemDefault(array<string, mixed> $data) : GridView|false
Parameters
$data : array<string, mixed>

View data

Return values
GridView|false

createView()

Create a new grid view

public createView(array<string, mixed> $data, Member $member) : GridView|false
Parameters
$data : array<string, mixed>

View data

$member : Member

Owner of the view

Return values
GridView|false

deleteView()

Delete a grid view

public deleteView(int $viewId, Member $member) : bool

Validates that the member owns the view before deleting (soft delete).

Parameters
$viewId : int

View ID

$member : Member

Member making the deletion

Return values
bool

Success

getEffectiveView()

Get the effective view for a grid based on priority resolution

public getEffectiveView(string $gridKey, Member|null $member[, int|null $viewId = null ]) : GridView|null

Resolution order:

  1. Explicit view ID (if provided and accessible)
  2. User's default view (if set)
  3. System default view (if exists)
  4. null (caller should use application fallback)
Parameters
$gridKey : string

Grid identifier

$member : Member|null

Current member

$viewId : int|null = null

Explicitly requested view ID

Return values
GridView|null

getUserPreferenceViewId()

Retrieve the preferred view id for a given member/grid key combination

public getUserPreferenceViewId(string $gridKey, Member $member) : string|int|null
Parameters
$gridKey : string

Grid identifier

$member : Member

Member to check

Return values
string|int|null

Preferred view identifier if set

getView()

Get a single view by ID

public getView(int $viewId[, Member|null $member = null ]) : GridView|null

Validates that the member has access to the view (owns it or it's a system default).

Parameters
$viewId : int

View ID

$member : Member|null = null

Current member

Return values
GridView|null

getViewsForGrid()

Get all views available for a grid (system defaults + user's own)

public getViewsForGrid(string $gridKey[, Member|null $member = null ]) : array<string|int, GridView>
Parameters
$gridKey : string

Grid identifier

$member : Member|null = null

Current member

Return values
array<string|int, GridView>

setUserDefault()

Set a user's default view for a grid. Accepts either int (user view) or string (system view).

public setUserDefault(string|int $viewIdOrKey, int $memberId, string $gridKey) : bool
Parameters
$viewIdOrKey : string|int
$memberId : int
$gridKey : string
Return values
bool

updateView()

Update an existing grid view

public updateView(int $viewId, array<string, mixed> $data, Member $member) : GridView|false

Validates that the member owns the view before updating.

Parameters
$viewId : int

View ID

$data : array<string, mixed>

Updated data

$member : Member

Member making the update

Return values
GridView|false

        
On this page

Search results