Invision Power Services, Inc. * @copyright (c) Invision Power Services, Inc. * @license https://www.invisioncommunity.com/legal/standards/ * @package Invision Community * @subpackage * @since 11/20/2023 */ namespace IPS\Extensions; /* To prevent PHP errors (extending class does not exist) revealing path */ use IPS\Member; use IPS\Theme; if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } abstract class MemberHistoryAbstract { /** * Return the valid member history log types * * @return array */ abstract public function getTypes(): array; /** * Parse LogType column * * @param string $value column value * @param array $row entire log row * @return string */ abstract public function parseLogType( string $value, array $row ): string; /** * Parse LogData column * * @param string $value column value * @param array $row entire log row * @return string */ abstract public function parseLogData( string $value, array $row ): string; /** * Parse LogMember column * * @param string $value column value * @param array $row entire log row * @return string */ public function parseLogMember( string $value, array $row ): string { $member = Member::load( $value ); return Theme::i()->getTemplate( 'global', 'core' )->userPhoto( $member, 'tiny' ) . ' ' . $member->link(); } }