getBlocker(); $vals = []; $vals['blockid'] = $block->getId(); $vals['blockedby'] = $blocker ? $blocker->getName() : ''; $vals['blockedbyid'] = $blocker ? $blocker->getId() : 0; $vals['blockreason'] = $block->getReasonComment() ->message->inLanguage( $language )->plain(); $vals['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $block->getTimestamp() ); $expiry = ApiResult::formatExpiry( $block->getExpiry(), 'infinite' ); $vals['blockexpiry'] = $expiry; $vals['blockpartial'] = !$block->isSitewide(); $vals['blocknocreate'] = $block->isCreateAccountBlocked(); $vals['blockanononly'] = !$block->isHardblock(); if ( $block instanceof AbstractBlock ) { $vals['blockemail'] = $block->isEmailBlocked(); $vals['blockowntalk'] = !$block->isUsertalkEditAllowed(); } // Formatted timestamps $vals['blockedtimestampformatted'] = $language->formatExpiry( $block->getTimestamp(), true, 'infinity', $user ); if ( $expiry !== 'infinite' ) { $vals['blockexpiryformatted'] = $language->formatExpiry( $expiry, true, 'infinity', $user ); $vals['blockexpiryrelative'] = $language->getHumanTimestamp( new MWTimestamp( $expiry ), new MWTimestamp(), $user ); } if ( $block instanceof SystemBlock ) { $vals['systemblocktype'] = $block->getSystemBlockType(); } if ( $block instanceof CompositeBlock ) { $components = []; foreach ( $block->getOriginalBlocks() as $singleBlock ) { $components[] = $this->getBlockDetails( $singleBlock, $language, $user ); } $vals['blockcomponents'] = $components; } return $vals; } /** * Get the API error code, to be used in ApiMessage::create or ApiBase::dieWithError * @param Block $block * @return string */ public function getBlockCode( Block $block ): string { if ( $block instanceof DatabaseBlock && $block->getType() === Block::TYPE_AUTO ) { return 'autoblocked'; } return 'blocked'; } }