@@ -146,7 +146,7 @@ discard block |
||
| 146 | 146 | if ($projMetadata['dbName'] == "$project" |
| 147 | 147 | || $projMetadata['url'] == "$project" |
| 148 | 148 | || $projMetadata['url'] == "https://$project") { |
| 149 | - $this->log->debug(__METHOD__ . " Using cached data for $project"); |
|
| 149 | + $this->log->debug(__METHOD__." Using cached data for $project"); |
|
| 150 | 150 | return $projMetadata; |
| 151 | 151 | } |
| 152 | 152 | } |
@@ -200,7 +200,7 @@ discard block |
||
| 200 | 200 | } |
| 201 | 201 | |
| 202 | 202 | // Redis cache |
| 203 | - $cacheKey = "projectMetadata." . preg_replace("/[^A-Za-z0-9]/", '', $projectUrl); |
|
| 203 | + $cacheKey = "projectMetadata.".preg_replace("/[^A-Za-z0-9]/", '', $projectUrl); |
|
| 204 | 204 | if ($this->cache->hasItem($cacheKey)) { |
| 205 | 205 | $this->metadata = $this->cache->getItem($cacheKey)->get(); |
| 206 | 206 | return $this->metadata; |
@@ -280,7 +280,7 @@ discard block |
||
| 280 | 280 | $optedIn = $this->container->getParameter('opted_in'); |
| 281 | 281 | // In case there's just one given. |
| 282 | 282 | if (!is_array($optedIn)) { |
| 283 | - $optedIn = [ $optedIn ]; |
|
| 283 | + $optedIn = [$optedIn]; |
|
| 284 | 284 | } |
| 285 | 285 | return $optedIn; |
| 286 | 286 | } |
@@ -47,8 +47,8 @@ |
||
| 47 | 47 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
| 48 | 48 | |
| 49 | 49 | // Check that a correct namespace value was returned |
| 50 | - $response = (array) json_decode($client->getResponse()->getContent()); |
|
| 51 | - $namespaces = (array) $response['namespaces']; |
|
| 50 | + $response = (array)json_decode($client->getResponse()->getContent()); |
|
| 51 | + $namespaces = (array)$response['namespaces']; |
|
| 52 | 52 | $this->assertEquals('Utilisateur', array_values($namespaces)[2]); // User in French |
| 53 | 53 | } |
| 54 | 54 | } |
@@ -78,10 +78,10 @@ discard block |
||
| 78 | 78 | $username = $request->query->get('username', $request->query->get('user')); |
| 79 | 79 | |
| 80 | 80 | if (($project || $queryProject) && $username) { |
| 81 | - $routeParams = [ 'project'=>($project ?: $queryProject), 'username' => $username ]; |
|
| 81 | + $routeParams = ['project'=>($project ?: $queryProject), 'username' => $username]; |
|
| 82 | 82 | return $this->redirectToRoute("EditCounterResult", $routeParams); |
| 83 | 83 | } elseif (!$project && $queryProject) { |
| 84 | - return $this->redirectToRoute("EditCounterProject", [ 'project'=>$queryProject ]); |
|
| 84 | + return $this->redirectToRoute("EditCounterProject", ['project'=>$queryProject]); |
|
| 85 | 85 | } |
| 86 | 86 | |
| 87 | 87 | $project = ProjectRepository::getProject($queryProject, $this->container); |
@@ -116,7 +116,7 @@ discard block |
||
| 116 | 116 | } |
| 117 | 117 | $isSubRequest = $this->container->get('request_stack')->getParentRequest() !== null; |
| 118 | 118 | return $this->render('editCounter/result.html.twig', [ |
| 119 | - 'xtTitle' => $this->user->getUsername() . ' - ' . $this->project->getTitle(), |
|
| 119 | + 'xtTitle' => $this->user->getUsername().' - '.$this->project->getTitle(), |
|
| 120 | 120 | 'xtPage' => 'ec', |
| 121 | 121 | 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'), |
| 122 | 122 | 'is_sub_request' => $isSubRequest, |
@@ -30,32 +30,32 @@ discard block |
||
| 30 | 30 | { |
| 31 | 31 | $options = ['is_safe' => ['html']]; |
| 32 | 32 | return [ |
| 33 | - new \Twig_SimpleFunction('request_time', [ $this, 'requestTime' ], $options), |
|
| 34 | - new \Twig_SimpleFunction('memory_usage', [ $this, 'requestMemory' ], $options), |
|
| 35 | - new \Twig_SimpleFunction('year', [ $this, 'generateYear' ], $options), |
|
| 36 | - new \Twig_SimpleFunction('msgPrintExists', [ $this, 'intuitionMessagePrintExists' ], $options), |
|
| 37 | - new \Twig_SimpleFunction('msgExists', [ $this, 'intuitionMessageExists' ], $options), |
|
| 38 | - new \Twig_SimpleFunction('msg', [ $this, 'intuitionMessage' ], $options), |
|
| 39 | - new \Twig_SimpleFunction('lang', [ $this, 'getLang' ], $options), |
|
| 40 | - new \Twig_SimpleFunction('langName', [ $this, 'getLangName' ], $options), |
|
| 41 | - new \Twig_SimpleFunction('allLangs', [ $this, 'getAllLangs' ]), |
|
| 42 | - new \Twig_SimpleFunction('isRTL', [ $this, 'intuitionIsRTL' ]), |
|
| 43 | - new \Twig_SimpleFunction('isRTLLang', [ $this, 'intuitionIsRTLLang' ]), |
|
| 44 | - new \Twig_SimpleFunction('shortHash', [ $this, 'gitShortHash' ]), |
|
| 45 | - new \Twig_SimpleFunction('hash', [ $this, 'gitHash' ]), |
|
| 46 | - new \Twig_SimpleFunction('enabled', [ $this, 'tabEnabled' ]), |
|
| 47 | - new \Twig_SimpleFunction('tools', [ $this, 'allTools' ]), |
|
| 48 | - new \Twig_SimpleFunction('color', [ $this, 'getColorList' ]), |
|
| 49 | - new \Twig_SimpleFunction('chartColor', [ $this, 'chartColor' ]), |
|
| 50 | - new \Twig_SimpleFunction('isWMFLabs', [ $this, 'isWMFLabs' ]), |
|
| 51 | - new \Twig_SimpleFunction('isSingleWiki', [ $this, 'isSingleWiki' ]), |
|
| 52 | - new \Twig_SimpleFunction('getReplagThreshold', [ $this, 'getReplagThreshold' ]), |
|
| 53 | - new \Twig_SimpleFunction('loadStylesheetsFromCDN', [ $this, 'loadStylesheetsFromCDN' ]), |
|
| 54 | - new \Twig_SimpleFunction('isWMFLabs', [ $this, 'isWMFLabs' ]), |
|
| 55 | - new \Twig_SimpleFunction('replag', [ $this, 'replag' ]), |
|
| 56 | - new \Twig_SimpleFunction('link', [ $this, 'link' ]), |
|
| 57 | - new \Twig_SimpleFunction('quote', [ $this, 'quote' ]), |
|
| 58 | - new \Twig_SimpleFunction('bugReportURL', [ $this, 'bugReportURL' ]), |
|
| 33 | + new \Twig_SimpleFunction('request_time', [$this, 'requestTime'], $options), |
|
| 34 | + new \Twig_SimpleFunction('memory_usage', [$this, 'requestMemory'], $options), |
|
| 35 | + new \Twig_SimpleFunction('year', [$this, 'generateYear'], $options), |
|
| 36 | + new \Twig_SimpleFunction('msgPrintExists', [$this, 'intuitionMessagePrintExists'], $options), |
|
| 37 | + new \Twig_SimpleFunction('msgExists', [$this, 'intuitionMessageExists'], $options), |
|
| 38 | + new \Twig_SimpleFunction('msg', [$this, 'intuitionMessage'], $options), |
|
| 39 | + new \Twig_SimpleFunction('lang', [$this, 'getLang'], $options), |
|
| 40 | + new \Twig_SimpleFunction('langName', [$this, 'getLangName'], $options), |
|
| 41 | + new \Twig_SimpleFunction('allLangs', [$this, 'getAllLangs']), |
|
| 42 | + new \Twig_SimpleFunction('isRTL', [$this, 'intuitionIsRTL']), |
|
| 43 | + new \Twig_SimpleFunction('isRTLLang', [$this, 'intuitionIsRTLLang']), |
|
| 44 | + new \Twig_SimpleFunction('shortHash', [$this, 'gitShortHash']), |
|
| 45 | + new \Twig_SimpleFunction('hash', [$this, 'gitHash']), |
|
| 46 | + new \Twig_SimpleFunction('enabled', [$this, 'tabEnabled']), |
|
| 47 | + new \Twig_SimpleFunction('tools', [$this, 'allTools']), |
|
| 48 | + new \Twig_SimpleFunction('color', [$this, 'getColorList']), |
|
| 49 | + new \Twig_SimpleFunction('chartColor', [$this, 'chartColor']), |
|
| 50 | + new \Twig_SimpleFunction('isWMFLabs', [$this, 'isWMFLabs']), |
|
| 51 | + new \Twig_SimpleFunction('isSingleWiki', [$this, 'isSingleWiki']), |
|
| 52 | + new \Twig_SimpleFunction('getReplagThreshold', [$this, 'getReplagThreshold']), |
|
| 53 | + new \Twig_SimpleFunction('loadStylesheetsFromCDN', [$this, 'loadStylesheetsFromCDN']), |
|
| 54 | + new \Twig_SimpleFunction('isWMFLabs', [$this, 'isWMFLabs']), |
|
| 55 | + new \Twig_SimpleFunction('replag', [$this, 'replag']), |
|
| 56 | + new \Twig_SimpleFunction('link', [$this, 'link']), |
|
| 57 | + new \Twig_SimpleFunction('quote', [$this, 'quote']), |
|
| 58 | + new \Twig_SimpleFunction('bugReportURL', [$this, 'bugReportURL']), |
|
| 59 | 59 | new \Twig_SimpleFunction('logged_in_user', [$this, 'functionLoggedInUser']), |
| 60 | 60 | new \Twig_SimpleFunction('isUserAnon', [$this, 'isUserAnon']), |
| 61 | 61 | new \Twig_SimpleFunction('nsName', [$this, 'nsName']), |
@@ -69,7 +69,7 @@ discard block |
||
| 69 | 69 | */ |
| 70 | 70 | public function requestTime($decimals = 3) |
| 71 | 71 | { |
| 72 | - return number_format(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'], $decimals); |
|
| 72 | + return number_format(microtime(true)-$_SERVER['REQUEST_TIME_FLOAT'], $decimals); |
|
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | /** |
@@ -102,7 +102,7 @@ discard block |
||
| 102 | 102 | */ |
| 103 | 103 | public function intuitionMessageExists($message = "") |
| 104 | 104 | { |
| 105 | - return $this->getIntuition()->msgExists($message, [ "domain" => "xtools" ]); |
|
| 105 | + return $this->getIntuition()->msgExists($message, ["domain" => "xtools"]); |
|
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | /** |
@@ -133,7 +133,7 @@ discard block |
||
| 133 | 133 | */ |
| 134 | 134 | public function intuitionMessage($message = "", $vars = []) |
| 135 | 135 | { |
| 136 | - return $this->getIntuition()->msg($message, [ "domain" => "xtools", "variables" => $vars ]); |
|
| 136 | + return $this->getIntuition()->msg($message, ["domain" => "xtools", "variables" => $vars]); |
|
| 137 | 137 | } |
| 138 | 138 | |
| 139 | 139 | /** |
@@ -162,10 +162,10 @@ discard block |
||
| 162 | 162 | */ |
| 163 | 163 | public function getAllLangs() |
| 164 | 164 | { |
| 165 | - $messageFiles = glob($this->container->getParameter("kernel.root_dir") . '/../i18n/*.json'); |
|
| 165 | + $messageFiles = glob($this->container->getParameter("kernel.root_dir").'/../i18n/*.json'); |
|
| 166 | 166 | |
| 167 | 167 | $languages = array_values(array_unique(array_map( |
| 168 | - function ($filename) { |
|
| 168 | + function($filename) { |
|
| 169 | 169 | return basename($filename, '.json'); |
| 170 | 170 | }, |
| 171 | 171 | $messageFiles |
@@ -513,8 +513,8 @@ discard block |
||
| 513 | 513 | public function getFilters() |
| 514 | 514 | { |
| 515 | 515 | return [ |
| 516 | - new \Twig_SimpleFilter('capitalize_first', [ $this, 'capitalizeFirst' ]), |
|
| 517 | - new \Twig_SimpleFilter('percent_format', [ $this, 'percentFormat' ]), |
|
| 516 | + new \Twig_SimpleFilter('capitalize_first', [$this, 'capitalizeFirst']), |
|
| 517 | + new \Twig_SimpleFilter('percent_format', [$this, 'percentFormat']), |
|
| 518 | 518 | ]; |
| 519 | 519 | } |
| 520 | 520 | |
@@ -541,10 +541,10 @@ discard block |
||
| 541 | 541 | if (!$denominator) { |
| 542 | 542 | $quotient = $numerator; |
| 543 | 543 | } else { |
| 544 | - $quotient = ( $numerator / $denominator ) * 100; |
|
| 544 | + $quotient = ($numerator / $denominator) * 100; |
|
| 545 | 545 | } |
| 546 | 546 | |
| 547 | - return round($quotient, $precision) . '%'; |
|
| 547 | + return round($quotient, $precision).'%'; |
|
| 548 | 548 | } |
| 549 | 549 | |
| 550 | 550 | /** |
@@ -78,7 +78,7 @@ discard block |
||
| 78 | 78 | 'username' => $username, |
| 79 | 79 | ]); |
| 80 | 80 | } elseif ($projectQuery != "") { |
| 81 | - return $this->redirectToRoute("PagesProject", [ 'project'=>$projectQuery ]); |
|
| 81 | + return $this->redirectToRoute("PagesProject", ['project'=>$projectQuery]); |
|
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | // set default wiki so we can populate the namespace selector |
@@ -207,8 +207,8 @@ discard block |
||
| 207 | 207 | } |
| 208 | 208 | |
| 209 | 209 | if ($total < 1) { |
| 210 | - $this->addFlash('notice', [ 'no-result', $username ]); |
|
| 211 | - return $this->redirectToRoute('PagesProject', [ 'project' => $project ]); |
|
| 210 | + $this->addFlash('notice', ['no-result', $username]); |
|
| 211 | + return $this->redirectToRoute('PagesProject', ['project' => $project]); |
|
| 212 | 212 | } |
| 213 | 213 | |
| 214 | 214 | ksort($pagesByNamespaceByDate); |
@@ -327,7 +327,7 @@ discard block |
||
| 327 | 327 | |
| 328 | 328 | $wikidataInfo = $this->getRepository()->getWikidataInfo($this); |
| 329 | 329 | |
| 330 | - $terms = array_map(function ($entry) { |
|
| 330 | + $terms = array_map(function($entry) { |
|
| 331 | 331 | return $entry['term']; |
| 332 | 332 | }, $wikidataInfo); |
| 333 | 333 | |
@@ -338,7 +338,7 @@ discard block |
||
| 338 | 338 | 'prio' => 2, |
| 339 | 339 | 'name' => 'Wikidata', |
| 340 | 340 | 'notice' => "Label for language <em>$lang</em> is missing", // FIXME: i18n |
| 341 | - 'explanation' => "See: <a target='_blank' " . |
|
| 341 | + 'explanation' => "See: <a target='_blank' ". |
|
| 342 | 342 | "href='//www.wikidata.org/wiki/Help:Label'>Help:Label</a>", |
| 343 | 343 | ]; |
| 344 | 344 | } |
@@ -348,7 +348,7 @@ discard block |
||
| 348 | 348 | 'prio' => 3, |
| 349 | 349 | 'name' => 'Wikidata', |
| 350 | 350 | 'notice' => "Description for language <em>$lang</em> is missing", // FIXME: i18n |
| 351 | - 'explanation' => "See: <a target='_blank' " . |
|
| 351 | + 'explanation' => "See: <a target='_blank' ". |
|
| 352 | 352 | "href='//www.wikidata.org/wiki/Help:Description'>Help:Description</a>", |
| 353 | 353 | ]; |
| 354 | 354 | } |
@@ -84,9 +84,9 @@ discard block |
||
| 84 | 84 | $article = $request->query->get('article'); |
| 85 | 85 | |
| 86 | 86 | if ($projectQuery != '' && $article != '') { |
| 87 | - return $this->redirectToRoute('ArticleInfoResult', [ 'project'=>$projectQuery, 'article' => $article ]); |
|
| 87 | + return $this->redirectToRoute('ArticleInfoResult', ['project'=>$projectQuery, 'article' => $article]); |
|
| 88 | 88 | } elseif ($article != '') { |
| 89 | - return $this->redirectToRoute('ArticleInfoProject', [ 'project'=>$projectQuery ]); |
|
| 89 | + return $this->redirectToRoute('ArticleInfoProject', ['project'=>$projectQuery]); |
|
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | if ($projectQuery == '') { |
@@ -188,10 +188,10 @@ discard block |
||
| 188 | 188 | $userGroupsTable = $this->projectRepo->getTableName($this->dbName, 'user_groups'); |
| 189 | 189 | $userFromerGroupsTable = $this->projectRepo->getTableName($this->dbName, 'user_former_groups'); |
| 190 | 190 | $query = "SELECT COUNT(rev_user_text) AS count, rev_user_text AS username, ug_group AS current |
| 191 | - FROM " . $this->projectRepo->getTableName($this->dbName, 'revision') . " |
|
| 191 | + FROM " . $this->projectRepo->getTableName($this->dbName, 'revision')." |
|
| 192 | 192 | LEFT JOIN $userGroupsTable ON rev_user = ug_user |
| 193 | 193 | LEFT JOIN $userFromerGroupsTable ON rev_user = ufg_user |
| 194 | - WHERE rev_page = " . $this->pageInfo['page']->getId() . " AND (ug_group = 'bot' OR ufg_group = 'bot') |
|
| 194 | + WHERE rev_page = ".$this->pageInfo['page']->getId()." AND (ug_group = 'bot' OR ufg_group = 'bot') |
|
| 195 | 195 | GROUP BY rev_user_text"; |
| 196 | 196 | $res = $this->conn->query($query)->fetchAll(); |
| 197 | 197 | |
@@ -200,14 +200,14 @@ discard block |
||
| 200 | 200 | $sum = 0; |
| 201 | 201 | foreach ($res as $bot) { |
| 202 | 202 | $bots[$bot['username']] = [ |
| 203 | - 'count' => (int) $bot['count'], |
|
| 203 | + 'count' => (int)$bot['count'], |
|
| 204 | 204 | 'current' => $bot['current'] === 'bot' |
| 205 | 205 | ]; |
| 206 | 206 | $sum += $bot['count']; |
| 207 | 207 | } |
| 208 | 208 | |
| 209 | - uasort($bots, function ($a, $b) { |
|
| 210 | - return $b['count'] - $a['count']; |
|
| 209 | + uasort($bots, function($a, $b) { |
|
| 210 | + return $b['count']-$a['count']; |
|
| 211 | 211 | }); |
| 212 | 212 | |
| 213 | 213 | $this->pageInfo['general']['bot_revision_count'] = $sum; |
@@ -255,10 +255,10 @@ discard block |
||
| 255 | 255 | |
| 256 | 256 | if ($info['all'] > 1) { |
| 257 | 257 | // Number of seconds between first and last edit |
| 258 | - $secs = $info['last']->getTimestamp() - $info['first']->getTimestamp(); |
|
| 258 | + $secs = $info['last']->getTimestamp()-$info['first']->getTimestamp(); |
|
| 259 | 259 | |
| 260 | 260 | // Average time between edits (in days) |
| 261 | - $this->pageInfo['editors'][$editor]['atbe'] = $secs / ( 60 * 60 * 24 ); |
|
| 261 | + $this->pageInfo['editors'][$editor]['atbe'] = $secs / (60 * 60 * 24); |
|
| 262 | 262 | } |
| 263 | 263 | |
| 264 | 264 | if (count($info['sizes'])) { |
@@ -273,7 +273,7 @@ discard block |
||
| 273 | 273 | |
| 274 | 274 | // First sort editors array by the amount of text they added |
| 275 | 275 | $topTenEditorsByAdded = $this->pageInfo['editors']; |
| 276 | - uasort($topTenEditorsByAdded, function ($a, $b) { |
|
| 276 | + uasort($topTenEditorsByAdded, function($a, $b) { |
|
| 277 | 277 | if ($a['added'] === $b['added']) { |
| 278 | 278 | return 0; |
| 279 | 279 | } |
@@ -282,7 +282,7 @@ discard block |
||
| 282 | 282 | |
| 283 | 283 | // Then build a new array of top 10 editors by added text, |
| 284 | 284 | // in the data structure needed for the chart |
| 285 | - $this->pageInfo['topTenEditorsByAdded'] = array_map(function ($editor) { |
|
| 285 | + $this->pageInfo['topTenEditorsByAdded'] = array_map(function($editor) { |
|
| 286 | 286 | $added = $this->pageInfo['editors'][$editor]['added']; |
| 287 | 287 | return [ |
| 288 | 288 | 'label' => $editor, |
@@ -306,7 +306,7 @@ discard block |
||
| 306 | 306 | $title = str_replace(' ', '_', $this->pageInfo['page']->getTitle()); |
| 307 | 307 | $query = "SELECT log_action, log_type, log_timestamp AS timestamp |
| 308 | 308 | FROM $loggingTable |
| 309 | - WHERE log_namespace = '" . $this->pageInfo['page']->getNamespace() . "' |
|
| 309 | + WHERE log_namespace = '".$this->pageInfo['page']->getNamespace()."' |
|
| 310 | 310 | AND log_title = '$title' AND log_timestamp > 1 |
| 311 | 311 | AND log_type IN ('delete', 'move', 'protect', 'stable')"; |
| 312 | 312 | $events = $this->conn->query($query)->fetchAll(); |
@@ -423,7 +423,7 @@ discard block |
||
| 423 | 423 | |
| 424 | 424 | if ($revCount === 0) { |
| 425 | 425 | $firstEdit = $edit; |
| 426 | - $firstEditMonth = mktime(0, 0, 0, (int) $firstEdit->getMonth(), 1, $firstEdit->getYear()); |
|
| 426 | + $firstEditMonth = mktime(0, 0, 0, (int)$firstEdit->getMonth(), 1, $firstEdit->getYear()); |
|
| 427 | 427 | } |
| 428 | 428 | |
| 429 | 429 | $username = $edit->getUser()->getUsername(); |
@@ -272,7 +272,7 @@ discard block |
||
| 272 | 272 | |
| 273 | 273 | $wikidataId = ltrim($page->getWikidataId(), 'Q'); |
| 274 | 274 | |
| 275 | - $sql = "SELECT " . ($count ? 'COUNT(*) AS count' : '*') . " |
|
| 275 | + $sql = "SELECT ".($count ? 'COUNT(*) AS count' : '*')." |
|
| 276 | 276 | FROM wikidatawiki_p.wb_items_per_site |
| 277 | 277 | WHERE ips_item_id = :wikidataId"; |
| 278 | 278 | |
@@ -282,7 +282,7 @@ discard block |
||
| 282 | 282 | |
| 283 | 283 | $result = $resultQuery->fetchAll(); |
| 284 | 284 | |
| 285 | - return $count ? (int) $result[0]['count'] : $result; |
|
| 285 | + return $count ? (int)$result[0]['count'] : $result; |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | /** |
@@ -323,7 +323,7 @@ discard block |
||
| 323 | 323 | |
| 324 | 324 | // Transform to associative array by 'type' |
| 325 | 325 | foreach ($res as $row) { |
| 326 | - $data[$row['type'] . '_count'] = $row['value']; |
|
| 326 | + $data[$row['type'].'_count'] = $row['value']; |
|
| 327 | 327 | } |
| 328 | 328 | |
| 329 | 329 | return $data; |
@@ -49,7 +49,7 @@ discard block |
||
| 49 | 49 | $this->page = $page; |
| 50 | 50 | |
| 51 | 51 | // Copy over supported attributes |
| 52 | - $this->id = (int) $attrs['id']; |
|
| 52 | + $this->id = (int)$attrs['id']; |
|
| 53 | 53 | $this->timestamp = DateTime::createFromFormat('YmdHis', $attrs['timestamp']); |
| 54 | 54 | $this->minor = $attrs['minor'] === '1'; |
| 55 | 55 | |
@@ -196,8 +196,8 @@ discard block |
||
| 196 | 196 | public function getDiffUrl() |
| 197 | 197 | { |
| 198 | 198 | $project = $this->getProject(); |
| 199 | - $path = str_replace('$1', 'Special:Diff/' . $this->id, $project->getArticlePath()); |
|
| 200 | - return rtrim($project->getUrl(), '/') . $path; |
|
| 199 | + $path = str_replace('$1', 'Special:Diff/'.$this->id, $project->getArticlePath()); |
|
| 200 | + return rtrim($project->getUrl(), '/').$path; |
|
| 201 | 201 | } |
| 202 | 202 | |
| 203 | 203 | /** |
@@ -207,8 +207,8 @@ discard block |
||
| 207 | 207 | public function getPermaUrl() |
| 208 | 208 | { |
| 209 | 209 | $project = $this->getProject(); |
| 210 | - $path = str_replace('$1', 'Special:PermaLink/' . $this->id, $project->getArticlePath()); |
|
| 211 | - return rtrim($project->getUrl(), '/') . $path; |
|
| 210 | + $path = str_replace('$1', 'Special:PermaLink/'.$this->id, $project->getArticlePath()); |
|
| 211 | + return rtrim($project->getUrl(), '/').$path; |
|
| 212 | 212 | } |
| 213 | 213 | |
| 214 | 214 | /** |