can_create_listing

Filter Hook Listing Permissions

Filter user permission to create a new listing.

Parameters

$permission

(boolean)

$params

(array) associative array with contextual data

You need to have a working knowledge of Hooks before you get started.

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
  // For JReviews 3.x and earlier use dd instead of fwd_dd
  // fwd_dd($permission, $params);
  
  return $permission;
});
Development & Support
Customizations are not included with support. We provide this information to make it easier for developers to extend the functionality. From time to time we may have some availability for custom work. Get in touch to see if there's an opportunity to work together.

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

  • /services/authorization/listing_permissions.php