Invision Power Services, Inc. * @copyright (c) Invision Power Services, Inc. * @license https://www.invisioncommunity.com/legal/standards/ * @package Invision Community {subpackage} * @since {date} */ namespace IPS\{app}\extensions\core\MemberFilter; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } /** * Member Filter Extension */ class _{class} { /** * Determine if the filter is available in a given area * * @param string $area Area to check * @return bool */ public function availableIn( $area ) { return in_array( $area, array( 'bulkmail', 'group_promotions' ) ); } /** * Get Setting Field * * @param mixed $criteria Value returned from the save() method * @return array Array of form elements */ public function getSettingField( $criteria ) { return array(); } /** * Save the filter data * * @param array $post Form values * @return mixed False, or an array of data to use later when filtering the members * @throws \LogicException */ public function save( $post ) { return FALSE; } /** * Get where clause to add to the member retrieval database query * * @param mixed $data The array returned from the save() method * @return string|array|NULL Where clause */ public function getQueryWhereClause( $data ) { return NULL; } /** * Callback for member retrieval database query * Can be used to set joins * * @param mixed $data The array returned from the save() method * @param \IPS\Db\Query $query The query * @return void */ public function queryCallback( $data, &$query ) { return NULL; } /** * Determine if a member matches specified filters * * @note This is only necessary if availableIn() includes group_promotions * @param \IPS\Member $member Member object to check * @param array $filters Previously defined filters * @param object|NULL $object Calling class * @return bool */ public function matches( \IPS\Member $member, $filters, $object=NULL ) { return TRUE; } }