can_create_listing
Filter user permission to create a new listing.
You need to have a working knowledge of Hooks before you get started.
Parameters
| Name | Type | Description |
|---|---|---|
$permission |
parameter |
(boolean) |
$params |
parameter |
(array) associative array with contextual data |
Boilerplate Code
Use the boilerplate code to start using the filter, and add your own logic to modify the first argument and return it.
Clickfwd\Hook\Filter::add('can_create_listing', function($permission, $params)
{
// Uncomment line below to view available data passed into hook
// fwd_dd($permission, $params);
return $permission;
});
Examples
Limit One Listing Per User
Limit listing submissions to one per user, and display a custom validation message when the limit is reached.
function one_listing_limit_registered_user($permission, $params)
{
$listingPermissions = (S2Object::make('perm'))->__('listing');
$auth = S2Object::make('auth');
if ( $auth->id > 0 )
{
$Model = new S2Model();
$query = sprintf('SELECT count(*) FROM %s WHERE %s = %d AND state = 1', EverywhereComContentModel::_LISTING_TABLE, EverywhereComContentModel::_LISTING_USER_ID, $auth->id);
$count = $Model->query($query,'loadResult');
if ( $count > 0 )
{
$listingPermissions->setMessage('You have reached the limit of one listing per user');
return false;
}
}
return $permission;
}
Clickfwd\Hook\Filter::add('can_create_listing', 'one_listing_limit_registered_user', 10);
Source Files
/services/authorization/listing_permissions.php