DynamicPageList3/classes/db/CreateTemplateUpdateMaintenance.php

86 lines
2.3 KiB
PHP
Raw Normal View History

2020-11-22 20:01:28 +00:00
<?php
/**
* DynamicPageList3
* CreateTemplateUpdateMaintenance
*
2021-01-23 20:32:43 +00:00
* @license GPL-2.0-or-later
* @package DynamicPageList3
2020-11-22 20:01:28 +00:00
*
**/
namespace DPL\DB;
use CommentStoreComment;
2020-11-22 20:01:28 +00:00
use LoggedUpdateMaintenance;
2021-01-23 21:31:13 +00:00
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Revision\SlotRecord;
2020-11-22 20:01:28 +00:00
use Title;
use User;
2020-11-22 20:01:28 +00:00
use WikiPage;
2021-01-22 21:25:34 +00:00
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = __DIR__ . '/../../../..';
}
2021-01-23 20:27:50 +00:00
2021-01-22 21:25:34 +00:00
require_once "$IP/maintenance/Maintenance.php";
2020-11-22 20:01:28 +00:00
/*
* Creates the DPL template when updating.
*/
class CreateTemplateUpdateMaintenance extends LoggedUpdateMaintenance {
2021-01-23 20:27:50 +00:00
public function __construct() {
parent::__construct();
$this->addDescription( 'Handle inserting DPL\'s necessary template for content inclusion.' );
}
2020-11-22 20:01:28 +00:00
/**
2021-01-23 20:27:50 +00:00
* Get the unique update key for this logged update.
2020-11-22 20:01:28 +00:00
*
2021-01-23 20:32:43 +00:00
* @return string
2021-01-23 20:27:50 +00:00
*/
protected function getUpdateKey() {
return 'dynamic-page-list-create-template';
}
/**
* Message to show that the update was done already and was just skipped
*
* @return string
*/
protected function updateSkippedMessage() {
return 'Template already created.';
}
/**
* Handle inserting DPL's necessary template for content inclusion.
*
* @return bool
2020-11-22 20:01:28 +00:00
*/
protected function doDBUpdates() {
2021-01-23 22:04:25 +00:00
$title = Title::newFromText( 'Extension DPL', NS_TEMPLATE );
2020-11-22 20:01:28 +00:00
// Make sure template does not already exist
2021-01-23 22:50:14 +00:00
if ( !$title->exists() ) {
$wikipage = WikiPage::factory( $title );
$updater = $wikipage->newPageUpdater( User::newSystemUser( 'DynamicPageList3 Extension' ) );
2021-01-23 21:48:18 +00:00
$content = $wikipage->getContentHandler()->makeContent( '<noinclude>This page was automatically created. It serves as an anchor page for all \'\'\'[[Special:WhatLinksHere/Template:Extension_DPL|invocations]]\'\'\' of [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList3 Extension:DynamicPageList3].</noinclude>', $title );
2021-01-23 22:50:14 +00:00
$this->output( "{$content}\n");
$updater->setContent( SlotRecord::MAIN, $content );
$comment = CommentStoreComment::newUnsavedComment( 'Autogenerated DPL\'s necessary template for content inclusion' );
2021-01-23 22:50:14 +00:00
$this->output( "{$comment}\n");
2021-01-23 21:57:22 +00:00
$updater->saveRevision(
2021-01-23 21:07:02 +00:00
$comment,
2021-01-23 22:04:25 +00:00
EDIT_NEW | EDIT_FORCE_BOT
2021-01-23 21:07:02 +00:00
);
2021-01-23 22:50:14 +00:00
$this->output( "{$updater}\n");
2021-01-23 20:27:50 +00:00
}
2021-01-23 20:42:16 +00:00
return true;
2020-11-22 20:01:28 +00:00
}
}
2021-01-22 21:25:34 +00:00
$maintClass = CreateTemplateUpdateMaintenance::class;
require_once RUN_MAINTENANCE_IF_MAIN;