Module
class Module extends Crud implements IAuth
Constants
ACTION_PREFIX |
Action methods prefix |
INFINITY |
Constant. Infinite number of results requested. |
ASC |
Constant. Ascending order. |
DESC |
Constant. Descending order. |
Properties
public | $defaultRequest | Default crud request | from Crud |
protected | $title | ||
protected | $icon | ||
protected | $views | Add views directory to module; | from Module |
protected | $roles | ||
protected | $actionRoles | override to set authorized roles | from Module |
protected | $crudColumns | from Crud | |
protected | $crudActions | Actions chainset class | from Crud |
protected | $crudFilters | Filters chainset class | from Crud |
protected | $model | ||
protected | $possibleRoles | List of possible roles in format [ |
Public Methods
Each module has to be initialized with eladmin instance and its own elakey.
Each module has its elakey - index in modules array - used to address requests.
Check if user is authorized to do action, or athorized to access module at all.
Return url for this module.
Create asset url, file path relative to /assets directory. Default $version = time()
Get roles authorized to work with the module, or specific action. Empty array means any role is authorized.
Return an array of login fields in the form of field_name=>[label=>input label, type=>input_type] Retrurn null if Eladmin login dialog should be disabled (and you want to do authentication on your own)
Check if user is logged in. Also check if user has one of the $authorizedRoles (if specified).
Return an array of profile fields in the form of field_name=>[label=>input label, type=>input_type] Retrurn null if Eladmin edit profile dialog should be disabled.
We want action keys to be case insensitive. This converts action to lowercase.
Convinient method for plain text output. Sets HTTP header text/plain and echo $str.
Convinient method for html output. Sets HTTP header text/html and echo $str.
Convinient method for json output. Sets HTTP header application/json and echo serialized $json.
Protected Methods
Private Methods
Details
in Module at line 96
__construct($core, $elakey)
Each module has to be initialized with eladmin instance and its own elakey.
in Module at line 111
final string
elakey()
Each module has its elakey - index in modules array - used to address requests.
in Module at line 118
final bool
auth(string|null $action = null)
Check if user is authorized to do action, or athorized to access module at all.
at line 19
string
title()
Get name of the module.
in Module at line 140
string
icon()
Get icon of the module.
in Module at line 147
final string
requestUrl(string|null $action = null, array $args = [])
Return url for this module.
in Module at line 160
final string
assetUrl(string $path, string|null $version = null)
Create asset url, file path relative to /assets directory. Default $version = time()
in Crud at line 88
void
prepare()
Runs before any action is executed.
in Module at line 174
final array|null
roles(string|null $action = null)
Get roles authorized to work with the module, or specific action. Empty array means any role is authorized.
in Module at line 195
private void
setRoles(array|null $roles, string|null $action = null)
Set roles authorized to work with the module, or specific action. Empty array means any role is authorized.
in Crud at line 294
protected array
views()
Extends views directory.
in Module at line 228
protected Blade
blade()
Return Blade instance
in Module at line 235
final string
render(string $template, array $args = [])
Return rendered view.
in Module at line 243
void
renderAsset(string $path)
Determinate asset content-type and render it.
in Module at line 250
final static array
actions()
Return array of all defined actions.
in Module at line 267
final static bool
hasAction(string $action)
Check if actions is defined.
in Module at line 274
final static bool
isAction(string $action)
Check if actions is executed.
in Module at line 281
final static string
parseAction(string $action)
We want action keys to be case insensitive. This converts action to lowercase.
in Module at line 288
final static void
renderText(string|null $str = null)
Convinient method for plain text output. Sets HTTP header text/plain and echo $str.
in Module at line 297
final static void
renderHtml(string|null $str = null)
Convinient method for html output. Sets HTTP header text/html and echo $str.
in Module at line 306
final static void
renderJson(array|null $json = null)
Convinient method for json output. Sets HTTP header application/json and echo serialized $json.
in Crud at line 24
bool
implementsSoftDeletes()
IMPLEMENT. Does CRUD use soft deletes?
in Crud at line 36
bool
implementsSearch()
IMPLEMENT. Does CRUD support searching?
in Crud at line 32
bool
implementsPaging()
IMPLEMENT. Does CRUD support paging?
in Crud at line 28
bool
implementsSorting()
IMPLEMENT. Does CRUD support sorting?
in Crud at line 40
bool
implementsFilters()
IMPLEMENT. Does CRUD support filtering?
in Crud at line 65
string
primary()
IMPLEMENT. Name of primary key column. Default is 'id'.
in Crud at line 101
protected void
create(array $row)
IMPLEMENT. Create item.
in Crud at line 106
protected void
update(array $row, $id)
IMPLEMENT. Update item.
in Crud at line 182
protected array
default()
Read default row Returns row as an associative array ['columnName' => 'value']
in Crud at line 113
protected array
get($id)
IMPLEMENT. Read one row.
Returns row as an associative array ['columnName' => 'value']
in Crud at line 120
protected void
delete($id)
IMPLEMENT. Hard delete row.
in Crud at line 176
protected void
softDelete($id)
IMPLEMENT. Soft delete row.
in Crud at line 186
protected void
restore($id)
IMPLEMENT. Restore soft deleted row.
in Crud at line 135
protected array
read(array $request, $totalResults)
IMPLEMENT. Fetch an array of rows.
Row is an associative array ['columnName' => 'value'] $totalResults needs to be set to number of results without paging applied
at line 111
protected
crudColumns()
IMPLEMENT. Default columns chainset. Override to configure columns.
at line 98
protected
crudActions()
Default actions chainset. Override to configure actions.
in Crud at line 258
protected
crudFilters()
Default filters chainset. Override to configure filters.
in Crud at line 302
protected
id($throwIfNull = false)
Return ID of the row which should be affected by the action.
in Crud at line 311
private
rowValuesArray($row)
generate array of values for one row
in Crud at line 325
private
rowActionsArray($row)
generate array of actions for one item
in Crud at line 346
private void
unset(array $row)
unset columns which we shouldn't recieve before update
in Crud at line 358
private void
defaults(array $row)
set defaults
in Crud at line 370
private void
validate(array $row)
validate columns before update
in Crud at line 382
private void
modify(array $row)
modify values before update
in Crud at line 407
actionCreateForm()
ACTION. Show form - create entry.
in Crud at line 416
actionUpdateForm()
ACTION. Show form - edit entry.
in Crud at line 425
actionRead()
ACTION. List database entries.
in Crud at line 484
actionUpdate()
ACTION. Edit database entry.
in Crud at line 495
actionCreate()
ACTION. Create database entry.
at line 167
actionDelete()
ACTION. Hard delete.
in Crud at line 515
actionSoftDelete()
ACTION. Soft delete.
in Crud at line 523
actionRestore()
ACTION. Restore.
in Crud at line 47
protected
model()
Return model instance for action.
in Crud at line 72
private void
updateOrCreate($entry, $row)
Update or create entry.
in Crud at line 198
protected array
tableColumns()
Get an array of table columns.
at line 23
array|null
loginFields()
Return an array of login fields in the form of field_name=>[label=>input label, type=>input_type] Retrurn null if Eladmin login dialog should be disabled (and you want to do authentication on your own)
at line 30
void
unauthorized()
This method is called when user is not autorized and loginFileds returns null.
You can redirect to your own login page. Or leave it empty to show HTTP 401.
at line 34
user()
at line 39
void
login(array $fields)
Eladmin calls this method during authentication.
at line 51
void
logout()
Logout.
at line 55
bool
authorize(array $authorizedRoles = self::ANYONE)
Check if user is logged in. Also check if user has one of the $authorizedRoles (if specified).
at line 68
void
accountUpdate($fields)
Eladmin calls this method during profile update.
at line 86
string
userName()
Get user's name to show it in admin.
at line 90
array|null
accountFields()
Return an array of profile fields in the form of field_name=>[label=>input label, type=>input_type] Retrurn null if Eladmin edit profile dialog should be disabled.