speciallockdb.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 119 行

PHP
119
字号
<?php/** * * @package MediaWiki * @subpackage SpecialPage *//** * Constructor */function wfSpecialLockdb() {	global $wgUser, $wgOut, $wgRequest;	if ( ! $wgUser->isAllowed('siteadmin') ) {		$wgOut->developerRequired();		return;	}	$action = $wgRequest->getVal( 'action' );	$f = new DBLockForm();	if ( 'success' == $action ) {		$f->showSuccess();	} else if ( 'submit' == $action && $wgRequest->wasPosted() &&		$wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {		$f->doSubmit();	} else {		$f->showForm( '' );	}}/** * * @package MediaWiki * @subpackage SpecialPage */class DBLockForm {	var $reason = '';	function DBLockForm() {		global $wgRequest;		$this->reason = $wgRequest->getText( 'wpLockReason' );	}	function showForm( $err ) {		global $wgOut, $wgUser;		$wgOut->setPagetitle( wfMsg( 'lockdb' ) );		$wgOut->addWikiText( wfMsg( 'lockdbtext' ) );		if ( "" != $err ) {			$wgOut->setSubtitle( wfMsg( 'formerror' ) );			$wgOut->addHTML( '<p class="error">' . htmlspecialchars( $err ) . "</p>\n" );		}		$lc = htmlspecialchars( wfMsg( 'lockconfirm' ) );		$lb = htmlspecialchars( wfMsg( 'lockbtn' ) );		$elr = htmlspecialchars( wfMsg( 'enterlockreason' ) );		$titleObj = Title::makeTitle( NS_SPECIAL, 'Lockdb' );		$action = $titleObj->escapeLocalURL( 'action=submit' );		$token = htmlspecialchars( $wgUser->editToken() );		$wgOut->addHTML( <<<END<form id="lockdb" method="post" action="{$action}">{$elr}:<textarea name="wpLockReason" rows="10" cols="60" wrap="virtual"></textarea><table border="0">	<tr>		<td align="right">			<input type="checkbox" name="wpLockConfirm" />		</td>		<td align="left">{$lc}</td>	</tr>	<tr>		<td>&nbsp;</td>		<td align="left">			<input type="submit" name="wpLock" value="{$lb}" />		</td>	</tr></table><input type="hidden" name="wpEditToken" value="{$token}" /></form>END);	}	function doSubmit() {		global $wgOut, $wgUser, $wgLang, $wgRequest;		global $wgReadOnlyFile;		if ( ! $wgRequest->getCheck( 'wpLockConfirm' ) ) {			$this->showForm( wfMsg( 'locknoconfirm' ) );			return;		}		$fp = fopen( $wgReadOnlyFile, 'w' );		if ( false === $fp ) {			$wgOut->showFileNotFoundError( $wgReadOnlyFile );			return;		}		fwrite( $fp, $this->reason );		fwrite( $fp, "\n<p>(by " . $wgUser->getName() . " at " .		  $wgLang->timeanddate( wfTimestampNow() ) . ")\n" );		fclose( $fp );		$titleObj = Title::makeTitle( NS_SPECIAL, 'Lockdb' );		$wgOut->redirect( $titleObj->getFullURL( 'action=success' ) );	}	function showSuccess() {		global $wgOut;		$wgOut->setPagetitle( wfMsg( 'lockdb' ) );		$wgOut->setSubtitle( wfMsg( 'lockdbsuccesssub' ) );		$wgOut->addWikiText( wfMsg( 'lockdbsuccesstext' ) );	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?