1<?php 2/** 3 * Formatter for new user log entries. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @author Niklas Laxström 22 * @license GPL-2.0-or-later 23 * @since 1.22 24 */ 25 26/** 27 * This class formats new user log entries. 28 * 29 * @since 1.19 30 */ 31class NewUsersLogFormatter extends LogFormatter { 32 protected function getMessageParameters() { 33 $params = parent::getMessageParameters(); 34 $subtype = $this->entry->getSubtype(); 35 if ( $subtype === 'create2' || $subtype === 'byemail' ) { 36 if ( isset( $params[3] ) ) { 37 $target = User::newFromId( $params[3] ); 38 } else { 39 $target = User::newFromName( $this->entry->getTarget()->getText(), false ); 40 } 41 $params[2] = Message::rawParam( $this->makeUserLink( $target ) ); 42 $params[3] = $target->getName(); 43 } 44 45 return $params; 46 } 47 48 public function getComment() { 49 $timestamp = wfTimestamp( TS_MW, $this->entry->getTimestamp() ); 50 if ( $timestamp < '20080129000000' ) { 51 # Suppress $comment from old entries (before 2008-01-29), 52 # not needed and can contain incorrect links 53 return ''; 54 } 55 56 return parent::getComment(); 57 } 58 59 public function getPreloadTitles() { 60 $subtype = $this->entry->getSubtype(); 61 if ( $subtype === 'create2' || $subtype === 'byemail' ) { 62 // add the user talk to LinkBatch for the userLink 63 return [ Title::makeTitle( NS_USER_TALK, $this->entry->getTarget()->getText() ) ]; 64 } 65 66 return []; 67 } 68} 69